Java
文章平均质量分 74
tracydragonlxy
这个作者很懒,什么都没留下…
展开
-
Java中finally和return的执行顺序
中的内容一定是会被执行的,一般用来释放资源,并确保某些操作一定会执行。是一种针对程序运行时出错的响应手段,对于一些可以预料到的出错类型,在发生时对其进行报告和补救。这就是Java到底是传值还是传址的问题了,简单来说就是:Java中只有传值没有传址,这也是为什么。就变成不可到达语句了,也就是永远不能被执行到,所以需要注释掉否则编译器报错。后的语句中的内容是对应的错误类型。不会被执行到,而是接着执行捕获异常的。语句先执行,确定了返回值后再去执行。中的语句报错了,那么就转入对应的。语句中执行处理异常的措施,原创 2024-01-11 15:33:31 · 1934 阅读 · 2 评论 -
HashMap源码解析-jdk1.8(三)
*** 默认的负载因子,用来衡量HashMap满的程度。*/负载因子,用来衡量HashMap满的程度。通常,默认负载因子(0.75)在时间和空间成本之间提供了一个很好的权衡。负载因子越大则散列表的装填程度越高,减少空间开销,但会增加查找成本。负载因子越小则链表中的数据量就越稀疏,此时会对空间造成烂费,但是此时索引效率高。试想一下,如果我们把负载因子设置成1,容量使用默认初始值16,那么表示一个HashMap需要在"满了"之后才会进行扩容。原创 2023-11-29 17:53:56 · 1014 阅读 · 0 评论 -
HashMap源码解析_jdk1.8(二)
从构造函数我们可以看出,在常规构造器中,没有为数组table分配内存空间(有一个入参为指定Map的构造器例外),而是在执行put操作的时候才真正构建table数组。如果用户通过构造函数指定了一个数字作为容量,那么Hash会选择。原创 2023-10-24 18:03:19 · 199 阅读 · 1 评论 -
HashMap源码解析_jdk1.8(一)
一般翻译做“散列”,也有直接音译为“哈希”的,就是把任意长度的输入,通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来唯一的确定输入值。2). 再平方探测: 冲突发生时,在表的左右进行跳跃式探测,在原来值的基础上先加1的平方个单位,若仍然存在则减1的平方个单位。在哈希表中进行添加,删除,查找等操作,性能十分之高,不考虑哈希冲突的情况下,仅需一次定位即可完成,时间复杂度为。原创 2023-09-25 14:07:10 · 133 阅读 · 0 评论 -
Java 二叉树后序遍历(递归/非递归)
Java 二叉树后序遍历(递归/非递归)原创 2022-03-31 18:52:50 · 2921 阅读 · 2 评论 -
Java 二叉树中序遍历(递归/非递归)
Java 二叉树中序遍历(递归/非递归)原创 2022-02-28 20:05:36 · 4149 阅读 · 0 评论 -
Java HashMap和HashTable的区别
Java HashMap和HashTable的区别Java HashMap和HashTable的区别Java HashMap和HashTable的区别1. 继承的父类2. 线程安全性3. null值问题4. 初始容量及扩容方式5. 遍历方式6. 计算`hash`值方式1. 继承的父类都实现了Map、Cloneable(可复制)、Serializable(可序列化)接口。HashMap: 继承自AbstractMap类。public class HashMap<K,V> extends原创 2020-10-24 15:15:05 · 294 阅读 · 0 评论 -
Java包装类缓存
Java包装类缓存包装类缓存机制Java 包装类的缓存机制,是在Java 5中引入的一个有助于节省内存、提高性能的功能。Java 基本类型的包装类的大部分都提供了对象的缓存,实现方式是在类初始化时提前创建好会频繁使用的包装类对象,当需要使用某个包装类的对象时,如果该对象包装的值在缓存的范围内,就返回缓存的对象,否则就创建新的对象并返回。只有在自动装箱时有效,使用构造函数创建对象不适用。Integer i5 = new Integer(12); // 会创建新的对象,不适用Integer i1原创 2020-09-27 15:46:12 · 1777 阅读 · 0 评论 -
Java 二叉树前序遍历(递归/非递归)
Java 二叉树前序遍历(递归/非递归)原创 2020-07-09 14:34:13 · 1532 阅读 · 0 评论 -
KMP算法的实现(Java)
KMP算法的实现(Java)KMP算法KMP算法的实现(Java)简介问题暴力算法(Brute Force)简介KMP算法是一种改进的字符串匹配算法,由D.E.Knuth,J.H.Morris和V.R.Pratt提出的,因此人们称它为克努特—莫里斯—普拉特操作(简称KMP算法)。KMP算法的核心是利用匹配失败后的信息,尽量减少模式串与主串的匹配次数以达到快速匹配的目的。具体实现就是通过一个next()函数实现,函数本身包含了模式串的局部匹配信息。KMP算法的时间复杂度O(m+n)。问题有一个目标串原创 2020-06-10 16:15:21 · 2941 阅读 · 1 评论 -
Java 二叉树层次遍历
Java 二叉树层次遍历原创 2020-06-06 16:28:41 · 6968 阅读 · 1 评论 -
Java 二维数组按指定列排序(二)
Java 二维数组按指定列排序(二)上一篇文章【Java 二维数组按指定列排序(一)】,我们介绍了二维数组按列排序的方法。本章我们对上次的方法进行修改,使其能够支持不同的排序方式(升序 or 降序)。效果图:代码实现:public static void main(String[] args) { int[][] nums = initialArray(5, 3); ...原创 2020-05-06 17:55:09 · 2337 阅读 · 0 评论 -
Java 二维数组按指定列排序(一)
Java 二维数组按指定列排序简介:在做项目时,需要对一个二维数组,按照指定的列进行排序。效果图:代码实现: public static void main(String[] args) { int[][] nums = initialArray(5, 3); System.out.println("排序前:"); printAr...原创 2019-12-06 18:01:16 · 6594 阅读 · 1 评论 -
负数取模怎么算, -10 % 3 = ?
负数取模怎么算, -10 % 3 = ?简介:今天遇到了一个很奇怪的问题:-10 % 3 = ?和 10 % -3 = ?,相信很多人都跟我一样脱口而出-10 % 3 = -1,10 % -3 = 1,然后我用计算器算了一下,结果让我很惊讶,-10 % 3 = 2,10 % -3 = -2。于是我用Java执行了两个式子,算出来的结果跟我一开始想的一样的,这怎么回事呢,经过查资料发现原来每一种...原创 2019-09-25 14:48:46 · 19702 阅读 · 2 评论 -
Java消息中间件——ActiveMQ的安装教程
Java消息中间件——ActiveMQ的安装教程第一步:下载ActiveMQ,http://activemq.apache.org/activemq-5144-release.html第二步,下载好ActiveMQ后,解压下载的ActiveMQ到一个目录,得到解压后的目录结构如下图:第三步:进入bin目录后有win32和win64两个文件夹,这2个文件夹分别对应windows32位和windows6原创 2017-12-17 20:07:28 · 1595 阅读 · 0 评论 -
绿色到黄色到红色的颜色渐变
绿色到黄色到红色的颜色渐变前言:给定一个函数根据传入参数的大小,得到一个颜色。实现从绿色到黄色到红色的颜色渐变。代码://以val最大取值90为例public int getColor(float val) { float one = (255 + 255) / 60;//(255+255)除以最大取值的三分之二 int r=0,g=0,b=0; i原创 2017-10-26 16:45:57 · 13723 阅读 · 2 评论 -
Java9新特性之——接口中的私有方法
Java9新特性之——接口中的私有方法原创 2017-09-25 10:29:27 · 15131 阅读 · 0 评论