Java基础笔记
1.数据类型在java语言中包括两种:
第一种:基本数据类型
基本数据类型又可以划分为4大类8小种:
第一类:整数型
byte , short,int, long(没有小数的)
第二类:浮点型
float,aouble(带有小数的)
第三类:布尔型
boolean:只有两个值true和false,true表示真,false表示假
第四类:字符型
char: java中规定字符型字面量必须使用单引号括起来,属于文字。
8小种:
byte , short, int , long,float,double
boolean
char
第二种:引用数据类型
字符串型string属于引用数据类型-
string字符串不属于基本数据类型范畴
java中除了基本数据类型之外,剩下的都是引用数据类型。
关于计算机存储单位?
计算机只能识别二进制-( 1001101100 . ..)
1字节=8bit (8比特)--> 1byte = 8bit
1bit就是一个1或0.
1字节 = 1byte = 1B = 8位;
1KB = 1024B;
1MB = 1024KB;
1GB = 1024MB
基本数据类型所占字节数
2.转义字符
3.整数型
3.1整数型的4种编写方式
public class Main {
public static void main(String[] args) {
//十进制
int a = 10;
System.out.println(a);
//八进制
int b = 010;
System.out.println(b);
//十六进制
int c = 0x10;
System.out.println(c);
//二进制
int d = 0b10;
System.out.println(d);
}
}
在java中有一条非常重要的结论:
在任何情况下,整数型的"字面量/数据"默认被当做int类型处理。(记住就行)如果希望该"整数型字面量"被当做long类型来处理,需要在"字面量"后面添加L/l建议使用大写L,因为小写字母l和1傻傻分不清-
易错代码
下面给出一个易错代码:
编译器会不会报错呢?有人说y 是 long 类型的不会报错,--------这是错的,看上面加粗的字体。
这样就对了
下面也是错的
long l = 100L;
int x = l;
大容量转换成小容量,需要进行强制类型转换强制类型转换,如下
long l = 100L;
int x =(int)l;
需要加“强制类型转换符”,加上强制类型转换符之后编译通过了,但是运行阶段可能损失精度。
所以强制类型转换谨慎使用,因为损失精度之后可能损失很严重。
强制类型转换
补充:补码,原码,反码
1. 原码
原码就是符号位加上真值的绝对值,即用第一位表示符号,其余位表示值。比如:如果是8位二进制:
[+1]原= 0000 0001
[-1]原= 1000 0001
第一位是符号位,因为第一位是符号位,所以8位二进制数的取值范围就是:(即第一位不表示值,只表示正负。)
[1111 1111 , 0111 1111]
即
[-127 , 127]
原码是人脑最容易理解和计算的表示方式。
2. 反码
反码的表示方法是:
正数的反码是其本身;
负数的反码是在其原码的基础上,符号位不变,其余各个位取反。
[+1] = [0000 0001]原= [0000 0001]反
[-1] = [1000 0001]原= [1111 1110]反
可见如果一个反码表示的是负数,人脑无法直观的看出来它的数值。通常要将其转换成原码再计算。
3. 补码
补码的表示方法是:
正数的补码就是其本身;
负数的补码是在其原码的基础上,符号位不变,其余各位取反,最后+1。(也即在反码的基础上+1)
[+1] = [0000 0001]原= [0000 0001]反= [0000 0001]补
[-1] = [1000 0001]原= [1111 1110]反= [1111 1111]补
对于负数,补码表示方式也是人脑无法直观看出其数值的。通常也需要转换成原码再计算其数值。
小结论: