java 数据类型
变量:
float x=3.4F 人为告诉它是F float
long y=214748999L;超过int取值范围2147483647 32位 4个字节 所以加L告诉它是long类型
底层中 数据有32位(int) 64位(double)
float 4个字节
0 000000000(24个0) 第一位表示符号 中间9位表示整数 后面表示小数
long 8个字节 64位 当存取数值超过(2的31次方)32位就要加L认为声明
类型转换
小数据类型相同 都是浮点 or整型
大空间变量可以直接存储小空间数据 反之需要强制转换 如果转换过程中数值范围超过边界 可能会有损失
小数据类型不同
整型—浮点型
俩个比较精确程度,浮点更高可以直接存放整数 。反之需要强制转换
int a=1; float b=a; 输出1.0
float a=1.0F; int b=(int)a
整型—字符型char 俩个字节
char x=‘我’ 中文也是有对应的码
char x =‘a’ 里面只能写一个字符 每个字符对应一个Unicode码 a–97(01100001)
char x =‘a’; int y=x 输出y–97
int x=97; char y=(char) ‘x’ 输出y–a
算数运算
(a>b)?x:y; 括号里面为真则执行x否则y
{byte x=1;
x=x+2 会出错 因为x位八个bit 二2是在常量区的默认32bit 所以会出错需要强制转换
x=(byte)(x+2); 或者 x+=2;
}
赋值运算
关系运算
逻辑运算
位运算
String s =new String(“abd”)
创建了俩个对象,new关键字 对于引用类型 就是在堆内存中创建了一个String对象 然后abd 是一个常量 会在常量区里面找有没有这个常量对象 如果有就将常量地址给他没有就创建一个常量对象
String s=“adb” 则是创建了一个变量s 然后adb就是常量对象 在常量区里面找 没有就创建一个 然后将地址赋予