![](https://img-blog.csdnimg.cn/20210417163322800.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java学习
文章平均质量分 86
主要以Java面试知识为主
小朱小朱绝不服输
这个作者很懒,什么都没留下…
展开
-
Java数组、ArrayList、HashMap排序总结
在Java刷题过程中,无论是数组、ArrayList还是HashMap,排序是必不可少的,下面就对这些不同数据结构的排序做一个汇总。1. 数组排序1)一维数组直接调用sort方法:int[] num = new int[n];Arrays.sort(num);自定义排序:Integer[] = new Integer[n];Arrays.sort(minNum, new Comparator<String>() {@Override public int compare(I原创 2022-04-11 15:14:43 · 3931 阅读 · 0 评论 -
HashMap十四连问
下面是总结的HashMap中14道常考的题型。可以结合Java的HashMap原理总结(问答式学习)来进行学习。文章目录1. HashMap的底层数据结构是什么?2. 说一下HashMap的特点3. 解决hash冲突的办法有哪些?HashMap用的哪种?4. 为什么要在数组长度大于64之后,链表才会进化为红黑树5. 为什么加载因子设置为0.75,初始化临界值是16?6. 哈希表底层采用何种算法计算hash值?还有哪些算法可以计算出hash值?7. 当两个对象的hashCode相等时会怎样8. 何时发生哈希原创 2022-03-17 10:22:28 · 1574 阅读 · 2 评论 -
Java的HashMap原理总结(问答式学习)
HashMap原理详解,包括面试会问到的一些问题的总结。Java重要知识点总结如下:文章目录1. 介绍下 HashMap 的底层数据结构1.1 为什么要改成 数组+链表+红黑树?1.2 什么时候用链表?什么时候用红黑树?1.3 为什么链表转红黑树的阈值是8?1.4 为什么转回链表节点是用的6而不是复用8?2. 讲一下 HashMap 的重要属性2.1 HashMap 有哪些重要属性?分别用于做什么的?2.2 threshold 除了用于存放扩容阈值还有其他作用吗?2.3 HashMap 的默认初始容量是原创 2022-02-24 22:15:06 · 2222 阅读 · 0 评论 -
Java面试手册——高频问题总结(二)
这里将Java集合和垃圾回收的知识总结,放到(二)中。对Java平台的理解、Java基础知识、面向对象请参考Java面试手册——高频问题总结(一)文章目录四、Java集合1. Java集合框架的基础接口有哪些?2. Collection 和 Collections 有什么区别?3. List、Set、Map是否继承自Collection接口?4. HashMap 和 HashTable 的区别?5. ArrayList、Vector 和 LinkedList 的区别是什么?6. Array 和 Array原创 2021-10-21 15:25:46 · 1803 阅读 · 0 评论 -
Java面试手册——高频问题总结(一)
一、Java平台的理解1. 你是怎么理解Java平台的?Java 本身是一种面向对象的语言,最显著的特性有两个方面:一是所谓的“书写一次,到处运行”(Write once, run anywhere),能够非常容易地获得跨平台能力;另外就是垃圾收集(GC, Garbage Collection)Java 通过字节码和 Java 虚拟机(JVM)这种跨平台的抽象,屏蔽了操作系统和硬件的细节,这也是实现「一次编译,到处执行」的基础。Java 通过垃圾收集器(Garbage Collector)回原创 2021-10-20 11:30:58 · 2105 阅读 · 0 评论 -
Java强引用、软引用、弱引用、虚引用有什么区别?
在 Java 语言中,除了原始数据类型的变量,其他所有都是所谓的引用类型,指向各种不同的对象,理解引用对于掌握 Java 对象生命周期和 JVM 内部相关机制非常有帮助。在Java语言中,除了基本数据类型外,其他的都是指向各类对象的对象引用;Java中根据其生命周期的长短,将引用分为4类。强引用、软引用、弱引用、虚引用有什么区别?具体使用场景是什么?典型回答1.强引用特点:我们平常典型编码Object obj = new Object()中的obj就是强引用。通过关键字new创建的对象所关联的引用原创 2021-10-19 23:06:45 · 3645 阅读 · 1 评论 -
int和Integer有什么区别?
聊一聊Java中的 int 和 Integer 有什么区别?典型回答int 是我们常说的整形数字,是 Java 的 8 个原始数据类型(Primitive Types,boolean、byte 、short、char、int、float、double、long)之一。Java 语言虽然号称一切都是对象,但原始数据类型是例外。Integer 是 int 对应的包装类,它有一个 int 类型的字段存储数据,并且提供了基本操作,比如数学运算、int 和字符串之间转换等。在 Java 5 中,引入了自动装箱和原创 2021-10-19 16:22:54 · 303 阅读 · 0 评论 -
Exception和Error有什么区别?
对比 Exception 和 Error:典型回答Exception 和 Error 都是继承了 Throwable 类,在 Java 中只有 Throwable 类型的实例才可以被抛出(throw)或者捕获(catch),它是异常处理机制的基本组成类型。Exception 和 Error 体现了 Java 平台设计者对不同异常情况的分类。Exception 是程序正常运行中,可以预料的意外情况,可能并且应该被捕获,进行相应处理。Error 是指在正常情况下,不大可能出现的情况,绝大部分的 Err原创 2021-10-19 15:17:07 · 384 阅读 · 0 评论 -
谈谈对Java平台的理解?Java是解释执行的这句话对吗?
谈谈你对 Java 平台的理解?“Java 是解释执行”,这句话正确吗?典型回答Java 平台Java 本身是一种面向对象的语言,最显著的特性有两个方面:一是所谓的“书写一次,到处运行”(Write once, run anywhere),能够非常容易地获得跨平台能力;另外就是垃圾收集(GC, Garbage Collection),Java 通过垃圾收集器(Garbage Collector)回收分配内存,大部分情况下,程序员不需要自己操心内存的分配和回收。JRE和JDKJRE,也就是原创 2021-10-19 14:49:43 · 205 阅读 · 0 评论 -
Java虚拟机——JVM总结
JVM 是 java虚拟机,是用来执行java字节码(二进制的形式)的虚拟计算机。jvm是运行在操作系统之上的,与硬件没有任何关系。JVM跨平台及原理跨平台:由Java编写的程序可以在不同的操作系统上运行:一次编写,多处运行。原理:编译之后的字节码文件和平台无关,需要在不同的操作系统上安装一个对应版本的虚拟机(JVM)。JVM的分类类加载子系统。运行时数据区 [ 我们核心关注这里 的栈、堆、方法区 ]。执行引擎(一般都是JIT编译器和解释器共存):(1)JIT编译器(主要影响性能):原创 2021-10-19 11:14:06 · 3084 阅读 · 4 评论 -
Java面试:toString()、String.valueOf、(String)强制类型转换的区别
对于字符串类型的转换,你可能见到过这几种写法,它们之间有什么区别呢?首先,Java的八种类型:基本数据类型分别是:int、short、float、double、long、boolean、byte、char;它们的封装类分别是:Integer、Short、Float、Double、Long、Boolean、Byte、Character。一、代码实例1.基本类型(1)基本类型没有toString() 方法(2)String.valueOf()方法转Stringint a =0;St原创 2021-09-23 14:53:55 · 1737 阅读 · 0 评论 -
Java使用Redis(单实例连接和连接池连接)
我们在使用Java做开发的时候,使用Redis做数据存储时,需要对redis进行连接。1. 安装Jedis首先,需要安装Jedis。Jedis介绍:Jedis是Redis官方首选的Java客户端开发包。Jedis下载:下载地址:https://github.com/xetorthio/jedisJedis包导入Java项目:下载好后,将下载的两个jar包复制到新建的java项目中,然后将两个包添加到构建路径中。Build Path -> Add to Build Path。2. 测试连原创 2021-09-07 17:29:52 · 910 阅读 · 0 评论 -
String、StringBuffer、StringBuilder有什么区别?
Java的字符串,String、StringBuffer、StringBuilder有什么区别?典型回答String 是 Java 语言非常基础和重要的类,提供了构造和管理字符串的各种基本逻辑。它是典型的 Immutable 类,被声明成为 final class,所有属性也都是 final 的。也由于它的不可变性,类似拼接、裁剪字符串等动作,都会产生新的 String 对象。由于字符串操作的普遍性,所以相关操作的效率往往对应用性能有明显影响。注:mutable(可变)和immutable(不可变)类原创 2021-04-18 21:22:20 · 199 阅读 · 0 评论 -
对比HashTable、HashMap、TreeMap有什么不同?
Map是广义Java集合框架中的另外一部分,HashMap作为框架中使用频率最高的类型之一,它本身及相关类型也是考点。对比HashTable、HashMap、TreeMap有什么不同?典型回答Hashtable、HashMap、TreeMap 都是最常见的一些 Map 实现,是以键值对的形式存储和操作数据的容器类型。Hashtable 是早期 Java 类库提供的一个哈希表实现,本身是同步的,不支持 null 键和值,由于同步导致的性能开销,所以已经很少被推荐使用。HashMap 是应用更加广泛的原创 2021-04-18 14:28:50 · 289 阅读 · 0 评论 -
对比Vector、ArrayList、LinkedList有何区别?
针对通用场景的需求,Java提供了强大的集合框架,对比Vector、ArrayList、LinkedList有何区别?典型回答这三者都是实现集合框架中的List,也就是所谓的有序集合,具体功能比较相似,比如都提供按照位置进行定位,添加或删除操作,都提供迭代器以遍历其内容等。但因为具体的设计区别,在行为、性能、线程安全等方面,表现又很大不同。Vector 是 Java 早期提供的线程安全的动态数组,因为同步是有额外开销的,如果不需要线程安全,并不建议选择。 Vector 内部是使用对象数组来保存数据,可原创 2021-04-17 17:35:48 · 198 阅读 · 1 评论