数据类型
-
强类型语言:(安全性好)(速度慢)
要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用。
-
弱类型语言
Java的数据类型分为两大类。
基本类型(primitive type)
数值类型:整数:byte、short、int、long
浮点类型(小数):float 结尾加一个F区分、 double
字符类型:char
boolean(布尔值):只有true和false两个值
引用类型(reference type):类、接口、数组
如图:
变量
- 变量:可以变化的量
- Java是一种强类型语言,每个变量都必须声明其类型。
- Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。
type varname [=value] [{,varname[=value]}]
//数据类型 变量名 =值:可以使用逗号隔开来声明多个同类型变量
注意事项:
- 每个变量都有类型,类型可以是基本类型,也可以是引用类型。
- 变量名必须是合法的标识符。
- 变量声明是一条完整的语句,因此每一个声明都必须以分号结束。
拓展字节知识
- 位(bit):是计算机内部数据储存的最小单位,11001100是一个八位二进制数。
- 字节(byte):是计算机中数据处理的基本单位,习惯上用大写B表示。
- 1B(byte,字节)=8bit 位
- 字符:是指计算机中使用的字母、数字、字和符号。
数据类型的拓展
整数拓展
1.进制
二进制(0b开头)、十进制、八进制(0开头)、十六进制(0x)
int i =10;
int i2 =010; (八进制)
int i3 =0x10; (十六进制)
然后 System.out.print(i)
System.out.print(i2)
System.out.print(i3)
输出得到的值是10、8、16
浮点数(小数)
如果我们到银行工作,钱的话怎么表示?
用float、double做个实验
float f =0.1F;
double f1 =1.0/10;
(这两个计算出来都是0.1,但是在计算机里却不一样)
我们来输出一下 System.out.println(ff1); (用符号来表示两个值是否相等)
接着输出一下f、f1 System.out.println(f)
System.out.println(f1)
输出的值都是0.1,但是结果却是false
接着实验一下
float d1 =21435; (随便打的一串数字)
float d2 =d1+1;
这两个值明显是不相等的
但是输出结果却是true
这就是因为浮点数存在有限、离散、舍入误差、大约、接近但不等于的这些特点
所以最好完全避免使用浮点数进行比较
BigDecimal 数学工具类
字符拓展
字符用单引号’’
char c1 =‘A’;
char c2 =‘中’
输出c1、c2 System.out.println结果也是"A"、“中”
但是System.out.println((int)c1)
System.out.println((int)c2)在中间加了个(int)后
结果又不一样了
"A"变成了65,"中"变成了20013
(int) 就是强制转换符,将字符转换成计算机表格对应的数字
所有字符的本质还是数字
char c3 = ‘\u0061’; 输出的结果却是a,u0061就是a在计算机对应的数字
\t是制表符 ;\n是换行
等等还有许多的转义字符
String sa = new String( original:“hello world”);
String sb = new String( original:“hello world”);
System.out.println(sa==sb);
String sc = “hello world”;
String sd = “hello world”;
System.out.println(sc==sd);
sa和sb看起来是一样的,sc和sd也是一样的但是输出结果却是一个true一个false
布尔值拓展(boolean)
Less is More! 代码就是要精简易读。