版权声明: https://blog.csdn.net/qq_40794602/article/details/86417131
整数型:
- byte 占一个字节 -2^7 ~ 2^7-1【-128~127】
- short 占两个字 -2^15 ~ 2^15-1【-32768~32767】
- int 占四个字节 -2^31 ~ 2^31-1【-2^31=2147483647】
- long 占八个字节 -2^63 ~ 2^63-1【-2^63=9223372036854775807】
浮点型:
- float 单精度 占四个字节 -3.403E38~3.403E38
- double 双精度 占八个字节 -1.798E308~1.798E308
字符型:
- char 占两个字节 0~65535(在不同的编码中占用不同的字节,这个只是一般情况占用两个字节)
布尔型:
- boolean java中boolean类型没有明确指定他的大小
注意:赋值时候注意float类型,long类型,加大写的F和L
进制表示形式:
- 二进制使用0b开头(只有JDK1.7版本以上可以使用0b2 来表示二进制)
- 八进制数使用0开头
- 十六进制数使用0X(x)开头
数据类型之间的隐式转换:
- 取值范围小的数据类型与取值范围大的数据类型进行运算,会先将小的数据类型提升为大的,再运算
- Java的运算是以补码形式运算的
注意:
- 进行混合运算的时候,byte,short,char不会相互转换,都会自动类型提升为int类型
- byte,short,char与其他类型进行混合运算的是小的数据类型提升为大的
浮点数的存储和整数存储方式不同,不能精确的表示一个小数:(用float举例子)float占用四个字节 ,32位,第一位是符号位(用S表示),第二至第九位是指数位(用E表示),第10至第32位是尾数位(用M表示),一个浮点数的计算方式V = -1^s*M*2^E
补充:
- 指数是指多少次方,指数位取值范围为0~255,总共有256个数
- IEEE 754规定 0表示0,255表示无穷大,还有1-254可用,最后就有-126~127
- 提问:long类型和float类型哪种类存储的数字范围更大?答:float
字符:
- 字符是指计算机中使用的字母、数字、字和符号,包括:1、2、3、A、B、C、~!·#¥%……—*()——+等等。
- 在 ASCII 编码中,一个英文字母字符存储需要1个字节。
- 在 GB2312 编码或 GBK 编码中,一个汉字字符存储需要2个字节。
- 在 UTF-8编码中,一个英文字母存储需要1个字节,一个汉字储存需要3到4个字节。
- 在ascii表中大写的A与小写的a相差32
- 记住ASCII码的三个值: '0' 48 'A' 65 'a' 97
字符和字符/字符和字符串的相加:
public class Helloword {
public static void main(String[] args) {
char c1 = '0';//48
char c2 = 'B';//66
System.out.println(c1 + c2 + "java"); //会输出114java
System.out.println(c1 + "java" + c2); //会输出0javaB
System.out.println(c1+c2); //会输出114
}
}
- 问题:Java语言中的字符char可以存储一个中文汉字吗?为什么呢?
- 答:可以。因为Java语言采用的是Unicode编码。Unicode编码中的每个字符占用两个字节。中文也是占的两个字节,utf-8编码是unicode中的一种编码,所以,Java中的字符可以存储一个中文汉字
补充:
- 类名第一个字母推荐使用大写(规范),花括号是成对出现的
- Eclipse的快速注释:ctrl + / 是单行注释 Ctrl + shift + / 是多行注释
- eclipse中 sysout + alt+/ 就可以快速补全 System.out.println()