[学习笔记]Java数据类型,变量和运算符

基本Java程序结构

1. Java对大小写敏感。
2. 源代码的文件名必须与公共类的名字相同,并且一个文件中最多只能有一个公共类。
3. 和C++不同,Java中的所有函数都属于某个类的方法,所以Java中的main方法必须有个外壳类,且是静态的。

数据类型


整型

byte    1字节
short   2字节
int     4字节(默认)
long    8字节

1. Java中,整型的范围与运行Java代码的机器无关,也就是说,不管在哪个机器上,int类型都是32位数据。
2. 前后缀:
后缀L   长整型数值
前缀0x  十六进制数
前缀0   八进制数(不推荐使用)
前缀0b  二进制数(Java7支持)
3. Java中没有任何的无符号类型

浮点类型

float   4字节
double  8字节(默认)

1. 前后缀:
后缀F   单精度浮点数
2. 特殊值:正无穷大,负无穷大,NaN(不是一个数)。比如一个正整数除以0得到正无穷大,0除以0得到NaN。
3. 浮点数不适用于禁止出现舍入误差的计算中,如果需要,应该使用BigDecimal类。

Char类型

1. 使用UTF-16编码,也就是说每个字符2字节。
2. 不推荐使用该类型,如需要,应该使用字符串类String。

boolean类型

1. 只有两个值:true和false,用来判定逻辑条件。
2. 和C++不同,数值不可以代替boolean值,也就是说,逻辑判断必须严格是boolean类型值才可以。
3. 不要在boolean类型和任何数值类型之间进行强制类型转换。必要时,应该使用条件表达式:“?”

数值类型之间的转换

[学习笔记]Java数据类型,变量和运算符_第1张图片
如图所示,实心蓝色箭头方向的转换没有信息丢失,如果需要,将按此方向自动类型提升。虚线绿色箭头方向的转换可能有精度损失,如果需要,应做强制类型转换,否则编译失败。

byte b = 3;
b = b + 4;  //报错,常数4默认为int型
b = (byte) b + 4; //强制类型转换,强制将 b + 4 的结果转换为 byte 类型,再赋值给b。

变量/常量

变量

1. 不要在变量名中使用$符号。
2. 不建议在同一行中声明多个变量。
3. 变量的声明应尽可能地靠近第一次使用的地方,以提高程序的可读性。
4. 和C++不同,Java中不区分变量的声明和定义。

常量

1. 使用关键字final声明常量。
2. 在类中,可以使用static final声明类常量。

final关键字

1. 可以修饰类,变量,函数。
2. 被final修饰的类不可以被继承。为了避免因继承而被子类重写功能,将类用final修饰。
3. 被final修饰的方法不可以被重写。
4. 被final修饰的变量是一个常量,只能赋值一次。(规范:常量所有字母大写,单词间下划线连接。)
5. 内部类定义在类中的局部位置上时,只能访问该局部被final修饰的局部变量(或者事实上不变的局部变量,Java 8支持)。

示例
 
    
final class FinalClass {
final int MAX = 65535;
public static final double PI = 3.141592653;
}
class FinalFunction {
final void show() {}
}
class FinalSon extends FinalClass {} // 错误,Final类不能被继承。
class FinalSon extends FinalFunction {
void show() {} // 错误,final方法不可以被重写。
}
public class FinalDemo {
public static void main(String[] args) {
System.out.println(FinalClass.PI);
}
}

运算符

1. n++:n自增,表达式值为自增前n的值。++n:n自增,表达式值为自增后n的值。
2. &&和||按照“短路”方式求值,也就是说,如果第一个操作数已经能够确定表达式的值,那么第二个操作数就不必计算了。
3. 位运算符:&(按位与),|(按位或),^(按位异或),~(按位非),如果&和|用于逻辑布尔值运算,和&&以及||的唯一区别就是不按“短路”方式计算。
4. <<左移,>>带符号右移,>>>不带符号右移(即高位用0填充)。

你可能感兴趣的:(Java)