Java必须知道的知识点
- junit用法,before,beforeClass,after, afterClass的执行顺序
 - 分布式锁
 - nginx的请求转发算法,如何配置根据权重转发
 - 用hashmap实现redis有什么问题(死锁,死循环,可用ConcurrentH ashmap)
 - 线程的状态 线程的阻塞的方式
 - sleep和wait的区别
 - hashmap的底层实现
 - 一万个人抢100个红包,如何实现(不用队列),如何保证2个人不能抢到同一个红包,可用分布式锁
 - java内存模型,垃圾回收机制,不可达算法
 - 两个Integer的引用对象传给一个swap方法在方法内部交换引用,返回后,两个引用的值是否会发现变化
 - aop的底层实现,动态代理是如何动态,假如有100个对象,如何动态的为这100个对象代理
 - 是否用过maven install。 maven test。git(make install是安装本地jar包)
 - tomcat的各种配置,如何配置docBase
 - spring的bean配置的几种方式
 - web.xml的配置
 - spring的监听器。
 - zookeeper的实现机制,有缓存,如何存储注册服务的
 - IO会阻塞吗?readLine是不是阻塞的
 - 用过spring的线程池还是java的线程池?
 - 字符串的格式化方法 (20,21这两个问题问的太低级了)
 - 时间的格式化方法
 - 定时器用什么做的
 - 线程如何退出结束
 - java有哪些锁?乐观锁 悲观锁 synchronized 可重入锁 读写锁,用过r eentrantlock吗?reentrantlock与synmchronized的区别
 - ThreadLocal的使用场景
 - java的内存模型,垃圾回收机制
 - 为什么线程执行要调用start而不是直接run(直接run,跟普通方法没什么区别,先调start,run才会作为一个线程方法运行)
 - qmq消息的实现机制(qmq是去哪儿网自己封装的消息队列)
 - 遍历hashmap的三种方式
 - jvm的一些命令
 - memcache和redis的区别
 - mysql的行级锁加在哪个位置
 - ConcurrentHashmap的锁是如何加的?是不是分段越多越好
 - myisam和innodb的区别(innodb是行级锁,myisam是表级锁)
 - mysql其他的性能优化方式
 - linux系统日志在哪里看
 - 如何查看网络进程
 - 统计一个整数的二进制表示中bit为1的个数
 - jvm内存模型,java内存模型
 - 如何把java内存的数据全部dump出来
 - 如何手动触发全量回收垃圾,如何立即触发垃圾回收
 - hashmap如果只有一个写其他全读会出什么问题
 - git rebase
 - mongodb和hbase的区别
 - 如何解决并发问题
 - volatile的用途
 - java线程池(好像之前我的理解有问题)
 - mysql的binlog
 - 代理模式
 - mysql是如何实现事务的
 - 读写分离何时强制要读主库,读哪个从库是通过什么方式决定的,从库的同步mysql用的什么方式
 - mysql的存储引擎
 - mysql的默认隔离级别,其他隔离级别
 - 将一个链表反转(用三个指针,但是每次只发转一个)
 - spring Aop的实现原理,具体说说
 - 何时会内存泄漏,内存泄漏会抛哪些异常
 - 是否用过Autowire注解
 - spring的注入bean的方式
 - sql语句各种条件的执行顺序,如select, where, order by, grou p by
 - select xx from xx where xx and xx order by xx limit xx; 如何优化这个(看explain)
 - 四则元算写代码
 - 统计100G的ip文件中出现ip次数最多的100个ip
 - zookeeper的事物,结点,服务提供方挂了如何告知消费方
 - 5台服务器如何选出leader(选举算法)
 - 适配器和代理模式的区别
 - 读写锁
 - static加锁
 - 事务隔离级别
 - 门面模式,类图(外观模式)
 - mybatis如何映射表结构
 - 二叉树遍历
 - 主从复制
 - mysql引擎区别
 - 静态内部类加载到了哪个区?方法区
 - class文件编译后加载到了哪
 - web的http请求如何整体响应时间变长导致处理的请求数变少,该如何处理?用队列,当处理不了那么多http请求时将请求放到队列中慢慢处理,web如何实现队列
 - 线程安全的单例模式
 - 快速排序性能考虑
 - volatile关键字用法
 - 求表的size,或做数据统计可用什么存储引擎
 - 读多写少可用什么引擎
 - 假如要统计多个表应该用什么引擎
 - concurrenhashmap求size是如何加锁的,如果刚求完一段后这段发生了变化该如何处理
 - 1000个苹果放10个篮子,怎么放,能让我拿到所有可能的个数
 - 可重入的读写锁,可重入是如何实现的?
 - 是否用过NIO
 - java的concurrent包用过没
 - sting s=new string("abc")分别在堆栈上新建了哪些对象
 - java虚拟机的区域分配,各区分别存什么
 - 分布式事务(JTA)
 - threadlocal使用时注意的问题(ThreadLocal和Synchonized都用于解决多线程并发访问。但是ThreadLocal与synchronized有本质的区别。s ynchronized是利用锁的机制,使变量或代码块在某一时该只能被一个线程访问。而ThreadLocal为每一个线程都提供了变量的副本,使得每个线程在某一时间访问到的并不是同一个对象,这样就隔离了多个线程对数据的数据共享。而Synchronized却正好相反,它用于在多个线程间通信时能够获得数据共享)
 - java有哪些容器(集合,tomcat也是一种容器)
 - 二分查找算法
 - myisam的优点,和innodb的区别
 - redis能存哪些类型
 - http协议格式,get和post的区别
 - 可重入锁中对应的wait和notify
 - redis能把内存空间交换进磁盘中吗(这个应该是可以的,但是那个面试官非跟我说不可以)
 - java线程池中基于缓存和基于定长的两种线程池,当请求太多时分别是如何处理的?定长的事用的队列,如果队列也满了呢?交换进磁盘?基于缓存的线程池解决方法呢?
 - synchronized加在方法上用的什么锁
 - 可重入锁中的lock和trylock的区别
 - innodb对一行数据的读会枷锁吗?不枷锁,读实际读的是副本
 - redis做缓存是分布式存的?不同的服务器上存的数据是否重复?guava cache呢?是否重复?不同的机器存的数据不同
 - 用awk统计一个ip文件中top10
 - 对表做统计时可直接看schema info信息,即查看表的系统信息
 - mysql目前用的版本
 - 公司经验丰富的人给了什么帮助?(一般boss面会问这些)
 - 自己相对于一样的应届生有什么优势
 - 自己的好的总结习惯给自己今后的工作带了什么帮助,举例为证
 - 原子类,线程安全的对象,异常的处理方式
 - 4亿个int数,如何找出重复的数(用hash方法,建一个2的32次方个bit的hash数组,每取一个int数,可hash下2的32次方找到它在h ash数组中的位置,然后将bit置1表示已存在)
 - 4亿个url,找出其中重复的(考虑内存不够,通过hash算法,将url分配到1000个文件中,不同的文件间肯定就不会重复了,再分别找出重复的) 有1万个数组,每个数组有1000个整数,每个数组都是降序的,从中找出最大的N个数,N<1000
 - LinkedHashmap的底层实现
 - 类序列化时类的版本号的用途,如果没有指定一个版本号,系统是怎么处理的?如果加了字段会怎么样?
 - Override和Overload的区别,分别用在什么场景
 - java的反射是如何实现的
 

GitHub:For A Better Future
CSDN:不负天地,不负自己!
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文连接,否则保留追究法律责任的权利。 
郑重声明:本站资料整理自个人gqzdev或者互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系屏蔽删除 

                
            
        
浙公网安备 33010602011771号