finalize
使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变
一个类被声明为final类型,表示了什么意思
throws, throw, try, catch, finally分别代表什么意义
final 与 static 关键字可以用于哪里?它们的作用是什么
final, finally, finalize的区别
final、finalize 和 finally 的不同之处?
finalize()方法什么时候被调用
析构函数(finalization)的目的是什么
final 和 finalize 的区别
final
什么是finalize()方法
final关键字有哪些用法
能否在运行时向 static final 类型的赋值
Java 有几种修饰符?分别用来修饰什么
volatile
volatile 修饰符的有过什么实践
volatile 变量是什么?volatile 变量和 atomic 变量有什么不同
volatile 类型变量提供什么保证?能使得一个非原子操作变成原子操作吗
能创建 volatile 数组吗?
transient变量有什么特点
super什么时候使用
public static void 写成 static public void会怎样
说明一下public static void main(String args[])这段声明里每个关键字的作用
请说出作用域public, private, protected, 以及不写时的区别
sizeof 是Java 的关键字吗
static
static class 与 non static class的区别
static 关键字是什么意思?Java中是否可以覆盖(override)一个private或者是static的方法
静态类型有什么特点
main() 方法为什么必须是静态的?能不能声明 main() 方法为非静态
是否可以从一个静态(static)方法内部发出对非静态(non-static)方法的调用
静态变量在什么时候加载?编译期还是运行期?静态代码块加载的时机呢
成员方法是否可以访问静态变量?为什么静态方法不能访问成员变量
switch
switch 语句中的表达式可以是什么类型数据
switch 是否能作用在byte 上,是否能作用在long 上,是否能作用在String上
while 循环和 do 循环有什么不同
基础类型(Primitives)
基础类型(Primitives)与封装类型(Wrappers)的区别在哪里
简述九种基本数据类型的大小,以及他们的封装类
int 和 Integer 哪个会占用更多的内存? int 和 Integer 有什么区别?parseInt()函数在什么时候使用到
float和double的默认值是多少
如何去小数四舍五入保留小数点后两位
char 型变量中能不能存贮一个中文汉字,为什么
类型转换
怎样将 bytes 转换为 long 类型
怎么将 byte 转换为 String
如何将数值型字符转换为数字
我们能将 int 强制转换为 byte 类型的变量吗?如果该值大于 byte 类型的范围,将会出现什么现象
能在不进行强制转换的情况下将一个 double 值赋值给 long 类型的变量吗
类型向下转换是什么
数组
如何权衡是使用无序的数组还是有序的数组
怎么判断数组是 null 还是为空
怎么打印数组? 怎样打印数组中的重复元素
Array 和 ArrayList有什么区别?什么时候应该使用Array而不是ArrayList
数组和链表数据结构描述,各自的时间复杂度
数组有没有length()这个方法? String有没有length()这个方法
队列
队列和栈是什么,列出它们的区别
BlockingQueue是什么
简述 ConcurrentLinkedQueue LinkedBlockingQueue 的用处和不同之处。
ArrayList、Vector、LinkedList的存储性能和特性
String
StringBuffer
ByteBuffer 与 StringBuffer有什么区别
HashMap
HashMap的工作原理是什么
内部的数据结构是什么
HashMap 的 table的容量如何确定?loadFactor 是什么? 该容量如何变化?这种变化会带来什么问题?
HashMap 实现的数据结构是什么?如何实现
HashMap 和 HashTable、ConcurrentHashMap 的区别
HashMap的遍历方式及效率
HashMap、LinkedMap、TreeMap的区别
如何决定选用HashMap还是TreeMap
如果HashMap的大小超过了负载因子(load factor)定义的容量,怎么办
HashMap 是线程安全的吗?并发下使用的 Map 是什么,它们内部原理分别是什么,比如存储方式、 hashcode、扩容、 默认容量等
HashSet
HashSet和TreeSet有什么区别
HashSet 内部是如何工作的
WeakHashMap 是怎么工作的?
Set
Set 里的元素是不能重复的,那么用什么方法来区分重复与否呢?是用 == 还是 equals()? 它们有何区别?
TreeMap:TreeMap 是采用什么树实现的?TreeMap、HashMap、LindedHashMap的区别。TreeMap和TreeSet在排序时如何比较元素?Collections工具类中的sort()方法如何比较元素?
TreeSet:一个已经构建好的 TreeSet,怎么完成倒排序。
EnumSet 是什么
Hash算法
Hashcode 的作用
简述一致性 Hash 算法
有没有可能 两个不相等的对象有相同的 hashcode?当两个对象 hashcode 相同怎么办?如何获取值对象
为什么在重写 equals 方法的时候需要重写 hashCode 方法?equals与 hashCode 的异同点在哪里
a.hashCode() 有什么用?与 a.equals(b) 有什么关系
hashCode() 和 equals() 方法的重要性体现在什么地方
Object:Object有哪些公用方法?Object类hashcode,equals 设计原则? sun为什么这么设计?Object类的概述
如何在父类中为子类自动完成所有的 hashcode 和 equals 实现?这么做有何优劣。
可以在 hashcode() 中使用随机数字吗?
LinkedHashMap
LinkedHashMap 和 PriorityQueue 的区别是什么
List
ArrayList 和 HashMap 的默认大小是多数
ArrayList 和 LinkedList 的区别,什么时候用 ArrayList?
ArrayList 和 Set 的区别?
ArrayList, LinkedList, Vector的区别
ArrayList是如何实现的,ArrayList 和 LinkedList 的区别
ArrayList如何实现扩容
Array 和 ArrayList 有何区别?什么时候更适合用Array
说出ArraList,Vector, LinkedList的存储性能和特性
LinkedList 是单向链表还是双向链表
LinkedList 与 ArrayList 有什么区别
描述下 Java 中集合(Collections),接口(Interfaces),实现(Implementations)的概念。LinkedList 与 ArrayList 的区别是什么?
插入数据时,ArrayList, LinkedList, Vector谁速度较快?
List, Set, Map三个接口,存取元素时各有什么特点
List, Set, Map 是否继承自 Collection 接口
遍历一个 List 有哪些不同的方式
LinkedList
ArrayList
Map
Map, Set, List, Queue, Stack
Map 接口提供了哪些不同的集合视图
为什么 Map 接口不继承 Collection 接口
Collections
介绍Java中的Collection FrameWork。集合类框架的基本接口有哪些
Collections类是什么?Collection 和 Collections的区别?Collection、Map的实现
集合类框架的最佳实践有哪些
为什么 Collection 不从 Cloneable 和 Serializable 接口继承
说出几点 Java 中使用 Collections 的最佳实践?
Collections 中 遗留类 (HashTable、Vector) 和 现有类的区别
什么是 B+树,B-树,列出实际的使用场景。
基本概念
Vector, SimpleDateFormat 是线程安全类吗
什么 Java 原型不是线程安全的
哪些集合类是线程安全的
用 Runnable 还是 Thread
什么是线程
多线程的优点
多线程的几种实现方式
什么是线程安全
多线程中的忙循环是什么
如何创建一个线程
编写多线程程序有几种实现方式
什么是线程局部变量
线程和进程有什么区别?进程间如何通讯,线程间如何通讯
什么是多线程环境下的伪共享(false sharing)
同步和异步有何异同,在什么情况下分别使用他们?举例说明
Current
ConcurrentHashMap 和 Hashtable的区别
ArrayBlockingQueue, CountDownLatch的用法
ConcurrentHashMap的并发度是什么
CyclicBarrier 和 CountDownLatch有什么不同?各自的内部原理和用法是什么
Semaphore的用法
Thread
启动一个线程是调用 run() 还是 start() 方法?start() 和 run() 方法有什么区别
调用start()方法时会执行run()方法,为什么不能直接调用run()方法
sleep() 方法和对象的 wait() 方法都可以让线程暂停执行,它们有什么区别
yield方法有什么作用?sleep() 方法和 yield() 方法有什么区别
Java 中如何停止一个线程
stop() 和 suspend() 方法为何不推荐使用
如何在两个线程间共享数据
如何强制启动一个线程
如何让正在运行的线程暂停一段时间
什么是线程组,为什么在Java中不推荐使用
你是如何调用 wait(方法的)?使用 if 块还是循环?为什么
生命周期
有哪些不同的线程生命周期
线程状态,BLOCKED 和 WAITING 有什么区别
画一个线程的生命周期状态图
ThreadLocal 用途是什么,原理是什么,用的时候要注意什么
ThreadPool
线程池是什么?为什么要使用它
如何创建一个Java线程池
ThreadPool用法与优势
提交任务时,线程池队列已满时会发会生什么
newCache 和 newFixed 有什么区别?简述原理。构造函数的各个参数的含义是什么,比如 coreSize, maxsize 等
线程池的实现策略
线程池的关闭方式有几种,各自的区别是什么
线程池中submit() 和 execute()方法有什么区别?
线程调度
Java中用到的线程调度算法是什么
什么是多线程中的上下文切换
你对线程优先级的理解是什么
什么是线程调度器 (Thread Scheduler) 和时间分片 (Time Slicing)
线程同步
请说出你所知的线程同步的方法
synchronized 的原理是什么
synchronized 和 ReentrantLock 有什么不同
什么场景下可以使用 volatile 替换 synchronized
有T1,T2,T3三个线程,怎么确保它们按顺序执行?怎样保证T2在T1执行完后执行,T3在T2执行完后执行
同步块内的线程抛出异常会发生什么
当一个线程进入一个对象的 synchronized 方法A 之后,其它线程是否可进入此对象的 synchronized 方法B
使用 synchronized 修饰静态方法和非静态方法有什么区别
如何从给定集合那里创建一个 synchronized 的集合
锁
Java Concurrency API 中 的 Lock 接口是什么?对比同步它有什么优势
Lock 与 Synchronized 的区别?Lock 接口比 synchronized 块的优势是什么
ReadWriteLock是什么?
锁机制有什么用
什么是乐观锁(Optimistic Locking)?如何实现乐观锁?如何避免ABA问题
解释以下名词:重排序,自旋锁,偏向锁,轻量级锁,可重入锁,公平锁,非公平锁,乐观锁,悲观锁
什么时候应该使用可重入锁
简述锁的等级方法锁、对象锁、类锁
Java中活锁和死锁有什么区别?
什么是死锁(Deadlock)?导致线程死锁的原因?如何确保 N 个线程可以访问 N 个资源同时又不导致死锁
死锁与活锁的区别,死锁与饥饿的区别
怎么检测一个线程是否拥有锁
如何实现分布式锁
有哪些无锁数据结构,他们实现的原理是什么
读写锁可以用于什么应用场景
Executors类是什么? Executor和Executors的区别
什么是Java线程转储(Thread Dump),如何得到它
如何在Java中获取线程堆栈
说出 3 条在 Java 中使用线程的最佳实践
在线程中你怎么处理不可捕捉异常
实际项目中使用多线程举例。你在多线程环境中遇到的常见的问题是什么?你是怎么解决它的
请说出与线程同步以及线程调度相关的方法
程序中有3个 socket,需要多少个线程来处理
假如有一个第三方接口,有很多个线程去调用获取数据,现在规定每秒钟最多有 10 个线程同时调用它,如何做到
如何在 Windows 和 Linux 上查找哪个线程使用的 CPU 时间最长
如何确保 main() 方法所在的线程是 Java 程序最后结束的线程
非常多个线程(可能是不同机器),相互之间需要等待协调才能完成某种工作,问怎么设计这种协调方案
你需要实现一个高效的缓存,它允许多个用户读,但只允许一个用户写,以此来保持它的完整性,你会怎样去实现它
用一句话概括 Web 编程的特点
Google是如何在一秒内把搜索结果返回给用户
哪种依赖注入方式你建议使用,构造器注入,还是 Setter方法注入
树(二叉或其他)形成许多普通数据结构的基础。请描述一些这样的数据结构以及何时可以使用它们
某一项功能如何设计
线上系统突然变得异常缓慢,你如何查找问题
什么样的项目不适合用框架
新浪微博是如何实现把微博推给订阅者
简要介绍下从浏览器输入 URL 开始到获取到请求界面之后 Java Web 应用中发生了什么
请你谈谈SSH整合
高并发下,如何做到安全的修改同一行数据
12306网站的订票系统如何实现,如何保证不会票不被超卖
网站性能优化如何优化的
聊了下曾经参与设计的服务器架构
请思考一个方案,实现分布式环境下的 countDownLatch
请思考一个方案,设计一个可以控制缓存总体大小的自动适应的本地缓存
在你的职业生涯中,算得上最困难的技术挑战是什么
如何写一篇设计文档,目录是什么
大写的O是什么?举几个例子
编程中自己都怎么考虑一些设计原则的,比如开闭原则,以及在工作中的应用
解释一下网络应用的模式及其特点
设计一个在线文档系统,文档可以被编辑,如何防止多人同时对同一份文档进行编辑更新
说出数据连接池的工作机制是什么
怎么获取一个文件中单词出现的最高频率
描述一下你最常用的编程风格
如果有机会重新设计你们的产品,你会怎么做
如何搭建一个高可用系统
如何启动时不需输入用户名与密码
如何在基于Java的Web项目中实现文件上传和下载
如何实现一个秒杀系统,保证只有几位用户能买到某件商品。
如何实现负载均衡,有哪些算法可以实现
如何设计一个购物车?想想淘宝的购物车如何实现的
如何设计一套高并发支付方案,架构如何设计
如何设计建立和保持 100w 的长连接
如何避免浏览器缓存。
如何防止缓存雪崩
如果AB两个系统互相依赖,如何解除依
如果有人恶意创建非法连接,怎么解决
如果有几十亿的白名单,每天白天需要高并发查询,晚上需要更新一次,如何设计这个功能
如果系统要使用超大整数(超过long长度范围),请你设计一个数据结构来存储这种超大型数字以及设计一种算法来实现超大整数加法运算)
如果要设计一个图形系统,请你设计基本的图形元件(Point,Line,Rectangle,Triangle)的简单实现
如果让你实现一个并发安全的链表,你会怎么做
应用服务器与WEB 服务器的区别?应用服务器怎么监控性能,各种方式的区别?你使用过的应用服务器优化技术有哪些
大型网站在架构上应当考虑哪些问题
有没有处理过线上问题?出现内存泄露,CPU利用率标高,应用无响应时如何处理的
最近看什么书,印象最深刻的是什么
描述下常用的重构技巧
你使用什么版本管理工具?分支(Branch)与标签(Tag)之间的区别在哪里
你有了解过存在哪些反模式(Anti-Patterns)吗
你用过的网站前端优化的技术有哪些
如何分析Thread dump
你如何理解AOP中的连接点(Joinpoint)、切点(Pointcut)、增强(Advice)、引介(Introduction)、织入(Weaving)、切面(Aspect)这些概念
你是如何处理内存泄露或者栈溢出问题的
你们线上应用的 JVM 参数有哪些
怎么提升系统的QPS和吞吐量
解释什么是 MESI 协议(缓存一致性)
谈谈 reactor 模型
Java 9 带来了怎样的新功能
Java 与 C++ 对比,C++ 或 Java 中的异常处理机制的简单原理和应用
简单讲讲 Tomcat 结构,以及其类加载器流程
虚拟内存是什么
阐述下 SOLID 原则
请简要讲一下你对测试驱动开发(TDD)的认识
CDN实现原理
Maven 和 ANT 有什么区别
UML中有哪些常用的图
Linux
Linux 下 IO 模型有几种,各自的含义是什么。
Linux 系统下你关注过哪些内核参数,说说你知道的
Linux 下用一行命令查看文件的最后五行
平时用到哪些 Linux 命令
用一行命令输出正在运行的 Java 进程
使用什么命令来确定是否有 Tomcat 实例运行在机器上
什么是 N+1 难题
什么是 paxos 算法
什么是 restful,讲讲你理解的 restful
什么是 zab 协议
什么是领域模型(domain model)?贫血模型(anaemic domain model) 和充血模型(rich domain model)有什么区别
什么是领域驱动开发(Domain Driven Development)
介绍一下了解的 Java 领域的 Web Service 框架
Web Server、Web Container 与 Application Server 的区别是什么
微服务(MicroServices)与巨石型应用(Monolithic Applications)之间的区别在哪里
描述 Cookie 和 Session 的作用,区别和各自的应用范围,Session工作原理
你常用的持续集成(Continuous Integration)、静态代码分析(Static Code Analysis)工具有哪些
简述下数据库正则化(Normalizations)
KISS,DRY,YAGNI 等原则是什么含义
分布式事务的原理,优缺点,如何使用分布式事务?
布式集群下如何做到唯一序列号
网络
HTTPS 的加密方式是什么,讲讲整个加密解密流程
HTTPS和HTTP的区别
HTTP连接池实现原理
HTTP集群方案
Nginx、lighttpd、Apache三大主流 Web服务器的区别
是否看过框架的一些代码
持久层设计要考虑的问题有哪些?你用过的持久层框架有哪些
数值提升是什么
你能解释一下里氏替换原则吗
你是如何测试一个应用的?知道哪些测试框架
传输层常见编程协议有哪些?并说出各自的特点
判断101-200之间有多少个素数,并输出所有素数
用最有效率的方法算出2乘以17等于多少
有 1 亿个数字,其中有 2 个是重复的,快速找到它,时间和空间要最优
2 亿个随机生成的无序整数,找出中间大小的值
10 亿个数字里里面找最小的 10 个
1到1亿的自然数,求所有数的拆分后的数字之和,如286 拆分成2、8、6,如1到11拆分后的数字之和 => 1 + ... + 9 + 1 + 0 + 1 + 1
一个数如果恰好等于它的因子之和,这个数就称为 “完数 “。例如6=1+2+3.编程 找出1000以内的所有完数
一个数组中所有的元素都出现了三次,只有一个元素出现了一次找到这个元素
一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高?
求100-1000内质数的和
求1到100的和的平均数
求s=a+a+aaa+aaaa+aa…a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。 求出1到100的和
算出1到40的质数,放进数组里
显示放组里的数
找出第[5]个数
删除第[9]个数,再显示删除后的第[9]个
有 3n+1 个数字,其中 3n 个中是重复的,只有 1 个是不重复的,怎么找出来。
有一组数1.1.2.3.5.8.13.21.34。写出程序随便输入一个数就能给出和前一组数字同规律的头5个数
计算指定数字的阶乘
开发 Fizz Buzz
给定一个包含 N 个整数的数组,找出丢失的整数
一个排好序的数组,找出两数之和为m的所有组合
将一个正整数分解质因数。例如:输入90,打印出90=233*5。
打印出所有的 “水仙花数 “,所谓 “水仙花数 “是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个 “水仙花数 “,因为153=1的三次方+5的三次方+3的三次方
原地交换两个变量的值
找出4字节整数的中位数
找到整数的平方根
实现斐波那契