java面试

一面基础,二面项目经验,三面为人

一 基础

Java基础

https://zhuanlan.zhihu.com/p/37430187

  • java和C++ php等语言的区别

  • 对象OOP思想

  • 抽象类与接口
    覆盖和重载
    拆箱装箱
    传值方式 http://ifeve.com/java-pass-value/

  • 集合:
    集合有那几种?
    list和set的区别?
    hashmap的实现,冲突,初始容量和加载因子?怎么扩容?
    如何取出hashmap中的value存入list中?
    hashmap扩容过程
    currentHashMap和HashMap的区别
    解决hash冲突的方法有哪些?
    HashMap中如何解决hash冲突
    谈谈hashmap原理
    heap和stack的区别是什么?

  • 泛型

  • 注解

  • Java IO 与 NIO

  • JDBC
    JDBC是单例还是多例
    JDBC和MyBatis

  • JUnit

  • 异常
    Java中的异常分类

  • XML

  • 网络编程
    Socket讲讲。

  • 编程规范 https://zhuanlan.zhihu.com/p/37360620

高并发编程(JUC 包)

https://zhuanlan.zhihu.com/p/37430315
进程之间如何通信
进程和线程的区别
线程有哪些状态
如何创建线程
wait和sleep的区别
ThreadLocal
Atomic https://blog.csdn.net/zhangerqing/article/details/43057799
如何避免线程死锁
谈一下悲观锁和乐观锁的原理和应用场景
一个库存变量,多个线程需要操作,如何保证正确性?
创建100个线程,如何使得这100个线程几乎同时启动?
多线程包concurrent
说说volatile底层原理

JVM

https://zhuanlan.zhihu.com/p/37430400
内存调优工具
内存泄露和内存溢出
OOM异常的发生原因是什么?
JVM内存模型及调优
垃圾回收(GC)
JVM内存管理和回收机制

Java版本特征5 6 7 8

https://zhuanlan.zhihu.com/p/37430472
https://zhuanlan.zhihu.com/p/37430948

网络协议

TCP协议中的三次握手和四次挥手(图解)
tcp和udp的区别
Htttp协议
socket
websocket
restful
SOAP

数据库

https://zhuanlan.zhihu.com/p/37501500
数据库的范式

  • 数据库引擎
  • Mysql优化
  • Redis
  • MongoDb
  • 数据库的锁有哪几种?语句怎么实现
    数据库分页查询
    数据库的搜索引擎
    说说事务吧,事务的四大特性,四大隔离级别
    having的用法,和where的区别
    mysql和sqlserver的区别有哪些
    limit的使用相关
    死锁的四个必要条件
    具体案例,如何避免死锁?某个线程只有获得A锁和B锁才能对某资源进行操作,在多线程条件下,如何避免死锁?
    对MySQL的了解,和oracle的区别

设计模式

https://blog.csdn.net/qq_25827845/article/details/52932234
控制反转
手写模式
对设计模式的看法和认知
有哪些设计模式
模板模式

数据结构与算法

https://www.lintcode.com/zh-cn/tag/lintcode-copyright/
https://www.jiuzhang.com/solution/

  • 快速排序怎么实现的?
  • 数据库索引为什么用B树?原理
    大量数据去重:Bitmap和布隆过滤器(Bloom Filter)
  • Java 中的数据结构和算法 set的底层数据结构是什么?
    写个排序算法吧
    什么因素会影响到你选择不同种类的排序算法
    KMP算法
    合并有序链表
    单链表反转
    单链表有环推导公式
    LRU算法,最近被使用算法,使用链表实现一个
    自己实现一个String2Int的算法。
    找出一个数组中的多数元素?追问,时间复杂度可以再小吗?

二 项目实战

https://zhuanlan.zhihu.com/p/23517856

  • Linux
    Linux中如何查看线程状态?指定一个线程怎么查看?
    awk

  • 模块化的好处

  • 浏览器的缓存机制

  • Web应用程序的工作原理(访问www.xxx.com过程)

  • Servlet

  • Tomcat/JBoss

  • Mybatis https://zhuanlan.zhihu.com/p/37359895
    mybatis中#和$的区别?危险注入问题

  • Spring:Ioc+AOP https://zhuanlan.zhihu.com/p/37195663
    AOP的两种实现:动态代理和静态代理的区别
    介绍spring任意一个模块的实现

  • 领域建模 OOA/D UML
    OOA/D的过程:定义用例、定义领域模型、定义交互图、字义设计类图
    SOLID (单一功能、开闭原则、里氏替换、接口隔离以及依赖反转)设计原则
    https://www.cnblogs.com/rgbw/archive/2009/09/01/1557843.html
    http://www.cnblogs.com/AngelLee2009/p/3601879.html

  • Spring MVC https://zhuanlan.zhihu.com/p/37359818

  • Spring boot https://zhuanlan.zhihu.com/p/37430067

  • Maven maven的打包命令

  • Git
    git完全撤销
    git用过是吧?让你设计实现一个git diff的算法,你会怎么实现?

架构

  • 高并发
  • 消息队列
    消息队列设计精要 美团技术团队!
  • 负载均衡
  • 微服务
  • Docker
  • 大数据(Spark+Hadoop)
    spark streaming计算原理和过程
  • 缓存 redis等 如何实现分布式缓存
  • kafka分区
  • 分布式

三 面试技巧

题库

2017 暑期实习校园招聘(Java后台开发方向)面经分享

简历

http://tieba.baidu.com/p/5152132217
简历应该突出表现自己优秀的地方,所以我将个人技术博客和 github 地址放到了相对靠前的位置,使面试官或者 HR 可以一眼看到。

给大家一个小提示,那就是必须对简历上所写的知识点有一定了解,不懂的就不要写上去了,因为你会被问的很惨(即使一面面试官不问,三面面试官也会问的)。


java面试_第1张图片
image.png
  • 自我介绍
  • 项目介绍
  • 团队作用(领导力)
  • 对新公司的认识 项目看法 团队看法等

你可能感兴趣的:(java面试)