Java数据类型、运算符及类型转换

一.标识符

作用:常量、变量、方法、类和包等的名称

命名规范:

  1.必须以数字、字母、下划线或$符号开头

  2.其他部分必须是数字、字母、下划线或$,不能出现特殊符号

  3.标识符大小写敏感

  4.不可以是Java的关键字

常规建议

  1.驼峰标识:

    类名、接口名称在命名时要首字母大写

    方法、变量命名的时候首字母要小写

    多个单词拼接标识一个标识符的时候,每个单词的首字符都要大写

  2.见名知意:通过标识符的名称能知道代表的含义,不要写拼音

二.关键字/保留字

Java关键字是Java语言保留供内部使用的(不要刻意去背)

三.Java基本数据类型

Java是一种强类型语言:变量都必须声明其数据类型

弱类型语言:js、php等不需要声明基本类型,可以用var定义

整数类型:

  byte:使用一个字节存储,范围是-128-127

  short:使用两个字节存储,范围是-32768-32767

  int:使用四个字节存储,范围是正负21亿

  long:使用八个字节存储,范围很大

    注意:整数类型默认int类型,在声明long型常量时可以加‘l’或‘L’

浮点类型:

  float:单精度

  double:双精度

    注意:浮点类型默认double类型,在声明float型常量时可以加‘f’或‘F’

         浮点类型并不能表示一个精确的值,会损失一定的精度

字符型:

  char:占用两个字节,使用的时候使用‘’单引号使用

  常用转义符: (换行)、 (相当于tab键)

布尔型:

  boolean:只有true和false两值,在存储的时候占一位,不是一个字节

四.常量和变量

常量:在程序运行过程中,值不会发生改变的量

  赋给变量的值称为常量

  注意:使用final关键字修饰的变量称之为常量或者叫做最终常量,表示不可修改

变量:在程序运行过程中,值会发生改变的量

  变量可以先声明后赋值(int a;  a = 10;),也可以边声明边赋值(int a = 10;)

五.运算符

算数运算符:+、-、*、/、%(取余数)、++(自增加1)、--(自增减1)

  例题:int a = 2;    System.out.println(++a+a++);      答案:6

  解答:++的优先级高于+,先计算++a,a的值为3,后计算a++,此时a在++前,先与之前的a相加后再自身加1

赋值运算符:=

扩展赋值运算符:+=、-=、*=、/=

  注意:byte a = 1; 计算 a = a+1;涉及到类型转换,会报错

             a += 1;使用扩展赋值运算符不会报错

关系运算符:>、<、>=、<=、==、!=  (该类型只会返回boolean类型的值)

逻辑运算符:&&、||、!

  &&:短路与,表达式从左向右开始对比,若左边的表达式为false,右边不需要进行判断

  ||:短路或,表达式从左向右开始对比,若左边的表达式为true,右边不需要进行判断

位运算符:&、|、^、~、>>、<<、>>>(了解)

  若两个数字进行位运算符,操作的时候会转换为二进制进行运算

  &运算:有0为0          |运算:有1为1           ^运算:相异为1相同为0

  ~运算:进行取反       <<运算:数字变为二进制左移        >>运算:数字变为二进制右移

  例题:System.out.println(~4)           答案:-5

  解答:4的原码为:00000100、进行取反得到补码为:11111011、补码-1得到反码:11111010、取反得到原码:10000101=-5

条件运算符:? :(三目运算符,表达式为true返回?后的值,表达式为false返回:后的值)

  例题:System.out.println(true?false:true?false:true);      答案:false

        System.out.println(false?false:true?false:true);      答案:false

六.运算符的优先级

  括号的优先级是最高的

  ++、--的优先级高于+、-

注意:这个顺序不需要记住,在现实生产环境中,如果我们没有记住顺序,只需要将需要优先计算的运算式加上括号即可

七.原码、补码、反码

原码:指将最高位作为符号位(0表示正、1表示负),其他数字位由二进制转换为十进制

  例如:数字6在计算机中的原码为:00000110

       数字-6在计算机中的原码为:10000110

     以上是在8位计算机中的原码表示,如果在32位或16位计算机中,表示方法一样,只是前面补0即可

  原码运算可能出现的问题:

  

反码:如果是正数,表示方法和原码一样,如果是负数,则保留符号位1,然后将这个数字的原码每位取反

  例如:数字6在计算机中的反码和原码同为:00000110

       数字-6在计算机中的反码为:11111001

  反码运算可能出现的问题:

  

补码:如果是正数,表示方法和原码一样,如果是负数,补码就是对反码加一

  

八.类型转换

在赋值运算或算数运算时,要求数据类型相同,否则就要进行类型转换

类型由小到大提升顺序:byte,char,short<int<long<float<double

自动转换

在运算过程中,如果两个值的类型不一致,则会自动将小的类型转换为大的类型

例如:int a = 10;     byte b = 5;     int c = a + b;

强制转换

在运算过程中可以手动强制转换,将大的类型转换为小的类型,在强制转换中可能会发生精度损失,结果不准确

例如:int a = 10;     byte b = 5;     byte c = (byte) a + b;

原文地址:https://www.cnblogs.com/lyc-code/p/12457360.html