Code前端首页关于Code前端联系我们

Java开发岗位面试题,从基础到并发11类总结

terry 2年前 (2023-09-25) 阅读数 50 #后端开发

1. Java 基础

1。为什么字符串类是final

2. HashMap源码、实现原理及底层结构。

3。说说你熟悉的一些Java集合类:List、Set、Queue、Map实现类。

4。描述ArrayList和LinkedList的实现和区别

5。 Java中的队列是什么以及有什么区别。

6。反射和类加载器之间的区别。

7。 Java7 和 Java8 新功能

8。 Java数组和链表结构的性能效率,在什么情况下(从头开始、从尾部开始、从中间开始)以及什么操作(插入、查找、删除)的效率。

9。排查定位Java内存泄漏问题:jmap、使用jstack等

10.字符串、字符串构建器和字符串缓冲区之间的区别

11。哈希表和哈希图之间的区别

13。异常结构、运行时异常和运行时异常,分别给出示例。

14。 String类的常用方法

16. Java 中的引用类型有哪些

17.抽象类和接口之间的区别

18。 Java基本类型和字节大小

19.Hashtable、HashMap和ConcurrentHashMap实现原理和线程安全问题。

20。如果不让你使用Java Jdk提供的工具自己实现地图你会怎么办?关于HashMap源码我已经讲了很长时间了。做这件事的时候我会学习一下HashMap原理,讲一下HashMap的实现。

21。如果出现哈希冲突怎么办?解决哈希冲突的方法有哪些?

22。 HashMap冲突非常严重,性能最差。你如何解决它?将其从 O(n) 改进为 log(n)。

23。重新哈希

24。如何重写hashCode()和equals()生成算法和方法。

2。 Java IO

1。我们会讲IO常用类、字节流、字符流、接口、实现类和方法阻塞。

2。谈谈蔚来

3。 UTF-8和GBK字符串编码有什么区别?

4。什么时候使用字节流,什么时候使用字符流?

5。如何实现代码递归读取文件夹中的文件?

3。 Java Web

1。多业务实现中session与cookie的区别与联系、session生命周期以及session管理。

2。一些 servlet 问题

3。与在线服务相关的问题

4。 jdbc连接,forname方法步骤如何声明事务使用。 ?已经做了什么

3.介绍JVM的7个区域,然后解释每个区域中可能导致内存溢出的情况。

4。介绍GC和GC Root异常参考

5。我们会讲classload的加载方式和加载机制,从程序运行时数据区到内存分配、字符串常量池、JVM垃圾回收机制、算法和范围。

6。 jvm如何分配直接内存,新对象如何不分配在堆上,而是分配在栈上,以及连续堆分析。 ?

10。谁获得 GC 以及何时获得 GC。?说说mybatis连接

3. spring框架中必须参考哪些can包装以及这些can包装的用途

4.弹簧原理MVC

5。 Spring MVC 注解的含义

6. spring中的beanFactory与ApplicationContext的连接及区别

7.弹簧注射的几种方式

8. spring是如何实现事务管理的

9. springIOC

10。 Spring AOP

11原理。 hibernate如何使用1级和2级缓存以及区别原理(理解Lazy-Load)

12. Hibernate的核心架构,五个核心接口,三个hibernate对象状态转换,以及事务管理。

6。多线程

1。当Java创建了线程后,调用start()方法和直接调用run()是不同的

2。常见线程池模式及不同线程池的使用场景

3.当线程池(例如newFixedThreadPool)中的线程数量达到最大值时会发生什么?基本原则。

4。多线程通信中的同步问题。同步锁定对象,这是许多特定于同步的问题的结果。比如同一个类的不同方法有synchronized锁以及对象是否可以同时访问等。或者类的静态构造函数和同步后锁定的效果。

5。理解可重入锁的含义以及ReentrantLock和synchronized的区别

6。同步数据结构如并发了解HashMap源码以及为什么同步高效的内部实现原理。

7。了解并使用线程安全操作的关键字,例如atominteger 和Volatile

8。线程间通信,等待并报告

9。使用计划线程

10。场景:在主线程中,线程需要在主线程完成之前启动大量(很多很多)子线程。以不同的方式考虑效率。

11。进程和线程之间的区别

12.什么是线程安全?

13。多个螺纹

14。并发和同步接口或方法

15。 HashMap线程安全吗?为什么不是线程安全的? ConcurrentHashMap,线程安全,为什么安全?底层实现是什么?

16。 J.U.C. 常规课程的使用深入探索ThreadPool;使用阻塞队列。 (take 和 poll 之间的区别以及 sell 和 Offer 之间的区别);原子类的实现。

17。我们先简单介绍一下多线程的情况,先从线程的创建开始。那么如何控制多线程中常用的同步过程、方法和结构

18。了解变化

19。实现多线程同步的方法有多种,我们先来说说一些常见的线程方法。

7。网络

1。 http是无状态通信。 http请求方式有哪些?您可以自己定义新的查询方法吗?

2。 Socket通信,以及处理长连接、分包、异常断开等。

3。采用socket通信模型,AIO和NIO。

4。 Socket框架网络使用以及NIO实现原理为什么是异步非阻塞的。

5。同步和异步、阻塞和非阻塞。

6。 OSI七层模型,包括TCP和IP的一些基础知识

7。 http

8 之间的后获取差异。讨论http、tcp、udp之间的关系和区别。

9。下面说一下访问浏览器的过程。

10。 HTTP协议、HTTPS协议、SSL协议及完整的交互流程;

11。 TCP 拥塞,快速返回,丢弃 IP 数据包

12。 https处理、对称加密和非对称加密流程

13.头部的特征和差异

14。下面说一下访问浏览器的过程。

8。数据库 MySql

1。 MySql

2 存储引擎之间的差异。单一索引、联合索引、主键索引

3。 Mysql中如何分表以及分表后是否要根据条件分页如何查询

4.表拆分后,我希望一个ID在多个表中自动递增,效率达到

5。 MySql主从实时备份同步配置及原理(从库读取主库binlog),读写分离。

6。编写 SQL 语句并优化 SQL

7.索引数据结构,B+树

8。事务的四大特征及其对应的属性(原子性、隔离性)等该项目如何解决这些问题。

9。数据库锁:行锁、表锁;乐观锁,悲观锁

10。数据库事务的多个详细信息

11。关系型数据库和非关系型数据库的区别

9.设计模式

1。单一模式:饱且饿。还有 Hungry Man 中的延迟加载,请再次检查。

2。工厂模式、装饰者模式、观察者模式。

3。工厂方法模式的优点(低耦合、高内聚、开放和封闭原则)

10.算法

1。使用随机算法生成一个数字,需要1到1000W之间的所有数字都生成。

2。合并两个有序数组

3。反转数组

4 的顺序。计算正整数

5 的正平方根。说白了就是常见的搜索和排序算法以及相应的时间复杂度。

6。二叉树遍历算法

7. DFS、BFS 算法

9。对链表、队列、栈等主要数据结构有基本的了解和粗略的实现。 ?红黑树

11。并发和性能调优

1。查询手机号码定位笔试题每秒有5k次查询。如何构建算法?不管有多少请求,比如5w,怎么设计呢?是整个系统吗?

2.我们的系统如何支持大量高并发的请求?

3.集群如何同步会话状态

4.负载均衡原理

5.如果有专门的如何针对大量访问优化数据库(DB设计、DBIO、SQL优化、Java优化)

6。如果并发量很大,如何在不增加更多服务器的情况下解决服务器响应过早的问题? ”.

7.如果您的项目存在性能瓶颈,您认为可能是什么以及如何解决问题。

8.如何找到性能瓶颈以及性能瓶颈会在哪里。

9.您的项目中使用过缓存机制吗?使用过非本地用户缓存吗?

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门