面试百度、阿里、腾讯,这134道Java面试题你会多少?-阿里云开发者社区

开发者社区> Java架构师追风> 正文

面试百度、阿里、腾讯,这134道Java面试题你会多少?

简介: 面试百度、阿里、腾讯,这134道Java面试题你会多少?
+关注继续查看

这里一共是134道Java面试题,看看你能对几道吧!
image

  1. Java 语言有哪些特点
  2. 面向对象和面向过程的区别
  3. 关于 JVM JDK 和 JRE 最详细通俗的解答
  4. Oracle JDK 和 OpenJDK 的对比
  5. Java 和 和 C++ 的区别
    6.什么是 Java 程序的主类 应用程序和小程序的主类有何不同
  6. Java 应用程序与小程序之间有那些差别
  7. 字符型常量和字符串常量的区别
  8. 构造器 Constructor 是否可被 override
  9. 重载和重写的区别
  10. Java 面向对象编程三大特性: 封装 继承 多态
  11. String StringBuffer 和 StringBuilder 的区别是什么 String 为什么是不可变的
  12. 自动装箱与拆箱
  13. 在一个静态方法内调用一个非静态成员为什么是非法的
  14. 在 Java 中定义一个不做事且没有参数的构造方法的作用
  15. import java 和 和 javax 有什么区别
  16. 接口和抽象类的区别是什么
  17. 成员变量与局部变量的区别有那些
  18. 创建一个对象用什么运算符? 对象实体与对象引用有何不同?
  19. 一个类的构造方法的作用是什么 若一个类没有声明构造方法, 该程序能正确执行吗 ?
  20. 内存模型以及分区,需要详细到每个区放什么。
  21. .堆里面的分区:Eden,survival (from+ to),老年代,各自的特点。
  22. 对象创建方法,对象的内存分配,对象的访问定位。
  23. GC 的两种判定方法:
  24. SafePoint 是什么
  25. GC 的三种收集方法:标记清除、标记整理、复制算法的原理与特点,分别用在什么地方,如果让你优化收集方法,有什么思路?
  26. GC 收集器有哪些?CMS 收集器与 G1 收集器的特点。
  27. Minor GC 与 Full GC 分别在什么时候发生?
  28. 几种常用的内存调试工具:jmap、jstack、jconsole、jhat
  29. 类加载的几个过程:
    31.JVM 内存分哪几个区,每个区的作用是什么?

32.如和判断一个对象是否存活?(或者 GC 对象的判定方法)
33.简述 java 垃圾回收机制?
34.java 中垃圾收集的方法有哪些?
35.java 内存模型
36.java 类加载过程?

  1. 简述 java 类加载机制?
  2. 类加载器双亲委派模型机制?
    39.什么是类加载器,类加载器有哪些?

40.简述 java 内存分配与回收策率以及 Minor GC 和Major GC
41、什么是 Redis?简述它的优缺点?
42、Redis 与 memcached 相比有哪些优势?
43、Redis 支持哪几种数据类型?
44、Redis 主要消耗什么物理资源?
45、Redis 有哪几种数据淘汰策略?
46、Redis 官方为什么不提供 Windows 版本?
47、一个字符串类型的值能存储最大容量是多少?
48、为什么 Redis 需要把所有数据放到内存中?
49、Redis 集群方案应该怎么做?都有哪些方案?
50、Redis 集群方案什么情况下会导致整个集群不可用?
51、MySQL 里有 2000w 数据,redis 中只存 20w 的数据,如何保证 redis 中的数据都是热点数据?
52、Redis 有哪些适合的场景?
53、Redis 支持的 Java 客户端都有哪些?官方推荐用哪个?
54、Redis 和 Redisson 有什么关系?
55、Jedis 与 Redisson 对比有什么优缺点?
56、说说 Redis 哈希槽的概念?
57、Redis 集群的主从复制模型是怎样的?
58、Redis 集群会有写操作丢失吗?为什么?
59、Redis 集群如何选择数据库?
60、Redis 如何做内存优化?
71 、什么是 Spring 框架?Spring 框架有哪些主要模块?
72 、使用 Spring 框架能带来哪些好处?
73 、什么是控制反转(IOC) ?什么是依赖注入?
74 、请解释下 Spring 框架中的 IoC ?
75 、BeanFactory 和 和 ApplicationContext 有什么区别?
76 、Spring 有几种配置方式?
77 、如何用基于 XML 配置的方式配置 Spring ?
78 、如何用基于 Java 配置的方式配置 Spring ?
79 、怎样用注解的方式配置 Spring ?
80 、请解释 Spring Bean 的生命周期?
81 、Spring Bean 的作用域之间有什么区别?
82 、什么是 Spring inner beans ?
83 、Spring 框架中的单例 Beans 是线程安全的么?
84 、请举例说明如何在 Spring 中注入一个 Java Collection ?
85 、如何向 Spring Bean 中注入一个 Java.util.Properties
86 、请解释 Spring Bean 的自动装配?
87 、请解释自动装配模式的区别?
88 、如何开启基于注解的自动装配?
89 、请举例解释@Required 注解?
90 、请举例解释@Autowired 注解?
91 、请举例说明@Qualifier 注解?
92 、构造方法注入和设值注入有什么区别?
93 、Spring 框架中有哪些不同类型的事件?
94 、FileSystemResource 和 和 ClassPathResource 有何区别?
95 、Spring 框架中都用到了哪些设计模式?
96.RabbitMQ 中的 broker 是指什么?cluster 又是指什么?
97.RabbitMQ 上的一个 queue 中存放的 message 是否有数量限制?
98.什么是 ActiveMQ?
99.Kafka 判断一个节点是否还活着有那两个条件?
100、Kafka 消息是采用 Pull 模式,还是 Push 模式?

  1. 数据库三范式是什么?
  2. 有哪些数据库优化方面的经验?
  3. 请简述常用的索引有哪些种类?
  4. 以及在 mysql 数据库中索引的工作机制是什么?
    105.MySQL 的基础操作命令

106.mysql 的复制原理以及流程。
107.mysql 支持的复制类型?
108.mysql 中 中 varchar 与 与 char 的区别以及 varchar(50) 中的 50 代表的涵义?

  1. 表中有大字段 X (例如:text 类型),且字段 X 不会经常更新,以读为为主,将该字段拆成子表好处是什么?
    110.MySQL 中 中 InnoDB 引擎的行锁是通过加在什么上完成(或称实现)的?

111.分布式系统怎么做服务治理
112.对分布式事务的理解
113.如何实现负载均衡,有哪些算法可以实现?
114.分布式集群下如何做到唯一序列号

  1. 什么是进程
  2. 什么是线程
  3. 线程和进程有什么区别
  4. 多线程的几种实现方式
  5. 多线程中忙循环是什么
  6. 为什么要用线程池?
    121.在java中守护线程和本地线程区别?

122.Java中用到的线程调度算法是什么?
123.为什么使用Executor框架?
124.什么是原子操作?在Java Concurrency API中有哪些原子类(atomic classes)?
125.Java Concurrency API中的Lock接口(Lock interface)是什么?对比同步它有什么优势?
126.什么是阻塞队列?阻塞队列的实现原理是什么?如何使用阻塞队列来实现生产者-消费者模型?
127.什么是并发容器的实现?
128.多线程同步和互斥有几种实现方法,都是什么?
129.为什么我们调用start()方法时会执行run()方法,为什么我们不能直接调用run()方法?
130.什么是不可变对象,它对写并发应用有什么帮助?
131.Java中ConcurrentHashMap的并发度是什么?
132.JVM中哪个参数是用来控制线程的栈堆栈小的?
133.你如何在Java中获取线程堆栈?
134.volatile 变量和 atomic 变量有什么不同?
最后
欢迎大家一起交流,喜欢文章记得点个赞哟,感谢支持!

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
JavaWeb网站性能优化的相关技术
  一、提高服务器并发处理能力   我们总是希望一台服务器在单位时间内能处理的请求越多越好,这也成了web服务器的能力高低的关键所在。服务器之所以可以同时处理多个请求,在于操作系统通过多执行流体系设计,使得多个任务可以轮流使用系统资源,这些资源包括CPU、内存以及I/O等。这就需要选择一个合适的并发策略来合理利用这些资源,从而提高服务器的并发处理能力。这些并发策略更多的应用在apache、nginx、lighttpd等底层web server软件中。   二、Web组件分离   这里所说的web组件是指web服务器提供的所有基于URL访问的资源,包括动态内容,静态网页,图片,样式表,脚
7 0
Java编程——Redis详解
  Redis简介   Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。   Redis 与其他 key - value 缓存产品有以下三个特点:   Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。Redis支持数据的备份,即master-slave模式的数据备份。Redis 优势:性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。丰富的数据类型 –
5 0
Java教程:Nginx静态资源配置命令介绍
  Nginx静态资源的配置指令   listen指令   listen:用来配置监听端口。   语法   listen address[:port] [default_server]...; listen port [default_server]...;   默认值   listen *:80 | *:8000   位置   server   listen的设置比较灵活,我们通过几个例子来把常用的设置方式熟悉下:   listen 127.0.0.1:8000; // listen localhost:8000 监听指定的IP和端口   listen 127.0.0
9 0
java结合android和ios的三端非对称接口加密讲解
  算法:有rsa及aes算法   Java端处理方式:   入参处理方式   1、参数通过request.getParameter获取的话,可以通过自己定义一个filter来进行处理。   定义两个类,分别继承HttpServletRequestWrapper及Filter,将该filter配置到web.xml里面,在其他filter前面,以免影响程序获取参数的调用   public class SafeTextRequestWrapper extends HttpServletRequestWrapper {   public SafeTextRequestWrapper(H
6 0
Java 性能优化:35个小细节,让你提升Java代码运行的效率
  代码优化,一个很重要的课题。可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没用,但是,吃的小虾米一多之后,鲸鱼就被喂饱了。   代码优化也是一样,如果项目着眼于尽快无BUG上线,那么此时可以抓大放小,代码的细节可以不精打细磨;但是如果有足够的时间开发、维护代码,这时候就必须考虑每个可以优化的细节了,一个一个细小的优化点累积起来,对于代码的运行效率绝对是有提升的。
9 0
Java-Redis笔记
  Redis   1. 概念: redis是一款高性能的NOSQL系列的非关系型数据库   1.1.什么是NOSQL   NoSQL(NoSQL=Not Only SQL),意即“不仅仅是SQL”,是一项全新的数据库理念,泛指非关系型的数据库。   随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题。
6 0
Java高级软件工程师面试考纲
  如果要应聘高级开发工程师职务,仅仅懂得Java的基础知识是远远不够的,还必须懂得常用数据结构、算法、网络、操作系统等知识。因此本文不会讲解具体的技术,笔者综合自己应聘各大公司的经历,整理了一份大公司对Java高级开发工程师职位的考核纲要,希望可以帮助到需要的人。   当前,市面上有《Java XX宝典》类似的图书,而且图书中的内容都着重在讲解Java最为基础的部分,最严重的是,里面有着大量错误的内容,极具误导性。另外,网上也有各种各样的Java面试题,很多也是着重在Java语言基础上。实际上,如果要应聘高级开发工程师职务,仅仅懂得Java的基础知识是远远不
7 0
SpringBoot 如何在日志中增加 trace id 用于链路追踪
SpringBoot 如何在日志中增加 trace id 用于链路追踪
6 0
Java 并发与高并发知识学习
  一、并发与高并发基本概念   并发:   从业务上简单解释就是多个用户(编码层面就是多个线程)共同竞争(修改或读取)一个资源,并发问题更多体现在业务代码操作数据上,例如:秒杀场景,瞬间会有大量用户共同抢购一个商品,这时候如果没有并发控制,则极有可能出现超卖情况,即库存被扣成了负数。   从操作系统以及硬件层面解释并发:有多个线程运行在CPU上,当在单核处理上运行的时候,多个线程在单核处理上交替执行(伪并行),不断的从内存中换入换出,在多核处理器上每个线程会被分配到某一个内核上运行(并行),我觉得更适合叫并行计算。
6 0
Django model字段类型解析
  Model字段认识   V=models.CharField(max_length=None<, **options>)    #varchar   V=models.EmailField()    #varchar   V=models.URLField()    #varchar   V=models.FileField(upload_to=None<, max_length=100, **options>)    #varchar #upload_to指定保存目录可带格式,   V=models.ImageField(upload_to=None<, height_fie
5 0
+关注
Java架构师追风
欢迎关注公众号:程序员追风。领取一线大厂Java面试题资料。
162
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载