Java开发面试题 | 2023

news2024/11/25 7:56:55

Java基础

  • 接口和抽象类的区别?
  • Java动态代理
  • HashMap 底层实现及put元素的具体过程
  • currenthashmap底层实现原理?
  • map可以放null值吗,currenthashmap为什么不能放null值
  • synchronze和reetrantlock区别?
  • 怎样停止一个运行中的线程?
  • 什么是悲观锁、乐观锁、公平锁、非公平锁
  • String、StringBuffer、StringBuilder的区别
  • Set是如何保证元素不重复的
  • ArrayList与LinkedList哪个更占空间?为什么?
  • Java的设计原则?
  • 什么是长连接、短连接?
  • i++是否是原子操作?
  • ThreadLocal用过吗?主要在哪些场景用到了?
  • Java 反射?以及优缺点?
  • 常用的排序算法有哪些?时间复杂度分别是多少?

多线程

  • 线程的生命周期
  • JMM内存模型
  • 线程池的工作原理、几个重要参数、几个参数是依据什么来进行设置的?
  • 怎么实现线程之间的通信?

JVM

  • JVM的基本组成,每部分作用是什么?
  • jvm几种垃圾收集器
  • 常见的GC垃圾回收算法
  • JVM怎样判断对象是否存活
  • 说说双亲委派机制
  • 怎样打破双亲委派机制
  • 为什么使用双亲委派机制(双亲委派机制的优势)
  • 怎样实现自定义一个类加载器
  • 常用的GC参数

设计模式

  • 单例模式实现的几种方式?各自有哪些优缺点?
  • 策略模式
  • 模板方法模式
  • 观察者模式
  • 装饰器模式

Mybatis

  • Mybayis中&与#的区别,底层实现是怎样的
  • Mybatis Plus 为什么可以使用this.save直接插入一个实体对象

Spring

  • 说一下你对IOC容器的理解?
  • 说说Spring的AOP,实现机制是什么、有几种通知类型、Spring AOP底层是怎样实现的?
  • Spring 事务失效的场景?
  • Spring 的循环依赖是怎么解决的?
  • 什么是事务、事务的ACID特性
  • 事务的传播类型有哪些?

Spring Boot

  • Spring Boot的Run方法
  • 自动装配实现原理
  • BeanFactory与FactoryBean的区别?
  • 自定义Stater实现

Spring Cloud

  • 项目启动是怎样把服务注册到nacos上去的?
  • 微服务各组件的原理?调用链路?

Mysql

  • Mysql 索引底层实现是怎样的?为什么底层使用B+树
  • Mysql 常见的索引有哪些?有什么区别?
  • Mysql 索引的最左匹配原则
  • Mysql 查询索引使用explain 具体的值有哪些
  • Mysql 的索引优化
  • Mysql 索引失效的条件
  • Mysql 的存储引擎
  • Mysql的日志
  • Mysql事务底层是怎样实现的?

缓存

  • 本地缓存与Redis的区别?优缺点有哪些?
  • Redis的持久化方式及原理?
  • Redis是单线程还是多线程?
  • 怎样保证缓存、数据库的双写一致性?
  • Redis的缓存穿透、缓存击穿、缓存雪崩的解决办法?
  • Redis分布式锁使用场景?
  • 项目中哪些地方使用了Redis缓存

消息队列

  • kafka的基本结构说一下,他是怎样保持消息顺序的
  • kafka和rabbitmq的区别?
  • kafka消息丢失怎样解决?如何保证消息的顺序性?

Linux

  • 查看内存使用率命令
  • 日志文件怎样根据关键字进行查找?
  • Linux常用的命令

Maven

  • maven 常用命令
  • mvn clean package与mvn clean install有什么区别

Git

  • 命令merge和git rebase的区别

场景题目

  • 订单超时自动关闭如何实现?
  • 接口限流怎么做?说一下具体的实现思路?
  • 线上SQL你是怎样来进行优化的?

其他

  • 线上SQL性能优化过程?
  • 针对生产环境问题是怎样排查的?
  • 公司整个开发流程是怎样的?

笔试

  • Map<String,Integer> map = new HashMap<>(); 根据value进行排序,打印key?
  • String、StringBuffer、StringBuilder的区别?
  • CPU 100% 怎样定位所在代码行?
  • 数据库设计E-R图?
  • 写单例、策略、模板设计模式代码示例
  • 手写重写equal、hashCode方法
  • 手写排序算法
  • 什么是缓存穿透、缓存雪崩、缓存击穿以及解决办法?
  • 递归算法
  • 索引有哪些类型?区别是什么?
  • 怎样实现分布式事务?原理是什么?
  • 怎样杀死一个运行中的Java项目进程
  • 怎样实现分布式事务?原理是什么?

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/904231.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

WPS-RCE

版本&#xff1a; WPS Office 2023 个人版 < 11.1.0.12313 WPS Office 2019 企业版 < 11.8.2.12085 原理&#xff1a; Office 中的 WebExtension&#xff08;通常称为 Office 插件或 Office 应用程序&#xff09;是一种用于扩展 Microsoft Office 功能的技术。Office …

Nacos 无法注册服务

情况描述 Nacos服务搭建完成。 引入了Nacos的依赖。 <!-- SpringCloud Alibaba 服务管理 --> <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependen…

Linux之套接字UDP实现网络通信

Linux之套接字UDP实现网络通信 文章目录 Linux之套接字UDP实现网络通信1.引言2.具体实现2.1需要知道的套接字接口1.socket()2.bind()3.recvfrom()4.sendto() 2.2服务器端server.hpp2.3服务器端server.cc2.4客户端Client.cc 1.引言 ​ 套接字(Socket)是计算机网络中实现网络通信…

Java-类与对象(下)

访问限定符 类可以将数据以及封装数据的方法结合在一起&#xff0c;更符合人类对事物的认知&#xff0c;而访问权限用来控制方法或者字段能否直接在类外使用。 这里目前主要掌握private&#xff0c;default和public public&#xff1a;可以理解为一个人的外貌特征&#xff0c;…

金狮金狮鹏保宝点盾云等加密视频翻录录屏教程

这款软件采用独家方法特殊方式打开录屏工具&#xff0c;理论上通杀所有的检测进程的加密视频播放器的检测&#xff0c;不被检测。 使用方法很简单&#xff1a; 点击 打开录屏工具&#xff0c;就可以以特殊方式加载录屏工具。 然后就可以开始录屏了。 下载&#xff1a;spjm.lan…

在线HmacSHA1加密工具--在线获取哈希值又称摘要

具体请前往&#xff1a; 在线计算HmacSha1工具

0102垂直分片-jdbc-shardingsphere

1 前言 垂直分片分为垂直分库于垂直分表&#xff0c;但是实际应用中数据库表会根据业务需要提前做好规划&#xff0c;垂直分表的情况很少使用。但是随着业务增长&#xff0c;某些重点业务数据库压力增大&#xff0c;可能考虑需要考虑垂直分库的情况。 垂直分库&#xff0c;简…

22-组件通信

一. 什么是组件通信 组件通信&#xff0c;就是指 组件与组件 之间的数据传递 1. 组件的数据是独立的&#xff0c;无法直接访问其他组件的数据。 2. 想用其他组件的数据 -> 组件通信 二. 不同的组件关系 和 组件通信方案分类 组件关系分类: 1. 父子关系 2. 非父子关系 组件…

【Unity】制作一个简单的菜单栏页面并实现其功能

这是一个简单的菜单页面制作&#xff0c;接下来我们将制作一个完整的菜单页面&#xff0c;并且通过一定的代码去实现它对应的效果。这个主要的功能就是我们在游戏中如果想暂停一下或者重新开始&#xff0c;那么就要用到我们这个功能。接下来我们将实现在游戏中按ESC退出键可以调…

第6步---MySQL的控制流语句和窗口函数

第6步---MySQL的控制流语句和窗口函数 1.IF关键字 -- 控制流语句 SELECT IF(5>3,大于,小于);-- 会单独生成一列的 SELECT *,IF(score >90 , 优秀, 一般) 等级 FROM stu_score;-- IFNULL(expr1,expr2) SELECT id,name ,IFNULL(salary,0),dept_id FROM emp4;-- ISNULL() …

【C语言学习】数组

定义数组 <类型>变量名称[元素变量] 元素数量必须是整数 int a[10]; double b[20]; scanf("%d",&a[i]);//输入数组数组 数组是一种容器&#xff0c;特点为其中所有元素具有相同的数据类型&#xff1b; 一旦创建&#xff0c;不能改变大小&#xff1b; 数…

【C语言】什么是结构体内存对齐?结构体的大小怎么计算?

目录 1.结构体内存对齐 对偏移量的理解&#xff1a;​ 2.结构体的大小计算 2.1结构体中只有普通的数据类型的大小计算 2.2 结构体中有嵌套的结构体的大小计算 3.修改默认对齐数 4.为什么存在内存对齐? 这篇文章主要介绍结构体内存对齐和如何计算大小。 在学习结构体内存…

个性化定制界面 VS 极简版原装界面:你更喜欢哪一个?为什么?

文章目录 每日一句正能量前言自己的喜好使用这种界面的原因这种界面对你的影响后记 每日一句正能量 不管昨天、今天、明天&#xff0c;能豁然开朗就是最美好的一天。 前言 个性化定制界面和极简版原装界面&#xff0c;哪一个你用起来更加顺手呢&#xff0c;相比之下你更喜欢哪一…

空洞卷积网络实现

代码&#xff1a; import torch.nn as nn import numpy as npfrom matplotlib import pyplot as plt import time #from utils import get_accur,load_data,trainimport torchvision from torchvision import transforms from torch.utils.data import DataLoader import torch…

硬编码基础一(经典定长指令,寄存器相关)

硬编码基础一&#xff08;定长指令&#xff09; push/pop 通用寄存器 50~57是push8个32位通用寄存器 58~5f是pop8个32位通用寄存器 inc/dec 通用寄存器 40~47是inc8个32位通用寄存器 47~4f是dec8个32位通用寄存器 八位通用寄存器的立即数赋值 b0~b3 {立即数} 是低八位(…

蓝蓝设计-专业UI设计公司-界面设计作品

数慧时空&#xff08;全称&#xff1a;北京数慧时空信息技术有限公司&#xff09;是以空间信息技术为核心、国内领先的国土资源行业解决方案提供商&#xff0c;具有业务咨询、自主软件研发、数据加工和信息服务的全业务综合服务能力&#xff0c;是国土资源部最重要的信息化合作…

AD19基础应用技巧(位号的调整)

在进行元件装配时&#xff0c;需要输出相应的装配文件&#xff0c;而元件的位号图可以方便比对元件装配。隐藏其他层&#xff0c;只显示Overlay和Solder层可以更方便地进行位号调整。 一般来说&#xff0c;位号大都放到相应元件旁边&#xff0c;其调整应遵循以下原则&#xff…

LLM低成本微调方法

LLM日益流行&#xff0c;已经渗透到各个领域&#xff0c;比如生物医学&#xff0c;但是模型的规模导致微调LLM对普通用户不够友好&#xff0c;因此&#xff0c;我们需要借助一些低成本方法&#xff0c;通过更新少量参数也达到与LLM全参数更新一样的效果。这里介绍三种主流方法&…

JVM——垃圾回收(垃圾回收算法+分代垃圾回收+垃圾回收器)

1.如何判断对象可以回收 1.1引用计数法 只要一个对象被其他对象所引用&#xff0c;就要让该对象的技术加1&#xff0c;某个对象不再引用其&#xff0c;则让它计数减1。当计数变为0时就可以作为垃圾被回收。 有一个弊端叫做循环引用&#xff0c;两个的引用计数都是1&#xff…

npm和node版本升级教程

cmd中查看本地安装的node版本 node -v //查询node的位置 where node2.官网下载所需要的node版本&#xff0c;安装在刚查出来的文件夹下&#xff0c;即覆盖掉原来的版本 3.查看node版本是否已经更新 4.查看npm版本是否和node版本相匹配 cnpm install -g npm