Java知识点
Lazy mode
简单性和模块化是软件工程的基石;分布式和容错性是互联网的生命。
当你还不能写出自己满意的程序时,你就不要去睡觉。
展开
-
二进制运算常用操作
二进制基本知识原创 2021-08-05 10:24:45 · 350 阅读 · 0 评论 -
foreach 循环里进行元素的 remove操作
如果要进行remove操作,可以调用迭代器的 remove 方法而不是集合类的 remove 方法。因为如果列表在任何时间从结构上修改创建迭代器之后,以任何方式除非通过迭代器自身remove/add方法,迭代器都将抛出一个ConcurrentModificationException,这就是单线程状态下产生的 fail-fast 机制。正例public class ModList { public static void main(String[] args) { List&.原创 2021-06-03 17:06:10 · 5004 阅读 · 0 评论 -
5765. 跳跃游戏 VII(动态规划+前缀和优化)
package com.heu.wsq.leetcode.zhousai.so3;/** * 5765. 跳跃游戏 VII * @author wsq * @date 2021/5/23 * 给你一个下标从 0 开始的二进制字符串 s 和两个整数 minJump 和 maxJump 。一开始,你在下标 0 处,且该位置的值一定为 '0' 。当同时满足如下条件时,你可以从下标 i 移动到下标 j 处: * i + minJump <= j <= min(i + maxJump, s.原创 2021-05-23 15:10:55 · 174 阅读 · 0 评论 -
redis基本类型对象编码
字符串对象对象编码方式有三种:int: 当值为小的整数值,使用long类型存储embstr:值为简短的字节数组(同样也是SDS,仅调用一次内存分配函数,分配的连续空间,空间中包含redisObject和sdshdr)raw:底层采用SDS字符串存储(调用两次内存分配函数,分配给redisObject和sdshdr)编码变更:列表对象对象编码方式有三种:ziplist:列表中所有字符串元素的长度小于64;元素的数量小于512个,使用ziplistlinkedlist:当ziplis原创 2021-05-15 21:43:22 · 267 阅读 · 0 评论 -
Java集合总结
集合扩容机制ArrayList:扩容为原来数组长度的1.5倍,如果1.5倍小于所需的长度,则直接扩容到所需容量的大小。HashMap:默认的初始化大小为 16。之后每次扩充,容量变为原来的 2 倍(保证容量为2的幂次方)。HashTable:默认的初始大小为 11,之后每次扩充,容量变为原来的 2n+1。HashSet、TreeSet、LinkedHashSet的区别HashSet 是 Set 接⼝的主要实现类 , HashSet 的底层是 HashMap ,线程不安全的,可以存储 nul原创 2021-04-27 16:21:16 · 85 阅读 · 0 评论 -
200. 岛屿数量(并查集)
package com.heu.wsq.leetcode.bingchaji;import java.util.ArrayList;import java.util.HashSet;import java.util.List;import java.util.Set;/** * 200. 岛屿数量 * @author wsq * @date 2021/4/7 * 给你一个由 '1'(陆地)和 '0'(水)组成的的二维网格,请你计算网格中岛屿的数量。 * 岛屿总是被水包围,并且每座岛屿原创 2021-04-07 22:14:32 · 188 阅读 · 0 评论 -
测试取模与取余的时间消耗
package com.heu.wsq.basic;/** * 测试取模与取余的时间消耗 * 1.对正数取模和取余是一样的 * 2.当取模的长度为2的n次方时,取余操作和len-1进行"余"运算是一样的 * @author wsq * @date 2021/4/6 */public class MoldTest { public static void main(String[] args) { long preTime = System.currentTimeMi原创 2021-04-06 22:24:00 · 401 阅读 · 0 评论 -
二叉树专题
二叉树搜索类前序遍历:前序遍历的顺序是 根-左-右 思路是:1. 先将根结点⼊栈2. 出栈⼀个元素, 将右节点和左节点依次⼊栈3. 重复 2 的步骤总结: 典型的递归数据结构, 典型的⽤栈来简化操作的算法。中序遍历:中序遍历的顺序是 左-根-右 , 根节点不是先输出, 这就有⼀点点复杂 了。根节点⼊栈判断有没有左节点, 如果有, 则⼊栈, 直到叶⼦节点 此时栈中保存的就是所有的左节点和根节点。出栈, 判断有没有右节点, 有则⼊栈, 继续执⾏ 2值得注意的是, 中序遍历⼀个⼆叉查原创 2021-03-25 22:54:26 · 116 阅读 · 0 评论 -
1608. 特殊数组的特征值
package com.heu.wsq.leetcode.arr;/** * 1608. 特殊数组的特征值 * @author wsq * @date 2021/1/26 * 给你一个非负整数数组 nums 。如果存在一个数 x ,使得 nums 中恰好有 x 个元素 大于或者等于 x ,那么就称 nums 是一个 特殊数组 ,而 x 是该数组的 特征值 。 * 注意: x 不必 是 nums 的中的元素。 * 如果数组 nums 是一个 特殊数组 ,请返回它的特征值 x 。否则,返回 -1原创 2021-01-26 14:12:03 · 136 阅读 · 0 评论 -
1128. 等价多米诺骨牌对的数量
package com.heu.wsq.leetcode.bingchaji;/** * 1128. 等价多米诺骨牌对的数量 * @author wsq * @date 2021/1/26 * 给你一个由一些多米诺骨牌组成的列表 dominoes。 * 如果其中某一张多米诺骨牌可以通过旋转 0 度或 180 度得到另一张多米诺骨牌,我们就认为这两张牌是等价的。 * 形式上,dominoes[i] = [a, b] 和 dominoes[j] = [c, d] 等价的前提是 a==c 且 b=原创 2021-01-26 11:10:12 · 87 阅读 · 0 评论 -
maven配置
配置阿里云镜像 <mirrors> <mirror> <id>nexus-aliyun</id> <mirrorOf>central</mirrorOf> <name>Nexus aliyun</name> <url>http://maven.aliyun.com/nexus/content/groups/public</ur原创 2021-01-25 22:26:56 · 113 阅读 · 0 评论 -
双重校验锁实现对象单例
双重校验锁实现对象单例package com.heu.wsq.basic;/** * 双重校验所锁实现对象单例(线程安全) * @author wsq * @date 2021/1/24 */public class Singleton { /** * volatile作用: * 1.保证内存可见性 * 2.防止指令重排序 */ private volatile static Singleton uniqueInstance;原创 2021-01-24 19:39:12 · 141 阅读 · 1 评论 -
获取控制台输入的方式
方法1:通过ScannerScanner in = new Scanner(System.in);方法2:通过BufferedReaderBufferedReader bfIn = new BufferedReader(new InputStreamReader(System.in));示例package com.heu.wsq.basic;import java.io.BufferedReader;import java.io.IOException;import java.io.I原创 2021-01-16 17:50:07 · 243 阅读 · 0 评论 -
finally返回值覆盖问题
当 try 语句和 finally 语句中都有 return 语句时,在⽅法返回之前,finally 语句的内容将被 执⾏,并且 finally 语句的返回值将会覆盖原始的返回值。/** * @author wsq * @date 2021/1/16 */public class TryCatchTest { public static void main(String[] args) { int ans = f(2); System.out.print.原创 2021-01-16 17:40:18 · 287 阅读 · 1 评论