C.构造方法没有返回值
D.构造方法一定要和类名相同
答案:
B
解析:
1.构造方法也是类的方法,可以在创建对象时为成员变量赋值
2.构造方法可以进行重载,但是参数列表必须不相同,不以返回值和访问级别进行区分
3.构造方法没有返回值
4.构造方法一定要与定义为public的类同名
综上所述,B不正确
A.如果两个对象的hashcode相同,那么它们作为同一个HashMap的key时,必然返回同样的值
B.如果a,b的hashcode相同,那么a.equals(b)必须返回true
C.对于一个类,其所有对象的hashcode必须不同
D.如果a.equals(b)返回true,那么a,b两个对象的hashcode必须相同
答案:
D
解析:
hashcode和equals的约定关系如下:
1、如果两个对象相等,那么他们一定有相同的哈希值(hash code)。
2、如果两个对象的哈希值相等,那么这两个对象有可能相等也有可能不相等。(需要再通过equals来判断)
6.如果int x=20, y=5,则语句System.out.println(x+y +“”+(x+y)+y); 的输出结果是()
A.2530
B.55
C.2052055
D.25255
答案:
D
解析:
1)不论有什么运算,小括号的优先级都是最高的,先计算小括号中的运算,得到x+y +“”+25+y
2)任何字符与字符串相加都是字符串,但是是有顺序的,字符串前面的按原来的格式相加,字符串后面的都按字符串相加,得到25+“”+25+5
3)上面的结果按字符串相加得到25255
A.int x( ){ char ch=’a’; return (int)ch; }
B.void x( ){ …return true; }
C.int x( ){ …return true; }
D.int x( int a, b){ return a+b; }
答案:
A
解析:
A.Java中涉及到byte、short和char类型都可以强制转化为int,符合返回类型 A正确
B.方法中定义为void 应该没有返回值,但返回值为boolean类型 B错
C. 方法中类型为int,应该返回int类型值,但是 返回值为boolean类型 C错
D.方法应该定义为int(int a,int b),所以D错
8.设一组权值集合W={2,3,4,5,6},则由该权值集合构造的哈夫曼树中带权路径长度之和为()。
A.20
B.30
C.40
D.45
答案:
D
解析:
9.枚举(enum)属于原始数据类型(primitive type)。
A.正确
B.错误
答案:
B
解析:
枚举类是一种特殊对的类,既然是类。那他就不是原始数据类型了
10.在Java中,以下关于方法重载和方法重写描述正确的是?
A.方法重载和方法的重写实现的功能相同
B.方法重载出现在父子关系中,方法重写是在同一类中
C.方法重载的返回值类型必须一致,参数项必须不同
D.方法重写的返回值类型必须相同或相容。
答案:
D
解析:
重载(overload):只要方法名 一致 ,其他(参数列表、返回值)怎么折腾随便。
重写(overriding):只有实现的功能代码 不一致 ,其他的(函数名、参数列表、返回值类型)必须都一致。
A.eden区
B.from区
C.元数据区
D.to区
答案:
C
解析:
eden : from : to =8:1:1,用于新生代垃圾回收。 元数据区是用来替换永久代的,大概那个意思。 引入元数据区的意义: JDK8引入了一个新的native的内存区块,Metaspace(也就是题主所说的“元数据”区域)。也就是说,之后你在调优或者调查JVM问题的时候就不用和PermGen区域打交道了,也不会有java.lang.OutOfMemoryError: PermGen 这种内存不足的问题来骚扰你。
A.abstract修饰符可修饰字段、方法和类
B.抽象方法的body部分必须用一对大括号{ }包住
C.声明抽象方法,大括号可有可无
D.声明抽象方法不可写出大括号
答案:
D
解析:
abstract修饰符可修饰字段、方法和类. × abstract只能用来修饰类、方法,不修饰字段(属性)。
抽象方法的body部分必须用一对大括号{ }包住. × 抽象方法用“;”结束。
声明抽象方法,大括号可有可无. × 抽象方法没有方法体,也不用大括号。
A.JVM GC能管理的内存
B.JVM进程管理的内存
C.在JVM老年代内存区
D.在JVM新生代内存
答案:
B
解析:
off-heap叫做堆外内存,将你的对象从堆中脱离出来序列化,然后存储在一大块内存中,这就像它存储到磁盘上一样,但它仍然在RAM中。对象在这种状态下不能直接使用,它们必须首先反序列化,也不受垃圾收集。序列化和反序列化将会影响部分性能(所以可以考虑使用FST-serialization)使用堆外内存能够降低GC导致的暂停。堆外内存不受垃圾收集器管理,也不属于老年代,新生代。
14.非抽象类实现接口后,必须实现接口中的所有抽象方法,除了abstract外,方法头必须完全一致.
A.正确
B.错误
答案:
B
解析:
略
public class Test2
{
public void add(Byte b)
{
b = b++;
}
public void test()
{
Byte a = 127;
Byte b = 127;
add(++a);
System.out.print(a + " ");
add(b);
System.out.print(b + “”);
}
}
A.127 127
B.128 127
C.129 128
D.以上都不对
答案:
D
解析:
add()方法里面的修改值并不会起作用,而add(++a)会使a数值越界成-128,所以输出为-128 127
A.8
B.37
C.36
D.9
答案:
B
解析:
字串: n(n+1)/2 + 1
非空子串:n(n+1)/2
非空真子串:n(n+1)/2 - 1
以下关于final关键字说法错误的是()
A.final是java中的修饰符,可以修饰类、接口、抽象类、方法和属性
B.final修饰的类肯定不能被继承
C.final修饰的方法不能被重载
D.final修饰的变量不允许被再次赋值
答案:
AC
解析:
1.final修饰变量,则等同于常量
2.final修饰方法中的参数,称为最终参数。
3.final修饰类,则类不能被继承
4.final修饰方法,则方法不能被重写。
5.final 不能修饰抽象类
6.final修饰的方法可以被重载 但不能被重写
18.下面代码在main()方法中第八行后可以正常使用的是( )
public class Test
{
private int a=10;
int b=20;
static int c=1;
public static void main(String arg[])
{
Test t = new Test();
}
}
A.t.a
B.this.c
C.Test.b
D.Test.c
答案:
AD
最后
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Java开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。**
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
[外链图片转存中…(img-1DJoB74w-1715728862815)]
[外链图片转存中…(img-VlARolrc-1715728862816)]
[外链图片转存中…(img-wOGTZwqb-1715728862816)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Java开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!