金三已过!还有银四!《2021最新面试题讲解》备战冲冲冲!

以下为大家整理了一些 Java 的面试题,涉及大量 Java 面试知识点和相关试题。喜欢的朋友记得点赞收藏关注哦~ღ( ´・ᴗ・` )比心

一面

  • 手写ArrayList

  • 手写进制转换算法,求出一个数的二进制数 1 的个数

  • JAVA 基础,equals 和==

  • 多线程方式、threadlocal,各种锁,synchronized 和 lock

  • 设计模式、spring 类加载方式、实例保存在哪、aop ioc、反射机制6、类加载器,双亲委派模型,热部署

  • jvm 内存模型,内存结构、堆的分代算法、堆的分区、gc 算法、gc 过程

  • tcp ip,七层模型,rest 接口规范,get 和 post 区别,长度,安全9、tcp ip 的 arp 协议,两个同一网络的主机如何获得对方的 mac 地址10、负载均衡、高并发、高可用的架构

  • mysql 的引擎区别

  • redis 缓存,redis 的集群部署,热备份,主从备份,主从数据库,hash 映射找到知道指定节点

  • 了解云计算么,了解云容器 docker 么,容器和虚拟机的区别

  • 百度 java 程序员

二面

  • 自我介绍,项目中负责哪些,做了哪些

  • 项目中的数据库备份,主从数据库、集群

  • 数据库的索引原理,b+树原理,trie 树引申,二叉查找树的原理

  • 海量数据中查找一个单词,分布式计算 map reduce,或者用 hsah 映射筛选部分结果5、java 的抽象类和接口区别、java 的 hashmap,java 的内存模型,分区,分代垃圾回收算法。实例、常量放在哪里

  • int 4 个字节,double 8 个字节

  • 多线程中的wait 和sleep 区别,notify 的作用

  • 设计模式了解哪些,写一个观察者模式。实现两个接口,一个是主题一个是观察者,并写出对应方法

  • 写一个生产者消费者队列的方法,分别写两个类代表生产者和消费者,并且用队列模拟其生产消费

  • tcp ip 的四次挥手,子网掩码的作用

  • 了解 linux 么,说一下 linux 的内核锁?

  • 有没有用过 sed,使用 shell 脚本写一个将文本中的字符替换掉的脚本,大概说了一下用 grep||替换

Java 介绍

Java 诞生于 1991 年,Java 的前身叫做 Oak(橡树),但在注册商标的时候,发现这个名字已经被人注册了,后来团队的人就在咖啡馆讨论这件事该怎么办,有人灵机一动说叫 Java 如何,因为当时他们正在喝着一款叫做 Java 的咖啡。就这样,这个后来家喻户晓的名字,竟以这种“随意”的方式诞生了,并一直沿用至今。

Java 发展历程:

1990,Sun 成立了“Green Team”项目小组
1991,Java 语言前身 Oak(橡树)诞生
1995,Oak 语言更名为 Java
1996,Java 1.0 发布
1997,Java 1.1 发布
1998,Java 1.2 发布
2000,Java 1.3 发布
2000,Java 1.4 发布
2004,Java 5 发布
2006,Java 6 发布
2011,Java 7 发布
2014,Java 8 发布
2017,Java 9(非长期支持版)发布
2018.03,Java 10(非长期支持版) 发布
2018.09,Java 11(长期支持版)发布
2019.03, Java 12(非长期支持版) 发布
注:长期支持版指的是官方发布版本后的一段时间内,通常以“年”为计数单位,会对此版本进行持续维护和升级。

相关面试题

1. Java 语言都有哪些特点?

答:Java 语言包含以下特点。
面向对象,程序容易理解、开发简单、方便;
跨平台,可运行在不同服务器类型上,比如:Linux、Windows、Mac 等;
执行性能好,运行效率高;
提供大量的 API 扩展,语言强大;
有多线程支持,增加了响应和实时交互的能力;
安全性好,自带验证机制,确保程序的可靠性和安全性。

2. Java 跨平台实现的原理是什么?

答:要了解 Java 跨平台实现原理之前,必须先要了解 Java 的执行过程,Java 的执行过程如下:
Java 执行流程:Java 源代码(.java)-> 编译 -> Java 字节码(.class) ->通过 JVM(Java 虚拟机)运行 Java 程序。每种类型的服务器都会运行一个 JVM,Java 程序只需要生成 JVM 可以执行的代码即可,JVM 底层屏蔽了不同服务器类型之间的差异,从而可以在不同类型的服务器上运行一套 Java 程序。

3. JDK、JRE、JVM 有哪些区别?

答:了解了 JDK、JRE、JVM 的定义也就明白了它们之间的区别,如下所述。
JDK:Java Development Kit(Java 开发工具包)的简称,提供了 Java 的开发环境和运行环境;
JRE:Java Runtime Environment(Java 运行环境)的简称,为 Java 的运行提供了所需环境;
JVM:Java Virtual Machine(Java虚拟机)的简称,是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的,简单来说就是所有的 Java 程序都是运行在 JVM(Java 虚拟机)上的。
总体来说,JDK 提供了一整套的 Java 运行和开发环境,通常使用对象为 Java 的开发者,当然 JDK 也包含了 JRE;而 JRE 为 Java 运行的最小运行单元,一般安装在 Java 服务器上,所以 JDK 和 JRE 可以从用途上进行理解和区分。JVM 不同于 JDK 和 JRE,JVM 是 Java 程序运行的载体,Java 程序只有通过 JVM 才能正常的运行。

操作系统

  • Linux系统下你关注过哪些内核参数,说说你知道的。
  • Linux下IO模型有几种,各自的含义是什么。
  • epoll和poll有什么区别。
  • 平时用到哪些Linux命令。
  • 用一行命令查看文件的最后五行。
  • 用一行命令输出正在运行的java进程。
  • 介绍下你理解的操作系统中线程切换过程。
  • 进程和线程的区别。
  • top 命令之后有哪些内容,有什么作用。
  • 线上CPU爆高,请问你如何找到问题所在。

多线程

  • 多线程的几种实现方式,什么是线程安全。
  • volatile的原理,作用,能代替锁么。
  • 画一个线程的生命周期状态图。
  • sleep和wait的区别。
  • sleep和sleep(0)的区别。
  • Lock与Synchronized的区别 。
  • synchronized的原理是什么,一般用在什么地方(比如加在静态方法和非静态方法的区别,静
    态方法和非静态方法同时执行的时候会有影响吗),解释以下名词:重排序,自旋锁,偏向锁,轻
    量级锁,可重入锁,公平锁,非公平锁,乐观锁,悲观锁。
  • 用过哪些原子类,他们的原理是什么。
  • JUC下研究过哪些并发工具,讲讲原理。
  • 用过线程池吗,如果用过,请说明原理,并说说newCache和newFixed有什么区别,构造函数的各个参数的含义是什么,比如coreSize,maxsize等。
  • 线程池的关闭方式有几种,各自的区别是什么。
  • 假如有一个第三方接口,有很多个线程去调用获取数据,现在规定每秒钟最多有10个线程同时调用它,如何做到。
  • spring的controller是单例还是多例,怎么保证并发的安全。
  • 用三个线程按顺序循环打印abc三个字母,比如abcabcabc。
  • ThreadLocal用过么,用途是什么,原理是什么,用的时候要注意什么。
  • 如果让你实现一个并发安全的链表,你会怎么做。
  • 有哪些无锁数据结构,他们实现的原理是什么。
  • 讲讲java同步机制的wait和notify。
  • CAS机制是什么,如何解决ABA问题。
  • 多线程如果线程挂住了怎么办。
  • countdowlatch和cyclicbarrier的内部原理和用法,以及相互之间的差别(比如countdownlatch的await方法和是怎么实现的)。
  • 对AbstractQueuedSynchronizer了解多少,讲讲加锁和解锁的流程,独占锁和公平所加锁有什么不同。
  • 使用synchronized修饰静态方法和非静态方法有什么区别。
  • 简述ConcurrentLinkedQueue和LinkedBlockingQueue的用处和不同之处。
  • 导致线程死锁的原因?怎么解除线程死锁。
  • 非常多个线程(可能是不同机器),相互之间需要等待协调,才能完成某种工作,问怎么设计这种协调方案。
  • 用过读写锁吗,原理是什么,一般在什么场景下用。
  • 开启多个线程,如果保证顺序执行,有哪几种实现方式,或者如何保证多个线程都执行完再拿到结果。
  • 延迟队列的实现方式,delayQueue和时间轮算法的异同。

总结

篇幅有限!篇幅有限!关于《2021最新面试题讲解》,就聊到这儿啦…啦…啦…
以上小编所介绍的全部相关的笔记资料都已整理成册,不论是Redis面试+Redis实战pdf,还是MongDB快速上手+MongDB集群安全等手写pdf笔记,想白嫖都很so easy!!
——如果你get到了,那就点个赞转发支持一波吧!
——整理不易,白嫖私信我领取源码学习资料,100%回复分享!
——祝前程似锦,offer不断,好好学习,天天向上!
——也可以添加小助手vx:xcw18874131605 获取更多资料哦(备注:CSDN)





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值