JAVA工程师面试题【来自并发编程网】
基础题:
- Java线程的状态
- 进程和线程的区别,进程间如何通讯,线程间如何通讯
- HashMap的数据结构是什么?如何实现的。和HashTable,ConcurrentHashMap的区别
- Cookie和Session的区别*
- 索引有什么用?如何建索引?
- ArrayList是如何实现的,ArrayList和LinedList的区别?ArrayList如何实现扩容*
- equals方法实现
- 面向对象
- 线程状态,BLOCKED和WAITING有什么区别
- JVM如何加载字节码文件
- JVM GC,GC算法。
- 什么情况会出现Full GC,什么情况会出现yong GC
- JVM内存模型
- Java运行时数据区
- 事务的实现原理
技术深度
- 有没有看过JDK源码,看过的类实现原理是什么。
- HTTP协议
- TCP协议
- 一致性Hash算法
- JVM如何加载字节码文件
- 类加载器如何卸载字节码
- IO和NIO的区别,NIO优点
- Java线程池的实现原理,keepAliveTime等参数的作用。
- HTTP连接池实现原理
- 数据库连接池实现原理
- 数据库的实现原理
技术框架
- 看过哪些开源框架的源码
- 为什么要用Redis,Redis有哪些优缺点?Redis如何实现扩容?
- Netty是如何使用线程池的,为什么这么使用
- 为什么要使用Spring,Spring的优缺点有哪些
- Spring的IOC容器初始化流程
- Spring的IOC容器实现原理,为什么可以通过byName和ByType找到Bean
- Spring AOP实现原理
- 消息中间件是如何实现的,技术难点有哪些
技术架构
- 如何搭建一个高可用系统
- 哪些设计模式可以增加系统的可扩展性
- 介绍设计模式,如模板模式,命令模式,策略模式,适配器模式、桥接模式、装饰模式,观察者模式,状态模式,访问者模式。
- 抽象能力,怎么提高研发效率。
- 什么是高内聚低耦合,请举例子如何实现
- 什么情况用接口,什么情况用消息
- 如果AB两个系统互相依赖,如何解除依赖
- 如何写一篇设计文档,目录是什么
- 什么场景应该拆分系统,什么场景应该合并系统
- 系统和模块的区别,分别在什么场景下使用
分布式系统
- 分布式事务,两阶段提交。
- 如何实现分布式锁
- 如何实现分布式Session
- 如何保证消息的一致性
- 负载均衡
- 正向代理(客户端代理)和反向代理(服务器端代理)
- CDN实现原理
- 怎么提升系统的QPS和吞吐量
实战能力
- 有没有处理过线上问题?出现内存泄露,CPU利用率标高,应用无响应时如何处理的。
- 开发中有没有遇到什么技术问题?如何解决的
- 如果有几十亿的白名单,每天白天需要高并发查询,晚上需要更新一次,如何设计这个功能。
- 新浪微博是如何实现把微博推给订阅者
- Google是如何在一秒内把搜索结果返回给用户的。
- 12306网站的订票系统如何实现,如何保证不会票不被超卖。
- 如何实现一个秒杀系统,保证只有几位用户能买到某件商品。
软能力
- 如何学习一项新技术,比如如何学习Java的,重点学习什么
- 有关注哪些新的技术
- 工作任务非常多非常杂时如何处理
- 项目出现延迟如何处理
- 和同事的设计思路不一样怎么处理
- 如何保证开发质量
- 职业规划是什么?短期,长期目标是什么
- 团队的规划是什么
- 能介绍下从工作到现在自己的成长在那里
JAVA工程师面试题【来自并发编程网】的更多相关文章
- Java工程师笔试题整理[校招篇]
Java工程师笔试题整理[校招篇] 隔着两个月即将开始校招了.你是不是也想借着这个机会崭露头角,拿到某些大厂的offer,赢取白富美.走上人生巅峰?当然如果你还没能打下Java基础,一定要先打 ...
- 并发编程网 - ifeve.com
并发编程网 - ifeve.com 让天下没有难学的技术 首页 JAVA 深入浅出ClassLoader 深入浅出ClassLoader Dedicate to Molly. 你真的了解ClassLo ...
- 北京南天软件java工程师面试题
此试题为北京南天软件java工程师面试题(部分) 一.单项选择 (1)下列关于构造方法的叙述中,错误的是(C) A.java语言规定构造方法名与类名必须相同 B.java语言规定构造方法没有返回值,但 ...
- Java 的核心目的和并发编程
读一本书,最好能从它的前言开始.那么我们就来看看<Java编程思想>作者 Bruce Eckel 在前言里都说了些什么吧. 01.Java 的核心目的是"为程序员减少复杂性&qu ...
- Java基础篇——线程、并发编程知识点全面介绍(面试、学习的必备索引)
原创不易,如需转载,请注明出处https://www.cnblogs.com/baixianlong/p/10739579.html,希望大家多多支持!!! 一.线程基础 1.线程与进程 线程是指进程 ...
- 深入理解java:2.3.4. 并发编程concurrent包 之容器ConcurrentLinkedQueue(非阻塞的并发队列---循环CAS)
1. 引言 在并发编程中我们有时候需要使用线程安全的队列. 如果我们要实现一个线程安全的队列有两种实现方式:一种是使用阻塞算法,另一种是使用非阻塞算法. 使用阻塞算法的队列可以用一个锁(入队和出 ...
- ☕【Java技术指南】「并发编程专题」针对于Guava RateLimiter限流器的入门到精通(含实战开发技巧)
并发编程的三剑客 在开发高并发系统时有三剑客:缓存.降级和限流. 缓存 缓存的目的是提升系统访问速度和增大系统处理容量. 降级 降级是当服务出现问题或者影响到核心流程时,需要暂时屏蔽掉,待高峰或者问题 ...
- Java内存模型---并发编程网 - ifeve.com
Java内存模型 转自:http://ifeve.com/java-memory-model-6/ 原文地址 作者:Jakob Jenkov 译者:张坤 Java内存模型规范了Java虚拟机与计算机 ...
- Java工程师面试题,整理自网络与博主各种笔试面试,持续更新
1.面向对象的特征有哪些方面? 封装:通常认为封装是把数据和操作数据的方法绑定起来,对数据的访问只能通过已定义的接口. 多态性:多态性是指允许不同子类型的对象对同一消息作出不同的响应.简单的说就是用同 ...
随机推荐
- CSS备战春招の二
CSS:层叠样式表 CSS注释形式:/* */ class 选择器有别于id选择器,class可以在多个元素中使用 id属性不要以数字开头,以数字开头在特定浏览器中不起作用 类名的第一个字符不要使用 ...
- Linux基础教程(一)——Linux系统简介
Linux的概述 Linux是基于Unix的开源免费的操作系统,由于系统的稳定性和安全性几乎成为程序代码运行的最佳系统环境.Linux是由Linus Torvalds(林纳斯·托瓦兹)起初开发的,由于 ...
- jQuery对于动态生成的元素绑定无效的问题~~
问题:很多时候发现,对动态生成的元素绑定click事件是无效的- 原因:直接绑定到动态生成的元素是无效的,是因为Jquery扫描文档找出所有的$(‘’)元素,并把函数绑定到每个元素的click事件上, ...
- VISUALSVN: UNABLE TO CONNECT TO A REPOSITORY AT URL 无法连接主机的解决办法
场景:我的系统是win7,安装的 VisualSVN Server 作为svn 服务器,昨天是好的,我手渐,使用鲁大师优化了系统,今天提交,更新的时候,直接提示:Unable to connect t ...
- 分享PHP中的10个实用函数
分享PHP中的10个实用函数 PHP的功能越来越强大,里面有着非常丰富的内置函数.资深的PHP程序员对它们可能都很熟悉,但很多参加PHP培训的PHP初学者,仍然对一些非常有用的函数不太熟悉.这篇文章里 ...
- Java 缩写总结
1.JVM:Java Virtual Machine(Java虚拟机)的缩写. 它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的. Java语言的一个非常重要的特点就是与 ...
- Mac HomeBrew 常用命令
mac 系统常用的软件安装工具就是 homebrew, 其最常用的命令如下: 安装(需要 Ruby):ruby -e "$(curl -fsSL https://raw.github.com ...
- Spring中Bean的生命周期讨论
1.代码和配置文件准备 1.1.测试类(user.java) public class User { private int id; private String name; private int ...
- 【最全】经典排序算法(C语言)
算法复杂度比较: 算法分类 一.直接插入排序 一个插入排序是另一种简单排序,它的思路是:每次从未排好的序列中选出第一个元素插入到已排好的序列中. 它的算法步骤可以大致归纳如下: 从未排好的序列中拿出首 ...
- shell之九九乘法表
echo -n 不换行输出 $echo -n "123" $echo "456" 最终输出 123456 而不是 123 456 echo - ...