两年Java程序员面试经

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

辛苦总结,有问题欢迎指正!

一个人在一家公司呆久了,千万不要模式化,一直待着舒适区,因为当你一旦离开这家公司,找工作的时候就会很容易碰壁,在这里:我建议大家一定要提前计划着去学习...

一:常见模式与工具

学习Java技术体系,设计模式,流行的框架与组件

——常见的设计模式,编码必备,Spring5,做应用必不可少的最新框架,MyBatis,玩数据库必不可少的组件......

二:工程化与工具

工欲善其事必先利其器,不管是小白,还是资深开发,玩Java技术体系,选择好的工具,提升开发效率和团队协作效率,是必不可少的:

Maven,项目管理

Jenkins,持续集成

Sonar,代码质量管理

Git,版本管理

三:分布式架构

高并发,高可用,海量数据,没有分布式的架构知识肯定是玩不转的:

分布式架构原理

分布式架构策略

分布式中间件

分布式架构实战

四:微服务架构

业务越来越复杂,服务分层,微服务架构是架构升级的必由之路,Java技术体系,和微服务相关的技术有哪些呢?

微服务框架

Spring Cloud

Docker与虚拟化

微服务架构

五:性能优化

任何脱离细节的ppt架构师都是耍流氓,向上能运筹帷幄,向下能解决一线性能问题,Java技术体系,需要了解:

性能指标体系

JVM调优

Web调优

DB调优

六:底层知识

从架构设计,到应用层调优,再深入了解底层原理,扎实的Java基本功才能让自己变为扫地神僧:

内存模型

并发模式

线程模型

锁细节

本文分享自微信公众号 - JAVA高级架构(gaojijiagou)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-09-20

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Petrichor的专栏

macOS: 安装卷宗失败

如果插上希捷移动硬盘后,mac右上角还是显示“安装卷宗失败”,则进入系统偏好设置 -> 安全性与隐私:

56130
来自专栏编程坑太多

程序猿真的觉得写代码比女朋友重要吗?

11830
来自专栏coding

AOC显示器提示OSD锁定怎么办?

macpro虽好,但屏幕实在太小了,而且原生的键盘敲起来很费劲,还是用机械键盘噼里啪啦敲打显得爽快。于是,给macpro外接了键鼠以及27寸的AOC显示器。

2.7K40
来自专栏Petrichor的专栏

Tmux 使用

[1] 十分钟学会 tmux [2] Tmux使用手册 [3] 第 2 章 配置 tmux

22320
来自专栏云计算D1net

将应用程序移动到云端?确保良好客户体验的3个步骤

如今,许多企业正在将面向客户的网站和应用程序迁移到云端。云计算使企业能够降低基础设施成本,并将更多时间用于创收和业务增长。但采用云计算如何在确保提供高质量的用户...

28340
来自专栏Petrichor的专栏

python: 读取.xlsx文件

60430
来自专栏路由技术

路由交换OSPF域内路由

OSPF路由器R1的LSDB同步完毕后,需要独立计算去往每个网段的最优路径 R1的Router ID 1.1.1.1 每台OSPF路由器都会为每个区域生成唯一一...

23200
来自专栏Petrichor的专栏

macOS: 没有移动硬盘的 写权限

Note: 这里以希捷(seagate)硬盘为例。其他牌子移动硬盘写权限的问题可以举一反三。

49340
来自专栏landv

流程内耗的雾霾几时休?

一个企业,无论大小,都具备“麻雀虽小,五脏俱全”的职能部门,都有人数或多或少的运作团队。正如金庸在《笑傲江湖》中写道:“有人就有恩怨,有恩怨就有江湖”,在协同运...

11810
来自专栏Petrichor的专栏

如何对网页 长截图

26760

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励