1. 变量和注释(重点)
如:
姓名:xiaomage 年龄:18 ...
1.1 变量的基本概念
当需要在Java代码中记录单个数据内容时,则需要声明一个变量进行处理,而变量的本质就是在内存中申请一块存储单元用于存放数据,该存储单元的数据可以发生改变。
由于存放的数据内容不同导致所需的存储单元大小不同,此时可以使用数据类型的概念加以描述,并给该存储单元指定一个名称作为访问数据的方式。
1.2 变量的声明方式
数据类型 变量名 = 初始值; -其中=初始值可以省略,但分号不可以省略
如:
int age = 18; - 推荐该方式
String name ="xiaomage";
intage;
扩展: 在main()方法体中声明的变量叫做 局部变量,局部变量的作用域为:从声明开始到整个方法体结束为止。
1.3 标识符(变量名)的命名规则
(1)要求必须由字母、数字、下划线以及$组成,其中数字不能开头;
如:age name taobao age2 name2
(2)要求不能与Java语言中的关键字同名,关键字就是Java语言中用于表示特殊含义的标识符
如:class void static 等
(3)区分大小写,长度没有限制但不宜过长;
如:day dAy Day - 不推荐使用 sendMsg
(4)尽量做到见名知意,支持中文但不推荐使用;
如:year month day time length
2.数据类型
2.1 基本分类
在Java语言将数据类型分为两大类:
(1)基本数据类型
byte、short、int、long、float、double、boolean、char
1 2 4 8 4 8 1 2
(2)引用数据类型
数组、类、接口、枚举以及标注
2.2 常见的进制
在日常生活中采用十进制表示法,逢十进一,每个数字的权重:10^0、10^1、10^2、...
计算机的底层采用二进制表示法,逢二进一,每个数字的权重:2^0、2^1、2^2、...
为了简化二进制的表示形式,可以采用八进制和十六进制。
计算机中采用二进制的最高位(最左边)表示符号位,若为0表示非负数,若为1表示负数。
2.3 进制之间的转换(原理)
(1)正十进制转换为二进制的方式
a.除2取余法,也就是让十进制整数不断地除以2并记录余数,直到商为0时逆序排序。
b.拆分法,将十进制整数拆分为若干个二进制权重的和,若有该权重则下面写1,否则写0。
如:
35 => 32 + 2 + 1 => 0010 0011
128 64 32 16 8 4 2 1
0 0 1 0 0 0 1 1
(2)正二进制转换为十进制的方式
a.加权法,让二进制中的每个数字乘以当前位的权重,再累加起来。
如:
0010 0011 => 0*2^7 +0*2^6 + 1*2^5 + 0*2^4 + 0*2^3 + 0*2^2 + 1*2^1 + 1*2^0
=> 0 + 0 + 32+ 0 + 0 + 0 + 2 + 1
=> 35
练习:
66 和 80分别转换为二进制:0100 0010 和 0101 0000
(3)负十进制转换为二进制的方式
a.将绝对值转换为二进制,然后进行按位取反再加1。
如:
-35转换为二进制: 35:0010 0011
35转换为二进制:0010 0011 -35: 1101 1101 +
按位取反:1101 1100 ---------------------
再加1: 1101 1101 1 0000 0000 (溢出,丢失,结果为0)
(4)负二进制转换为十进制的方式
a.先减1再进行按位取反,采用加权法合并为十进制整数,最后添加负号。
如:
1101 1101转换为十进制:
先减1: 1101 1100
按位取反: 0010 0011
转换为十进制:35
添加负号: -35
2.5 整数类型
在Java语言中用于描述整数数据的类型有:byte、short、int以及long,推荐使用int类型
其中byte类型在内存空间中占1个字节,表示的整数范围是:-128~ 127. -2^7 ~ 2^7-1.
其中short类型在内存空间中占2个字节,表示的整数范围是:-32768~ 32767. -2^15 ~ 2^15-1.
其中int类型在内存空间中占4个字节,表示的整数范围是: 正负二十一亿之间. -2^31 ~ 2^31-1.
其中long类型在内存空间中占8个字节,表示的整数范围是:-2^63~ 2^63-1.
在Java程序中直接写出的整数数值叫做直接量/字面值/常量,如:100。直接量默认为int类型,若希望描述更大的直接量,则需要在直接量的后面加上L或l,推荐使用L表示long类型。
扩展:
若希望表示比long类型范围还大的整数,则需要借助java.math.BigInteger类型。
2.7 布尔类型
在Java语言中用于描述真假信息的类型有:boolean,数值只有两种:true 和 false。
其中boolean类型在内存空间中的大小没有明确的规定,通常认为是1个字节。
2.8 字符类型
在Java语言中用于描述单个字符信息的类型有:char,如:'1', 'a', '中'。
其中char类型在内存空间中占2个字节,该类型自身很少使用,在以后的开发中更多的都是使用多个字符组成的字符串,使用String类型加以描述,如:"hello"。
由于计算机的底层只识别0和1组成的二进制序列,因此字母汉字等图案无法保存到计算机中,为了能够存储则给每个图案指定一个编号,该编号就叫做该字符的ASCII。
要求大家记住的ASCII值有:
'a' - 97 'A' - 65 '0' - 48 空格 - 32 换行符 - 10
要求大家记住的转义字符有:
\" - " \' - ' \\ - \ \t - 制表符tab键 \n - 换行符
2.9 基本数据类型之间的转换
自动类型转换: 主要指从小类型向大类型之间的转换。
强制类型转换:主要指从大类型向小类型之间的转换。
目标类型 变量名 = (目标类型)源类型的变量名;如:byte b1 = (byte)s1;