CoreJava读书笔记--变量与运算符

变量

在Java中,每个变量都有一个类型。在声明变量时,变量的类型在变量名之前,例如:

double salary;
int vacationDays;
long earthPopulation;
boolean flag;

(一)变量命名规则

1.变量由字母,数字,_,$组成。

2.变量必须由字母开头。

3.不能使用保留字。

4.Java大小写敏感

(二)变量的初始化

声明了一个变量后,必须用赋值语句对变量进行显示初始化。千万不要使用未初始化的变量。

建议:变量的声明尽可能靠近第一次使用的地方,这是一种良好的程序编写风格。

例如:

double salary=6500.00
System.out.println(salary);

(三)常量

在Java中,常量使用final修饰,被final修饰的变量,不可改变;且常量名使用全大写。

public class Constants {
	public static void main(String[] args) {
		final double CM_PER_INCH = 2.54;
		double paperWidth = 8.5;
		double paperHeight = 11;
		System.out.println("Paper size in centimeters:"+paperWidth*CM_PER_INCH+"by"
				+paperHeight*CM_PER_INCH);
	}
}
同时,我们经常希望某个常量可以在一个类中的多个方法中使用, 通常将这些常量叫做类常量。类常量使用static final修饰
public class Constants2 {
	public static final double CM_PER_INCH=2.54;//类常量通常定义在main方法外部
	public static void main(String[] args) {
		double paperWidth = 8.5;
		double paperHeight = 11;
		System.out.println("Paper size in centimeters:"+paperWidth*CM_PER_INCH+"by"
				+paperHeight*CM_PER_INCH);
	}
}

运算符

在Java中运算符有+,-,*,/,%。

(一)数学函数与常量

在Java中,有一个Math类,里面包含了各种各样的数学函数。

例如要计算一个数的平方根和4的2次幂的运算:

同样的,Math类还提供了一些常用的三角函数,指数函数,反函数等方法。

(二)数值之间的类型转换

数值之间的转换由小到大自动转换,如上图,实线部分自动转换,无精度丢失;虚线箭头表示可以转换,但是可能会丢失精度。

(三)强制类型转换

强制类型转换时由大到小转换,可能会丢失精度。强制类型转换的语法格式是圆括号中给出想要转换的目标类型,后面紧跟待转换的变量。例如:

double x = 9.997;
int nx = (int)x;//nx=9,丢失精度

想对浮点数进行舍入运算,以便得到最接近的整数,可以使用Math类的round方法。

double x = 9.997;
int nx = (int) Math.round(x);//四舍五入得到nx的结果是10

警告:强制类型转换需要注意,如果强制转换超过了该类型的范围,结果会得到一个完全不同的值。(byte)300得到的实际值是44。

(四)结合赋值和运算符

可以在赋值语句中使用二元运算符,例如:+=,*=或%=;

注意:如果运算符得到一个值,其类型与左侧操作数的类型不同时,会发生强制类型转换,就意味着会丢失精度。

public class CastTest {
	public static void main(String[] args) {
		int x=4;
		x+=3.5;
		System.out.println("x="+x);//x=7,3.5是double类型的值,
								   //与int类型运算,最后的值应该是(int)(x+3.5)
	}
}

(五)自增与自减运算符

在Java中,也提供了自增,自减的运算符;自增,自减运算符在变量前和变量后也有区别。

public class IncrementTest {
	public static void main(String[] args) {
		int n=12;
		System.out.println("n="+(n++));//n=12 ++在后,延迟自增,先参与运算再自增
		System.out.println("n="+n);//n=13,此时经过延迟后,变量n已经+1
		int m=12;
		System.out.println("m="+(++m));//m=13 ++再前,先自增,再参与运算
	}
}

(六)关系和boolean运算符

在Java中有丰富的关系运算符,>,<,==,>=,<=,!=;

还有逻辑运算符:&&(短路与),||(短路或)。

短路与:

expression1&&expression2;//如果第一个表达式为false,那么不用计算第二个表达式
短路或:
expression1||expression2;//如果第一个表达式的值为true,那么也不用计算第二个表达式

三目运算符:

condition?expression1:expression2;//如果条件为真,则为第一个表达式的值,如果条件为假,则为第二个表达式的值。

(七)枚举类型

有时候,变量的取值只在一个有限的集合内,例如服装的尺码只有S,M,L,X四个号码。针对这种情况,可以使用自定义枚举类型。

enum Size {SMALL,MEDIUM,LARGE,EXTRA_LARGE};
//现在就可以声明这种类型的变量
Size s = Size.MEDIUM;(变量s只能存储这个类型声明中给定的某个枚举值,或者null,null表示这个变量没有设置任何值。)









猜你喜欢

转载自blog.csdn.net/zxyy2627/article/details/79464637