首先,你需要先准备下工作相关的自我介绍,包括以下内容:
1.几年Java开发经验,大概概括下做过什么类型的项目,分别多久经验(如互联网金融,互联网电商,传统后台等)
2.选择1~2个近期关键项目具体介绍;
主要担任什么岗位,工作内容是什么,也可以简单介绍下团队人员组成,你在其中是属于什么角色(如架构搭建,核心代码编写,主要做接口开发等。。。)
项目的技术是什么(请具体到开发环境,框架,开发工具,数据库等),如有一些比较创新的技术可以具体说明
项目成果怎么样(是否上线,用户使用效果如何等)
个人技术总结/自己成就突出(如你们怎么处理技术难题;你自己有什么建设性意见改进项目;项目技术是否有不足,你觉得要是你会怎么去做)
其次,你需要看下您的简历,把你简历里面写的技术点(尤其写了精通,熟悉的)再过一下。
很多时候技术面试官会根据你简历里面写的技术点,有浅到深地提问。
最后,以下是我们给你提供的一些Java基础技术参考题,没有答案,需要你自己去准备哦~祝面试成功,加油!
数据库相关:求平均成绩大于60分的学生名字和他们个人的平均分。
值传递与引用传递的区别;
重载和重写的区别
spring框架的IOC,AOP个人的理解
strutsstruts2springmvc框架底层实现和他们的区别;
hibernate框架的一级缓存和二级缓存
java类加载器是什么,http协议
java的内存机制
java的数据结构
redis基本数据类型
spring事务的传播机制
bean的作用
用过什么设计模式
单例模式多例的区别
什么是工厂模式,工厂模式都有哪几种,什么情况下用
java的反射机制是什么
什么是动态代理
http的7层实现(或者叫3次握手是什么)
防止sql注入用哪几种方式
高并发如何处理
什么是同步锁
什么是乐观锁
什么是悲观锁
sql如何优化;sql的执行方式是什么样的;如何知道sql是怎么执行的?
spring的配置文件
数据交互的加密方式
内存分配
1.说出数据连接池的工作机制是什么?
J2EE服务器启动时会建立一定数量的池连接,并一直维持不少于此数目的池连接。客户端程序
需要连接时,池驱动程序会返回一个未使用的池连接并将其表记为忙。如果当前没有空闲连接,池驱动程序就新建一定数量的连接,新建连接的数量有配置参数决定。当使用的池连接调用完成后,池驱动程序将此连接表记为空闲,其他调用就可以使用这个连接。
实现方式,返回的Connection是原始Connection的代理,代理Connection的close方法不是真正关连接,而是把它代理的Connection对象还回到连接池中。
2.接口和抽象类的区别是什么?
Java提供和支持创建抽象类和接口。它们的实现有共同点,不同点在于:
接口中所有的方法隐含的都是抽象的。而抽象类则可以同时包含抽象和非抽象的方法。
类可以实现很多个接口,但是只能继承一个抽象类
类如果要实现一个接口,它必须要实现接口声明的所有方法。但是,类可以不实现
抽象类声明的所有方法,当然,在这种情况下,类也必须得声明成是抽象的。
抽象类可以在不提供接口方法实现的情况下实现接口。
Java接口中声明的变量默认都是final的。抽象类可以包含非final的变量。
Java接口中的成员函数默认是public的。抽象类的成员函数可以是private,
protected或者是public。
接口是绝对抽象的,不可以被实例化。抽象类也不可以被实例化,但是,如果它包
含main方法的话是可以被调用的。
3.概括的解释下线程的几种可用状态?
线程在执行过程中,可以处于下面几种状态:
就绪(Runnable):线程准备运行,不一定立马就能开始执行。
运行中(Running):进程正在执行线程的代码。
等待中(Waiting):线程处于阻塞的状态,等待外部的处理结束。
睡眠中(Sleeping):线程被强制睡眠。
I/O阻塞(BlockedonI/O):等待I/O操作完成。
同步阻塞(BlockedonSynchronization):等待获取锁。
死亡(Dead):线程完成了执行。
4.HashMap和Hashtable有什么区别?
HashMap和Hashtable都实现了Map接口,因此很多特性非常相似。但是,他们
有以下不同点:
HashMap允许键和值是null,而Hashtable不允许键或者值是null。
Hashtable是同步的,而HashMap不是。因此,HashMap更适合于单线程环境,
而Hashtable适合于多线程环境。
HashMap提供了可供应用迭代的键的集合,因此,HashMap是快速失败的。另一
方面,Hashtable提供了对键的列举(Enumeration)。
一般认为Hashtable是一个遗留的类
5.jsp九大内置对象?
application page request response session exception out config
pageContext
面试问题:
1、开发中Java用了比较多的数据结构有哪些?
2谈谈你对HashMap的理解,底层原理的基本实现,HashMap怎么解决碰撞问题的?
这些数据结构中是线程安全的吗?假如你回答HashMap是线程安全的,接着问你有没有线程安全的map,接下来问了conurren包。
3、对JVM熟不熟悉?简单说说类加载过程,里面执行的哪些操作?问了GC和内存管理,平时在tomect里面有没有进行过相关的配置
4、然后问了http协议,get和post的基本区别,接着tcp/ip协议,三次握手,窗口滑动机制。
5、开发中用了那些数据库?回答mysql,储存引擎有哪些?然后问了我悲观锁和乐观锁问题使用场景、分布式集群实现的原理。
6、然后问了我springmvc和mybatis的工作原理,有没有看过底层源码?
1、Dubbo超时重试;Dubbo超时时间设置
2、如何保障请求执行顺序
3、分布式事物与分布式锁(扣款不要出现负数)
4、分布式session设置
5、执行某操作,前50次成功,第51次失败a全部回滚b前50次提交第51次抛异常,ab场景分别如何设置Spring(传播性)
6、Zookeeper有哪些用
7、JVM内存模型
8、数据库垂直和水平拆分
9、MyBatis如何分页;如何设置缓存;MySQL分
10、熟悉IO么?与NIO的区别,阻塞与非阻塞的区别
11、分布式session一致性
12、分布式接口的幂等性设计「不能重复扣款」
1、最近做的比较熟悉的项目是哪个?画一下项目技术架构图
2、JVM老年代和新生代的比例?
3、YGC和FGC发生的具体场景
4、jstack,jmap,jutil分别的意义?如何线上排查JVM的相关问题?
5、线程池的构造类的方法的5个参数的具体意义?
6、单机上一个线程池正在处理服务如果忽然断电该怎么办?(正在处理和阻塞队列里的请求怎么处理)?
7、使用无界阻塞队列会出现什么问题?
8、接口如何处理重复请求?
9、具体处理方案是什么?
10、如何保证共享变量修改时的原子性?
11、设计一个对外服务的接口实现类,在1,2,3这三个主机(对应不同IP)上实现负载均衡和顺序轮询机制(考虑并发)
1、自我介绍,技术特点
2、兴趣是什么,优势是什么
3、jvm,jre以及jdk三者之间的关系?
4、Dubbo的底层原理,Zookeeper是什么
5、concurrentMap的机制;TreeMap;volidate关键字
6、快速排序;广度优先搜索(队列实现)
7、缓存的雪崩以及穿透的理解?
8、HashMap的key可以重复吗?
9、synchronized和lock的区别?
10.开发一个大型网站你会考虑哪些问题?
感谢评论区的好友支持:
1.String为什么设置为不可变类;
2.深浅拷贝的区别;
3.ThreadLocal的原理;
4.java的引用类型有哪些?他们作用是什么?都是怎么被回收的?
5.GC的算法有哪些?Hotspot是如何实现对象回收的?
6.GC是如何工作的,一个对象被回收的过程是什么?
7.Spring bean的生命周期是怎样的,依赖注入的方式有哪些;
8.怎么理解restful风格;
9.spring mvc的注解有哪些?简单介绍下;
10.类加载机制的过程和机制;
11.数据库事务的隔离级别?Spring是如何实现事务的?
12.静态代码块、代码块、构造函数区别和执行顺序;