/*
StartTime 7:22
01.char 利用单引号赋值;String利用双引号赋值
02.变量代表的是内存中的一个存储区域;变量三要素:数据类型+变量名+变量值
03.对于程序中 + 的用法:
当+左右都是数值型时,进行的是加法运算;
当+左右存在字符串时,进行的是拼接运算;
运算的顺序都是从左向右
04.在java中String不属于数据类型,准确来说它是一个类
05.在Java中,不同数据类型存储空间的大小不同,就导致了数据范围不同
数据类型 存储空间 数据范围
byte 1字节 -128~127
short 2字节 -32768~32767
int 4字节 -2147483648~2147483647
long 8字节 -263~263 -1
float 4字节 -3.404E38~3.404E38
double 8字节 -1.798E308~1.798E308
06.java中整型常量默认为int型,如果想声明为long型,要在数值尾部添加’L/l’
07.在计算机中,基本的存储单位为byte(字节),最小的存储单位为bit(比特) 1 byte = 8 bit
第一个为符号位,剩余七位
01111111
1 2 4 8 16 32 64
等比数列通项公式: an = a1 * q^(n-1)
等比数列前n项和: Sn = a1 * (1 - q^n)/ 1 - q
所以对于二进制数而言: Sn = a(n + 1)
这就是为什么 byte 类型的数据取值范围为 -128~127 的原因了
08.浮点数的构成:符号位 + 指数位 + 尾数位
09.浮点数默认为double类型,如果要定义为浮点型,要在数值尾部添加’F/f’
10.浮点数的十进制表示法: 1.23、 1.23f、 .23 等价于 0.23 【都要有小数点】
浮点数的科学计数法形式: 1.23e2 代表1.23 * 10 ^ 2、 1.23e-2 代表1.23 / 10 ^ 2 【e/E都可以】
11.在计算机中,因为存在精度问题,所以 8.1 / 3 获得的是一个接近2.7的数值
12.在JDK中有很多包,每个包中又包含很多接口、类、异常,每个类又有很多
字段、构造方法、成员方法
13.sublime 的两个连续快捷键
Ctrl + Shift + D 复制当前行并插入到下一行
Ctrl + Shift + K 删除当前行
14.java API 在线文档: matools.com
EndTime:9.25
*/
/*
1.在Java中,字符型数据的本质是一个整数,输出时输出的是对应的unicode的编码
- 输出时对应输出字母的ASCII码,可以使用强类型转换
char ch = ‘a’;
System.out.println((int)ch);
2.可以使用转义字符,将其后的字符转换为字符型常量
char c1 = ‘\n’;
3.字符型数据可以进行算数运算(加减乘除)
4.字符型数据的本质:
字符型存储到计算机中,需要先找到字符对应的码值(由字符编码表决定ASCII),将码值转化为二进制的数据之后,才能存储到计算机中。
5.ASCII码表由一个字节表示,共有128个字符,实际上一个字节可以表示256个字符。
列举几个常见的编码表:
Unicode编码表 字符-两个字节 汉字-两个字节
utf-8编码表 字符-1个字节 汉字-3个字节
gbk编码表(一般用来表示汉字) 字母-1字节 汉字-2字节
6.对于boolean类型的数据,只能为true/false,不能为null
7.我们知道在C语言、PHP中,可以用整型数来代表真/假,但是在Java中不能用0和1代替false与true。
8.Java支持自动类型转换,精度小的类型可以转化为精度高的类型
从左到右精度逐渐增大:
char - int - long - float - double
byte - short - int - long - float - double
9.Java自动转换的几个细节:
(1) 当进行含多种数据类型的数据运算时,会自动将所有数据转换为容量最大的数据类型 【结果也为最大容量的数据类型】 【自动升级原则】
(2) 尽管byte与char、short与char之间不能自动进行转换,但是这三种类型的数据同存在并参与运算时【三者中只要出现一个】,会先自动将精度转换为int类型再参与运算。
(3)当byte与short类型数据进行运算时,得到的结果仍是int类型的数据。
(4)布尔类型数据不参与转换
10.强制类型转换:
将容量大的数据类型转换为容量小的数据类型,需要使用强制类型转换符"()",但是进行强制类型转换时会造成数据丢失或数据溢出。
- 数据溢出:现在使用的数据类型无法存储原来的数据类型的数据。(例如:用byte存储int型的200)
11.强制数据类型转换的细节:
(1) 强制转换符号只会对离它最近的数据生效,可以通过使用小括号来解决优先级问题
(2)char 类型可以保存 int 类型的常量值,但不能用来保存int类型的变量值,后者要通过强制类型转换来完成
(3)将具体的值赋值给变量时,首先计算机会进行范围的判断
12.基本数据类型与String型进行相互转换:
(1) 基本数据类型向字符串类型转换:
基本数据类型 + “”;
(2) 字符串类型向基本数据类型转换:
Interger.parseInt(string); 字符串-> Int
Double.parseDouble(string); 字符串 -> Double
Float.parseFloat(string) 字符串 -> float
Long.parseLong(string) 字符串 -> long
Byte.parseByte(string) 字符串 -> byte
Boolean.parseBoolean(string) 字符串 -> boolean
Short.parseShort(string) 字符串 -> short
“使用了基本数据类型对应的包装类”
*/
后 续 补 充 : \color{pink}{后续补充:} 后续补充:
1.字符进行拼接时,得到的并不是这两个字符拼接得到的字符串,在进行计算时,是它们对应的码值加和,得到的是新码值对应的字符.