面试--java基础

news2024/10/9 5:14:12

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. 常见的磁盘调度算法有哪些?

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

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

相关文章

elasticsearch创建索引

1对比关系型数据库,创建索引就等同于创建数据库 在postman中,向ES服务器发PUT请求 显示已经创建成功了 http://192.168.1.108:9200/shopping 请求方式get http://192.168.1.108:9200/shopping 请求全部的index的url地址 get 请求 http://192.168.1.10…

OpenHarmony(鸿蒙南向开发)——轻量系统内核(LiteOS-M)【扩展组件】

往期知识点记录: 鸿蒙(HarmonyOS)应用层开发(北向)知识点汇总 鸿蒙(OpenHarmony)南向开发保姆级知识点汇总~ 持续更新中…… C支持 基本概念 C作为目前使用最广泛的编程语言之一,…

同样的颜色在iOS和Flutter中显示不一样?色域差异解析

同样的颜色在iOS和Flutter中显示不一样?色域差异解析 在移动应用开发中,颜色的一致性对于提供良好的用户体验至关重要。然而,开发者有时会遇到一个令人困惑的问题:为什么同样的颜色代码在iOS的xib和Flutter的Container中显示的效…

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-09

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-09 目录 文章目录 计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-09目录1. Can LLMs plan paths with extra hints from solvers?摘要创新点算法模型实验效果重要数据与结论 推荐阅读指数 2. Sc…

数据库软题8-数据库的控制功能

一、事务管理 题1-事物的四个特性(原子、一致、隔离、永久) 1.隔离性 2.持久性 3.原子性 二、数据库的备份与恢复 题1-数据库恢复就是回到故障发生前的状态 题2 题3 三、并发控制 题1-排它锁 选D题2.共享锁排他锁 1. 加了排他锁,不能再加…

毕设 深度学习语义分割实现弹幕防遮(源码分享)

文章目录 0 简介1 课题背景2 技术原理和方法2.1基本原理2.2 技术选型和方法 3 实例分割4 实现效果最后 0 简介 今天学长向大家分享一个毕业设计项目 毕业设计 深度学习语义分割实现弹幕防遮(源码分享) 🧿 项目分享:见文末! 1 课题背景 弹幕是显示在视频上的评论…

设计模式、系统设计 record part04

结构型模式 结构型模式分为: 1.类结构型模式 2.对象结构型模式 3。类结构型,使用继承机制,耦合度高,不灵活 4.对象结构型,使用组合、聚合关系,耦合低,灵活 代理模式 1.代理就是中介 2.静态代理&…

64.DDR3读写控制器的设计与验证(1)(MIG IP核的配置)

(1)DRAM-动态随机存储器,SDRAM-同步动态随机存储器 DDR3 SDRAM- 第三代双倍速率同步动态随机存储器 双倍速率指的是时钟上升沿和下降沿都可以传输数据。同步指的是数据写入或读取时,是按时钟同步的。动态指的是硬件使用电容去存…

C# 自适应屏幕分辨率

一、新增AutoSizeFormClass.cs class AutoSizeFormClass{//(1).声明结构,只记录窗体和其控件的初始位置和大小。public struct controlRect{public int Left;public int Top;public int Width;public int Height;}//(2).声明 1个对象//注意这里不能使用控件列表记录 List nCtr…

云手机哪款好用?2024年云手机推荐对比指南

随着云手机市场的快速扩展,消费者在选择云手机时面临着众多选择。为了帮助大家找到最适合自己的云手机,小编特意整理了一份当前市场上几款备受关注的云手机品牌对比,大家一起往下看吧。 1. Ogphone云手机 Ogphone云手机是近年来海外业务版块迅…

图解C#高级教程(五):枚举器和迭代器

本章主要介绍 C# 当中枚举器、可枚举类型以及迭代器相关的知识。 文章目录 1. 枚举器和可枚举类型2. IEnumerator 和 IEnumerable 接口2.1 IEnumerator 接口2.2 IEnumerable 接口 3. 泛型枚举接口4. 迭代器4.1 使用迭代器创建枚举器4.2 使用迭代器创建可枚举类4.3 迭代器作为属…

谈论 MultiPHP

许多网站服务器提供商有大量客户,这些客户对他们的在线项目有各种需求。MultiPHP Manager界面可以帮助您轻松管理cPanel账户和域名的PHP和PHP-FPM配置,适用于运行EasyApache 4的系统。MultiPHP Manager界面提供了多种功能,包括: 服…

软考系统分析师知识点五:数据通信与计算机网络

前言 今年报考了11月份的软考高级:系统分析师。 考试时间为:11月9日。 倒计时:32天。 目标:优先应试,其次学习,再次实践。 复习计划第一阶段:扫平基础知识点,仅抽取有用信息&am…

安卓如何实现双击触摸唤醒点亮屏幕功能-源码分析linage os高通平台

背景: 前面文章已经有讲解过双击亮屏在一些方案调研情况,刚好linage os手机本身也有这个功能,刚好也有整体开源源码,所以今天带大家来对双击亮屏的源码部分进行剖析,本篇文章会一直分析到hal操作驱动节点。 设置作为…

有点晕,inline, crossinline,noinline小计

inline 主要用于展开铺平函数&#xff0c;用于高频访问但是代码不是很多的方法&#xff0c;减少函数对象的定义 fun <T> List<T>.normalForeach(action:(T)->Unit){for(item in this){action(item)} }inline fun <T> List<T>.inlinedForeach(action…

易图讯军用VR三维电子沙盘系统

深圳易图讯军用VR三维电子沙盘系统是一种集成了虚拟现实&#xff08;VR&#xff09;技术、三维建模技术、大数据分析、实时动态更新以及高度安全可靠的综合性军事指挥平台。该系统通过高精度三维模型真实再现战场环境&#xff0c;为指挥员提供沉浸式体验和交互操作的可能性&…

使用CANFD路由实现CAN与CANFD互通

随着科技的发展&#xff0c;汽车电子和工业领域中CAN通信需要承载数据量也越来越大&#xff0c;传统CAN通信有了向CANFD通信过渡的倾向。在实现过渡的过程中可能会出现自己设备是CAN通信&#xff0c;客户设备是CANFD通信的情况&#xff0c;或者自己设备是CANFD通信&#xff0c;…

react项目引入ant-design

当前react版本为&#xff1a; 1、安装antd npm install antd --save不需要安装babel-plugin-import&#xff0c;否则会报各种问题 2、引入Ant Design 样式 为了确保 Ant Design 样式在页面中生效&#xff0c;你需要在 _app.js 文件中全局引入样式。 当前项目用的Next.js。Ne…

vscode创建flutter项目,运行flutter项目

打开View&#xff08;查看&#xff09; > Command Palette...&#xff08;命令面板&#xff09;。 可以按下 Ctrl / Cmd Shift P 输入 flutter 选择Flutter: New Project 命令 按下 Enter 。选择Application 选择项目地址 输入项目名称 。按下 Enter 等待项目初始化完成 …

【HarmonyOS开发笔记 1】 -- 开发环境的搭建

DevEco Studio 的下载与安装 下载 下载路径&#xff1a; https://developer.huawei.com/consumer/cn/download/ 安装 解压后双击 deveco-studio-5.0.3.814.exe 指定安装目录&#xff0c;或者默认&#xff0c;然后下一步 一直“下一步”&#xff0c; 直到最后安装完成 新…