常量
常量通常指的是一个固定的值如:123,‘abc’,true等。在java中使用关键字final来定义,final修饰的常量不能再更改。
定义的格式为:final type varName=value
师兄经验:
变量和常量命名要做到规范(规范是程序员的基本准则,不规范会直接损害你的个人形象):
- 所有变量、方法、类名:见名知意
- 类成员变量:首字母小写和驼峰原则: monthSalary
- 局部变量:首字母小写和驼峰原则
- 常量:大写字母和下划线:MAX_VALUE
- 类名:首字母大写和驼峰原则: Man, GoodMan
- 方法名:首字母小写和驼峰原则: run(), runRun()
变量
Java的数据类型可分为两大类:基本数据类型(primitive data type)和引用数据类型(reference data type)。
数值型:byte、short、int、long、float、double
字符型:char
布尔型:boolean
师兄经验:引用数据类型的大小统一为4个字节,记录的是其引用对象的地址!
整数类型:
Java 语言整型常量的四种表示形式
- 十进制整数,如:99, -500, 0
- 八进制整数,要求以 0 开头,如:015
- 十六进制数,要求 0x 或 0X 开头,如:0x15
- 二进制数,要求0b或0B开头,如:0b01110011
师兄经验:
Java语言的整型常数默认为int型,满足向下转型,但如果精度范围超出int类型,声明long型常量可以后加‘ l ’或‘ L ’ ,否则会编译出错。
浮点类型:
带小数的数据在Java中称为浮点型。浮点型可分为float类型和double类型。
float类型又被称作单精度类型,尾数可以精确到7位有效数字,在很多情况下,float类型的精度很难满足需求。而double表示这种类型的数值精度约是float类型的两倍,又被称作双精度类型,绝大部分应用程序都采用double类型。浮点型常量默认类型也是double。
Java浮点常量的两种表达形式:
- 十进制数形式,如:3.14 314.0 0.314
- 科学记数法形式,如314e2 314E2 314E-2
示例:
double number=3.14;
float fNumber=3.14f;//float 浮点数后面要加F或f表示浮点数,不然默认为double类型
师兄建议:
- 浮点类型float,double的数据不适合在不容许舍入误差的金融计算领域。如果需要进行不产生舍入误差的精确数字计算,需要使用BigDecimal类。
示例:
示例1:
float a=1.0f;
float b=1.0/10;
System.out.println(a==b);//结果为false
示例二:
float a=75455424821359f;
float b=a+1;
System.out.println(a==b);//结果为true
运行以上两个示例,发现示例1的结果是false,而示例2的输出结果是true。这是因为由于字长有限,浮点数能够精确表示的数是有限的,因而也是离散的。 浮点数一般都存在舍入误差,很多数字无法精确表示(例如0.1),其结果只能是接近, 但不等于。二进制浮点数不能精确的表示0.1、0.01、0.001这样10的负次幂。并不是所有的小数都能可以精确的用二进制浮点数表示。
java.math包下面的两个有用的类:BigInteger和BigDecimal,这两个类可以处理任意长度的数值。BigInteger实现了任意精度的整数运算。BigDecimal实现了任意精度的浮点运算。
字符型变量/常量
字符型在内存中占2个字节,在Java中使用单引号来表示字符常量。例如’A’是一个字符,它与”A”是不同的,”A”表示含有一个字符的字符串。
char 类型用来表示在Unicode编码表中的字符。Unicode编码被设计用来处理各种语言的文字,它占2个字节,可允许有65536个字符。 Unicode具有从0到65535之间的编码,他们通常用从’\u0000’到’\uFFFF’之间的十六进制值来表示(前缀为u表示Unicode)
char eChar = 'a';
char cChar ='中';
char c = '\u0061';
String str="中国是世界上人口最多的国家";//String类,其实是字符序列(char sequence)。
Java 语言中还允许使用转义字符 ‘\’ 来将其后的字符转变为其它的含义。常用的转义字符及其含义和Unicode值如表所示。
boolean型变量/常量
boolean类型有两个常量值,true和false,在内存中占一位(不是一个字节),不可以使用 0 或非 0 的整数替代 true 和 false ,这点和C语言不同。 boolean 类型用来判断逻辑条件,一般用于程序流程控制 。
boolean flag=true;
if(flag){
System.out.println(flag);
}