阿里、腾讯、百度、华为、京东、搜狗、滴滴 上10家试题汇总(史上最全)


疯狂创客圈整理了数百道面试题, 不光是为了面试,如果能全部解答, JAVA的技术水平也是傲视群雄了。

后续还会不断更新。有些题目挺难的,欢迎大家来交流答案。


[第一部分] JAVA基础

[第一篇] 面向对象

[第1题] 面向对象是什么?

[第2题] 类加载的过程

[第3题] 类加载器有哪些

[第4题] 双亲委派模式

[第5题] 编写自己的类加载器

[第6题] 对象的创建

[第7题] jvm的优化

[第8题] 什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”?

[第9题] JDK和JRE的区别是什么?

[第10题] ”static”关键字是什么意思?Java中是否可以覆盖(override)一个private或者是static的方法?

[第11题] 是否可以在static环境中访问非static变量?

[第12题] Java支持的数据类型有哪些?什么是自动拆装箱?

[第13题] Java中的方法覆盖(Overriding)和方法重载(Overloading)是什么意思?

[第14题] Java中,什么是构造函数?什么是构造函数重载?什么是复制构造函数?

[第15题] Java支持多继承么?

[第16题] 接口和抽象类的区别是什么?

[第17题] 10.什么是值传递和引用传递?

[第18题] 我们能在 Switch 中使用 String 吗?

[第19题] 20.Java 中的构造器链是什么?

[第20题] 64 位 JVM 中,int 的长度是多数?

[第21题] 32 位和 64 位的 JVM,int 类型变量的长度是多数?

[第22题] “a==b”和”a.equals(b)”有什么区别?

[第23题] a.hashCode() 有什么用?与 a.equals(b) 有什么关系?

[第24题] final、finalize 和 finally 的不同之处?

[第25题] Java 中的编译期常量是什么?使用它又什么风险?

[第26题] 用最有效率的方法计算2乘以8?

[第二篇] 异常处理

[第1题] Java中的两种异常类型是什么?他们有什么区别?

[第2题] Java中Exception和Error有什么区别?

[第3题] throw和throws有什么区别?

[第4题] 异常处理的时候,finally代码块的重要性是什么?(译者注:作者标题的序号弄错了)

[第5题] 异常处理完成以后,Exception对象会发生什么变化?

[第6题] finally代码块和finalize()方法有什么区别?

[第7题] .Java内存泄露的问题调查定位:

[第8题] String StringBuilder StringBuffer对比;

[第8题] Java如何调用c、c++语言;

[第10题] 接口与回调;回调的原理;写一个回调demo;

[第11题] 泛型原理,举例说明;解析与分派;

[第12题] 抽象类与接口的区别;应用场景;抽象类是否可以没有方法和属性;

[第13题] 静态属性和静态方法是否可以被继承?是否可以被重写?以及原因?

[第14题] 修改对象A的equals方法的签名,那么使用HashMap存放这个对象实例的时候,会调用哪个equals方法;

[第15题] 说说你对泛型的了解;

[第16题] Java的异常体系;

[第17题] 如何控制某个方法允许并发访问线程的个数;

[第18题] 动态代理的区别,什么场景使用;

[第三篇] 不可变对象

[第1题] 什么是不可变对象(immutable object)?Java 中怎么创建一个不可变对象?

[第2题] 我们能创建一个包含可变对象的不可变对象吗?

[第四篇] 数据类型

[第1题] 请写出下面几个表达式的结果,答案可以用10进制或16进制书写

[第2题] &和&&的区别?

[第3题] Java 中应该使用什么数据类型来代表价格?

[第4题] 怎么将 byte 转换为 String?

[第5题] Java 中 bytes 与其他类型的转换?

[第6题] 我们能将 int 强制转换为 byte 类型的变量吗?如果该值大于 byte 类型的范围,将会出现什么现象?

[第7题] 存在两个类,B 继承 A,C 继承 B,我们能将 B 转换为 C 么?如 C = (C) B;

[第8题] 哪个类包含 clone 方法?是 Cloneable 还是 Object?

[第9题] a = a + b 与 a += b 的区别

[第10题] 我能在不进行强制转换的情况下将一个 double 值赋值给 long 类型的变量吗?

[第11题] 3*0.1 == 0.3 将会返回什么?true 还是 false?

[第12题] int 和 Integer 哪个会占用更多的内存?

[第13题] 为什么 Java 中的 String 是不可变的(Immutable)?

[第14题] String和StringBuilder、StringBuffer的区别?

[第五篇] 集合类

[第15题] Java集合类框架的基本接口有哪些?

[第16题] 为什么集合类没有实现Cloneable和Serializable接口?

[第17题] 什么是迭代器(Iterator)?

[第18题] Iterator和ListIterator的区别是什么?

[第19题] 快速失败(fail-fast)和安全失败(fail-safe)的区别是什么?

[第20题] Java中的HashMap的工作原理是什么?

[第21题] 当两个对象的hashcode相同会发生什么?

[第22题] hashCode()和equals()方法的重要性体现在什么地方?

[第23题] HashMap的扩容机制以及默认大小为何是2次幂 原

[第24题] HashMap的长度为什么设置为2的n次方?

[第25题] HashMap和Hashtable有什么区别?

[第26题] 如何决定选用HashMap还是TreeMap?

[第27题] HashMap,HashTable,ConcurrentHashMap的区别

[第28题] 极高并发下HashTable和ConcurrentHashMap哪个性能更好,为什么,如何实现的。

[第29题] ArrayList和数组(Array)和有什么区别?什么时候应该使用Array而不是ArrayList?

[第30题] ArrayList和LinkedList有什么区别?

[第31题] ArrayList和Vector有何异同点?

[第32题] Comparable和Comparator接口是干什么的?列出它们的区别。

[第33题] 什么是Java优先级队列(Priority Queue)?

[第34题] 30.你了解大O符号(big-O notation)么?你能给出不同数据结构的例子么?

[第35题] 如何权衡是使用无序的数组还是有序的数组?

[第36题] Java集合类框架的最佳实践有哪些?

[第37题] Enumeration接口和Iterator接口的区别有哪些?

[第38题] HashSet和TreeSet有什么区别?

[第39题] List、Set、Map 和 Queue 之间的区别

[第40题] poll() 方法和 remove() 方法的区别?

[第41题] Java 中 LinkedHashMap 和 PriorityQueue 的区别是什么?

[第42题] ArrayList 与 LinkedList 的不区别?

[第43题] 用哪两种方式来实现集合的排序?

[第44题] Java 中怎么打印数组?(answe

[第45题] Java 中的 LinkedList 是单向链表还是双向链表?

[第46题] Java 中的 TreeMap 是采用什么树实现的?

[第47题] Hashtable 与 HashMap 有什么不同之处?

[第48题] Java 中的 HashSet,内部是如何工作的?

[第49题] 写一段代码在遍历 ArrayList 时移除一个元素?

[第50题] 我们能自己写一个容器类,然后使用 for-each 循环码?

[第51题] ArrayList 和 HashMap 的默认大小是多数?

[第52题] 集合框架中的泛型有什么优点?

[第53题] 为何Collection不从Cloneable和Serializable接口继承?

[第54题] 为何Map接口不继承Collection接口?

[第二部分] JVM

[第1题]  string分析1000次循环subString用了多少内存;

[第2题]  JVM的内存结构

[第3题] .Java的内存模型以及GC算法

[第4题] Java中垃圾回收有什么目的?什么时候进行垃圾回收?

[第5题] System.gc()和Runtime.gc()会做什么事情?

[第6题] finalize()方法什么时候被调用?析构函数(finalization)的目的是什么?

[第7题] 如果对象的引用被置为null,垃圾收集器是否会立即释放对象占用的内存?

[第8题] Java堆的结构是什么样子的?什么是堆中的永久代(Perm Gen space)?

[第9题] 串行(serial)收集器和吞吐量(throughput)收集器的区别是什么?

[第10题] 在Java中,对象什么时候可以被垃圾回收?

[第11题] JVM的永久代中会发生垃圾回收么?

[第12题] Serial 与 Parallel GC之间的不同之处?

[第13题] Java 中 WeakReference 与 SoftReference的区别?

[第14题] JVM 选项 -XX:+UseCompressedOops 有什么作用?为什么要使用?

[第15题] 怎样通过 Java 程序来判断 JVM 是 32 位 还是 64 位?

[第16题] 32 位 JVM 和 64 位 JVM 的最大堆内存分别是多数?

[第17题] JRE、JDK、JVM 及 JIT 之间有什么不同?

[第18题] 解释 Java 堆空间及 GC?

[第19题] 你能保证 GC 执行吗?

[第20题] 怎么获取 Java 程序使用的内存?堆使用的百分比?

[第21题] Java 中堆和栈有什么区别?(答案)

[第22题] 解释内存中的栈(stack)、堆(heap)和方法区(method area)的用法。

[第23题] 动态代理的两种方式,以及区别

[第24题]简述class加载各阶段过程;class;loader有哪些模型;

[第25题]jvm运行时数据区域有哪几部分组成,各自作用;

[第26题]gc算法有哪些;gc收集器有哪些;

[第27题]简述常用的JDK命令行工具;

[第28题]简述字节码文件组成;

[第29题]gc:内存模型;

[第三部分]

[第55题] 给定一个txt文件,如何得到某字符串出现的次数

[第56题] 讲讲IO里面的常见类,字节流,字符流、接口、实现类、方法阻塞

[第57题] 什么是流,按照传输单位,分成哪两种流,并且他们的父类叫什么流是指数据的传输

[第58题] 什么是节点流,什么是处理流,它们各有什么用处,处理流的创建有什么特征

[第59题] String编码UTF-8和GBK的区别

[第60题] 什么时候使用字节流,什么时候    使用字符流

[第61题] 递归读取文件夹的文件,代码怎么实现

[第62题] 什么是比特(Bit),什么是字节(Byte),什么是字符(Char),它们长度是多少,各有什么区别

[第63题] BufferedReader属于哪种流,它主要是用来做什么的,它里面有那些经典的方法

[第64题] 如果我要对字节流进行大量的从硬盘读取,要用那个流,为什么

[第65题] 如果我要打印出不同类型的数据到数据源,那么最适合的流是那个流,为什么

[第66题] 怎么样把我们控制台的输出改成输出到一个文件里面,这个技术叫什么

[第67题] 怎么样把输出字节流转换成输出字符流,说出它的步骤

[第68题] 把包括基本类型在内的数据和字符串按顺序输出到数据源,或者按照顺序从数据源读入,一般用哪两个流

[第69题] 把一个对象写入数据源或者从一个数据源读出来,用哪两个流

[第70题] 什么叫对象序列化,什么是反序列化,实现对象序列化需要做哪些工作

[第71题] 在实现序列化接口是时候一般要生成一个serialVersionUID字段,它叫做什么,一般有什么用

[第72题] OutputStream里面的write()是什么意思,write(byte b[], int off, int len)这个方法里面的三个参数分别是什么意思

[第73题] IO流一般需要不需要关闭,如果关闭的话在用什么方法,一般要在那个代码块里面关闭比较好,处理流是怎么关闭的,如果有多个流互相调用传入是怎么关闭的?

[第74题] 写一段代码读取一个序列化的对象一般使用哪种Stream?

[第75题] io流怎样读取文件的?

[第76题] FileInputStream 创建详情,就是怎样的创建不报错,它列出了几种形式!

[第77题] 用io流中的技术,指定一个文件夹的目录,获取此目录下的所有子文件夹路径

[第78题] 请问你在什么情况下会在你得java代码中使用可序列化? 如何实现java序列化?

[第79题] 问:简单说说你平时使用的 Java IO 流中涉及到了哪些设计策略和设计模式?

[第80题] 问:什么是缓冲区?有什么作用?

[第81题] 问:字节流和字符流哪个好?怎么选择?

[第82题] 说说对IO流的理解

[第四部分] 设计模式

[第1题] 手写单例模式(饿汉和饱汉模式)和工厂模式?

[第2题] 策略模式

[第3题] 工厂模式

[第4题] AOP与IOC的概念(即spring的核心)

[第5题] 你所知道的设计模式有哪些;

[第6题] 单例模式

[第五部分] 算法

[第1题] 冒泡排序

[第2题] 二分查找

[第3题] 数据结构必知必会

[第4题] 你知道索引使用的是哪种数据结构实现吗?

[第5题] 堆和栈在内存中的区别是什么(数据结构方面以及实际实现方面);

[第6题] 最快的排序算法是哪个?

[第7题] 给阿里2万多名员工按年龄排序应该选择哪个算法?

[第8题] 堆和树的区别;

[第9题] 写出快排代码;

[第10题] 链表逆序代码;

[第11题] 求1000以内的水仙花数以及40亿以内的水仙花数;

[第12题] 子串包含问题(KMP 算法)写代码实现;

[第13题] 万亿级别的两个URL文件A和B,如何求出A和B的差集C,(Bit映射->hash分组->多文件读写效率->磁盘寻址以及应用层面对寻址的优化)

[第14题] 蚁群算法与蒙特卡洛算法;

[第15题] 写出你所知道的排序算法及时空复杂度,稳定性;

[第16题] 百度POI中如何试下查找最近的商家功能(坐标镜像+R树)。

[第六部分] 多线程

[第9题] 说说对多线程的理解

[第10题] 进程和线程的区别是什么?

[第11题] 创建线程有几种不同的方式?你喜欢哪一种?为什么?

[第12题] 概括的解释下线程的几种可用状态。

[第13题] 同步方法和同步代码块的区别是什么?

[第14题] synchronized关键字的用法,优缺点

[第15题] Lock接口有哪些实现类,使用场景是什么

[第16题] ABC三个线程如何保证顺序执行

[第17题] 在监视器(Monitor)内部,是如何做线程同步的?程序应该做哪种级别的同步?

[第18题] 悲观锁、乐观锁的优缺点,CAS有什么缺陷,该如何解决

[第19题] ABC三个线程如何保证顺序执行

[第20题] 假如有Thread1、Thread2、Thread3、Thread4四条线程分别统计C、D、E、F四个盘的大小,所有线程都统计完毕交给Thread5线程去做汇总,应当如何实现?

[第21题] 线程池的问题

[第22题] 线程的状态都有哪些(五大状态)

[第23题] 什么是死锁(deadlock)? 死锁的四个必要条件?

[第24题] 如何确保N个线程可以访问N个资源同时又不导致死锁?

[第25题] 什么是线程局部变量?

[第26题] 用 wait-notify 写一段代码来解决生产者-消费者问题?

[第27题] 用 Java 写一个线程安全的单例模式(Singleton)?

[第28题] Java 中 sleep 方法和 wait 方法的区别?

[第29题] notify()和notifyAll()的区别

[第30题] ThreadLocal的了解,实现原理。

[第31题] Java 中 ++ 操作符是线程安全的吗?

[第32题]简述synchronized?  Object;Monitor机制

[第七部分] 高并发

[第1题] 简述AQS原理;

[第2题] CAS又是怎么保证原子性的;

[第3题] 简述nio原理;

[第4题] 简述Reactor模式;

[第5题] Atomic包的实现原理是什么;

[第6题] 如何实现一个定时调度和循环调度的工具类。但提交任务处理不过来的时候,拒绝机制应该如何处理;线程池默认有哪几种拒绝机制;

[第7题] 如何实现一个ThreadLocal;

[第8题] 说说你了解的一个线程安全队列;

[第9题] 同步的方法;多进程开发以及多进程应用场景;

[第10题] 在Java中wait和seelp方法的不同;

[第11题] synchronized 和volatile 关键字的作用

[第12题] 服务器只提供数据接收接口,在多线程或多进程条件下,如何保证数据的有序到达;

[第13题] ThreadLocal原理,实现及如何保证Local属性;

[第八部分] 操作系统

[第32题] 简述你所知道的Linux:

[第九部分] web 开发

[第33题] servlet执行流程

[第34题] springMVC的执行流程

[第35题] Struts工作流程

[第36题] 对ajax的理解

[第37题] Tomcat服务器优化

[第38题] HTTP协议

[第39题] TCP/UDP协议

[第40题] Spring使用了哪些设计模式

[第41题] session和cookie的区别和联系,session的生命周期,多个服务部署时session管理。

[第42题] struts1和struts2的区别

[第43题] struts2和springMVC的区别

[第44题] spring框架中需要引用哪些jar包,以及这些jar包的用途

[第45题] srpingMVC的原理

[第46题] springMVC注解的意思

[第47题] spring中beanFactory和ApplicationContext的联系和区别

[第48题] spring注入的几种方式

[第49题] spring如何实现事物管理的

[第50题] springIOC和AOP的原理

[第51题] hibernate中的1级和2级缓存的使用方式以及区别原理

[第52题] spring中循环注入的方式

[第53题] 常见编码方式;utf-8编码中的中文占几个字节;int型几个字节;

[第54题] 实现一个Json解析器(可以通过正则提高速度);

[第55题] MVC MVP MVVM; 常见的设计模式;写出观察者模式的代码;

[第56题] TCP的3次握手和四次挥手;TCP与UDP的区别;

[第57题] HTTP协议;HTTP1.0与2.0的区别;HTTP报文结构;

[第58题] HTTP与HTTPS的区别以及如何实现安全性;

[第59题] 都使用过哪些框架、平台;

[第60题] 都使用过哪些自定义控件;

[第61题] 介绍你做过的哪些项目;

[第十部分] 数据库

[第1题] 说一说高并发处理

[第2题] 说一说事物的理解

[第3题] 说一说索引的分类

[第4题] 存储引擎的 InnoDB 与 MyISAM

[第5题] 说一说常见的数据库优化手段

[第6题] 索引的优缺点,什么字段上建立索引

[第7题] 说一说数据库连接池

[第8题] 说一说你平常是如何针对具体的SQL做优化;

[第9题]  mysql的存储引擎有哪些,区别;




无编程不创客,无案例不学习。疯狂创客圈,一大波高手正在交流、学习中!

疯狂创客圈 Java 死磕系列: 【CSDN 总入口】 【博客园 总入口

JAVA NIO  死磕系列:NIO简介、NIO  Buffer、 NIO channel、 NIO Selector

reactor 模式 死磕系列: Reactor模式

Netty 源码 死磕系列: 环境搭建 、  EventLoop、 ChannelHandler 、 Pipeline模式、Pipeline inbound、 Pipeline outbound

Java 类加载器 死磕系列:双亲委托、 文件系统类加载器、 网络类加载器、 加密类加载器、 AOP 类加载器

面试题死磕系列:Java面试必知必会200题 |   阿里、腾讯、百度、华为、京东、搜狗和滴滴最新面试题汇集

免费资源: 数百G免费视频资源,请参见共享《疯狂创客圈》QQ群文件

posted @ 2018-11-04 18:02  疯狂创客圈  阅读(2044)  评论(0编辑  收藏  举报