文章目录
数据类型
强类型语言(安全性高,速度慢)
要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用。
弱类型语言
Java的数据类型分为两大类
-
基本类型(primitive type)---------------八大基本数据类型
-
数值类型
-
整数类型
-
byte占一个字节范围
-
short占两个字节范围
-
int占四个字节范围(最常用)
-
long占八个字节范围(long类型要在数字后面加个L)
byte num1 = 127; short num2 = 32767; int num3 = 2147483647; long num4 = 30L; long num5 = 9223372036854775807L;
ps:范围可以只记大概,具体可以通过各自对应的包装类名Crtl+左键,点击查看int–>Integer,char–>character,其他的包装类都是把原始类中的首字母大写…
-
-
浮点类型
-
float占四个字节(浮点数默认double类型,float类型要在数字后面加个F)
float num6 = 30.2F;
-
double占八个字节
-
-
字节类型 char占两个字节(字符!!!不是字符串)
char name1 = 'A'; char name2 = '张'; //字符串,String不是关键字,是 类 String name3 = "张三"
-
-
boolean类型:占一位,其值只有true和false两个
//布尔值 boolean flag = true; //boolean flag = false;
字节(byte)
计算机数据处理的基本单位,用大写B来表示’位(bit)
是计算机内部数据存储的最小单位`,1B = 8b
-
-
引用类型(reference type)
-
类
-
接口
-
数组
-
拓展
整数进制
二进制0b,八进制0,十六进制0x
public class Demo01 {
public static void main(String[] args) {
int i = 10; //十进制
int i2 = 010; //八进制0
int i3 = 0x10; //十六进制0x
int i4 = 0b10; //二进制0b
System.out.println(i);
System.out.println(i2);
System.out.println(i3);
System.out.println(i4);
}
}
运行结果
10
8
16
2
浮点数
银行业务怎么表示?
public class Demo02 {
public static void main(String[] args) {
float f = 0.1f;
double d = 1.0/10;
System.out.println(f == d);
System.out.println(f);
System.out.println(d);
System.out.println("========================================");
float d1 = 233333333333333333F;
float d2 = d1 + 1;
System.out.println(d1 == d2);
}
}
float 和double 是有精度问题的,上面代码中,我们直接计算的话,预期fd为true,d1d2为false,然而结果恰恰相反
输出结果
false
0.1
0.1
=============================================
true
最好完全避免使用浮点数进行比较
最好完全避免使用浮点数进行比较
最好完全避免使用浮点数进行比较
所以银行业务与钱有关的用BigDecimal(数学工具类)。
字符
public class Demo03 {
public static void main(String[] args) {
char c1 = 'a';
char c2 = '中';
System.out.println(c1);
System.out.println((int)c1); //强制转换
System.out.println(c2);
System.out.println((int)c2); //强制转换
}
}
输出结果
a
97
中
20013
所有的字符本质还是数字
Unicode编码
如果有一种编码,将世界上所有的符号都纳入其中,无论是英文、日文、还是中文等,大家都使用这个编码表,就不会出现编码不匹配现象。每个符号对应一个唯一的编码,乱码问题就不存在了。这就是Unicode编码。
Unicode当然是一个很大的集合,现在的规模可以容纳100多万个符号。每个符号的编码都不一样,比如,U+0639表示阿拉伯字母Ain,U+0041表示英语的大写字母A,“汉”这个字的Unicode编码是U+6C49。
Unicode固然统一了编码方式,但是它的效率不高,比如UCS-4(Unicode的标准之一)规定用4个字节存储一个符号,那么每个英文字母前都必然有三个字节是0,这对存储和传输来说都很耗资源。
char = '\u0061'; System.out.printIn(c3); //输出结果:a
转义字符
\u :\uxxxx Unicode转义字符,其中xxxx是十六进制数字的字符串表示形式
\n :换行
\t :水平制表符table
…