JAVA
文章平均质量分 82
无忧河边孤独的浪荡汉子
时不我待 只争朝夕
展开
-
ListenableFuture的线程运行状态分析
ListenableFuture的线程运行状态在JAVA的异步(2):guava-ListenableFuture中介绍了ListenableFuture的使用,下面用示例和visulaVM来看看使用ListenableFuture的时候的线程。自定义ThreadFactory用于给线程起一个便于标识的名称。以 task+自增数数字命名的线程用于执行异步任务的,用callback+自增数字命名的线程用于处理异步任务执行完毕后的回调public class MyThreadFactory impleme原创 2021-01-07 23:13:43 · 415 阅读 · 0 评论 -
JAVA中的Optional使用简介
Optional的使用基本方法常用示例下面这段摘自阿里JAVA编程规范:防止NPE,是程序员的基本修养,注意NPE产生的场景:1) 返回类型为基本数据类型,return包装数据类型的对象时,自动拆箱有可能产生NPE。 反例:public int f() { return Integer对象}, 如果为null,自动解箱抛NPE。2) 数据库的查询结果可能为null。3) 集合里的元素即使isNotEmpty,取出的数据元素也可能为null。4) 远程调用返回对象时,一律要求进行空指针判断,防止N原创 2020-08-30 00:46:50 · 847 阅读 · 0 评论 -
JAVA的异步(2):guava-ListenableFuture
JAVA异步实现(2):guava-ListenableFutureListenableFutureFutureCallbackSettableFuture在JDK1.8之前,java官方一直没有提供比Future更好的异步工具(Future相关在前一篇博客中有介绍),为此google的guava库中提供了ListenableFuture作为Future的工具,在JDK1.8中增加了CompletableFuture作为对Future的补充,见下一篇博客。本文的maven依赖如下: <depen原创 2020-08-17 23:12:35 · 729 阅读 · 0 评论 -
Spring中的p命名空间和c命名空间
p命名空间和c命名空间p命名空间c命名空间本文转自:https://blog.csdn.net/elim168/article/details/74516439在通过构造方法或set方法给bean注入关联项时通常是通过constructor-arg元素和property元素来定义的。在有了p命名空间和c命名空间时我们可以简单的把它们当做bean的一个属性来进行定义。p命名空间使用p命名空间时需要先声明使用对应的命名空间,即在beans元素上加入xmlns:p=“http://www.springfr转载 2020-05-29 16:42:46 · 534 阅读 · 0 评论 -
JDK动态代理与Proxy类和InvocationHandler接口分析
原文链接:https://blog.csdn.net/yaomingyang/article/details/80981004java动态代理机制中有两个重要的类和接口InvocationHandler(接口)和Proxy(类),这一个类Proxy和接口InvocationHandler是我们实现动态代理的核心;1.InvocationHandler接口是proxy代理实例的调用处理程序实现的...转载 2019-11-13 21:41:37 · 548 阅读 · 0 评论 -
静态方法不能调用非静态方法的原因
原文链接:https://blog.csdn.net/a5650892/article/details/78708343静态方法是属于类的,即静态方法是随着类的加载而加载的,在加载类时,程序就会为静态方法分配内存,而非静态方法是属于对象的,对象是在类加载之后创建的,也就是说静态方法先于对象存在,当你创建一个对象时,程序为其在堆中分配内存,一般是通过this指针来指向该对象。静态方法不依赖于对象的...转载 2019-11-13 20:47:02 · 511 阅读 · 0 评论 -
关于String.intern()(三):new String("str01")和new String("str")+new Strng("01")的区别
文章转自:https://blog.csdn.net/qq_34115899/article/details/86583262 版权声明:我的博客,我的笔记本。转载请注明 https://blog.csdn.net/qq_34115899/article/details/86583262 </div> <link rel="...转载 2019-04-10 09:43:07 · 552 阅读 · 3 评论 -
算法笔记10:二叉查找树
二叉查找树这里基于二叉查找树建立BST类,类使用二叉树的顺序存储键值key和键值对应的数据value。键值作为结点排序的依据,查找时依据结点的键值查找。/** * 基于二叉查找树的符号表 * @author XY * * @param <Key> 存储的键值 * @param <Value> 存储的键值对应的数据 */public class BST<...原创 2019-04-14 19:00:19 · 125 阅读 · 0 评论 -
算法笔记11:平衡查找树——红黑树
平衡查找树——红黑树二叉查找树的缺点和2-3树的引入从2-3树到红黑树红黑树的实现在学习红黑树的内容时应该先学习算法笔记10中二叉查找树,两者属于递进关系。二叉查找树的缺点和2-3树的引入二叉查找树的插入和查找都需要比较,比较的次数和树的层数有关,结点的深度决定了查找的路径的长度,查找的路径的长度就是比较的次数,所以查找的次数和树的形状有关,在普通的二叉树中,二叉树的形状是插入的顺序决定的,...原创 2019-04-14 20:24:22 · 248 阅读 · 1 评论 -
算法笔记13:无向图
算法笔记13:图无向图的表示和实现符号图深度优先搜索可达性路径广度优先搜索最短路径环和二色图环二色图连通性图的性质:离心率、半径、直径本文讲解无向图,讲解有向图。无向图的表示和实现如下图Graph所示,有一些定点和边组成图,边连接的两个定点相邻,边是对称的,0-1表示可以从0到1,也可以从1到0。从图中可以看到,对于任意一个顶点,都可以有任意多的相邻顶点,我们使用List数组(因为相邻顶点的...原创 2019-05-19 17:12:23 · 853 阅读 · 0 评论 -
算法笔记14:有向图
算法笔记13:有向图有向图有向图和无向图的区别有向图的实现有向图的深度优先搜索和广度优先搜索深度优先搜索可达性路径广度优先搜索最短路径环和有向无环图有向环的检测顶点的深度优先次序拓扑排序强连通性Kosaraju算法实现强连通性有向图有向图和无向图的区别在无向图中,连接是没有方向的,连接v-w意味着可以从顶点v到顶点w,但是有向图的连接是有方向的,连接v→w意味着只能从v到达w,而不能从w到v...原创 2019-05-19 17:12:36 · 1158 阅读 · 0 评论 -
C++和JAVA中子类父类同名方法调用的结果
C++和JAVA中子类父类同名方法调用的结果C++JAVA子类的函数A中调用父类的函数B,函数B中调用函数C,子类中存在函数C的覆写函数D,此时父类的方法会去调用子类的实现D。C++#include <iostream>using namespace std;class Pop{public : virtual void set() { res(); } v...原创 2019-07-07 16:04:21 · 1022 阅读 · 0 评论 -
二分查找的变形
本文转载自链接:https://blog.csdn.net/zxzxzx0119/arti...转载 2019-09-07 22:00:57 · 100 阅读 · 0 评论 -
关于String.intern()(二)
文章转自:https://blog.csdn.net/w605283073/article/details/72753494 《深入理解java虚拟机》第二版 57页对String.intern()返回引用的测试代码如下:/** String的intern例子 * Created by 明明如月 on 2017-...转载 2019-04-09 12:01:22 · 188 阅读 · 0 评论 -
关于String.intern()
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/soonfly/article/details/70147205 </div> <link rel="stylesheet" href="https:/...转载 2019-04-09 11:48:10 · 105 阅读 · 0 评论 -
算术表达式的计算:中序表达式转后序表达式
算术表达式的计算:中序表达式转后序表达式中序表达式转后序表达式的目的中序表达式转后序表达式后序表达式的计算中序表达式转后序表达式的目的在我们的日常数学表达中使用的诸如2*(5-1) 这样的表达式是中序表达式,我们使用数学计算规则对表达式进行计算,但是计算机要计算算术表达式,如果直接使用计算规则(括号-乘除-加减)这样的顺序计算的话就要去使用if-else语句判断括号、加减乘除然后计算,如果一个...原创 2019-01-20 12:39:25 · 5397 阅读 · 1 评论 -
节点和网络:动态连通性(union-find)问题
节点和网络:动态连通性(union-find)问题quick-find算法实现quick-union算法实现加权quick-union算法新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特...原创 2019-03-01 20:52:55 · 1087 阅读 · 0 评论 -
算法笔记1:初级排序:选择排序
选择排序选择排序的实现代码选择排序的实现代码/** * 选择排序 * @author XY * */@SuppressWarnings("rawtypes")public class SelectSort { public static void sort(Comparable[] v) { int size = v.length; for (int i = 0;...原创 2019-04-01 09:27:08 · 117 阅读 · 0 评论 -
算法笔记2:初级排序:插入排序和希尔排序
插入排序和希尔排序插入排序希尔排序插入排序/** * 插入排序 * @author XY * */@SuppressWarnings("rawtypes")public class InsertSort { public static void sort(Comparable[] v) {//插入排序 int size = v.length; for (int i ...原创 2019-04-01 09:44:42 · 381 阅读 · 0 评论 -
算法笔记3:归并排序
归并排序自顶向下的归并排序(使用递归)自底向上的归并排序(使用循环)自顶向下的归并排序(使用递归)/** * 自顶向下的归并排序 * @author XY * */@SuppressWarnings("rawtypes")public class MergeSort { private static Comparable[] temp; public static void s...原创 2019-04-01 10:12:31 · 147 阅读 · 0 评论 -
算法笔记4:快速排序
快速排序标准快速排序三取样切分和小段插入排序的快速排序标准快速排序import edu.princeton.cs.algs4.StdRandom;/** * 标准快速排序 * @author XY * */@SuppressWarnings("rawtypes")public class QuickSort { public static void sort(Compara...原创 2019-04-01 10:29:02 · 394 阅读 · 0 评论 -
算法笔记5:三向切分的快速排序
三向切分的快速排序初始三向切分快速排序改进的三向切分快速排序初始三向切分快速排序在 标准快速排序 中,对于有大量重复元素的数组会多次使用重复元素进行切分和交换,针对有大量重复元素的数组,提出了三向切分,使用指针 lt 和 ht,v[lo+1,lt)小于v[lo],v(ht,hi]大于v[lo],v[lt,ht]等于v[lo],这样的话一次将所有等于v[lo]的元素全部排定。import ed...原创 2019-04-01 11:14:06 · 367 阅读 · 0 评论 -
算法笔记6:TopK问题——优先序列(基于数组、链表)
优先序列:基于数组基于有序数组的优先序列基于无序数组的优先序列基于有序链表的优先序列基于有序数组的优先序列/** * 基于有序数组的优先序列 * @author XY * */@SuppressWarnings("unchecked")public class PriorityB<Key extends Comparable<Key>> {private ...原创 2019-04-01 11:20:56 · 396 阅读 · 0 评论 -
算法笔记7:TopK问题——优先序列(基于二叉堆)
基于二叉堆的优先序列/** * 基于二叉堆的优先序列 * @author XY * */@SuppressWarnings("unchecked")public class Priorityheap<Key extends Comparable<Key>> { private final int len_default=8; private Key[] p...原创 2019-04-01 11:22:56 · 361 阅读 · 0 评论 -
算法笔记8:多向归并——索引优先序列
多向归并——索引优先序列/** * 索引优先序列,为二叉堆实现的优先序列加上索引,其典型应用是在k个有序数组的多项归并中,维护 * 长度为k的优先序列,每个数组的编号为优先序列的索引,每次取掉的最小值的索引就将编号为该序列的 * 数组的下一位读入,依次进行。之所以使用索引优先序列,是因为没有索引就无法确定下一次读入哪个数组 * @author XY * */@SuppressWar...原创 2019-04-01 11:25:05 · 307 阅读 · 0 评论 -
算法笔记9:堆排序
堆排序/** * 堆排序,堆排序不对第一位进行排序 * @author XY * */@SuppressWarnings("rawtypes")public class HeapSort { public static void sort(Comparable[] v){ int size=v.length-1; for (int i = size/2; i >= ...原创 2019-04-01 11:27:05 · 126 阅读 · 0 评论 -
Kendall tau距离——逆序对的数量
Kendall tau距离——逆序对的数量** * kendall tau distance,求逆序对的数量,求相对于一个 * 数组另一个数组的逆序对的数量, 在基因测序中有大量使用 * @author XY * */public class Kendalltao { public static int Kendalltaodist_merge(int[] a, int[] b...原创 2019-04-01 11:30:47 · 1376 阅读 · 0 评论 -
线程阻塞
本文转载自:https://blog.csdn.net/weixin_41101173/article/details/79679300 版权声明:因为个人水平有限,文章中可能会出现错误,如果你觉得有描述不当、代码错误等内容或者有更好的实现方式,欢迎在评论区告诉我,即刻回复!最后,欢迎关注博主!...转载 2019-04-11 22:48:38 · 312 阅读 · 0 评论 -
sleep()和wait()的区别
版权声明:因为个人水平有限,文章中可能会出现错误,如果你觉得有描述不当、代码错误等内容或者有更好的实现方式,欢迎在评论区告诉我,即刻回复!最后,欢迎关注博主!谢谢 https://blog.csdn.net/weixin_41101173/article/details/79889464...转载 2019-04-11 22:50:46 · 362 阅读 · 0 评论 -
JAVA通过JDBC操作MySQL数据库(三):PreparedStatement接口操作数据库
JAVA通过JDBC操作MySQL数据库(三):PreparedStatement接口操作数据库Statement接口的问题PreparedStatement接口操作数据库Statement接口的问题在文章JAVA通过JDBC操作MySQL数据库(二):Statement接口操作数据库 中提到过,Statement接口操作数据库是有问题的,所以我们基本上不会使用Statement接口操作数据库...原创 2018-12-31 13:17:12 · 1849 阅读 · 0 评论