当前位置: 首页 > news >正文

面试--java基础

Java基础

  1. Java 中的几种基本数据类型了解么?
  2. 基本类型和包装类型的区别?
  3. 包装类型的缓存机制了解么?
  4. 成员变量与局部变量的区别?
  5. 静态变量有什么作用?
  6. 静态方法为什么不能调用非静态成员?
  7. 重载和重写有什么区别?
  8. 面向对象和面向过程的区别
  9. 面向对象三大特征
  10. 接口和抽象类有什么共同点和区别?
  11. 深拷贝和浅拷贝区别了解吗?什么是引用拷贝?
  12. == 和 equals() 的区别
  13. String、StringBuffer、StringBuilder 的区别?
  14. Exception 和 Error 有什么区别?
  15. 什么是序列化和反序列化?
  16. 序列化协议对应于 TCP/IP 4 层模型的哪一层?
  17. 谈谈反射机制的优缺点
  18. JDK 动态代理和 CGLIB 动态代理对比
  19. 静态代理和动态代理的对比

集合

  1. ArrayList 与 LinkedList 区别?
  2. 比较 HashSet、LinkedHashSet 和 TreeSet 三者的异同
  3. HashMap 和 Hashtable 的区别
  4. HashMap 和 TreeMap 区别
  5. HashMap 的长度为什么是 2 的幂次方
  6. ConcurrentHashMap 和 Hashtable 的区别
  7. JDK 1.7 和 JDK 1.8 的 ConcurrentHashMap 实现有什么不同?
  8. ConcurrentHashMap 能保证复合操作的原子性吗?

并发/线程

  1. Java 线程和操作系统的线程有啥区别?
  2. 程序计数器为什么是私有的?
  3. 虚拟机栈和本地方法栈为什么是私有的?
  4. 如何创建线程?
  5. 说说线程的生命周期和状态?
  6. 什么是线程上下文切换?
  7. Thread#sleep() 方法和 Object#wait() 方法对比
  8. 可以直接调用 Thread 类的 run 方法吗?
  9. 并发与并行的区别
  10. volatile如何保证变量的可见性?/防止 JVM 的指令重排序/不能保证对变量的操作是原子性的
  11. 乐观锁(实现使用版本号机制或 CAS 算法)和悲观锁
  12. CAS 算法存在哪些问题?/ ABA 问题/循环时间长开销大/只能保证一个共享变量的原子操作
  13. synchronized 底层原理了解吗?/ synchronized 同步语句块的实现使用的是 monitorenter 和
    monitorexit 指令,其中 monitorenter 指令指向同步代码块的开始位置,monitorexit
    指令则指明同步代码块的结束位置。synchronized 修饰的方法并没有 monitorenter 指令和 monitorexit
    指令,取而代之的是 ACC_SYNCHRONIZED 标识,该标识指明了该方法是一个同步方法。不过两者的本质都是对对象监视器
    monitor 的获取。
  14. 公平锁和非公平锁有什么区别?
  15. 可中断锁和不可中断锁有什么区别?
  16. 共享锁和独占锁有什么区别?
  17. ThreadLocal 原理了解吗?
  18. ThreadLocal 内存泄露问题是怎么导致的?
  19. 如何创建线程池?
  20. 线程池常见参数有哪些?如何解释?
  21. 为什么不推荐使用内置线程池?/ Executors 返回线程池对象的弊端
  22. 线程池处理任务的流程了解吗?
  23. AQS 是什么?/抽象队列同步器AbstractQueuedSynchronizer
  24. AQS 的原理是什么?
  25. Semaphore 的原理是什么?
  26. CountDownLatch 的原理是什么?

IO

  1. 字节流InputStream(字节输入流)/ OutputStream(字节输出流)
  2. 字符流Reader(字符输入流)/ Writer(字符输出流)
  3. 字节缓冲流BufferedInputStream(字节缓冲输入流)/ BufferedOutputStream(字节缓冲输出流)
  4. 字符缓冲流BufferedReader (字符缓冲输入流)/BufferedWriter(字符缓冲输出流)
  5. Java IO 设计模式总结/装饰器模式/适配器模式/工厂模式/观察者模式
  6. Java 中 3 种常见 IO 模型/ BIO (Blocking I/O)/ NIO (同步非阻塞 IO/ I/O 多路复用)/
    AIO (Asynchronous I/O)
  7. NIO 核心组件/ Buffer(缓冲区)/ Channel(通道)/ Selector(选择器)
  8. NIO 零拷贝

JVM

  1. 线程私有的:程序计数器/虚拟机栈(栈帧:局部变量表、操作数栈、动态链接、方法返回地址)/本地方法栈
  2. 线程共享的:堆(新生代内存(Young Generation: Eden 区、两个 Survivor 区 S0 和
    S1)/老生代(Old Generation)/永久代(Permanent Generation)
    Metaspace(元空间))/方法区/直接内存 (非运行时数据区的一部分)
  3. 对象的创建过程
  4. 对象的内存布局(对象头(Header)、实例数据(Instance Data)和对齐填充(Padding))
  5. 对象的访问定位(使用句柄、直接指针)
  6. 死亡对象判断方法(引用计数法/可达性分析算法)
  7. 引用类型总结(强引用/软引用/弱引用/虚引用)
  8. 垃圾收集算法(标记-清除算法/复制算法/标记-整理算法/分代收集算法)
  9. 垃圾收集器(Serial 收集器/ ParNew 收集器/ Parallel Scavenge 收集器/ Serial Old 收集器/
    Parallel Old 收集器/ CMS 收集器/ G1 收集器/ ZGC 收集器)
  10. 类的生命周期(加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)、使用(Using)和卸载(Unloading))
  11. 双亲委派模型
  12. JVM参数

网络

  1. OSI 七层模型是什么?每一层的作用是什么?
  2. TCP/IP 四层模型是什么?每一层的作用是什么?
  3. 应用层有哪些常见的协议?
  4. 传输层有哪些常见的协议?
  5. 网络层有哪些常见的协议?
  6. 从输入 URL 到页面展示到底发生了什么?
  7. HTTP 和 HTTPS 有什么区别?
  8. HTTP 是不保存状态的协议, 如何保存用户状态?
  9. Cookie 和 Session 有什么区别?
  10. WebSocket 和 HTTP 有什么区别?
  11. WebSocket 的工作过程是什么样的?
  12. TCP 与 UDP 的区别
  13. TCP 三次握手和四次挥手

操作系统

  1. 什么是用户态和内核态?
  2. 为什么要有用户态和内核态?只有一个内核态不行么?
  3. 用户态切换到内核态的 3 种方式/系统调用/中断/异常
  4. 系统调用的过程了解吗?
  5. 什么是进程和线程?
  6. 进程和线程的区别是什么?
  7. 线程间的同步的方式有哪些?
  8. PCB 是什么?包含哪些信息?
  9. 进程有哪几种状态?
  10. 进程间的通信方式有哪些?
  11. 进程的调度算法有哪些?
  12. 什么是僵尸进程和孤儿进程?
  13. 什么是死锁?
  14. 产生死锁的四个必要条件是什么?
  15. 解决死锁的方法
  16. 内存管理主要做了什么?
  17. 什么是内存碎片?
  18. 常见的内存管理方式有哪些?
  19. 什么是虚拟内存?有什么用?
  20. 什么是虚拟地址和物理地址?
  21. 虚拟地址与物理内存地址是如何映射的?
  22. 文件系统主要做了什么?
  23. 常见的磁盘调度算法有哪些?

相关文章:

面试--java基础

Java基础 Java 中的几种基本数据类型了解么?基本类型和包装类型的区别?包装类型的缓存机制了解么?成员变量与局部变量的区别?静态变量有什么作用?静态方法为什么不能调用非静态成员?重载和重写有什么区别&#xff1f…...

NLP自然语言处理

计算机视觉和图像处理 Tensorflow入门深度神经网络图像分类目标检测图像分割OpenCVPytorchNLP自然语言处理 NLP自然语言处理 一、NLP简介二、文本预处理2.1 文本预处理简介2.2 文本处理的基本方法2.3 文本张量表示方法2.3.1 onehot编码2.3.2 word2vec编码 2.4 文本数据分析2.5…...

web自动化测试基础(从配置环境到自动化实现登录测试用例的执行,vscode如何导入自己的python包)

接下来的一段时间里我会和大家分享自动化测试相关的一些知识希望大家可以多多支持,一起进步。 一、环境的配置 前提安装好了python解释器并配好了环境,并安装好了VScode 下载的浏览器和浏览器驱动需要一样的版本号(只看大版本)。 1、安装浏览器 Chro…...

鸿蒙 Next 实战: 电子木鱼

前言 正所谓:Hello Word 是程序员学任何一门语言的第一个程序实践。这其实也是一个不错的正反馈,那如何让学习鸿蒙 Next 更有成就感呢?下面就演示一下从零开发一个鸿蒙 Next 版的电子木鱼,主打就是一个抽象! 实现要点…...

SQLite SQL调优指南及高级SQL技巧

记忆已更新 以下是《SQLite SQL调优指南及高级SQL技巧》文章的完整输出,字数目标为30000字,详细介绍并结合2024年最新技术趋势和优化策略。代码部分不计入字数统计。 SQLite SQL调优指南及高级SQL技巧 SQLite 是广泛使用的嵌入式数据库,因其…...

WordPress 6.7即将发布的新功能(和截图)

我们一直在密切关注 WordPress 6.7 的开发并测试该版本的测试版,它将带来一些令人兴奋的更新和几个新功能。 例如,我们很高兴地发现即将发布的版本将附带全新的默认主题,并对块编辑器和站点编辑体验进行大规模改进。 在本文中,我…...

SpringBoot整合QQ邮箱

SpringBoot可以通过导入依赖的方式集成多种技术,这当然少不了我们常用的邮箱,现在本章演示SpringBoot整合QQ邮箱发送邮件.... 下面按步骤进行: 1.获取QQ邮箱授权码 1.1 登录QQ邮箱 1.2 开启SMTP服务 找到下图中的SMTP服务区域,…...

低质量数据的多模态融合方法

目录 多模态融合 低质量多模态融合的核心挑战 噪声多模态数据学习 缺失模态插补 平衡多模态融合 动态多模态融合 启发式动态融合 基于注意力的动态融合 不确定性感知动态融合 论文 多模态融合 多模态融合侧重于整合多种模态的信息,以实现更准确的预测,在自动驾驶、…...

计算机毕业设计 基于Django的在线考试系统的设计与实现 Python+Django+Vue 前后端分离 附源码 讲解 文档

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点…...

Shell脚本linux登录自动检查

.bashrc 用于设置用户的 Bash shell 环境&#xff0c;在每次打开一个新的终端窗口或启动一个新的 Bash 会话时被执行 代码 login_check.sh #!/bin/bash clear LogFileNamepolling.$(date %F-%T) EchoFormat$(for (( i0; i<30; i )); do echo -n ""; done)# 显示…...

Golang | Leetcode Golang题解之第450题删除二叉搜索树的节点

题目&#xff1a; 题解&#xff1a; func deleteNode(root *TreeNode, key int) *TreeNode {var cur, curParent *TreeNode root, nilfor cur ! nil && cur.Val ! key {curParent curif cur.Val > key {cur cur.Left} else {cur cur.Right}}if cur nil {retur…...

Linux 之 Linux应用编程概念、文件IO、标准IO

Linux应用编程概念、文件IO、标准IO 学习任务&#xff1a; 1、 学习Linux 应用开发概念&#xff0c;什么是系统调用&#xff0c;什么是库函数 2、 学习文件IO&#xff1a;包括 read、write、open、close、lseek 3、 深入文件IO&#xff1a;错误处理、exit 等 4、 学习标准IO&a…...

PDF处理技巧:Windows电脑如何选择合适的 PDF 编辑器

您可以阅读本文以了解用于在 PC 上编辑 PDF 的顶级免费软件&#xff0c;而无需花费任何费用即可轻松进行快速编辑、拆分、合并、注释、转换和共享您的 PDF。 PDF 或可移植文档文件是由 Adobe 创建的一种多功能文件格式。它可以帮助您轻松可靠地交换文档&#xff0c;无论相关方…...

【c++】初步了解类和对象2

1、类的作用域 类定义了一个新的作用域&#xff0c;类的所有成员都在类的作用域中。在类体外定义成员时&#xff0c;需要使用 :: 作用域操作符指明成员属于哪个类域。 如图&#xff0c;此时在类内声明了函数firstUniqChar()&#xff0c;在类外进行了函数体的具体定义。 但是却…...

Python库pandas之四

Python库pandas之四 输入/输出read_json函数应用实列 输入/输出 read_json 函数 词法&#xff1a;pandas.read_json(path_or_buf, *, orientNone, typ‘frame’, dtypeNone, convert_axesNone, convert_datesTrue, keep_default_datesTrue, precise_floatFalse, date_unitNo…...

网络攻防技术--第三次作业

文章目录 第三次作业一、通过搜索引擎搜索自己在因特网上的足迹&#xff0c;并确认是否存在隐私和敏感信息泄露问题。如果有信息泄露&#xff0c;提出解决方法。二、结合实例总结web搜索和挖掘的方法。三、网络扫描有哪几种类型&#xff1f;分别有什么作用&#xff1f;利用一种…...

带隙基准Bandgap电路学习(一)

一、原理图 Bandgap中的运放&#xff08;折叠式Cascode&#xff09;采用P输入对&#xff0c;是因为运放输入端接的PNP三极管发射极端的电位&#xff0c;电压小&#xff0c;为了确保输入对管能够饱和工作&#xff0c;故采用P输入对管。此外&#xff0c;P管作为输入管&#xff0c…...

[前端][easyui]easyui select 默认值

function initRegion(key, val) {$(#Region).combobox({url: path /getTypeVaule.do?itemregion&key key "&value" val,editable: false, //不可编辑状态cache: false,valueField: TEMID,textField: TEMID,loadFilter: function (data) {data.unshift({…...

项目开发--大模型--个人问答知识库--chain控制

背景 1、langchain当中的chain prompt | llm | output_parser这个链能更长吗&#xff1f; 在 LangChain 中&#xff0c;链&#xff08;chain&#xff09;可以根据需要变得非常长&#xff0c;并且可以包含多种不同类型的组件。链的目的是将多个步骤串联起来&#xff0c;以便以…...

STM32—SPI通讯协议

前言 由于I2C开漏外加上拉电阻的电路结构&#xff0c;使得通信线高电平的驱动能力比较弱&#xff0c;这就会号致&#xff0c;通信线由候电平变到高电平的时候&#xff0c;这个上升沿耗时比较长&#xff0c;这会限制I2C的最大通信速度&#xff0c; 所以&#xff0c;I2C的标准模…...

Android 安装过程五 MSG_INSTALL消息的处理 安装

现在马上进入正式的安装流程。   从前面文章 Android 安装过程四 MSG_INSTALL消息的处理 安装之前的验证知道&#xff0c;在验证之后没有什么问题的情况下&#xff0c;会回调onVerificationComplete()方法&#xff0c;它位于PackageInstallerSession类中。 private void onVe…...

大数据开发--1.3 Linux的常用命令大全

目录 一. 终端命令格式 命令格式 说明&#xff1a; 二. 显示文件列表命令 -ls 作用 格式 ls常用选项 案例 三. 目录操作命令 -pwd 作用 格式 案例 四. 目录操作命令 -cd 作用 格式 案例 五. 目录操作命令 -mkdir 作用 格式 案…...

使用PuTTY连接到Amazon Linux实例

PuTTY 是一款免费的 SSH 客户端&#xff0c;广泛用于从 Windows 系统连接到 Linux 实例。如果你使用的是 Windows Server 2019 或更高版本&#xff0c;可以考虑使用内置的 OpenSSH 工具&#xff0c;但 PuTTY 依然是一个非常受欢迎的选择。 一、先决条件 在使用 PuTTY 连接到 …...

Nexus搭建maven私有仓库

内网访问&#xff0c;内网团队使用一个服务缓存节省外网宽带。 微服务开发中加速 Maven 项目构建&#xff0c;加快团队合作&#xff0c;提高工作效率 允许上传和下载私有库&#xff0c;并且不被外部访问&#xff0c;安全 稳定。 方便内部项目服务的依赖引用&#xff0c;而不需要…...

留存率的定义与SQL实现

1.什么是留存率 留存率是指在特定时间段内&#xff0c;仍然继续使用某项产品或服务的用户占用户总数的百分比。 通常&#xff0c;留存率会以日&#xff0c;周&#xff0c;或月为单位进行统计和分析。 2.SQL留存率常见问题 1.计算新用户登录的日期的次日留存率以及3日留存率 …...

Java的锁机制详解

在并发编程中&#xff0c;锁 是用于控制多个线程对共享资源进行访问的工具。Java提供了多种锁机制&#xff0c;从最基础的 synchronized 到高级的 ReentrantLock&#xff0c;这些锁帮助我们确保线程安全&#xff0c;并能有效避免数据竞争和死锁问题。 1. synchronized 关键字…...

用户登录与信息管理:实现小程序登录与用户信息存储

用户登录与信息管理&#xff1a;实现小程序登录与用户信息存储 在现代的移动应用中&#xff0c;用户登录与信息管理是构建个性化用户体验的基础。小程序作为轻量级的应用形式&#xff0c;在简化开发流程的同时&#xff0c;也需要我们妥善管理用户的登录状态与用户信息。本文将…...

Java如何调用构造函数和方法以及使用

调用构造函数的格式 构造函数在创建新对象时被调用。调用格式如下&#xff1a; ClassName objectName new ClassName(parameters); ClassName&#xff1a;你需要创建其实例的类的名称。 objectName&#xff1a;你将创建的对象的名称。 parameters&#xff1a;如果你使用的是…...

TFBoys谁最重

题目 使用go语言设计一个程序计算TFBoys谁最重&#xff0c;要求使用结构体表示TFBoys三个成员&#xff0c;设计函数计算三个重量的最大值。 程序 package main import ("fmt") type Person struct {Name stringWeight float64} func (p Person) GetWeigh…...

scp 通过中间机器进行远程拷贝

有时候&#xff0c;我们想要通过 scp将一台机器上的文件拷贝至另外一台机器&#xff0c;但这两台机器可能没有直接联通&#xff0c;需要通过中间机器进行跳转才能访问&#xff0c;一个麻烦的办法就是&#xff0c;先将文件拷贝至中间机器&#xff0c;然后再从中间机器拷贝至另外…...