我的面试宝典:一线互联网大厂Java核心面试题库
以下是我个人的一些做法,希望可以给各位提供一些帮助:
整理了很长一段时间,拿来复习面试刷题非常合适,其中包括了Java基础、异常、集合、并发编程、JVM、Spring全家桶、MyBatis、Redis、数据库、中间件MQ、Dubbo、Linux、Tomcat、ZooKeeper、Netty等等,且还会持续的更新…可star一下!
283页的Java进阶核心pdf文档
Java部分:Java基础,集合,并发,多线程,JVM,设计模式
数据结构算法:Java算法,数据结构
开源框架部分:Spring,MyBatis,MVC,netty,tomcat
分布式部分:架构设计,Redis缓存,Zookeeper,kafka,RabbitMQ,负载均衡等
微服务部分:SpringBoot,SpringCloud,Dubbo,Docker
还有源码相关的阅读学习
A.ArithmeticException
B.NullPointException
C.IOException
D.ArrayIndexOutOfBoundsException
答案:
D
解析:
定义的数组长度为10,角标即为0-9,访问数组角标10会出现数组角标越界异常
A.在Java中只允许单一继承
B.在Java中一个类只能实现一个接口
C.在Java中一个类不能同时继承一个类和实现一个接口
D.Java的单一继承使代码不可靠
答案:
A
解析:
略
A…java
B…class
C…exe
D…jar
答案:
A
解析:
略
4.Java 语言用以下哪个类来把基本类型数据封装为对象()
A.包装类
B.Class
C.Math
D.Object
答案:
A
解析:
略
public class Test {
public static int a = 1;
public static void main(String[] args) {
int a = 10;
a++; Test.a++;
Test t=new Test();
System.out.println(“a=” + a + " t.a=" + t.a);
}
}
A.a=10 t.a=3
B.a=11 t.a=2
C.a=12 t.a=1
D.a=11 t.a=1
答案:
B
解析:
值为1的a属于类变量也叫作成员变量,值为10的a是局部变量 首先a++时就近原则,用局部变量10来加,Text.a直接用类名调用成员变量的情况,只能是static 修饰的成员变量1来加,然后又实例化了对象,在输出中第一个a= 用就近原则输出11,第二个t.a 对象只能调用类变量输出2
A.Java默认提供的三个ClassLoader是BootStrap ClassLoader,Extension ClassLoader,App ClassLoader
B.ClassLoader使用的是双亲委托模型来搜索类的
C.JVM在判定两个class是否相同时,只用判断类名相同即可,和类加载器无关
D.ClassLoader就是用来动态加载class文件到内存当中用的
答案:
C
解析:
JVM在判定两个class是否相同时,不仅要判断两个类名是否相同,而且要判断是否由同一个类加载器实例加载的。
7.以下那个数据结构是适用于"数据必须以相反的顺序存储然后检索" ? ()
A.Stack
B.Queue
C.List
D.Link List
答案:
A
解析:
栈-先进后出(比喻:坐电梯) 队列-先进先出(水管) list-链表(怎么存就怎么取)
8. 在 main() 方法中给出的整型数组,如果将其写到一个文件中,需要( )。
A.System.out.print (buffer[i]);
B.DataOutputStream dout = new DataOutputStream(new FileOutputStream(this.filename));
C.DataInputStream din = new DataInputStream(new FileInputStream(this.filename));。
D.System.in.read(buffer)。
答案:
B
解析:
input和output指的是对于程序而言。input是从文件读取进来,output是输出到文件。
9.Please write the output result 。
public class Test
{
public static void changeStr(String str)
{
str = “welcome”;
}
public static void main(String[] args)
{
String str = “1234”;
changeStr(str);
System.out.println(str);
}
}
A.1234
B.welcome
C.空
D.不确定
答案:
A
解析:
string的值是不可改变的,所有试图更改String的行为都会创建一个新的String.
10.关于String,StringBuilder以及StringBuffer,描述错误的是()
A.对String对象的任何改变都不影响到原对象,相关的任何change操作都会生成新的对象
B.StringBuffer是线程安全
C.StringBuilder是线程安全
D.可以修改StringBuilder和StringBuffer的内容
答案:
C
解析:
A,java中的字符串存储在字符串常量区,不会改变,发生改变是会新创建一个对象
B,StringBuffer是线程安全的StringBuilder
C,StringBuilder跟StringBuffer功能相同,区别是StringBuilder不是线程安全的
D,StringBuilder和StringBuffer底层都是以字符数组存放的,可以修改内容
A.survivor区
B.常量池
C.eden区
D.old区
答案:
B
解析:
jvm堆分为:新生代(一般是一个Eden区,两个Survivor区),老年代(old区)。
常量池属于 PermGen(方法区)
class A {
public A() {
System.out.println(“class A”);
}
{
System.out.println(“I’m A class”); }
static {
System.out.println(“class A static”); }
}
public class B extends A {
public B() {
System.out.println(“class B”);
}
{
System.out.println(“I’m B class”); }
static {
System.out.println(“class B static”); }
public static
void main(String[] args) {
new B();
}
A.
class A static
class B static I’m A class
class A I’m B class
class B
B.
class A static I’m A class
class A class B static
I’m B class class B
C.
class A static class B static
class A I’m A class class B
I’m B class
D.
class A static class A I’m A
class class B static
class B I’m B class
答案:
A
解析:
①父类静态变量和静态代码块(按照声明顺序);
②子类静态变量和静态代码块(按照声明顺序);
③父类成员变量和代码块(按照声明顺序);
④父类构造器;
⑤子类成员变量和代码块(按照声明顺序);
⑥子类构造器。
A.形式参数可被字段修饰符修饰
B.形式参数不可以是对象
C.形式参数为方法被调用时真正被传递的参数
D.形式参数可被视为local variable
总结
在清楚了各个大厂的面试重点之后,就能很好的提高你刷题以及面试准备的效率,接下来小编也为大家准备了最新的互联网大厂资料。
A.形式参数可被字段修饰符修饰
B.形式参数不可以是对象
C.形式参数为方法被调用时真正被传递的参数
D.形式参数可被视为local variable
总结
在清楚了各个大厂的面试重点之后,就能很好的提高你刷题以及面试准备的效率,接下来小编也为大家准备了最新的互联网大厂资料。
[外链图片转存中…(img-v3M9A8gL-1714915095050)]
[外链图片转存中…(img-7LX5PqGb-1714915095051)]
[外链图片转存中…(img-yQl9dcil-1714915095051)]
[外链图片转存中…(img-2unm5UVz-1714915095052)]