在程序员的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的区别? |
🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀
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.用过的中间件有哪些?
查看提示
答案后续更新...💄💄💄💄💄💄💄💄💄💄💄💄💄💄💄💄