- 博客(69)
- 资源 (11)
- 收藏
- 关注
原创 AbstractExcutorService源码分析
submit方法 // submit方法1: 参数为任务方法体Runnable public Future<?> submit(Runnable task) { if (task == null) throw new NullPointerException(); RunnableFuture<Void> ftask = newTaskFor(task, null); execute(ftask); return
2021-04-07 15:18:32 197
原创 FutureTask源码分析
可以使用FutureTask来创建一个线程,用来异步执行任务,并且可以保证并发环境下只执行一次(run方法中,通过CAS设置状态,runner指向当前线程来保证),并且可以获取任务执行结果(获取结果get是阻塞的,知道任务完成返回结果)。FutureTask实现了Runnable接口,并重写了run方法。在FutureTask中包含一个Callable接口对象,创建FutureTask实例时,要重写Callable的call方法,call方法就是线程执行的具体逻辑。Callable类似于Runnable,区
2021-04-07 09:13:19 211
原创 23中设计模式 思维导图 Java实现(附带下载链接)
设计模式思维导图及相关问题23种设计模式思维导图 Java代码实现Java实现23种设计模式
2021-03-11 13:40:25 223
原创 日常问题:The temporary upload location [***] is not valid
问题 message: Failed to parse multipart servlet request; nested exception is java.io.IOException: The temporary upload location [/tmp/tomcat.7153089560659614801.8083/work/Tomcat/localhost/ROOT] is not valid 问题描述 临时上传位置[/tmp/tomcat.7153089560659614.
2021-03-01 15:25:01 154 1
原创 Java正则表达式替换空格和符号
代码 public static void main(String[] args) { String pattern = "[\\s|!|@|#|$|%|^|&|*|(|)|_|+|=|{|}|:|\"|<|>|?|\\[|\\]|;|'|,|.|/|" + "!|@|#|¥|%|…|…|&|*|(|)|—|+|:|“|《|》|?|=|【|】|;|‘|,|。|、|’|\\-|`|~|·]*"; Patte
2021-02-25 21:10:16 701
原创 LeetCode第136题:只出现一次的数字
题目: 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 思路: 方法一:将数组排序,依次遍历数组如果当前元素既不等于前一个元素也不等于后一个元素即返回结果。方法二:通过依次异或每个元素,得到最后的值,即出现过依次的值,即结果。一个数异或两个相同的数,结果是其本身。 代码(Java) /** * 方法一 */ public static int singleNumber(int[] nums) { if (nums
2021-02-25 21:04:36 109
原创 LeetCode第112题:路径总和
题目: 给你二叉树的根节点 root 和一个表示目标和的整数 targetSum ,判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和targetSum 。 路径和概念: 每一条路径都是从根节点开始,直至叶子节点。这条路径上经过的所有节点值得累加和,即一条二叉树路径和。 思路: 总体思路:使用递归,遍历整棵树,直至叶子结点,并记录路径和。再与目标进行比较。具体思路: 1、如果当前节点有左子树,将当前节点值加入到路径和中。并递归其左子树,计算路径
2021-02-22 18:11:24 584 3
原创 MySQL常见问题(不定时更新)
MySQL常见问题(不定时更新)问题1:将多个select查询结果合并成一个结果描述:多个select查询,每个select查询不同列,结果列的数量不相同,列的类型不相同。将所有select查询结果,合并成一个select结果返回。即,多个select查询结果列合并展示。无论多个select查询是否有关联。解决方法:selectt1.person_id, t2.goods_name,t2.goods_id, t2.goods_name,t2.moneyfrom(...
2021-02-03 15:11:07 97
原创 根据二叉树的前中后序遍历构建二叉树(前中、中后、前后)
package datastructure.binarytree;import java.util.Stack;public class BuildBinaryTree { /** * 根据二叉树的前中后序遍历,构建二叉树 */ public static void main(String[] args) { int[] pre = {32, 5, 1, 55, 3}; int[] mid = {1, 5, 55, 32, 3};.
2021-01-28 00:08:40 384
原创 Java实现二叉树前序、中序、后续、层次遍历(递归与非递归)
package datastructure.binarytree;import java.util.HashMap;import java.util.LinkedList;import java.util.Stack;public class IteratorBinaryTree { public static void main(String[] args) { /** * 二叉树遍历 */ Node node1 .
2021-01-27 17:06:08 172
原创 Java使用位运算实现加减乘除及取余运算
package problems;import java.util.ArrayList;/** * 使用位运算实现 加减乘除 取模 * 原理:加法原则:对应位置进行加和,若果有进位,则加到到高位中。 * 那么使用位运算代替加法,要解决两个问题: * 1、如何计算进位 * 二进制中出现进位的形式只有1+1,可以使用&运算来表示出哪一位需要进位。a&b的二进制结果对应哪一位相加值后需要进位。 * .
2021-01-26 15:43:52 2579
原创 Java中Integer超出范围问题
Java中Integer超出范围问题Java中Integer范围 在Java中Integer范围是2-31到231-1,但是如果超过范围怎么处理? 使用左移运算验证 左移运算<<,将二进制向左移动一位,即数值乘以2。 System.out.println(1); System.out.println(Integer.toBinaryString(1)); System.out.println("-----------"); System.out.p.
2021-01-26 13:47:58 4974
原创 CentOS6.5替换yun源及yum源无法使用问题
系统环境虚拟机VMware 15 Pro CentOS release 6.5 yum源使用阿里云CentOS6(地址:https://developer.aliyun.com/mirror/centos?spm=a2c6h.13651102.0.0.3e221b11o0FN4Q)更换yum源步骤备份 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup 下载新的 Cen..
2021-01-20 20:59:32 1803 13
原创 虚拟机VMware安装多台服务器
安装VMware 下载Linux系统 准备 VMware Workstation 15.5 Centos6.5 安装Centos6.5 选择“自定义(高级)”手动配置安装向导。“典型(推荐)”使用默认配置。 选择“稍后安装操作系统”,先做好环境配置后,再安装系统。 系统选择Linux,版本选择Centos 6 64位。下一步。 1、此处虚拟机命名是在VMware中左侧导航栏中显示,并非实际虚拟机名称。 2、虚拟机文件位置,尽可能选择空间充足的磁
2020-10-21 22:17:56 3643
java8新特性.rar
2020-01-08
BinaryBalanceTree.java
2019-06-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人