最近“采访”了一批朋友,收集了一波java的面试题,初级、中级、高级都有,部分无用内容已被过滤。
传统行业,互联网行业的初中高级都有。
*州软件(java)
1. HashTable和ConcurrentHashMap的区别
2. ArrayList、vector、LinkledList的存储特性
3. 垃圾回收机制
4. 数据连接池的工作机制
5. StringBuilder和StringBuffer的区别
6. 手写一个算法,数组左边是奇数,右边是偶数,要求时间复杂度和空间复杂度分别是O(1)、O(n)
7. 手写一个单例模式,该类可以创建实例吗
*科软(java)
1. Sql主键和外键的作用
2. 什么是事务,事务的属性
3. Sql语句如何优化
4. JSP的内置对象,页面内实现信息的传递有哪些方式
5. JSP怎么获取HTML FORM的信息
6. 数组的类型(分类:一维、二维、三维)
7. 数组和集合的区别
8. Sql去重是哪个函数
9. Sql的模糊查询
**微服(java)
1. 商品出库入库创建至少两张表,查询出库表中的数量
2. 利用工厂模式和单例模式代码完成动物园中的动物动起来
3. 内存中两个数进行交换
信诺**(java)
1. 查询出表中重复的字段(例如:查询出所有名字是张三)
2. 集合中list和set的区别
3. 简历中技术是什么,用来做什么,你用在了哪里
国**安(java)
1. 说说springmvc
2. cookie和session的区别
3. 说说redis和nginx
4. 单例模式作用和设计思路
5. 实现线程,你用哪一种方法实现
6. spring springmvc mybatis的理解 使用过什么注解
7. linux查看进程的命令
联**泰(java)
1. servlet的生命周期
2. ArrayList和LinkedList的区别
3. 对spring的理解 springMVC的流程
4. 什么是事务控制 事务的特征
5. 说一说数据库优化
广州*迪(java)
1. 线程安全的关键字,sleep方法和wait方法的区别,wait方法用什么唤醒
2. 说一说你知道的linux的一些命令
3. 如何避免SQL注入
4. windows和Linux的默认编码
5. 乱码出现的情况
中*互联(java)
1. redis nginx如何实现高可用
2. 注解都使用过哪些
3. 说一说spring事务
**传媒(java)
1. springMVC的执行流程
2. 权限管理需要那几张表
3. 配置事务的文件是哪个文件
中**财(java)
1. Servlet的生命周期
2. Struts2的执行流程
3. 左外连接和右外连接的区别
4. 左外连接中where和and的区别
5. 谈谈你对springboot的理解
6. hashmap和hashtable的区别
7. 谈谈你对nio和io的理解
8. nignx实现负载均衡和反向代理
中科*金融(java)
1. 项目中前端与后端交互,后端怎样获取前端的数据
2. arrayList和hashMap的区别
3. 增删改查的基本语法
4. 一个表中有名字,性别,成绩。查询出成绩前五名的男生
*凰网(java)
1. 数组和链表角度回答ArrayList和linkList
2. 说一说集合
3. 有没有实现过多线程,如何开发
4. 说一下eclipse和idea
5. 对数据结构的了解
6. 对大数据的了解(简历有就问到)
*60(java)
1. Log中选出点击率最高的接口
2. linux 查看Nginx 的进程号并杀死进程
3. linux 查询目录下的class后缀的文件,并删除
4. 获取显示进程的pid
5. 手写一个快排,和冒泡排序有什么区别
6. 实现线程的方式,run跟start的区别是什么
7. 实例测试,语音发消息
好*来(java)
1. Spring的两大特性
2. hashMap和hashTable的区别
3. 懒汉式和饿汉式的使用场景
4. 输入一个url到返回,发生了什么
5. 现在的jdk版本,任选两个jdk版本的区别
6. 说一个自己的优点和缺点
魔**朵(java)
1. 用多线程统计1到1百万之间有多少素数,并输出素数(假设最多开启四个线程)
2. 用java实现一个订单记号器,需要考虑可读,并发,不重复等。
3. 有数组{8,1,13,15,81,23,45},使用并归算法排序并输出结果
4. ArrayList和linkList ArrayList如何实现扩容
5. hashMap如何扩容,存储原理 存储元素是否排在原来元素的后面
6. java.util 下的集合类的线程安全的类 currentMap和hashtable优先使用哪个
7. redis 数据类型和使用场景,redis基本类型和java基本类型比较
iread(java)
1. 常用索引 sql优化
2. Redis的数据类型(重点,如果简历写Redis,必问) pdm和哨兵模式
3. mybatis #和$符号的区别
4. string和stringBuffer,stringBuilder的区别
*大(java)
1. hashMap底层的实现原理
2. string有哪些常用方法
3. 多线程暴露内存的关键字,volatile关键字与内存可见性
4. 线程池的作用
5. SpringMvc常用的注解,证明开发你很熟悉
千*马(java)
1. Jdk1.7和jdk1.8的区别 jdk1.8的新api
2. 怎么理解String不可变
3. String创建的不同方式
4. ==和equals的区别
5. 线程之间是否相互影响
6. 100个线程执行任务,执行后怎么保证程序继续运行
7. Redis中的String key怎么设置过期时间
8. 说一说set和zset
艾*数据(java)
1. Java的三大特性
2. 是否支持多继承
3. 线程如何创建,有什么区别?
4. Java集合类框架的基本接口有哪些?
5. List实现循环遍历
6. Hashmap如何扩容
7. 连接数据库是否使用第三方框架
8. 数据库事务在处理千万级别数据的作用
9. 访问页面的返回的状态码---100,200,3xx,400,401,403,404,500
10. Httpclient协议,post/get请求(get、put、post、delete含义与区别)
艺*网(java)
1. 数组和链表的区别
2. spring的功能
3. lucene和ElasticSearch有什么区别
4. 说一说倒排索引
5. Nginx的配置
6. Mycat用来做什么
7. rabbitMQ跟kafka的区别
8. linux系统的由来
9. 文件编码了解吗
10. 进程之间怎么通信
11. 进程之间怎么共享变量
12. 说一说反射机制
13. Mysql索引数据结构
14. Nginx搭建https步骤
*东(java)
1. springmvc和spring-boot区别
2. @Autowired的实现原理
3. Bean的默认作用范围是什么?其他的作用范围?
4. 索引是什么概念有什么作用?MySQL里主要有哪些索引结构?哈希索引和B+树索引比较?
5. Java线程池的原理?线程池有哪些?线程池工厂有哪些线程池类型,及其线程池参数是什么?
6. hashmap原理,处理哈希冲突用的哪种方法?
7. 还知道什么处理哈希冲突的方法?
8. Java怎么进行垃圾回收的?什么对象会进老年代?垃圾回收算法有哪些?为什么新生代使用复制算法?
9. HashMap的时间复杂度?HashMap中Hash冲突是怎么解决的?链表的上一级结构是什么?Java8中的HashMap有什么变化?红黑树需要比较大小才能进行插入,是依据什么进行比较的?其他Hash冲突解决方式?
10. hash和B+树的区别?分别应用于什么场景?哪个比较好?
11. 项目里有个数据安全的,aes和md5的区别?详细点
12. 为什么MyISAM查询性能好
13. SQL慢查询的常见优化步骤?
14. 说下乐观锁,悲观锁(select for update),并写出sql实现
15. TCP协议的三次握手和四次挥手过程?
16. 用到过哪些rpc框架
17. 数据库连接池怎么实现
18. Java web过滤器的生命周期
19. ConcurrentHashMap 在Java7和Java8中的区别?为什么Java8并发效率更好?什么情况下用HashMap,什么情况用ConcurrentHashMap?
20. 加锁有什么机制?
21. ThreadLocal?应用场景?
22. 数据库水平切分,垂直切分的设计思路和切分顺序
23. Redis如何解决key冲突
24. soa和微服务的区别?
25. 单机系统演变为分布式系统,会涉及到哪些技术的调整?请从前面负载到后端详细描述。
26. 设计一个秒杀系统?
*团(java)
1. String Stringbuffer StringBuilder之间的区别?
2. 什么是事务?数据库的事务?
3. Hashtable Hashmap的扩容机制?
4. Cookie和Session的区别?session如何创建?
5. 10万条选出10条数据并排序?
6. 什么是Java内存泄漏
7. 如何把List里的对象按照age(属性有age)的大小顺序排序?
8. 订单如何防止重复提交?(连点两次)
9. Hashmap底层存储原理?
10. MR分成好多进行,遍历出最大的,再进行比较。如何实现?
广州新华**公司(java)
1. Spring原理
2. 描述一个项目
3. 简单解释一下Elasticsearch
4. Redis的数据类型和操作使用的客户端
5. 操作nginx修改的文件
国**信(java)
1. 面向对象的基本特征,面向对象编程思想是什么?
2. 描述事务概念,解释事务的四大特性
3. 如何理解spring
4. Linux常用命令
5. 集合,list和set的关系
6. Redis的存储过程
7. 把简历当做一个对象,进行描述
北京*中(java)
1. 描述项目
2. 是否会使用spring cloud
炎**星(java)
1. 培训大纲
2. 大数据学了哪些东西,进入hive的命令
3. 数据库用的啥?左联命令
4. Redis布的集群还是单点
5. Java吸引你的地方是什么?通过什么途径学习
6. 上网查资料解决过什么问题
**软件(java)
1. 项目中遇到的问题
2. AJAX原理
3. Redis的五种类型,常用哪个
4. Linux常用命令
5. Hashmap和hashtable区别
6. Spring中常用的注解
7. 事务四大特性
8. 事务应用场景
9. 重写和重载
恒**源(java)
1. Arraylist和lingkedlist有什么区别,应用在哪方面,在linkedlist中插入数据是怎么插入的
2. String、stringbuffer、stringbuilder的区别
3. Spring框架是什么有什么作用
4. Spring中bean默认是单例还是多例?
5. SpringMVC默认是单例还是多例
6. Mysql,hive和hbase区别以及应用在哪方面
7. Redis是什么,如何应用的
8. Redis用的单机还是集群,出现断电宕机了怎么处理
9. Join和union的区别和具体应用
10. Phoenix和hbase数据库之间如何连接
京*到家(java)
判断题(说明原因)
12. 使用final关键字修饰一个变量时,这个引用对象的属性就不能改变了。
13. 可以从一个static方法内部发出对非static方法的调用。
14. 两个不同对象的hashcode有可能相同。
15. 启动一个线程的方法是run() 。
16. Redis为了提高效率,充分发挥cpu多核的特性,在命令执行上,采用了多线程的方式来处理