面经之有意思的问题
- 怎么判断一个点在三角形的内外上 (腾讯移动端)
- 求两个节点的父节点
- 简单计算机网络相关问题
- iBaits相比JDBC优势(头条后台)
- PrepareStatement相比statement优点
- TCP/IP\对应于OSI七层模型的哪些层
- 为什么三次握手,四次挥手
- 进程和线程区别
- 多线程什么情况下执行wait
- tomcat负载均衡
- Spring容器如何加载
- Servlet生命周期(什么时候destory)
- Mysql底层实现,B+树原理
- 10G数据,每一条是一个qq号,统计出现频率最多的qq号
- JVM新生代和老年代如何区分,新生代垃圾回收用什么算法,copy算法内存是怎么分的
- hashmap实现原理 拓展: Java中Map与HashMap,Hashtable,HashSet的区别
- 数组和链表的比较
- ArrayList和Linkedlist对比
- sleep和wait的区别
- string stringbuffer stringbuilder区别(搜狐后台)
- 单例模式是什么
- 垃圾回收算法
- 软件设计原则
- jdk serialVersionUID
- FutureTask类
- java的继承是怎么实现的
- null是不是object
- sleep和wait的区别
- TCP四次挥手状态变化?为什么存在TIME_WAIT(美团后台)
- ARP协议?什么是ARP欺骗?
- volatile关键字语义?
- 类加载机制?
- 静态代码块在什么时候执行?
- 堆的分代回收机制?老年代能否使用复制算法?为什么?
- 如何得知sql语句的效率?
- synchronized修饰静态方法和修饰非静态方法,有何区别?
- 拦截器与过滤器的区别(京东后台)
- springMVC和servlet 响应页面请求的区别
- session和cookie的区别
- get和post区别
- tomcat和Nginx?
- string stringBuilder StringBuffer 区别
- ArrayList和LinkedList分别有几种遍历方式
- ArrayList和LinkedList 中的快速失败(fail-fast)机制,(拓展问题:其中使用了什么锁:compareAndSwap;在拓展:锁是悲观锁还是乐观锁) 了解的锁的类型 可重入锁的实现(用计数器计算有几次上锁;拓展问题:这个计数器存储在什么位置)
- volatile作用(说了个可见性,他又说了重排序,不知道是啥)
- mysql实现索引(B树索引,hash索引,讲不出来了,就没细问)
- mysql事务隔离级别(4个) 1G内存,10G数据如何排序(分为10组分别排,再挨个取,类似归并)(我说的答案是堆排,就让我说了一下堆排的过程) 多线程有什么地方理解的比较深入的(随便讲了个,没刺激到他g点)
- 给定区间(a,b],去除区间里含有3、5、7的数字,还剩下多少(暴力)(头条后台三面)
- 满二叉树中插入一个新元素,使其仍然是满二叉树(层序遍历)
- 项目:如何判断对方已经关闭连接——检测心跳
- 为什么采用socket而不是http(socket长连接,http短链接,socket服务器可以主动发送数据,http服务器被动响应)
- epoll为什么采用边缘触发而不是水平触发
- springmvc理解 (搜狐媒体后台)
- 多线程理解
- 算法:链表逆置 二叉树中序遍历的非递归实现
- 2sum问题
- spring的理解
- restful的理解
- 从两个已经从大到小排好序的数组里面找第k大的数
- 二分查找
- web安全 - https加密过程,证书用途 - xss几种形式,防范手段,过滤哪些字符? - xsrf原理,实例,防范手段(Laravel的token) - Sql注入
- 性能优化 - 代码优化(html,css,js) - 网络性能优化: 1. Cache缓存之强制缓存和协商缓存 2. CDN原理及应用 3. HTTP压缩之gzip
- 上下文环境对象
- 设计模式(要求说出如何实现,应用,优缺点): - 单例模式 - 工厂模式 - 发布订阅模式
- 跨域(产生原因) - JSONP原理 - CORS如何设置 - Nginx代理
- 读过哪些框架源码?
- 如何写一个CSS库,要注意哪些东西?
- 乐观锁与悲观锁的理解(美团java一面)
- 自旋锁的理解
- tcp四次挥手
- tcp状态转化:close-wait是由哪个状态转化来的 time_wait呢
- 多叉树的层序遍历
- ConcurrentHashMap的理解
- 平常做项目的学习方法 自己觉得自己的优点和缺点是什么
- 前端框架jQuery有几种选择器(美团java二面)
- 如何利用springMVC注解取得前端传来的一个string类型的数据
- spring注解可以表示的参数
- springMVC 的dispatcherservlet是如何分发的
- MySQL的常用数据库引擎 innodb和myisam的区别
- MySQL索引
- maven如何解决依赖冲突
- restful接口设计风格的理解
- 斐波那契数列的非递归实现
- o(1)时间删除链表节点
- mysql的存储引擎(滴滴java)
- B树那一系列
- 分布式的高并发是怎么保证数据一致性的?
- select和epoll的区别
- 进程,线程,协程的区别
- IP地址的划分(子网掩码)
- 数据库各种join的区别
- 写一个生产者消费者模型
- java怎么实现单例
- protect的变量和方法能被继承吗
- 在浏览器输入地址后发生了什么
- udp和tcp的区别
- 线程进程的区别,线程是如何调度的
- delete、drop、truncate的区别
- 介绍几个排序算法的思想及其时间复杂度
- 数据库事务的概念、事务的实现原理
- Java和C语言的区别
- JVM内存机制、GC原理、哪些情况下会发生内存溢出错误
- Java锁机制,synchronized关键字
- 写代码表示线程安全的生产者消费者模型
- 用File类的delete()、list()、isFile()等方法,实现一个功能类似于Linux rm命令的方法
- left join、right join区别
- left join,right join和inner join的区别(宜信)
- 给一个字符串,求出相同最少的字母
- 黑盒测试
- hashmap死锁原因
- concurrenthashmap
- linux操作,sed,vim
- 复制一个数组
- volatile i++还是会出现写入脏数据
- linux查看进程