【Java语言】数据类型、变量和运算符

数据类型 

数据类型分为基本数据类型和引用数据类型;

    基本数据类型

       无论是32位系统还是64位系统,数据类型所占的字节数都不会变 ;整形和浮点型都是带有符号的;整型默认int,浮点型默认double;

       整型
  • 字节型(byte)---> 1个字节     (-128~127)=>(-2^7~2^7-1)
  • 短整型(short)--->2个字节       (-32768 ~ 32767) =>(-2^15~2^15-1)
  • 整型   (int)  --->4个字节          (-2^31~2^31-1)
  • 长整型(long)--->8个字节        (-2^63~2^63-1)
     浮点型
  • 单精度浮点数(float)--->4个字节      (有范围,一般不关注)
  • 双精度浮点数(double)--->8个字节  (有范围,一般不关注)
     字符型
  • 字符型(char)--->2个字节         (0 ~ 65535) 
     布尔型
  • 布尔型(boolean)--->没有明确规定      (只有true和false)

 变量

变量需要满足以下条件:

 两个特殊的赋值

 各类型的包装类

类型转换

       类型转换分为两种:强制类型转换和隐式类型转换;如果不是这两种编译就会报错,无法进行(与C语言不一样的是,C语言有截断就不会报错)。

   隐式类型转换

       代码不需要进行任何处理,在代码编译时,编译器会自动进行处理。特点:数据范围小的转为数据范围大的时会自动进行。eg:long l = 100L;int a = 10;l = l + a;// l = 110 

   强制类型转换

       当进行操作时,代码需要经过一定的格式处理,不能自动完成。特点:数据范围大的到数据范围小的。 eg:int a = 10; long l = 100L;  a = (int)(a + l); // a = 110

类型提升

  •  不同类型的数据之间相互运算时,数据类型小的会被提升到数据类型大的;
  • 在byte等各种运算中需要注意范围 //byte(-128~127);

字符串类型 

       与C语言不一样(char类型),在Java中字符串有单独的类型String,而且有些情况下,也可以进行字符串和整型、浮点型之间的转换

扫描二维码关注公众号,回复: 17511870 查看本文章

运算符

     算术运算符

基本运算符(+ - * / %)
  • 使用时必须左右两边都有操作数;
  • int / int 结果还是int类型,而且会向下取整;
  • 做除法和取模时,所谓的除数(右操作)不能为0;
  • 取模可以是正负、整型、浮点型(与C语言不同);
  • 左右两边类型不一致时,向类型大提升;
增量运算符(+= -= *= %=)
  • 这个运算不需要进行强制类型转换。eg:int a = 10;long b = 100L;(a += b) <=>a = (long)(a+b);
自增/自减运算符(++ --)
  • 【前置++】【++后置】两者区别就是谁先使用的问题,前置就是先使用后加加;后置就是先加加后使用; 只有变量才能执行这个运算符。

     关系运算符

关系运算符(== != < <= > >=) 
  • 这个与C语言一样,都不能连续小于、大于或等于。

     逻辑运算符

逻辑运算符(&& || !)
   逻辑与(&&)
  • 表达式1 && 表达式2,左右两边必须是boolean类型的结果; 
  • 表达式1和2同时为true时为true,其他都为假;
  • 表达式1为假时,表达式2就不需要计算,总结果直接为假(短路);
   逻辑或(||)
  • 表达式1 || 表达式2,左右两边必须是boolean类型的结果;
  • 表达式1和2同时为false时为false,其他都为真;
  • 表达式1为真时,表达式2就不需要计算,总结果直接为真(短路);
   非(!)
  • 表达式为真,!表达式为假;相反表达式为假,!表达式为真; 

     位运算符

 位运算符(& | ~ ^)
   按位与(&)
  • &是二元运算符;用二进制进行计算,两个二进制位同为1结果为1,有0结果为0; 
  • a & (a - 1)后把最右边的1与成0;
   按位或(|)
  •  |是二元运算符;用二进制进行计算,两个二进制位同为0结果为0,有1结果为1
   按位取反(~)
  • 二进制位为1则转为0,1则转为0; 
   按位异或(^) 
  •  两个数字的二进制位相同为0,相异为1
  • a ^ a = 0; a ^ 0 = a;

     移位运算符

移位运算符
左移(<<)
  • 最左位舍弃,每一位都左移,最右位补0(左边舍弃,右边补0。
  • a << b 相当于a * (2^b)
右移(>>)
  • 最右位舍弃,每一位都右移,最左位补符号位(正0,负1)(右边舍弃,左边补原来的符号位
  • a >> b  a / (2^b)
无符号右移(>>>)
  • 最右位舍弃,每一位都右移,最左位补0(右边舍弃,左边补0

     条件运算符

三目运算符
  • 表达式1?表达式2:表达式3;表达式1为true时,执行表达式2;false执行表达式3

注:

  • 0x前缀是十六进制数字 ,一个十六进制数字对应四个二进制位,%x是按照十六进制输出;eg:a  -->   1011
  • 运算符的优先级加括号即可;

猜你喜欢

转载自blog.csdn.net/2402_84815218/article/details/142909554
今日推荐