Java数据类型
It has been 0 days since the last update of this post. Some contents may be outdated. Please pay attention to screening.
数据类型
Java数据类型划分
- 基本数据类型(primitive types)
- 数值型
- 整数类型(byte,short,interesting,long)
- 浮点类型(float,double)
- 字符型(char)
- 布尔型(Boolean)
- 数值型
- 引用类型(reference types)
- 类(class)
- 接口(interface)
- 数组
两种类型的差别
基本类型:变量在栈
引用类型:变量引用到堆,在“那里”。储存的内容在堆
1 | double d = 3.14; |
逻辑型
- Boolean类型适于逻辑运算,一般用于程序流程控制
- Boolean类型数据只允许取值true或false
- 不可以0或非0的整数替代true和false
- if(a=5)在Java中是不允许的
字符型
char型数据用来表示通常意义上的字符、
字符常量是用单引号括起来的单个字符
1
char c = 'A'
Java字符采用Unicode编码,每个字符占两个字节
可用十六进制编码形式表示
1
char c1='\u0061';
Java语言中还允许使用转义字符’\‘来将其后的字符转变为其它的含义
1
char c2 = '\n';
整数类型
Java各整数类型有固定的表数范围和字段长度,而不受具体操作系统的影响,以保证Java程序的可移植性
浮点型
Java浮点类型有固定的表数范围和字段长度
标识符
名字就是标识符:任何一个变量、常量、方法、对象和类都需要名字
标识符要满足如下的规定:
标识符可以由字母、数字和下划线(_)、美元符号($)组合而成;
标识符必须以字母、下划线或美元符号开头,不能以数字开头
标识符最好与其意义相符,以增加程序的可读性
应注意Java是大小写敏感的语言
- 按惯例,类名首字母用大写(Pascal)
- 其余的(包名、方法名、变量名)首字母都小写(camel)
- 少用下划线
- 常量随时用随定义
运算符
算术运算符
逻辑运算符
短路(short-circuit)逻辑运算符
&&——第一个操作数为假则不判断第二个操作数
||——第一个操作数为真则不判断第二个操作数
//MyDate d; if ((d!=null)&&(d.day>31)){ //DO SOMETHING with d } if (i<0||i>31){ System.out.println("非法赋值"); }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
### 位运算符
![](image-20240129215727420.png)
### 移位运算符
![](image-20240129215825578.png)
![](image-20240129215939385.png)
```java
public class BitwiseOperators {
public static void main( String args[]){
int a = 0b1100;
int b = 0b1010;
print("a ",a);
print("b ",b);
print("a&b",a&b);
print("a|b",a|b);
print("a^b",a^b);
print("~a",~a);
print("a<<2",a<<2);
print("a>>2",a>>2);
print("a>>>2",a>>>2);
}
static void print(String prefix,int n){
String s = Integer.toBinaryString(n);
while(s.length() < 4) s = "0"+s;
System.out.println(prefix + " " + s);
}
}
赋值运算符
字符串连接运算符+
表达式
表达式中的类型转换
- 当有不同种类的混合运算时:int->long->float->double
- 整型提升
- 所有的byte,short,char参与算术运算等转为int
反汇编的代码
1 | javap -c 类名 |
Comments
Comment plugin failed to load
Loading comment plugin