java基础一:基本类型,运算符号

java中的基本类型

字符型:char 数值型:byte,short,int,long,float,double 布尔型:booleanjava

类型 字节数 取值范围
byte 1 -128-127
char 2 0-65535
short 2 -2^15 - 2^15-1
int 4 -2^31 - 2^31-1
long 8 -2^63 - 2^63-1
float 4
double 8
boolean true/false

java中没有byte和short的表示法。
整数数值默认是 int 使用long类型在数值后面加l或者L
浮点类型默认是 double 使用float类型在数值后面加 d或者D
char类型用单引号
byte的取值范围为-128~127,占用1个字节(-2的7次方到2的7次方-1)
short的取值范围为-32768~32767,占用2个字节(-2的15次方到2的15次方-1)
int的取值范围为(-2147483648~2147483647),占用4个字节(-2的31次方到2的31次方-1)
long的取值范围为(-9223372036854774808~9223372036854774807),占用8个字节(-2的63次方到2的63次方-1)
java中负数表示方法:
以负数-5为例:
1.先将-5的绝对值转换成二进制,即为0000 0101;
2.而后求该二进制的反码,即为 1111 1010;
3.最后将反码加1,即为:1111 1011bash

java中的进制表示

java中默认使用十进制
二进制: 0b* (0,1)
八进制: 0* (0-7) 十六进制: 0X* (0-f)
相比二进制和八进制 十六进制用的较多spa

java中的运算符

经常使用运算符 + - * \ %(取余)

不一样的类型计算时,自动向上转型
如:int i=1;
short s=2;
float f=1.3f;
double d=1.2;
long l=10L;
i+s 自动转型为 int
i+f 自动转型为float
i+d 自动转型为doulbe
i+l 自动转型为long
i+s+f+d+l 自动转型为double
两个整数相除时只会保留整数部分code

自增加/自减小 ++ / --

int a=1;
a++ 表示 a=a+1
a-- 表示 a=a-1
注意 short 自增长或自减小时 结果仍是short
同时支持 --a ++a
a++和++a不一样在于第一种是先计算后自增 第二种是先自增再计算string

int a=1;
int b=1;
System.out.println("(b + a++)="+(b + a++)+" a="+a);//(b + a++)=2 a=2
a=1;
b=1;
System.out.println("(b + ++a) ="+(b + ++a)+" a="+a);//(b + ++a) =3 a=2
复制代码

位运算符

& 位与
将两个数值对应的二进制,每一位进行与运算 1 1 为 1, 1 0 为 0 ,0 0 为 0 | 位或
将两个数值对应的二进制,每一位进行或运算 1 1 为 1, 1 0 为 1 ,0 0 为 0 ^ 异或
将两个数值对应的二进制,每一位进行异或运算 1 1 为 0, 1 0 为 1 ,0 0 为 0 一个数值异或两次一样的数后为自己table

符号 & | ^
1:1 1 1 0
1:0 0 1 1
0:0 0 0 0

~ 取反
一元运算符 将数值对应的二进制每一位取反
<< 左位移
将数值对应的二进制向左移动 移动后用0补齐 使用方式
int a=3;
int b=a<<2;//12 即0000 0000 0000 0011 -> 0000 0000 0000 1100
>> 右位移
将数值对应的二进制向右移动 若是第一位是1 则用1 补齐 若是是0 则用0补齐
int a=9;
int b=a>>2;//2 即 0000 0000 0000 1001 -> 0000 0000 0000 0010
int a=-6;
int b=a>>2; //-2 即 1111 1111 1111 1010 ->1111 1111 1111 1110
>>> 无符号右位移
将数值对应的二进制向右移动 不过第一位是几 都用0 补齐 对于正数没有影响,负数的话就会变为正数
int a=-6;
int b=a>>>2;// 即 1111 1111 1111 1010 -> 0011 1111 1111 1110 ##逻辑运算符 & 与
两边都为true时为true
&& 短路与
两边都为true时为true 与 & 区别 && 在左侧条件为false时不会再判断右侧条件 而 & 左侧为false时还会判断右侧条件
| 或
两边至少有一个true 即为 true 都为false才为false
|| 短语与
两边至少有一个true 即为 true 都为false才为false 与 | 区别 || 在左侧条件为true时,即已经判断结果true不会再判断右侧条件 而 |左侧即使为true还会继续判断右侧条件 #修饰符 类和方法修饰符访问权限范围class

符号 父子类关系 同一个包 外部类
public
protected
default
private
相关文章
相关标签/搜索