←←←←←←←←←←←← 快!点关注
前言
前几天了前公司带的一个新人聊了一会,说了一下他在京东的的面试经历,我感觉挺不错的,就和大家分享一下:
工作两年有余,本人第一份工作是在一家外包公司,第二份工作是在一家做SAAS平台的公司,第一家公司让我入门,进入了软件开发的行业,了解了一些基础的东西;第二家公司由于规模不大,很多活儿都是一个人来做,从产品到开发、测试、运维我都了解了,对于整体的软件开发流程有了很大的了解。但是,为了自己的更好发展,决定去一家大公司,于5月初提出了离职,虽然领导挽留,但是我还是离职了,然后我自己面试了很多家公司,大公司小公司都有,积累了足够的经验,开始向阿里大公司投递简历,面了几家之后,终于拿到了自己满意的offer,我是在积累了足够的经验之后才提出离职的,离职时一件很重大的事情,自己要慎重考虑,要从职业发展和个人规划上考虑清楚再去做出选择。
大公司面试考验基础和项目经验,小公司比较偏向于项目经验。这里我都总结下,给大家一个参考,希望可以帮助到正在面临跳槽的同志。
一、Java基础
- Java基本数据类型
- 原始数据类型和封装类的区别
- String、StringBuffer、StringBuilder区别
- 运行时异常和非运行时异常区别
- 简述一下面向对象的特征,并举例说明你对面向对象的理解
- 正则表达式的用法
- Java 语言如何进行异常处理,关键字:throws、throw、try、catch、finally分别代表什么意义?finally代码是在return之后还是之前执行?
- abstract class和interface有什么区别?接口可以继承接口吗?接口可以继承抽象类吗,为什么?
- 构造器(constructor)是否可被重写(override)?
- 是否可以继承String类?
- Java 中的final关键字有哪些用法?
- try{}里有一个return语句,那么紧跟在这个try后的finally{}里的代码会不会被执行,什么时候被执行,在return前还是后?
- 阐述final、finally、finalize的区别。
- 如何通过反射创建对象?
- Java 8的新特性
- Java数组和链表的两种结构的操作效率
- Java的引用类型有哪几种
二、多线程、IO、集合
- ArrayList、Vector、LinkedList的存储性能和特性
- List、Set、Map是否继承自Collection接口?
- List、Map、Set三个接口存取元素时,各有什么特点?
- 请说出与线程同步以及线程调度相关的方法。
- 编写多线程程序有几种实现方式?
- 简述synchronized 和java.util.concurrent.locks.Lock的异同?
- hash碰撞以及hash算法、如何解决哈希冲突
- ArrayList和HsahSet的区别,HashMap和Hashtable的区别?
- HashMap的存储原理,需要了解HashMap的源码。
- ArrayList和LinkedList的各自实现和区别
- HashMap和HashTable区别
12.Hashtable,HashMap,ConcurrentHashMap 底层实现原理与线程安全问题 - Hash冲突怎么办?哪些解决散列冲突的方法?
- 讲讲IO里面的常见类,字节流、字符流、接口、实现类、方法阻塞。
- 讲讲NIO。
- 递归读取文件夹下的文件,代码怎么实现
- 常用的线程池模式以及不同线程池的使用场景
- newFixedThreadPool此种线程池如果线程数达到最大值后会怎么办,底层原理。
- 了解可重入锁的含义,以及ReentrantLock 和synchronized的区别
- atomicinteger和volatile等线程安全操作的关键字的理解和使用
- 进程和线程的区别
- 同步和异步,阻塞和非阻塞
三、设计模式
- 简述一下你了解的设计模式。
- 写出单利模式,懒汉和饿汉
四、JVM
- 描述一下JVM加载class文件的原理机制?
- Java 中会存在内存泄漏吗,请简单描述。
- GC是什么?为什么要有GC?
- JVM的内存模型(重要、GC算法、新生代、老年代、永久代等需要详细了解)
- GC的工作原理
五、数据库
- 事务的ACID是指什么?
- 悲观锁和乐观锁的区别
- Left join、right join、inner join区别
- SQL优化
- redis缓存数据库,需要了解,什么是内存数据库,支持的数据类型
- 单个索引、联合索引、主键索引
- 索引的数据结构
- 数据库的锁,行锁、表锁、悲观锁、乐观锁
六、框架
- web Service 常用注解 客户端如何生成,还是手写
- mybatis处理大数据
- AOP IOC优点缺点
- spring事务传播属性和隔离级别
- Web Service 客户端和服务端实现技术
- Spring Mvc返回json技术
- Hibernate悲观锁和乐观锁
- Hibernate三种状态
- hibernate和ibatis的区别
- 讲讲mybatis连接池
- SpringMVC的工作原理
- Spring的几种注入方式
- Spring如何实现事务管理
- Spring IOC和AOP的原理
七、算法和数据结构
- 写出快速排序和冒泡排序算法
八、Linux基础
- 常用命令
- Linux文件权限
- 端口占用
九、项目经验面试真题
- 浏览器访问http://www.taobao.com,经历了怎样的过程。
- 高并发情况下,我们系统是如何支撑大量的请求的
- 集群如何同步会话状态
- 负载均衡的原理
- 如果有一个特别大的访问量,到数据库上,怎么做优化(DB设计,DBIO,SQL优化,Java优化) 设计缓存,使用memcached、redis,读写分离,数据库优化(优化表结构、索引、查询语句等),使用集群,升级硬件,
- 手写斐波那契数列、递归查找文件
- Mybatis的# $的区别
- prototype作用域的范围
- Spring的动态代理
- 手写生产者消费者模式
- 分布式锁
- 死锁的原因以及如何避免
- 内存溢出的原因
- 秒杀系统的设计
- 100万条记录实现导出
- 字符串的比较、反转
- CountDownLatch的应用场景
辛苦总结,有问题欢迎指正!
一个人在一家公司呆久了,千万不要模式化,一直待着舒适区,因为当你一旦离开这家公司,找工作的时候就会很容易碰壁,在这里:我建议大家一定要提前计划着去学习...
读者福利:
分享免费学习资料
针对于Java程序员,我这边准备免费的Java架构学习资料(里面有高可用、高并发、高性能及分布式、Jvm性能调优、MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多个知识点的架构资料)
为什么某些人会一直比你优秀,是因为他本身就很优秀还一直在持续努力变得更优秀,而你是不是还在满足于现状内心在窃喜!希望读到这的您能点个小赞和关注下我,以后还会更新技术干货,谢谢您的支持!
资料领取方式:加入Java技术交流群963944895
,点击加入群聊,私信管理员即可免费领取
网友评论