【为了帮助各位和我一样面临找工作的朋友,我把java各个部分的重要知识点进行梳理和总结】
(一)【基础知识梳理——JAVAse部分】Java中的变量和常量
在程序中存在大量的数据来代表程序的状态,其中有些数据在程序的运行过程中值会发生改变,有些数据在程序运行过程中值不能发生改变,这些数据在程序中分别被叫做变量和常量,今天我们就面试可能碰到的相关变量和常量的知识进行梳理。
一、什么是变量?
变量代表程序的状态。程序通过改变变量的值来改变整个程序的状态,也就是实现程序的功能逻辑。为了方便的引用变量的值,在程序中需要为变量设定一个名称,这就是变量名。由于Java语言是一种强类型的语言,所以变量在使用以前必须首先声明,如:
int x;
二、什么是常量?
final double a=11.3;
三、JAVA中的数据类型有哪些?
整型: byte(8位) short(16位) int(32位)---默认类型 long(64位)
浮点型: float(32位) double(64位)---默认类型
字符型: char(2个字节---16位)
布尔型: boolean
其中这里有些值得注意的点:
① byte:由1个字节8位表示,是最小的整数类型。主要用于节省内存空间关键。当操作来自网络、文件或者其他IO的数据流时,byte类型特别有用。取值范围为:[-128,127]. byte的默认值为(byte)0。
② short:用16位表示,取值范围为:[-2^15, 2^15 - 1]。
③ int :32 bits, [- 2^31, 2^31 - 1].有符号的二进制补码表示的整数。常用于控制循环,注意byte和 short在运算中会被提升为int类型或更高。Java 8以后,可以使用int类型表示无符号32位整数[ 0,2^31 - 1]。
④ long:64 bits, [- 2^63, 2^63- 1,默认值为0L.当需要计算非常大的数时,如果int不足以容纳大小,可以使用long类型。如果long也不够,可以使用BigInteger类。(注意:如,longa = 100000L定义long类型一定要在常量后加上L或l,这是因为常量的默认类型是int,当常量的值超过int值域后就会编译错误)。
⑤ float:使用32 bit表示,对应单精度浮点数,运行速度相比double更快,占内存更小,但是当数值非常大或者非常小的时候会变得不精确。精度要求不高的时候可以使用float类型。(注意:如,float a=1.0f定义float类型一定要在常量后加上F或f,因为默认的浮点型是double,而double不能自动转换为float)。
⑥ double:64为表示,。如果double和float都无法达到想要的精度,可以使用BigDecimal类(定义时也可以加上D或者d,如:
double d1 = 167.7D;)。
⑦ char:char类型是一个单一的 16位 Unicode字符,char数据类型可以储存任何字符。
⑧ boolean:boolean数据类型表示一位的信息,取值仅有“false”和“true”,不能为“null”,默认取值为“false”;
四、 java中的类型转换
1. 自动转换
int a=10;
double b=a;
① 目标类型能与源类型兼容,如,double 型兼容 int 型,但是 char 型不能兼容 int 型
② 目标类型大于源类型,如,double 类型长度为 8 字节,int 类型为 4 字节,因此 double 类型的变量里直接可以存放 int 类型的数据,但反过来就不可以了
2. 强制转换
double a=10.8;
int b=(int)a;
五、java中的变量类型有哪些?
1.局部变量① 局部变量声明在方法、构造方法或者语句块中。
② 局部变量在方法、构造方法、或者语句块被执行的时候创建,当它们执行完成后,变量将会被销毁。
③ 访问修饰符不能用于局部变量。
④ 局部变量只在声明它的方法、构造方法或者语句块中可见。
⑤ 局部变量是在栈上分配的。
⑥ 局部变量没有默认值,所以局部变量被声明后,必须经过初始化,才可以使用。
2.实例变量
① 实例变量声明在一个类中,但在方法、构造方法和语句块之外;
② 当一个对象被实例化之后,每个实例变量的值就跟着确定;
③ 实例变量在对象创建的时候创建,在对象被销毁的时候销毁;
④ 实例变量的值应该至少被一个方法、构造方法或者语句块引用,使得外部能够通过这些方式获取实例变量信息;
⑤ 实例变量可以声明在使用前或者使用后;
⑥ 访问修饰符可以修饰实例变量;
⑥ 实例变量对于类中的方法、构造方法或者语句块是可见的。一般情况下应该把实例变量设为私有。通过使用访问修饰符可以使实例变量对子类可见;
⑦ 实例变量具有默认值。数值型变量的默认值是0,布尔型变量的默认值是false,引用类型变量的默认值是null。变量的值可以在声明时指定,也可以在构造方法中指定;
⑧ 实例变量可以直接通过变量名访问。但在静态方法以及其他类中,就应该使用完全限定名:ObejectReference.VariableName。
3.类变量(静态变量)
① 类变量也称为静态变量,在类中以static关键字声明,但必须在方法构造方法和语句块之外。
② 无论一个类创建了多少个对象,类只拥有类变量的一份拷贝。
③ 静态变量除了被声明为常量外很少使用。常量是指声明为public/private,final和static类型的变量。常量初始化后不可改变。
④ 静态变量储存在静态存储区。经常被声明为常量,很少单独使用static声明变量。
⑤ 静态变量在程序开始时创建,在程序结束时销毁。
⑥ 与实例变量具有相似的可见性。但为了对类的使用者可见,大多数静态变量声明为public类型。
⑦ 默认值和实例变量相似。数值型变量默认值是0,布尔型默认值是false,引用类型默认值是null。变量的值可以在声明的时候指定,也可以在构造方法中指定。此外,静态变量还可以在静态语句块中初始化。
⑧ 静态变量可以通过:ClassName.VariableName的方式访问。
⑨ 类变量被声明为public static final类型时,类变量名称一般建议使用大写字母。如果静态变量不是public和final类型,其命名方式与实例变量以及局部变量的命名方式一致。