(面试题一)【JAVAse部分】关于变量和常量

本文是Java SE基础知识的梳理,主要讲解了Java中的变量和常量。详细阐述了变量作为程序状态的表示,常量的定义,以及Java的数据类型,包括整型、浮点型、字符型和布尔型。还提到了类型转换中的自动转换,并对各种数据类型的特性和使用场景进行了说明。
摘要由CSDN通过智能技术生成

为了帮助各位和我一样面临找工作的朋友,我把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;
     代码中int类型的a能够直接为double类型的b赋值,这种转换称为自动转换,完成自动转换需要满足以下两个条件:
①    目标类型能与源类型兼容,如,double 型兼容 int 型,但是 char 型不能兼容 int 型
②   目标类型大于源类型,如,double 类型长度为 8 字节,int 类型为 4 字节,因此 double 类型的变量里直接可以存放 int 类型的数据,但反过来就不可以了
2.    强制转换
double a=10.8;
int b=(int)a;
      代码中通过在a前面加上(int)将double类型的a强制转换成了int类型的b,这种转换称为强制转换。(注意,如代码中的a为10.8但强制转换成int类型的b后的值为10,因此强制转换并不是四舍五入而是直接舍去,会导致部分数据的丢失!)。

五、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类型,其命名方式与实例变量以及局部变量的命名方式一致。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值