目录
1.Java的数据类型
分为基本数据类型和引用数据类型。基本数据类型有数值型,字符型,布尔型。引用数据类型有类class,接口interface,数组。
不同的精度使用不同的数据类型,避免内存的浪费
String不是基本数据类型而是引用数据类型里的类
一个文件里可以有多个类但只能有一个公共类
2.整数类型
就是用来存放整数的。比如12,56,34等。
整数类型的使用细节
第一点的意思就是无论是什么系统byte就是一个字节。
一个long是八个byte,一个byte是8个bit,所以一个long有64个bit。
是错误的
不兼容的类型,从long转化到int可能会有损失
改成这样就对了
在保证数据不超的情况下尽量用小的
字节(byte),比特(bit)
一个字节包含八位,八个bit,bit是计算机里最小的单位。一个字节(byte)是基本存储单位,但bit才是最小的。
内存中n1与n2的存储结构如下图所示:
3.浮点类型
分为单精度float与双精度double。
尾数部分可能丢失,造成精度损失(小数都是近似值)。
浮点数细节
浮点型常量默认为double型。
若要声明为float型常量,在后面加个大写或小写的f即可。
必须有小数点。
只要是浮点型都有小数点,150变为150.0。
java的浮点型常量默认为double型,声明float常量,需要在后面加f或F。
十进制数形式如5.12,512.0f,.512(等价于0.512),都必须有小数点。
float精度低于double
浮点数使用陷阱(2.7和8.1/3比较)
代码示例1:
package com.cypressbox;
//演示转义字符的使用
public class changechar {
public static void main(String[] args) {
double n1 = 2.7;
double n2 = 8.1 / 3;
System.out.println(n1);
System.out.println(n2);
}
}
8.1 / 3得到的结果是接近2.7的一个小数,而不是2.7
当我们对运算结果结果是小数的进行相等判断时,要小心,应该是以两个数的差值的绝对值在某个精度内来判断。
代码示例2:
package com.cypressbox;
//演示转义字符的使用
public class changechar {
public static void main(String[] args) {
double n1 = 2.7;
double n2 = 8.1 / 3;
if(n1 == n2) {
System.out.println("这两个数相等");
}
//正确的写法是
if(Math.abs(n1 - n2) < 0.0000001) {
System.out.println("差值非常小,可以认为相等");
}
System.out.println(Math.abs(n1 - n2));
}
}
8.1除3得到的结果不是2.7,而是近似于2.7点一个数,因为计算机看到的是8.10000...它认为很多0后面可能还有数,会一直计算下去
加注释快捷键
快捷键为ctrl + /
其它快捷键
4.Java API文档
举例:查找arraylist类的方法
先在api表里找到它所属的包,再在包的类里面找到它,就可以找到它对应的方法,点开后还可以看详细情况
直接在api文档里搜索也行
5.字符类型(char)
代码示例:
package com.cypressbox;
//演示转义字符的使用
public class changechar {
public static void main(String[] args) {
char c1 = 'm';
char c2 = 'n';
char c3 = '哈';
System.out.println(c1);
System.out.println(c2);
System.out.println(c3);
}
}
字符类型可以直接存放一个数字
输出时,会输出它代表的字符
字符型细节
97在Unicode里面对应的字符是a
给一个数值去找它对应的字符是用ASCII表
在java中,char的本质是一个整数,在默认输出时,是unicode 码对应的字符,要输出对应的数字,可以(int)字符。
char类型是可以进行运算的,相当于一个整数,因为它都有对应的unicode编码。
package com.cypressbox;
//演示转义字符的使用
public class changechar {
public static void main(String[] args) {
System.out.println('a' + 100);
}
}
字符型本质
ASCII码介绍
Unicode编码介绍
UTF-8编码介绍
6.布尔类型(boolean)
布尔类型使用细节
java里不能用0代表false,1代表true ,c语言和c++里面可以。
代码示例:
package com.cypressbox;
//演示转义字符的使用
public class changechar {
public static void main(String[] args) {
boolean battle = true;
if(battle == true) {
System.out.println("你赢了,恭喜,不要骄傲。");
} else {
System.out.println("你失败了,不要气馁。");
}
}
}