priorityqueue 的 add和offer方法有区别吗_互联网大厂面试题:这些面试都会吗?就想要40k?...

前言:

本套Java面试题大全总共分为以下这十三个模块:

  • Java基础知识面试题
  • Java异常面试题
  • JVM面试题
  • Spring面试题
  • Spring MVC面试题
  • Spring Boot面试题
  • Spring Cloud面试题
  • MyBatis面试题
  • Redis面试题
  • Dubbo面试题
  • Tomcat面试题
  • ZooKeeper面试题
  • Netty面试题

一、Java基础知识面试题

1、Java概述

  • 何为编程?
  • 什么是Java?
  • jdk1.5之后的三大版本?
  • JVM、JRE和JDK的关系?
  • 什么是跨平台性?原理是什么?
  • Java语言有哪些特点?
  • 什么是字节码?采用字节码的最大好处是什么?
  • 什么是Java程序的主类?应用程序和小程序的主类有何不同?
  • Java应用程序与小程序之间有那些差别?
  • Java和C++的区别?
  • Oracle JDK 和 OpenJDK 的对比?

2、基础语法

①. 数据类型

  • Java有哪些数据类型
  • switch 是否能作用在 byte 上,是否能作用在 long 上,是否能作用在 String 上
  • 用最有效率的方法计算 2 乘以 8
  • Math.round(11.5) 等于多少?Math.round(-11.5)等于多少
  • float f=3.4;是否正确
  • short s1 = 1; s1 = s1 + 1;有错吗?short s1 = 1; s1 += 1;有错吗

②. 编码

  • Java语言采用何种编码方案?有何特点?

③. 注释

  • 什么Java注释

④. 访问修饰符

  • 访问修饰符 public,private,protected,以及不写(默认)时的区别

⑤. 运算符

  • &和&&的区别

⑥. 关键字

  • Java 有没有 goto
  • final 有什么用?
  • final finally finalize区别
  • this关键字的用法
  • super关键字的用法
  • this与super的区别
  • static存在的主要意义
  • static的独特之处
  • static应用场景
  • static注意事项

⑦. 流程控制语句

  • break ,continue ,return 的区别及作用
  • 在 Java 中,如何跳出当前的多重嵌套循环

3、面向对象

①. 面向对象概述

  • 面向对象和面向过程的区别

②. 面向对象三大特性

  • 面向对象的特征有哪些方面
  • 什么是多态机制?Java语言是如何实现多态的?
  • 面向对象五大基本原则是什么(可选)

③. 类与接口

  • 抽象类和接口的对比
  • 普通类和抽象类有哪些区别?
  • 抽象类能使用 final 修饰吗?
  • 创建一个对象用什么关键字?对象实例与对象引用有何不同?

④. 变量与方法

  • 成员变量与局部变量的区别有哪些
  • 在Java中定义一个不做事且没有参数的构造方法的作用
  • 在调用子类构造方法之前会先调用父类没有参数的构造方法,其目的是?
  • 一个类的构造方法的作用是什么?若一个类没有声明构造方法,改程序能正确执行吗?为什么?
  • 构造方法有哪些特性?
  • 静态变量和实例变量区别
  • 静态变量与普通变量区别
  • 静态方法和实例方法有何不同?
  • 在一个静态方法内调用一个非静态成员为什么是非法的?
  • 什么是方法的返回值?返回值的作用是什么?

⑤. 内部类

  • 什么是内部类?
  • 内部类的分类有哪些
  • 内部类的优点
  • 内部类有哪些应用场景
  • 局部内部类和匿名内部类访问局部变量的时候,为什么变量必须要加上final?
  • 内部类相关,看程序说出运行结果

⑥. 重写与重载

  • 构造器(constructor)是否可被重写(override)
  • 重载(Overload)和重写(Override)的区别。重载的方法能否根据返回类型进行区分?

⑦. 对象相等判断

  • == 和 equals 的区别是什么
  • hashCode 与 equals (重要)
  • 对象的相等与指向他们的引用相等,两者有什么不同?

⑧. 值传递

  • 当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递
  • 为什么 Java 中只有值传递
  • 值传递和引用传递有什么区别

⑨. Java包

  • JDK 中常用的包有哪些
  • import java和javax有什么区别

4、IO流

  • java 中 IO 流分为几种?
  • BIO,NIO,AIO 有什么区别?
  • Files的常用方法都有哪些?

5、反射

  • 什么是反射机制?
  • 反射机制优缺点
  • 反射机制的应用场景有哪些?
  • Java获取反射的三种方法

6、网络编程

7、常用API

①. String相关

  • 字符型常量和字符串常量的区别
  • 什么是字符串常量池?
  • String 是最基本的数据类型吗
  • String有哪些特性
  • String为什么是不可变的吗?
  • String真的是不可变的吗?
  • 是否可以继承 String 类
  • String str="i"与 String str=new String("i")一样吗?
  • String s = new String("xyz");创建了几个字符串对象
  • 如何将字符串反转?
  • 数组有没有 length()方法?String 有没有 length()方法
  • String 类的常用方法都有那些?
  • 在使用 HashMap 的时候,用 String 做 key 有什么好处?
  • String和StringBuffer、StringBuilder的区别是什么?String为什么是不可变的

②. Date相关

③. 包装类相关

  • 自动装箱与拆箱
  • int 和 Integer 有什么区别
  • Integer a= 127 与 Integer b = 127相等吗

8、常用工具类库

9、单元测试

10、日志

二、Java异常面试题

  1. Error 和 Exception 区别是什么?
  2. 运行时异常和一般异常(受检异常)区别是什么?
  3. JVM 是如何处理异常的?
  4. throw 和 throws 的区别是什么?
  5. final、finally、finalize 有什么区别?
  6. NoClassDefFoundError 和 ClassNotFoundException 区别?
  7. try-catch-finally 中哪个部分可以省略?
  8. try-catch-finally 中,如果 catch 中 return 了,finally 还会执行吗?
  9. 类 ExampleA 继承 Exception,类 ExampleB 继承ExampleA?
  10. 常见的 RuntimeException 有哪些?
  11. Java常见异常有哪些?

三、JVM面试题

1、Java内存区域

  • 说一下 JVM 的主要组成部分及其作用?
  • 说一下 JVM 运行时数据区?
  • 深拷贝和浅拷贝?
  • 说一下堆栈的区别?
  • 队列和栈是什么?有什么区别?

2、HotSpot虚拟机对象探秘

  • 对象的创建
  • 为对象分配内存
  • 处理并发安全问题
  • 对象的访问定位

3、内存溢出异常

  • Java会存在内存泄漏吗?请简单描述

4、垃圾收集器

  • 简述Java垃圾回收机制
  • GC是什么?为什么要GC
  • 垃圾回收的优点和原理。并考虑2种回收机制
  • 垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?
  • Java 中都有哪些引用类型?
  • 怎么判断对象是否可以被回收?
  • 在Java中,对象什么时候可以被垃圾回收
  • JVM中的永久代中会发生垃圾回收吗
  • 说一下 JVM 有哪些垃圾回收算法?
  • 说一下 JVM 有哪些垃圾回收器?
  • 详细介绍一下 CMS 垃圾回收器?
  • 新生代垃圾回收器和老年代垃圾回收器都有哪些?有什么区别?
  • 简述分代垃圾回收器是怎么工作的?

5、内存分配策略

①. 简述java内存分配与回收策率以及Minor GC和Major GC

  • 对象优先在 Eden 区分配
  • 大对象直接进入老年代
  • 长期存活对象将进入老年代

6、虚拟机类加载机制

  • 简述java类加载机制?
  • 描述一下JVM加载Class文件的原理机制
  • 什么是类加载器,类加载器有哪些?
  • 说一下类装载的执行过程?
  • 什么是双亲委派模型?

7、JVM调优

  • 说一下 JVM 调优的工具?
  • 常用的 JVM 调优的参数都有哪些?

Talk is cheap,show me the 面试题:

阿里

阿里除了考查查常规的算法、缓存、数据库等技术知识外,还有紧跟热点的场景设计题:

请解释下为什么鹿晗发布恋情的时候,微博系统会崩溃,如何解决?

现有一批邮件需要发送给订阅顾客,且有一个集群(集群的节点数不定,会动态扩容缩容)来负责具体的邮件发送任务,如何让系统尽快地完成发送?

有一批气象观测站,现需要获取这些站点的观测数据,并存储到 Hive 中。但是气象局只提供了 API 查询,每次只能查询单个观测点。那么如果能够方便快速地获取到所有的观测点的数据?

如何实现两金额数据相加(最多小数点两位)

还有出题人的参考答题思路:

d4ad04a4e007cfbbf50d280557384e50.png

华为

华为的面试题涉及不少网络知识,看着像是笔试题?

在 V.35 和 V.24 规程中,控制信号 RTS 表示?

路由器作为网络互连设备,必须具备以下哪些特点?

在交换机中用户权限分为几个级别?

某公司申请到一个 C 类 IP 地址,但要连接 6 个的子公司,最大的一个子公司有 26 台计算机,每个子公司在一个网段中,则子网掩码应设为?

百度

百度的算法题一个接一个的:

从 300 万字符串中找到最热门的 10 条。

如何找出字典中的兄弟单词。给定一个单词a,如果通过交换单词中字母的顺序可以得到另外的单词 b,那么定义 b 是 a 的兄弟单词。现在给定一个字典,用户输入一个单词,如何根据字典找出这个单词有多少个兄弟单词?

设计 DNS 服务器中 Cache 的数据结构。要求设计一个 DNS 的 Cache 结构,要求能够满足每秒 5000 以上的查询,满足 IP 数据的快速插入,查询的速度要快。(题目还给出了一系列的数据,比如:站点数总共为 5000 万,IP 地址有 1000 万等等)

给 40 亿个不重复的 unsigned int 的整数,没排过序的,然后再给几个数,如何快速判断这几个数是否在那 40 亿个数当中?

……

MySQL 专项:

  • 视图的作用,视图可以更改么?
  • 数据库优化的思路是什么?
  • 存储过程与触发器的区别是什么?

Redis 专项:

  • Redis 相比 Memcached 有哪些优势?
  • MySQL 里有 2000w 数据,Redis 中只存 20w 的数据,如何保证 Redis 中的数据都是热点数据?
  • Redis 的同步机制了解么?

MongDB

  • 在哪些场景使用MongoDB?
  • 为什么要在MongoDB中使用分析器?
  • Mongodb存储特性与内部原理?

Zookeeper:

  • Zookeeper通知机制
  • ZK集群下Server工作状态
  • 分布式通知和协调

Nginx:

  • 在 Nginx 中,如何使用未定义的服务器名称来阻止处理请求?
  • 解释 Nginx 是否支持将请求压缩到上游?
  • Nginx 中多个 work 进程是如何监听同一个端口的?如何处理客户连接的惊群问题?
  • ……
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值