一.变量
变量的概念:当程序需要记录单个数据,定义一个变量,声明变量的实质是在内存中开辟一块存储单元,开辟的存储单元的内容会改变,所以声称"变量"。
变量的声明方式:数据类型 变量名=初始值;(例如: int a=3;)。
标识符的命名法则:可字母,数字,下滑线,$等组成,但不能以数字开头,不能使用java关键字命名。
二.数据类型
三.常用的ASCII及其转义字符
常见字符对应ASCII码:'0'~48,'A'~65,'a'~97,空格~32,换行符~10
四.基本数据类型范围及占字节数
五.自动类型转换及强制类型转换
自动类型转换(隐式类型转换):满足条件一:两种数据类型彼此兼容;条件二:目标类型的取值范围大于源数据类型(低级类型数据换成高级类型数据)。例如:byte类型向short类型转换时,由于short类型取值范围较大,会自动将byte转换为short;
强制类型转换:当两种数据类型不兼容,或目标类型的取值范围小于源类型时,自动转换将无法进行,这时就需要强制类型转换;(注:若业务计算对精度比较高,慎用double,float 建议用若希望实现精确运算则借助java.math.BigDecimal类型)
六.单个字节表示范围推导过程
在计算机中单个字节表示八位二进制位, 为什么是-128~127呢?(注:其中最高位最左边代表符号位)推导如下
非负数所能表示的整数范围:0000 0000 ~ 0111 1111=>0~127=>0 ~ 2^7-1
0111 1111=>0*2^7+1*2^6+1*2^5+1*2^4+1*2^3+1*2^2+1*2^1+1*2^0
=>0+64+32+16+8+4+2+1
=>127
负数所能表示的整数范围: 1000 0000 ~ 1111 1111
1000 0000=>先减1: 0111 1111
=>按位取反: 1000 0000
1000 0000=>0*2^7+1*2^0+1*2^0+1*2^0+1*2^0+1*2^0+1*2^0+1*2^0
=>转为十进制:128
=>添加负号:-128
很显然可以看到是因为整数二进制数符号位是0,负数的二进制符号位是1,得出 -128~127.