1 java基础

这篇博客详细介绍了Java的基础知识,包括数据类型、修饰符、类型转换、运算符、字符串操作、异常处理等方面的内容。讨论了诸如浮点数转换、短路运算符、String与StringBuilder的区别、构造器、equals与hashCode的关系等关键概念。还涵盖了Java中的多态性、反射机制、序列化与反序列化、异常处理和类的作用等核心概念。
摘要由CSDN通过智能技术生成

1.数据类型

补充:

       整型:byte(1字节=8bit) \ short(2字节) \ int(4字节) \ long(8字节)

       浮点型:float(4字节) \ double(8字节)

       字符型:char (1字符=2字节)

2.修饰符

3.float f=3.4;是否正确?

答:不正确。3.4 是双精度数,将双精度型(double)赋值给浮点型(float)属于下转型 (down-casting,也称为窄化)会造成精度损失,因此需要强制类型转换 float f =(float)3.4; 或者写成 float f =3.4F。

4.short s1 = 1; s1 = s1 + 1;有错吗?short s1 = 1; s1 += 1;有错吗?

答:对于 short s1 = 1; s1 = s1 + 1;由于 1 是 int 类型,因此 s1+1 运算结果也是 int 型,需要 强制转换类型才能赋值给 short 型。而 short s1 = 1; s1 += 1;可以正确编译,因为 s1+= 1;相当 于 s1 = (short)(s1 + 1);其中有隐含的强制类型转换。

5.int 和 Integer 有什么区别?

答:Java 是一个近乎纯洁的面向对象编程语言,但是为了编程的方便还是引入了基本数据 类型,但是为了能够将这些基本数据类型当成对象操作,Java 为每一个基本数据类型都引 入了对应的包装类型(wrapper class),int 的包装类就是 Integer,从 Java 5 开始引入了自 动装箱/拆箱机制,使得二者可以相互转换。

Java 为每个原始类型提供了包装类型:

- 原始类型: boolean,char,byte,short,int,long,float,double

- 包装类型:Boolean,Character,Byte,Short,Integer,Long,Float,Double

6.&和&&的区别?

答:相同点1:& 与  && 的运算结果相同

       相同点2:当符号左边是true时,二者都会执行符号右边的运算

       不同点:当符号左边是false时,&继续执行符号右边的运算。&&不再执行符号右边的运算。

       //开发中,推荐使用&&

7.| 与 ||的区别?

答:相同点1:| 与  || 的运算结果相同

       相同点2:当符号左边是false时,二者都会执行符号右边的运算

       不同点3:当符号左边是true时,|继续执行符号右边的运算,而||不再执行符号右边的运算

      //开发中,推荐使用||

8.Math.round(11.5) 等于多少?Math.round(-11.5)等于多少?

答:Math.round(11.5)的返回值是 12,Math.round(-11.5)的返回值是-11。四舍五入的原理是 在参数上加 0.5 然后进行下取整。

9.swtich 是否能作用在 byte 上,是否能作用在 long 上,是否能作用在 String 上?

答:在 Java 5 以前,switch(expr)中,expr 只能是 byte、short、char、int。从 Java 5 开始, Java 中引入了枚举类型,expr 也可以是 enum 类型,从 Java 7 开始,expr 还可以是字符串 (String),但是长整型(long)在目前所有的版本中都是不可以的。

10.用最有效率的方法计算 2 乘以 8?

答: 2 << 3(左移 3 位相当于乘以 2 的 3 次方,右移 3 位相当于除以 2 的 3 次方)。

11.数组有没有 length()方法?String 有没有 length()方法?

答:数组没有 length()方法,有 length 的属性。String 有 length()方法。

12.在 Java 中,如何跳出当前的多重嵌套循环?

答:在最外层循环前加一个标记(Label)如 A,然后用 break A;可以跳出多重循环。continue也一样。

13.构造器(constructor)是否可被重写(override)?

答:构造器不能被继承,因此不能被重写,但可以被重载。

14. == equals 的区别是什么?

答:== 对于基本类型来说是值比较,对于引用类型来说是比较的是引用;而 equals 默认情况下是引用比较,只是很多类重新了 equals

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值