面试题泛谈
在程序员的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关系,接口则更多的体现一种行为约束,一种规则,一旦实现了这个接口,就要给出这个接口中所以方法的具体实现,也就是实现类对于接口中所有的方法都是有意义是的。
2.你知道反射机制和动态代理吗?#
动态代理是一种方便运行时动态构建代理、动态处理代理方法调用的机制,很多场景都是利用类似机制做到的。比如用来包装RPC调用、面向切面的编程(AOP)。
实现动态代理的方式很多,比如JDK自身提供的动态代理,就是主要利用了反射机制。还有其他的实现方式,比如利用传说中更高性能的字节码操作机制,类似ASM、cglib(基于ASM)、Javassist等。
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.你常去的技术网站是什么?工作中用过什么辅助软件呢?#
查看提示
答案后续更新...
作者:Lorem Moon
出处:https://www.cnblogs.com/hello-cnblogs/p/16398861.html
版权:本作品采用「 CC BY-NC-SA 4.0 」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!