一:java语言的八个特性
1:简单 : 相对于C++来说
2:面向对象 : 面向过程关注的是问题解决的步骤和过程. 面向对象关注谁能解决问题. 具有功能的对象.
3:分布式 : 多主机基于网络协作.
4:健壮 : 强类型, 不允许出现没有数据类型约束的数据. 异常处理. GC. 垃圾:应该被释放,但
是没有释放的空间. 应该被清理, 清理的过程就是把此空间重新标记为可用状态
指针安全化 => 引用(reference)
5:安全 : 所有的程序都必须经过类加载器, 类加载器会负责校验…
6:多线程 : 最大化利用,CPU, 实现多任务, 高并发.
7:性能好 : java是编译型. 比解释型语言快.
8:跨平台 : 程序字节码.class文件是面向JVM的指令集.
二:java类,方法,语句之间的关系
1:类包含方法,方法包含语句。
2:类:是程序的基本单位.
3:方法:java程序的独立功能单位。
4:语句:java程序的最小执行单位 ,结尾必须以;结尾。
三:什么是主类?什么是公共类,公共类有什么主意点?
1:主类:带有main方法修饰的类,有入口的类,只有主类可以被执行。
2:公共类:被public修饰的类。公共类的类名必须和源文件的的名字一致,所以一个源文件中,只能有一个公共类。
四:变量是什么
1:内存中的值可以变化的量,内存中的某一块被特定数据类型约束并且被命名空间,此空间中可以保存一个数据类型范围的数据。
(有数据类型约束的被命名的空间. 此空间中可以保存数据)
五:变量的注意事项
1:必须要有数据类型和变量名。
2:先声明,再使用。
3:必须初始化才可以读取(租房)。
4:变量有其作用范围,由声明语句所在的一对{}决定(eg:老师的例子,在其范围).
5:同一作用范围不可以重复声明。
6:变量尤其作用范围.
六:数据类型的作用
1:约束空间的大小
2:决定空间中保存什么
3:空间中的数据能做什么。
4:数据类型分为基本数据类型和引用数据类型
基本数据类型:整数型,浮点型,字符型,布尔型
(整数型:[byte,1个字节,-128~127范围]
[short,2个字节,32768~32767]
[int,4个字节,-20多亿~20多亿]
[long,8个字节,-900多亿亿~900多亿亿])
(浮点型:[float,4个字节,10^38]
[double,8个字节,10^308])
(字符型:[char,2个字符])
(布尔型:[boolean,一个字符])
引用数据类型(reference):内存空间中保存的其他数据的地址.
七:数据类型之间的规则
不同类型的变量互相赋值时
如果右面的范围小于左面变量的范围, 直接自动完成
如果右面的范围大于左面变量的范围, 不能自动完成, 可以借助强制类型转换来完成(有风险)
整数字面量默认使用4字节的int型空间来保存.
浮点数字面量默认使用8字节的double型空间来保存.
兼容性 : 左面的变量可以接收右面的数据类型的多少.
数据范围从小到大
byte < short < int < long < float < double
任意非long整数作运算, 结果总是int型.
混合数据类型的变量作运算, 结果总是参与运算的类型中的最大的那个类型.
八:进制
1:10进制数,
287439
2 * 10 ^ 5 +
8 * 10 ^ 4 +
7 * 10 ^ 3 +
4 * 10 ^ 2 +
3 * 10 ^ 1+
9 * 10 ^ 0
权值 : 以10以底的n次幂
逢10进1, 没有10. 这样的数称为10进制数.
2:16进制
0x5213
5 * 16^3 +
2 * 16^2 +
1 * 16^1 +
3 * 16^0 = 21011
3:进制表
十进制 二进制 十六进制
0 0000 0
1 0001 1
2 0010 2
3 0011 3
4 0100 4
5 0101 5
6 0110 6
7 0111 7
8 1000 8
9 1001 9
10 1010 A
11 1011 B
12 1100 C
13 1101 D
14 1110 E
15 1111 F
每1个16进制数正好对应4个bit. 第2个16进制是一个byte.
九:原码,反码,补码
计算机底层的所有数据的存储全部使用二进制补码形式.
正数的补码就是自身
负数的补码是它的相反数全部取反+1得到.
表示一个数的正负由符号位决定, 符号位永远位于最高位.
0011 1100 -> 如果符号位为0, 表示这个数是正数, 如果符号位为1, 表示这个数是负数.
0x3C => 16*3 + 12 => 60
所以0011 1100就是+60这个数据.
1101 0101 -> 符号位是1, 说明这个数是一个负数的补码. 怎么来的呢? 相反数取反+1得到.
-1 => 1101 0100
取反=> 0010 1011 => 0x2B => 43
所以1101 0101就是-43.
0001 1011
0x1B => 16+11 => 27
1011 1101
-1 => 1011 1100
取反=> 0100 0011 => 0x43 => 67
所以1011 1101就是-67.
byte型数据最大值.
0111 1111 => 0x7F => 7*16+15 => 127
1111 1111 => 这是一个负数
-1 => 1111 1110
取反=> 0000 0001 => 1
所以1111 1111是-1
1111 1111 + 1 => 1 0000 0000
1000 0000 => 这是一个负数
-1 => 0111 1111
取反=> 1000 0000 => 0x80 => 8 * 16 => 128
所以1000 0000是-128
short型最大值
0111 1111 1111 1111 => 0x7FFF => 32767
short型最小值
1000 0000 0000 0000 => 0x8000 => -32768
int型最大值
0111 1111 1111 1111 1111 1111 1111 1111 => 0x7FFFFFFF
int型最小值
1000 0000 0000 0000 0000 0000 0000 0000 => 0x80000000
long型最大
0x7FFFFFFFFFFFFFFF
Long型最小
0x80000000000000
char型最大
1111 1111 1111 1111 => 0xFFFF => 65535
char型最小
0000 0000 0000 0000 => 0x0000