<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>并发编程 on 041 Blog</title><link>https://www.iam041.com/tags/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/</link><description>Recent content in 并发编程 on 041 Blog</description><generator>Hugo</generator><language>zh_CN</language><lastBuildDate>Sun, 03 May 2026 11:00:00 +0800</lastBuildDate><atom:link href="https://www.iam041.com/tags/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/index.xml" rel="self" type="application/rss+xml"/><item><title>Java核心面试题与八股知识点速记</title><link>https://www.iam041.com/posts/java-core-interview-notes/</link><pubDate>Sun, 03 May 2026 11:00:00 +0800</pubDate><guid>https://www.iam041.com/posts/java-core-interview-notes/</guid><description>&lt;h2 id="基础题"&gt;基础题&lt;/h2&gt;&#10;&lt;h3 id="1面向对象和面向过程的区别"&gt;1.面向对象和面向过程的区别&lt;/h3&gt;&#10;&lt;p&gt;面向过程：是分析解决问题的步骤，然后用函数一步步实现，性能高；&lt;br&gt;&#10;面向对象：是把构成问题的要素拆分成对象，易维护、复用、拓展。&lt;/p&gt;&#10;&lt;h3 id="2instanceof关键字段作用"&gt;2.instanceof关键字段作用&lt;/h3&gt;&#10;&lt;p&gt;判断一个对象是否为一个类的实例。&lt;/p&gt;&#10;&lt;h3 id="3java自动装箱和拆箱"&gt;3.Java自动装箱和拆箱&lt;/h3&gt;&#10;&lt;p&gt;装箱就是自动将基本数据类型转换为对应的包装类对象；&lt;br&gt;&#10;拆箱就是自动将包装器类型转换为基本数据类型。&lt;/p&gt;&#10;&lt;h3 id="4hashcode的作用"&gt;4.Hashcode的作用&lt;/h3&gt;&#10;&lt;p&gt;该方法用于提高查找效率，通过哈希算法分成若干区域，存储元素时通过调用该方法根据哈希值迅速定位到对应到应存储的位置。&lt;/p&gt;&#10;&lt;h3 id="5stringstringbufferstringbuilder的区别"&gt;5.String、StringBuffer、StringBuilder的区别&lt;/h3&gt;&#10;&lt;p&gt;String：只读字符串，每次使用都会创建一个新对象；&lt;br&gt;&#10;StringBuffer: 可变字符串，线程安全，效率低；&lt;br&gt;&#10;StringBuilder: 可变字符串，线程不安全，效率高.&lt;/p&gt;&#10;&lt;h3 id="6arraylist和linklist的区别"&gt;6.ArrayList和LinkList的区别&lt;/h3&gt;&#10;&lt;p&gt;ArrayList：底层是数组，查改效率高，增删效率低；&lt;br&gt;&#10;LinkList：底层是链表，查改效率低，增删效率高。&lt;/p&gt;&#10;&lt;h3 id="7hashmap和hashtable的区别"&gt;7.HashMap和HashTable的区别&lt;/h3&gt;&#10;&lt;p&gt;HashMap：父类为AbstractMap类，key和value可以为空，线程不安全，效率高；&lt;br&gt;&#10;HashTable：父类为Dictionary类，key和value不能为空，线程安全，效率低。&lt;/p&gt;&#10;&lt;h3 id="8java的四种引用强软弱虚"&gt;8.Java的四种引用（强软弱虚）&lt;/h3&gt;&#10;&lt;p&gt;强引用：默认的引用，只要垃圾回收器不进行回收，该对象就不会被回收；&lt;br&gt;&#10;软引用：内存不足时，会被回收；&lt;br&gt;&#10;弱引用：JVM垃圾回收器发现了，会被回收；&lt;br&gt;&#10;虚引用：JVM垃圾回收器发现了，会被回收，但回收前会进入引用队列，可以监听到被回收。&lt;/p&gt;&#10;&lt;h3 id="9泛型的特点"&gt;9.泛型的特点&lt;/h3&gt;&#10;&lt;p&gt;在定义类、接口、方法时，添加类型参数，在编译时确定类型。&lt;/p&gt;&#10;&lt;h3 id="10java创建对象的几种方式"&gt;10.Java创建对象的几种方式&lt;/h3&gt;&#10;&lt;p&gt;new关键字；反射；克隆；序列化。&lt;/p&gt;&#10;&lt;h3 id="11浅拷贝和深拷贝的区别"&gt;11.浅拷贝和深拷贝的区别&lt;/h3&gt;&#10;&lt;p&gt;浅拷贝：不复制引用的对象；&lt;br&gt;&#10;深拷贝：引用的对象也复制。&lt;/p&gt;&#10;&lt;h3 id="12final的用法"&gt;12.final的用法&lt;/h3&gt;&#10;&lt;p&gt;final修饰类：不能被继承；&lt;br&gt;&#10;final修饰方法：不能被重写；&lt;br&gt;&#10;final修饰变量：又称常量，编译会存入常量池，引用不能被修改，但引用的值可变。&lt;/p&gt;&#10;&lt;h3 id="13static的用法"&gt;13.static的用法&lt;/h3&gt;&#10;&lt;p&gt;修饰方法和变量：转换为静态方法和变量，不用new对象就可以调用;&lt;br&gt;&#10;修饰代码块：在类加载时执行，只执行一次；&lt;br&gt;&#10;修饰导入：可直接访问该包下的静态资源。&lt;/p&gt;&#10;&lt;h3 id="14aab与ab的区别"&gt;14.a=a+b与a+=b的区别&lt;/h3&gt;&#10;&lt;p&gt;+=会进行隐式自动类型转换，a=a+b不会。&lt;/p&gt;&#10;&lt;h3 id="15exception和error的区别"&gt;15.Exception和Error的区别&lt;/h3&gt;&#10;&lt;p&gt;Exception：分为运行时异常和被检查异常，可以捕获；&lt;br&gt;&#10;Error：编译器不会检查，不能捕获。&lt;/p&gt;&#10;&lt;h3 id="16oom和sof的区别"&gt;16.OOM和SOF的区别&lt;/h3&gt;&#10;&lt;p&gt;OOM：Jvm堆溢出；JVM的栈扩展超出资源容量；常量池溢出；方法区溢出；&lt;br&gt;&#10;SOF：栈溢出，一般默认为1-2m，一般是死循环和深度递归导致。&lt;/p&gt;&#10;&lt;h3 id="17程序进程线程的关系"&gt;17.程序、进程、线程的关系&lt;/h3&gt;&#10;&lt;p&gt;程序：程序包含程序代码和数据，是可执行文件；&lt;br&gt;&#10;进程：进程是程序的一次执行过程，是资源分配的最小单位；&lt;br&gt;&#10;线程：也称轻量级进程，是进程内多个执行流的执行单元，线程之间可相互影响。&lt;/p&gt;&#10;&lt;h3 id="18java序列或中某些字段不参与序列化"&gt;18.Java序列或中某些字段不参与序列化&lt;/h3&gt;&#10;&lt;p&gt;使用transient关键字修饰，只能修饰变量。&lt;/p&gt;&#10;&lt;h3 id="19io流"&gt;19.IO流&lt;/h3&gt;&#10;&lt;p&gt;按流向分为输入流和输出流，按操作单元分为字节流和字符流，按角色分为节点流和处理流。&#10;&lt;a class="glightbox" href="IO%e6%b5%81.png" data-gallery="post-images" data-type="image" data-zoomable="true" data-draggable="true"&gt;&#10; &lt;img src="IO%e6%b5%81.png" alt="IO流"&gt;&#10;&lt;/a&gt;&lt;/p&gt;&#10;&lt;h3 id="20java的反射"&gt;20.Java的反射&lt;/h3&gt;&#10;&lt;p&gt;通过类名，可知该类的所有属性和方法，并动态调用；&#10;可以通过Class.forName()、getClass()、.Class来获取Class对象。&lt;/p&gt;&#10;&lt;h3 id="21listsetmap的区别"&gt;21.List、Set、Map的区别&lt;/h3&gt;&#10;&lt;p&gt;List：有序，可重复；&#10;Set：无序，不可重复；&#10;Map：无序，键值对，键不可重复。&lt;/p&gt;</description></item></channel></rss>