- 博客(168)
- 资源 (4)
- 收藏
- 关注
原创 用JavaScript动态的创建表格(table)
直接上代码,因为是用原生的JS写的,基本copy到一个html文件就能用<html><head></head><body><table id="show_cal_log" > <thead> <tr> <th>field1</th> </tr> </thead> <tbody>
2021-11-17 01:20:56 1340
原创 Windows 安装包启动Postgresql
现在这个网站下载 PostgreSQL https://www.enterprisedb.com/download-postgresql-binaries ,版本选择最新版的就好。下载压缩包后,解压缩,可以看到下面这张图的文件目录:我们所需要的启动文件就在bin 的文件夹里面。根据官方文档我们可以看到,要使用数据库,要先初始化存放数据库数据的文件夹也就是用 initdb,我们先用 initdb.exe --help 命令来看看是否有命令需要我们配置的。在bin文件夹下面运行 initdb.exe -
2020-10-07 18:06:45 1001
原创 记一次 RocketMQ 的启动问题 com.alibaba.fastjson.JSONException
最近开始是使用RocketMQ,入门就是在本机上搭建一个最简单的版本的RocketMQ了,第一次启动没啥问题,但是在第二次启动的时候出现了错误。启动nameServer 没啥问题,但是在启动Broker的时候就发现问题了。而且控制台也没有什么报错信息,反正就是你用命令:.\mqadmin.cmd clusterList -n localhost:9876你看不到相关的节点的列表。PS D:\RocketMQ\rocketmq4.7.0> .\bin\mqadmin.cmd clusterLi
2020-06-08 14:45:28 2064
原创 玩转Java线程池(2):Tomcat是如何修改创建线程的策略的?
0 线程池创建线程的过程是怎样的?比如我创建了一个线程池ThreadPoolExecutor executor = new ThreadPoolExecutor(5, 15, 60, TimeUnit.MINUTES, new ArrayBlockingQueue&...
2020-05-24 11:45:30 751
原创 玩转 Java 线程池(1):线程池到底应该怎么建?
0 创建线程池的核心问题根据阿里巴巴的《Java开发规范》里的一条规定,这条规定指出了,当我们想使用线程池的时候,最好不要偷懒,最好要自己手动创建线程池,那么问题就来了,手动创建线程池到底要如何去创建?1 我的核心线程书到底应该创建多少?2 我的阻塞队列到底需要多大?3 用默认的创建线程工厂还是自己实现?4 拒绝策略到底用哪个?5 改变线程池创建线程的策略...
2020-05-02 16:32:57 348
原创 LeetCode 面试题 17.06. 2出现的次数
面试题 17.06. 2出现的次数12345 转换为 nums, 所以,nums={1, 2, 3, 4, 5}dp[1] = 5 的2的数量;dp[2] = 45 的2的数量;dp[3] = 345 的2的数量;dp[4] = 2345 的2的数量;dp[5] = 13245 的2的数量;第 i 位的数字有以下几种情况:nums[i]...
2020-03-26 16:13:07 413
原创 LeetCode 365. 水壶问题(Java 解法)
365 水壶问题广度优先搜索我们要用一种方式来表示当前两个水壶的状态,这里可以自己选择,比如利用字符串,把两个水壶当前的水量用下划线拼接起来。我这选择的构造一个新的类 Pairprivate class Pair { int x; int y; Pair(int x, int y) { this.x = x; this.y = y;...
2020-03-21 15:49:53 577
原创 Java 中的移位那些事
移位之所以会有移位操作,最重要的因为计算机中的数据就是用二进制的格式来保存的。所以,在计算机中的加减乘除都是要计算机利用移位操作来完成的。但是移位会伴随着一个问题的产生,就是移位操作后的,空出来的位置要补什么?根据补充的逻辑不同,移位操作又可以分成 “逻辑移位” 和 “算术移位” ,而且二者最主要的区别是在一个动作右移的动作上。因为数字在计算机中都是以二进制来存储的,这样就会产生一个问题,你要...
2020-03-11 17:01:03 276
原创 在并发编程中我们常说的“竞态”是什么?
1 何谓“竞态”之前在学习一篇文章的时候,就看到“竞态”,但是不知道什么意思,文章中也没有对“竞态”做更多的解释,后来经过一番的探索,终于弄的差不多明白了,今天写点总结。首先,我们要明白“竞态”是什么。先说我的结论吧,“竞态”就是在多线程的编程中,你在同一段代码里输入了相同的条件,但是会输出不确定的结果的情况。我不知道这个解释是不是够清楚,我们接着往下看,下面我们用一段代码来解释一下啊。出现...
2020-01-19 16:17:20 1131
原创 根据Java的容器说说“快速报错” (fail-fast)
Java容器有一种保护机制,能够防止多个线程修改同一个容器的内容。这个机制主要是应用到迭代器上,如果你使用迭代器进行遍历,那么此时有另一个线程修改了这个数据结构,比如此时,别的线程,增加,删除了某个元素,这个是Java的非同步容器是不允许的同时两个的操作。何为快速报错?其实就是根据这个容器的如何你使用的不这正确,那么就会抛出错误,程序就不会运行下去了。如果此时不泡错,那么程序就会用错误的数据...
2019-12-27 07:31:39 208
原创 为什么覆写了`hashCode()`之后,就一定要覆写 `equals()`
我们为什么需要覆写hashCode()这里我们可以先假设,如果我们不覆写 hashCode, 会发生什么情况,因为如果不覆写hashCode(),那么默认使用的就是Object#hashCode(),那么每个对象都会得到一个唯一的哈希值,这个看起来正确,但是本身没啥意义,我们举个例子,如果String类不覆写hashCode()来按照字符串的值来产生一个哈希值(散列值),那么就算是相同的字符串锁...
2019-12-26 05:49:27 274
原创 LeetCode 146. LRU缓存机制(Java版)
题目146. LRU缓存机制题解1 直接用LinkedHashMap来完成class LRUCache { private LinkedHashMap<Integer, Integer> map; public LRUCache(int capacity) { map = new LinkedHashMap<Integer, Inte...
2019-12-07 18:43:08 216
原创 LeetCode 34. 在排序数组中查找元素的第一个和最后一个位置(Java版)
题目34. 在排序数组中查找元素的第一个和最后一个位置https://leetcode-cn.com/problems/find-first-and-last-position-of-element-in-sorted-array/题解二分查找先用二分查找找到目标值第一个所在的位置,然后再用二分查找,找到目标值最后一个所在位置。第一个所在值的查找逻辑:1 如果nums[mid] 等...
2019-12-03 23:13:19 376
原创 LeetCode 25. K 个一组翻转链表(Java版)
题目25. K 个一组翻转链表https://leetcode-cn.com/problems/reverse-nodes-in-k-group/题解我的指针的做法我是喜欢用迭代来进行翻转的所以我这里还是用了迭代的思想。先找到需要反转的链表,然后翻转,然后在进行拼接。看起来很简单,我们我们先遍历需要反转的链表段子,也就是先走过k个ListNode。然后用几个变量先记录下当前的链表的情...
2019-12-03 18:58:57 378
原创 LeetCode 735. 行星碰撞 (Java版)
题目735. 行星碰撞https://leetcode-cn.com/problems/asteroid-collision/题解栈的思想解决如果栈为空,那么直接入栈。当前的遍历到的数值大于0,那么直接入栈。如果为负数:栈顶为负数,入栈栈顶为正数,判断和当前数字的绝对值比较,绝对值大,那么整数出栈,且判断栈是否为空,为空就入栈,且结束。栈顶为正数,且比当前数字的绝对值小...
2019-12-02 00:32:02 432
原创 LeetCode 10. 正则表达式匹配(Java 版本)
题目10. 正则表达式匹配题解回溯思想1 因为这题目中提到:所谓匹配,是要涵盖 整个 字符串 s的,而不是部分字符串。所以这题就简单了。1 判断是否当前的字符是否相等或者 p 的当前字符是 .若为true:继续判断 p 的后一个字符是否为 *:是 *:保持当前的p游标,而且接着判断s的下一个字符。不是 *:保持当前的p游标,而且接着判断s的下两个字符(其实忽略当前...
2019-12-01 13:15:34 240
原创 LeetCode 31. 下一个排列(Java版)
题目31. 下一个排列题解数学家 Narayana Pandita 提出的思想1 初始化一个index,从数组倒数第二个元素开始寻找第一个nums[index] < nums[index + 1],也就是寻找递减序列的前一个后一个元素,比如,一下这个数组,那么这个nums[index] = 2,index也就是1。1 2 7 6 5 42 判断index是为-1如果是-1...
2019-12-01 01:00:21 325
原创 二叉树的前序、中序、后序遍历(递归实现)
递归实现先设定树的节的数据结构是 private class Node { public E element; public Node left, right; public Node(E element) { this.element = element; }}前序前序的遍历顺序就是:根-》左-》右/** * preorder ...
2019-11-30 01:34:05 226
原创 LeetCode 33. 搜索旋转排序数组(Java版)
题目33. 搜索旋转排序数组题解题目的重点的就是有点被旋转了,而且时间复杂度O(logN)O(logN)O(logN),所以这里需要运用的就是而二分思想的。我们要知道数组的最小值所在的地方,一般来说在左半边还是右半边。举个例子1 最小值在左半边low = 0, high = len - 1,所以 high 是 8mid = low + ((high - low) >>...
2019-11-28 23:15:30 241
原创 LeetCode 238. 除自身以外数组的乘积(Java版)
题目238. 除自身以外数组的乘积题解构造两个数组left和rightleft[i] = nums[0] * nums[1] *…… * nums[i-2] * nums[i-1]right[i] = nums[i + 1] * nums[i + 2] *…… * nums[len-2] * nums[len-1]所以就有以下的公式:left[i] = left[i - 1]...
2019-11-28 18:36:20 227
原创 LeetCode 53 最大子序和(Java版)
题目53. 最大子序和题解其实这个描述不够准确,应该是最大子数组和才对1 动态规划这个需要懂得一个技巧,如何确定这个是不是一个新的子数组的开头,就是看前一个位置的值是否是正值,如果是正值,那么对于当前的值就是有增加效果的。如果前面一个值是负的,那么当前值就是最大值就是nums[i]如果前面一个值是正的,那么当前的最大值就是last + nums[i]public int maxSu...
2019-11-28 14:14:45 232
原创 LeetCode 题解 16 最接近的三数之和(Java版)
题目16. 最接近的三数之和题解一、双指针思想1 首先进行数组排序,时间复杂度O(nlogN)O(nlogN)O(nlogN),然后设置一个dis = Integer.MAX_VALUE2 在 nums 数组进行遍历,每遍历一个元素,利用该元素的下标i,得到一个固定值 nums[i]3 在创建一个前指针 start = i + 1, 再创建一个后指针 end = nums.lengt...
2019-11-23 21:04:19 186
原创 Java 11 的String是如何优化存储的?
优化的依据是什么?Java 中的 char 是两个byte大小,因为我们大多数的时候操作数据都是都是用拉丁语系的字符的,而拉丁语系的字符只要用byte就足够存储了,根本就不需要char。所以如果我们发现发现了一个字符串里只有拉丁语系的字符,那么我们全都用byte,这样就比原来的用char来存储节省一半的存储空间了。具体实现思想是什么?判断一个字符串里是否都是拉丁语系的字符,如果全都是,那么O...
2019-11-21 23:37:15 377
原创 第56周 ARTS 2019 11 10
A: 384. 打乱数组R: Java 8 HashMap Implementation and PerformanceT: B+树S: 无人机找小男孩
2019-11-11 21:37:11 248
原创 第55周 ARTS 2019 11 03
Algorithm 289. 生命游戏Review Become a Master of Java Streams — Part 1: Creating StreamsTip/Tech 数据库的索引Share 机器学习就是个炒作Algorithm289. 生命游戏https://leetcode-cn.com/problems/game-of-life/这他的难点就在于,你要原...
2019-11-03 13:16:33 183
原创 第54周 ARTS 2019 10 27
Algorithm 103 二叉树的锯齿形层次遍历Review Become a Master of Java Streams — Part 1: Creating StreamsTip/Tech 数据库的索引Share 机器学习就是个炒作103 二叉树的锯齿形层次遍历https://leetcode-cn.com/problems/binary-tree-zigzag-level-...
2019-10-27 10:43:51 1307
原创 第53周 ARTS 2019 10 20
Algorithm:378. 有序矩阵中第K小的元素Review:Tip/Tech:Share:Algorithm378. 有序矩阵中第K小的元素https://leetcode-cn.com/problems/kth-smallest-element-in-a-sorted-matrix/因为这题,这周一次性做了六道和这个相关的题目,简直了。这种第K个小的题目,一般来说,最简...
2019-10-24 02:04:27 214
原创 第52周 ARTS 2019 10 13
Algorithm:1046. 最后一块石头的重量Review:反转字符串Tip/Tech:单调栈Share:指数基金想CDO一样是泡沫Algorithm1184. 公交站间的距离https://leetcode-cn.com/problems/distance-between-bus-stops/class Solution { public int distance...
2019-10-19 10:01:50 369
原创 LeetCode 236. 二叉树的最近公共祖先 (Java解法)
链接:https://leetcode-cn.com/problems/lowest-common-ancestor-of-a-binary-tree注意这里的问题其实就告诉了做题的人,这里既没有父亲节点,也没有二叉搜索树的性质。LCA的问题,一般来说就是几种套路1 塑造父亲节点一般来说,现确定有没有父节点的这个附加功能,如果有父节点,那么就是两个链表,寻找公共点的问题。如果没有父亲节...
2019-10-13 17:12:06 314
原创 LeetCode 第674题 最长连续递增序列(Java解法)
给定一个未经排序的整数数组,找到最长且连续的的递增序列。示例 1:输入: [1,3,5,4,7]输出: 3解释: 最长连续递增序列是 [1,3,5], 长度为3。尽管 [1,3,5,7] 也是升序的子序列, 但它不是连续的,因为5和7在原数组里被4隔开。示例 2:输入: [2,2,2,2,2]输出: 1解释: 最长连续递增序列是 [2], 长度为1。注意:数组长度不会超...
2019-10-08 22:16:16 414
原创 第51周 ARTS 2019 10 06
https://leetcode-cn.com/problems/distance-between-bus-stops/class Solution { public int distanceBetweenBusStops(int[] distance, int start, int destination) { if (distance == null || dist...
2019-10-07 15:25:22 244
原创 读Java 11 源码(4)Hashtable
数据存在那?一个用Entry为元素的数组。private transient Entry<?,?>[] table;table,这个是由Entry这个内部类组成的数组,我们来看看这个类的代码。private static class Entry<K,V> implements Map.Entry<K,V> { final int hash; ...
2019-10-04 14:02:51 165
原创 狄克斯特拉算法--Java实现
狄克斯特拉算法(Dijkstra’s algorithm)为了什么而存在这个算法主要用在图这种数据结果中,而且是比较特殊的 加权图 。这里引用《算法图解》中的一个图片来进行讲解。比如我们要从双子峰到金门大桥,我们想在最短的时间内到达。这里就不是段数最少的问题了,因为条道路都有耗时的时间,可以看成每条路的权重,你要找的就是最后权重累加最少的路径。上面属于加权图,计算这种加权图的最短路径的方...
2019-10-02 06:59:01 857
原创 数据结构(2)堆
这里以最大堆来作为例子其实堆的本质上是个树,而且还是个完全二叉树。这种完全二叉树的堆,咱们也可以叫它二叉堆,但是这种完全二叉树个性质,导致了它与众不同,就像二叉搜索树一样。二叉搜索书就有个特殊的性质:左子树的左右节点一定小于当前节点,右子树的及节点一定大于等于当前节点。最大堆(最大二叉堆)特殊性质:孩子节点一定比当前节点小。最小堆(最小二叉堆)特殊性质:孩子节点一定比当前节点大。...
2019-09-29 16:32:31 160
原创 读Java 11 源码(3)HashMap
1 为什么是数组+链表数组是怎么来的?先来看个成员变量。/*** The table, initialized on first use, and resized as* necessary. When allocated, length is always a power of two.* (We also tolerate length zero in some operation...
2019-09-23 22:17:00 404
原创 读Java11 源码(2)LinkedList
增加节点public void add(int index, E element) { checkPositionIndex(index); if (index == size) linkLast(element); else linkBefore(element, node(index));}private void checkPos...
2019-09-22 17:45:32 153
原创 第49周 ARTS 2019 09 22
Algorithm:523. 连续的子数组和Review: 鸿蒙OS——安卓杀手Tip/Tech:并查集Share:印度会禁止使用部分一次性塑料
2019-09-22 08:53:17 194
原创 读 Java 11 源码(1)ArrayList
查找这个最简单,基本逻辑上就是遍历,然后匹配,但是在匹配上,有讲究。/** * Returns the index of the first occurrence of the specified element * in this list, or -1 if this list does not contain the element. * More formally, return...
2019-09-20 09:41:35 186
Coursera 斯坦福机器学习程序代码(Octave)
2015-03-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人