Post List Widget

header ads

面试题泛谈






在程序员的1-3年阶段,我们需要不断努力的学习并积累知识点,那么每个阶段都需要具备什么条件呢?请看下面:

🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥

10k面试题

1.抽象类和接口的关系和区别,以及你在实际开发过程中是怎样使用的?

概念:抽象类不能创建实例,它只能作为父类被继承。抽象类是从多个具体类中抽象出来的父类,它具有更高层次的抽象。从多个具有相同特征的类中抽象出一个抽象类,以这个抽象类作为其子类的模板,从而避免了子类的随意性。

特点:

抽象类无法被实例化(因为它不是具体的类,但是有构造方法) 抽象类有构造方法,是给子类创建对象的 抽象类中可以定义抽象方法(在方法的修饰列表中添加abstract关键字,并且以“;”结束,不能带有“{}”)public abstract void m1(); 抽象类中不一定有抽象方法,抽象方法一定在抽象类中 一个非抽象类继承抽象类,必须将抽象类中的抽象方法覆盖,实现,重写 抽象类的成员特点:1)成员变量:既可以是变量也可以是常量。2)构造方法:有构造方法,用于子类访问父类数据的初始化。3)成员方法:抽象类中方法既可以是抽象的,也可以是非抽象方法 在父类中,非抽象方法:子类继承,提高代码的复用性;抽象方法:强制要求子类做的事情 抽象类中注意的问题:一个类如果没有抽象方法,可以是抽象类,即抽象类中可以完全没有抽象方法。这样类的主要目的就是不让创建该类对象。 abstract关键字不可以与哪些关键字使用。 1)private冲突:private修饰的成员不能被继承,从而不可以被子类重写,而abstract修饰的是要求被重写的。

2)final冲突:final修饰的成员是最终成员,不能被重写,所以冲突,static无意义;

3)static冲突;static修饰成员用类名可以直接访问,但是abstract修饰成员没有方法体,所以访问没有方法体的成员无意义。

接口

概念:接口的初步理解是一个特殊的抽象类,当抽象类中全部都是抽象方法时,可以通过接口的方式来体现。

特点:

1)接口不能被实例化

2)接口只能包含方法的声明

3)接口的成员方法包括方法,属性,索引器,事件

4)接口中不能包含常量,字段(域),构造函数,析构函数,静态成员

抽象类和接口的区别:

抽象类可以有构造方法,接口中不能有构造方法。 抽象类中可以有普通成员变量,接口中没有普通成员变量 抽象类中可以包含静态方法,接口中不能包含静态方法 一个类可以实现多个接口,但只能继承一个抽象类 接口可以被多重实现,抽象类只能被单一继承 如果抽象类实现接口,则可以把接口中方法映射到抽象类中作为抽象方法而不必实现,而在抽象类的子类中实现接口中方法。 接口和抽象类的相同点:

都可以被继承 都不能被实例化 都可以包含方法声明 派生类必须实现未实现的方法 接口带来的最大好处就是避免了多继承带来的复杂性和低效性,并且同时可以提供多重继承的好处。接口和抽象类都可以提现多态性,但是抽象类对事物进行抽象,更多的是为了继承,为了扩展,为了实现代码的重用,子类和父类之间提现的是is-a关系,接口则更多的体现一种行为约束,一种规则,一旦实现了这个接口,就要给出这个接口中所以方法的具体实现,也就是实现类对于接口中所有的方法都是有意义是的。 </details>

2.你知道反射机制和动态代理吗?

动态代理是一种方便运行时动态构建代理、动态处理代理方法调用的机制,很多场景都是利用类似机制做到的。比如用来包装RPC调用、面向切面的编程(AOP)。

实现动态代理的方式很多,比如JDK自身提供的动态代理,就是主要利用了反射机制。还有其他的实现方式,比如利用传说中更高性能的字节码操作机制,类似ASM、cglib(基于ASM)、Javassist等。 </details>

3.一个线程连续两次调用start方法会发生什么?简单谈谈线程的几种状态?

4.springmvc实现原理?

流程说明: (1)客户端(浏览器)发送请求,直接请求到DispatcherServlet。 (2)DispatcherServlet根据请求信息调用HandlerMapping,解析请求对应的Handler。 (3)解析到对应的Handler后,开始由HandlerAdapter适配器处理。 (4)HandlerAdapter会根据Handler来调用真正的处理器开处理请求,并处理相应的业务逻辑。 (5)处理器处理完业务后,会返回一个ModelAndView对象,Model是返回的数据对象,View是个逻辑上的View。 (6)ViewResolver会根据逻辑View查找实际的View。 (7)DispaterServlet把返回的Model传给View。 (8)通过View返回给请求者(浏览器)

5.mybatis中#$的区别?

6.你知道设计模式吗?在实际运用中你会怎样去运用它?比如我这里有个策划打折活动,比如VIP,普通用户,顾客分别打不一样的折扣,你会用什么设计模式?

7.你知道索引失效吗?举例看看?

8.多态在实际项目中的使用?

9.你知道Spring IOC 吗?Spring 是怎样创建对象的?

查看提示

10.你知道缓存机制不?

11.你的项目中有用到数据库分库分片吗?数据库分库分片规则?

12.在实际中你会怎样对sql语句进行优化?

13.常见的数据结构有哪些?在Java中是怎样使用它们的?

14.JVM原理你知道吗?有没有自己调优过?

15.看你的项目里用到了SpringBoot,谈谈你对SpringBoot的理解?

16.你项目里用到了 rocket MQ,那你知道rabbit MQ、rocket MQ和kafka它们之间的区别吗?

17.redis常用场景有哪些?你的项目中主要是使用redis干嘛的?

18.有自己部署过redis吗?redis是如何实现高可用的?

查看提示

19.了解mysql的读写分离吗?是如何实现高可用的?

20.Exception和Error的关系和区别?

查看提示

21.基本数据类型转换为String时你有几种方法,分别是什么?

查看提示

22.如何利用JDK不依赖外部工具,实现一个简单的缓存机制?请简述用到的技术和思路?

查看提示

23.你项目中是怎样用到事物的,分布式锁呢?

查看提示

24.Zookeeper有哪些运用场景?

查看提示

String 可能会问到的

// 1、== 和 equals的区别?
// 建议从基本数据类型和引用数据类型以及Object和String的equals来大致说
// 2、下面代码的运行结果是?
String str1 = "Hello World";
String str2 = "Hello" + " World"; // 两个常量池的字面拼接值还是在常量池中
System.out.println(str1 == str2); // true


// 3、下面代码运行的结果是?
String str1 = "Hello World"; // 常量池
String str2 = "Hello";
str2 += " World"; // 操作了str2 是一个变量,变量是存在于 堆中的
System.out.println(str1 == str2); // false


// 4、下面代码运行的结果是?
String str1 = "Hello World";
String str2 = " World";
String str3 = "Hello" + str2;
System.out.println(str1 == str3); // false

// 5、下面代码的运行结果是?
String str1 = "Hello World";
final String str2 = " World";
String str3 = "Hello" + str2;
System.out.println(str1 == str3); // true

// 6、下面代码的运行结果是?
String str1 = "Hello World";
final String str2 = new String(" World"); //虽然用final修饰了,但是因为是采用的构造函数来实例化的,所以本身就存在于堆内存中,本身就是一个变量了
String str3 = "Hello" + str2;
System.out.println(str1 == str3); // false

// 7、下面代码的运行结果是?
String str1 = "Hello World";
String str2 = "Hello";
String str3 = " World";
String str4 = str2 + str3;
System.out.println(str4 == str1); // false
System.out.println(str4.intern() == str1); // true intern相当于是从常量池中查找是否有该值,若有则返回


🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀

15k面试题

1.IO/NIO的区别,为什么要用NIO,使用IO中的Buffered也能实现NIO的面向缓冲,什么情况下用NIO?

查看提示

2.熟悉的排序算法有哪些?快速排序算法的实现原理?

查看提示

3.HashMap与ConcurrentHashMap有什么区别?HashMap的存储结构?

查看提示

4.vector、ArrayList和LinkedList区别及存储性能?

查看提示

5.线程实现的几种方式,有什么区别,一般用哪个,为什么?

查看提示

6.多线程中线程池怎么样使用及其实现原理?

查看提示

7.volatile关键字的作用是什麽?

查看提示

8.synchronized关键字的作用,使用该关键字后保证同步了,同步代码块与同步方法有什么区别?

查看提示

9.一个线程可以多次start吗?会报错吗?

查看提示

10.Spring AOP IOC实现原理?

查看提示

11.Spring中的事物的传播方式怎样实现的?

查看提示

12.Spring中事物实现的原理?

查看提示

13.为什么要使用数据库索引,数据库索引有哪些?索引的底层原理是什么?

查看提示

14.sql查询缓慢怎么处理?sql优化方案有哪些?explain用过吗?

查看提示

15.数据库中的锁有几种?比如行锁,表锁等了解吗?

查看提示

16.数据库为什么要使用事物?事物的原理是什么?

查看提示

17.数据库分库分表的方法,垂直分还是水平分,根据哪些来分?

查看提示

18.count(1) count(5) count(*)有什么区别,100万条数据的效率如何?

查看提示

19.solr搜索实现原理,使用的排序算法是什么?怎样实现快速查询?

查看提示

20.3次握手的原理是什么?

查看提示

21.动态代理实现原理是什么和动态代理使用的方法、类有哪些?

查看提示

22.redis的数据结构有哪些?

查看提示

23.虚拟机了解多少?

查看提示

24.Spring默认是单例还是多例的?

查看提示

25.常用的队列有哪些?分别是什么情况下使用?

查看提示

26.你知道的线程安全的类有哪些,方法有哪些?

查看提示

27.数据库的乐观锁和悲观锁的原理及使用?

查看提示

28.对GC了解多少?

查看提示

29.堆和栈的区别,堆中存放什么,栈中存放什么?

查看提示

30.用过的中间件有哪些?

查看提示


💄💄💄💄💄💄💄💄💄💄💄💄💄💄💄💄

20k面试题

1.你认为的“大规模高并发访问的Web”有哪些呢?请举例2个知名的网站?

查看提示

2.你开发过的核心功能有哪些呢?

查看提示

3.如果让你对外开发一个接口,你会考虑哪些因素?

查看提示

4.设计数据库的时候会考虑哪些因素,怎样去建表?

5.说说负载均衡,缓存,文件数据库技术的心得和要点?

查看提示

6.性能评估机制有哪些方面呢,你有这方面的经验和心得吗?

查看提示

7.精通UML以及熟练使用一种或多种建模工具

查看提示

8.你常去的技术网站是什么?工作中用过什么辅助软件呢?

查看提示



Post a Comment

0 Comments