1.java数据类型
byte、short、int、long、float、double、char、boolean
8位:Byte(字节型) 16位:short(短整型)、char(字符型) 32位:int(整型)、float(单精度型/浮点型) 64位:long(长整型)、double(双精度型) 最后一个:boolean(布尔类型
2.谈一谈 “==” 跟 “equals” 的区别
== 是值比较,对于基本数据类型来说 == 就是比较值的大小,对于对象来说,就是比较对象的引用地址是否一致
equals 是继承Object类,对于基本数据类型没有办法比较,对于对象来说,如果没有重写equals方法,则是比较两个对象的引用地址,比如String类就是重写了equals方法,所以是比较值
3.jvm 的性能调优(三年以上的工作经历问的比较多)最好多掌握
4.arrayList LinkedList Vector 的区别 底层问的多
Arraylist是采用数组方式存储数据,是线程不安全的,更适合遍历查询,增删改的效率相对低
ArrayList默认最多存储10个元素当增加元素时,会先检查容量够不够用
2.1.若容量够用,直接存储到对象数组中
2.2.若容量不够用,则增加当前容量的一半,然后进行存储结论
插入元素的时候可能扩容,删除元素时不会缩小容量
LinkedList是使用双向链表实现存储,是线程不安全的,更适合增删改,遍历效率相对低
Vector是采用数组方式存储数据,是线程安全的,和arrayList基本相同,只是线程安全的
5.红叉树数据结构考试题出的多
6.hashset 跟 treeset
treeset 两种实现排序的底层方法
Map 问的是最多的
HashMap HashTable 区别 HashMap 的底层实现原理
ConcurrentHashMap 的实现原理
HashMap 跟 ConcurrentHashMap 底层问的偏多
TreeMap LinkedHashMap HashMap 的区别
java 中的线程问题
synchronized 跟 volatile 区别
实现创建新线程的方法 3种 有返回值实现方式好处
面试官喜欢问你 有没有用过线程池,有没有设计过线程池方面的代码
三年以上工作经历 常见的设计模式(多说设计模式种类) 最好能说出我们的spring、 tomcat中底层的一些实现那些功能 用到哪几种设计模式(bean 的注入跟管理)
spring中的两大核心 依赖注入aop 跟 控制反转 ioc 需要仔细琢磨透
springmvc 跟 struts2.0 区别
mybatis 跟 hibernate、 jdbc 的区别 优缺点
springmvc 的流程 一个请求request请求, 经历了那些 ; 最好能画出 springmvc的流程图
我们都知道spring 是单利 如果实现多利; 怎么做?
spring中问的东西 对你的面试效果权重很高;
applicationContext通常实现什么
bean工厂
spring 那些注解 需要掌握
spring事务管理机制
spring底层原理 需要掌握;3年以上
动态代理 跟 继承jdk 两种实现 最好能写其中一种动态代理的代码。
java IO 跟NIO的区别 我面试过程没有遇到过, 可以相应的了解
java8的新特性 需要掌握
mysql的存储过程
sql 语句
分页问的特别多; mysql orcle也要知道
sql底层些东西 最好了解
一般面试官会问你 简单的介绍下 redis
对redis的很熟悉面试官 基本会问这些
redis的存储策略
redis的集中数据类型 (需要很熟)
redis的容灾机制
redis的有个map 数据类型 key 是否可以是任意类型 还有它的长度有无限制
redis在业务上 可以实现那些功能 不单单是 作为非关系型数据库的作用 还有其他作用;可以响应 的去了解
redis的基本操作命令 设置过期时间 expir等
redis 问的频率很高; 需要多了解
电商方面问题(由于我写了电商项目)
dubbo+zookeeper(zookeeper最少三台因为它有投票机制) 面试官当时问我这个电商项目用到几台
zookeeper ;都是奇数;最少3台
dubbo + zookeeper的底层能掌握多少; 就看你自己了
单点登入
session共享
js跨域问题
静态缓存的问题; 你们项目是怎么很好的解决静态资源缓存问题
solr全文检索问到过一次
两点一线 得需要知道是什么
cookie 跟 session的区别
cookie 的值 在网页中的请求头 请求体 还是 在哪儿
nginx 问的不多 我们了解足够应付过去(nginx这个东西实在是太优秀了)
运维方面上的就是 linux一些操作命令 设置权限等