Java变量和运算符的基本知识点

在这里插入图片描述

上图为 Java 数据类型的基本分类,下民逐个来进一步进行总结。

int

在 java 中 int 不分系统,固定为 4 个字节。并且在 java 中没有无符号数,只有有符号数 。 int 表示的范围大小为 -2147483648 —— 2147483647 。可以用 Integer.MAX_VALUE 取到 int 的最大值,取最小值则为 Integer.MIN_VALUE 。

long

在 java 中 long 不分系统,固定为 8 个字节。同样在 java 中没有无符号数,只有有符号数 。可以用 Long.MAX_VALUE 取到 int 的最大值,取最小值则为 Long.MIN_VALUE 。

double & float

Java 中 double 固定占 8 个字节, float 固定占 4 个字节。double 为双精度浮点数,float 为单精度浮点数。浮点数在计算时会存在一定误差。通常我们建议浮点数使用 double 。

char

在 java 中 char 是 2 个字节,他可以表示一个汉字。(和 C语言中的 char 是完全不同的)

byte

byte 占 1 个字节,他对标的是 C 语言中的 char。

short

short 占 2 个字节,表示的数据范围是-32767——32768.
注意⚠️:short 和 char 是两种完全互不相干的类型,更不能相互转换。

boolean

boolean 类型的变量只有两种取值, true 表示真,false 表示假。
boolean 类型和 int 不能相互转换,不存在 1 表示真,0表示 false 这样的用法。

String

形如"hello" 这样的字符串常量类型,也就是 String 类型。
字符串可以相加,相当于字符串拼接。

long 和 int 相互赋值

只能将表示范围小的赋值给表示范围大的。否则会发生截断。如果确实想赋值,可以使用强制类型转换。
注意⚠️:

byte a = 10;
byte b = 20;
byte c = a + b;

这样的代码是会报错,因为 a + b 的结果会先被转换成 int 在赋值给 c ,int 表示的范围比 byte 大,所以就会出错。

运算符

  • 基本四则运算 + - * / %

0 不能作为除数,并且 Java 中 不仅仅可以对 int 求模,也能对 double 求模。

  • 增量赋值运算符 += -= *= /= %=
int a = 10;
a += 1; 
//等价于 a = a + 1;
  • 自增自减运算符 ++ –

如果++或-- 不去取表达式的返回值的时候,就是等价的。前置++ 返回的是自增之后的值,后置++返回的是自增之前的值。

  • 关系运算符 == != < > <= >=
    关系运算符的表达式的返回值都是 boolean 类型
  • 逻辑运算符
    && || !
    逻辑运算符的操作数(操作数往往是关系运算符的结果)和返回值都是boolean。
    (短路求值是如果某一个表达式能整个表达式的结果,则后面的表达式不再执行)
    在 java 中 & 和 | 也是 && 和 || 的意思,只不过后者不支持短路求值。
  • 位运算符 & ! ~ ^
    按位 & :相同为 1 则为 1 ,否则为 0
    按位 | :相同为 0 则为0, 否则为 1
    按位取反~:该位是0则转为1,是1则转为0
    按位^:相同则为0,相异则为1
  • 移位操作符:<< >> >>>
    左移(<<):最左侧为不要了,最右侧补0
    右移:算术右移(>>)左侧补符号位
    逻辑右移(>>>)左侧补0
  • 条件运算符
    表达式1 ?表达式2 : 表达式3
    表达式1条件成立则返回表达式2,否则返回表达式3。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章