全部评论
java面试基本题型 多线程,io,集合,数据库,算法,网络,虚拟机,框架,设计模式 多线程基本问题 线程进程区别,线程间怎么通信,进程间怎么通信, 线程状态,以及转变,wait,sleep区别,Object有什么方法 实现线程的四种方式? 继承Thread,实现Runnable接口,线程池(线程池参数必须知道corePoolSize,maximumPoolSize,任务队列,等待时间这),Callable接口(Future设计模式理解),造成死锁的四个必要条件,如何实现同步,回答Lock,Synchronized,原子类,CAS机制,volatile,分析区别优势,最好可以自己实现一个锁,通过分析AQS(Lock顶层抽象对列同步器), 基本的生产者,消费者问题解决。 集合 说出集合架构,分析arraylist,hashset(实现原理怎么保证元素有序(TreeSet底层红黑树)),linkedlist,hashmap,hashset,concurrenthashmap,linkedhashmap实现原理,比如hashmap,加载因子,怎么扩容,1.8为什么链表长度为8就要进行调整结构为红黑树(分析红黑树优点最好从二叉树不平衡,进而回答avl平衡树但是平衡要求高需要旋转次数多,红黑树引出(时间负责度log(n))),hashcode,equals区别具体体现在哪里,hashmap怎么解决冲突,是否线程安全等等必须弄清楚。每个数据结构都弄清楚。 网络 基本的五层,四层,三层,七层模型必须知道 http,https区别 ,http状态码,www.baidu.com访问这个网站的具体流程。 tcp,udp 三次握手,四次挥手。 数据库 left,right,inner join区别 如何实现一对多设计,多对多设计 数据库存储引擎 myisam,innodb分析区别 数据库怎么优化 为甚么要建立索引,索引什么情况会失效。基本的索引hash索引,b树索引 分析优缺点 ,为甚么用B+树索引,分析与B树的区别。 io io 和 nio区别 nio怎么使用 算法 基本的排序时间复杂度分析 快排(n(log(n)))要求可以写出递归分析以及怎么优化快速排序分析为什么可以?什么时候时间复杂度为N*N,分析为什么(树退化),各种排序时间复杂度基本写法,大数据排序,topK问题 虚拟机 堆栈方法区 内存溢出是指没有内存去分配 内存泄漏是指分配对象 不适用依然占用内存 哪些会内存溢出 堆 栈 方法区 本地方法栈 分析 堆溢出 不断new对象 分析查看gcroot链 用eclips -Xmx -Xms 虚拟机栈 本地方法栈溢出 如果线程请求栈的深度大于虚拟机允许的最大深度 -Xss减小栈大小 虚拟机栈容量小或者栈帧太大 还有递归太深 方法区和运行时常量池溢出 -XX:PermSize 和 -XX : MaxPermSize限制方法区大小 本机直接内存溢出-XX:MaxDirectMemorySize指定,不指定默认堆得最大值-Xms unsafe,allocateMenory(); 垃圾回收算法 引用 强软弱虚引用分析 强引用 比如Object o=new Object(); 只要强引用还存在,垃圾回收器永远不会回收被引用的对象 软引用 有用但是并非必要的对象 对于软引用关联的对象,在系统将要发生内存之前,将会把这些对象列进入回收范围内,如果这次回收依然失败,那么引起内存溢出异常 弱引用 描述并非必须的对象,但是强度比软引用弱,被弱引用关联的对象只能生存到下一次垃圾回收发生之前,当垃圾回收器工作,无论当前内存是否够都会回收之被弱引用引用的对象用WweakReference 虚引用 PhantomReference 随时有可能被回收 垃圾回收方法 标记清除 标记整理 复制算法 垃圾收集器 Seial 单线程处理 ParNew 多线程处理 但是都要停止所有用户线 程 Parallel Scavenge 收集器 快速 因为牺牲了吞吐量和新生代空间 导致垃圾收集频繁 CMS(Concurrent Mark Sweep)获取最短回收停顿时间 基于标记清除 基本算法 初始标记(Stop the word) 并发标记 重新标记(Stop the word) 并发清除 缺点会产生内存碎片 参数-UseCmsCompactAtFullCollection 还有-XX:CMSFullGcrootBeforeCompaction 默认0 每次进入full gc 进行碎片整理 1.7 G1(Garbage-First)特点 并行与并发 分代收集 空间整合 可预测停顿 基本工具:jinfo java配置信息工具 jmap java内存映像工具 linux用Kill -3 实现 -dump -heap Jstack java堆栈跟踪工具 Jconsole java性能监视与管理控制台 可达性分析 Gcroot 全局性的引用(常量或者类静态属性) 执行上下文(栈帧中的本地变表) 类加载机制分析(双亲加载模型)分析为什么这么设计 框架 SpringMVC流程,ioc,aop怎么自己实现,mybatis流程,怎么防止sql注入。 设计模式 最好全部会,分析在jdk源码的使用,比如装饰者设计模式 (io经常使用),适配器模式 (OutputStreamWriter)
送花
回复
分享
把这些研究会了,在做个项目,互联网公司基本ok
送花
回复
分享
滴滴
官网直投
分布式和中间件也要会点吧
送花
回复
分享
是不是还得刷算法题才行
送花
回复
分享
相关推荐
点赞 评论 收藏
转发
投递美团等公司10个岗位 >
点赞 评论 收藏
转发