Java 属于静态强类型解释性语言
静态类型 创建变量时指定数据类型
动态类型 创建变量时无需指定数据类型 运行后赋值时确定数据类型
强类型 需通过强制转换类型 转换类型
弱类型 根据程序上下文环境自动修改数据类型
编译型 使用编译器来编译执行的编程语言
解释型 使用解释器来解释执行的编程语言
xxx.java ----->xxx.class ----->Hello World
Windows/Linux/MacOS
电子位 bit 八位 一字节
*{ margin: 0; padding: 0; font-family: MiSans; box-sizing: border-box; } .bit{ width: 40px; height: 40px; display: inline-block; border: 1px solid black; }最高位为符号位
保存静态资源文件 例如静态变量 方法 运行时的class文件等
以栈数据结构为模型创建的一块空间
主要用于执行方法
结构特征 先进后出
压栈 把栈帧放到栈空间的过程
弹栈 把栈帧在栈空间弹出去的过程
每当调用一个方法的时候,该方法就会在栈内存中开辟一个栈,并压栈到栈空间。开始执行,方法执行完后 弹栈 栈销毁
保存类对象和成员变量及成员方法
注意 ⚠️
127
~-128
32767
~-32768
2147483647
~-2147483648
L
或l
结尾F
或f
结尾D
或d
结尾 或不写true
和 false
0
65535
不需要负数\u0000
~ \uffff
\
转义符
+
字符串拼接符
布尔型 不能参与转换
byte --> short --> int --> long --> float --> double
char --> int --> long --> float --> double
多出的高位部分被截断 有可能损失精度
整数转换为char时 当不考虑符号位时 对应的是 65271
整数转换为char时 忽略负数 将响应负数的二进制转换为对应的正数 然后再进行ASCII码对照
当进行多类型混合运算时 结果为参与运算的最大类型
当混合运算类型只出现了 byte short int char 四种类型时
任意一种或多种进行运算,结果一定是int类型(可以理解为混合运算的结果为参与运算的最大类型,但最低也是int类型)
单行注释
// XXX
多行注释
/*
* XXX
* YYY
*/
/**
* XXX
* YYY
*/
可生成 Javadoc 文档
强制规则 只允许使用大小写字母、$
、_
、数字(数字不能开头)不能使用关键字和保留字
非强制规则 驼峰命名 见名之意
全局变量一般是指可以直接调用,不需要二次引用的变量
Java 中不存在全局变量
使用数据类型划分内存空间 给空间取名,并赋值
分为四类
static
修饰的变量static
修饰的变量 存放在堆内存中static
和 final
修饰的变量0
0.0
\u0000
false
null
静态变量调用 使用类名.静态变量名 需要考虑权限修饰符
使用类名区分同名的局部变量和静态变量
使用 this
区分同名的局部变量和成员变量
局部变量可以和静态变量/成员变量可同名
静态变量和成员变量 不可同名
>
>=
<
<=
==
!=
结果是布尔型
==
基本类型比较数值 引用类型比较内存地址
&
&&
与|
||
或!
非^
异或 两边不一致为真>>
右移运算>>>
0
负数有可能变正数<<
左移运算0
相当于该数乘2+=
-=
*=
/=
%=
计算过程中自动进行强制类型转换
赋值运算属于右结合,同优先级从右到左计算
int result = x = y = z = 10;
由于=
的右结合性,先执行 z = 10
; 再执行 y = z
再执行 x = y
运算
xxx?yyy:zzz
xxx
需要判断的语句 布尔型yyy
判断为真时执行的语句zzz
判断为假时执行的语句