自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Java技术工坊

Java之路漫漫,上下求索不停息~

  • 博客(220)
  • 收藏
  • 关注

原创 Java后端开发技术栈好文收藏【持续更新】

Java8系列之重新认识HashMap【基本功】不可不说的Java“锁”事从ReentrantLock的实现看AQS的原理及应用

2021-03-24 19:24:47 292

原创 西安交通大学控制专硕学硕考研资料清单(自动控制、数字信号处理、信号与系统)

材料目录1. 西交本科课程PPT自动控制原理 PPT信号与系统 PPT数字信号处理 PPT2. 教材《自动控制原理》 张爱民(附 课后习题答案)《数字信号处理》 邹理和《数字信号处理》 程佩青《信号与系统》 奥本海姆3. 辅导书自动控制理论学习指导典型题解(本校本科辅导书)数字信号处理学习指导典型题解(本校本科辅导书)4. 本校期末考题、考研真题往年考研真题自控 2001-2008信号与系统 1999-2008数字信号处理 22003-2008、20198

2020-12-03 10:27:04 3473 13

原创 小白入门SpringBoot项目【2】:员工管理系统(管理员注册、登录、员工增删改查)

员工管理系统一、项目简介二、部分代码解析2.1 实体类2.2 注册过程中的验证码逻辑2.3 验证码工具类说明:本项目非常适合小白入门,如果读者的水平比较高的话,可能这个项目对你并不会有什么额外的收获。欢迎读者在评论区互相交流讨论。对小白的收获可能包括:入门SpringBoot、Mybatis、Thymeleaf的使用。GitHub项目地址Gitee项目地址一、项目简介基于SpringBoot,利用Mybatis框架,前端使用Thymeleaf整合。实现了管理员的注册、登录,已

2020-11-17 19:27:38 3120 3

原创 小白入门SpringBoot项目【1】:在线文件管理系统(用户登录、文件上传、文件在线预览、文件下载)

在线文件管理系统一、简介二、技术点application.properties解释三、核心功能代码解析3.0 首先看一下实体类3.1 文件上传3.2 文件下载(预览)3.3 文件删除说明:本项目非常适合小白入门,如果读者的水平比较高的话,可能这个项目对你并不会有什么额外的收获。欢迎读者在评论区互相交流讨论。对小白的收获可能包括:入门SpringBoot、Mybatis、Thymeleaf的使用。GitHub项目地址点击下载源码一、简介本项目是基于Spring Boot,利用Mybatis框

2020-11-16 21:39:17 3273 7

原创 【每周更新】Java数据结构与算法

数据结构【数据结构 1】顺序表及其Java实现【数据结构 2】单向链表及其Java实现【数据结构 3】双向链表及其Java实现【数据结构 4】栈及其Java实现【数据结构 5】队列及其Java实现【数据结构 6】符号表及其Java实现(使用链表实现)【数据结构 7】二叉查找树及其Java实现【数据结构 8】并查集及其Java实现(待更新)【数据结构 9】优先队列及其Java实现(待更新)【数据结构 10】无向图及其Java实现(深度or广度优先搜索、路径查找)【数据结构 11】有向图及

2020-11-09 00:22:08 210

原创 网络测试工具实践指南

常用的网络测试工具

2023-02-16 23:21:44 261 1

原创 值得被收藏一读的技术好文【持续更新收录】

收录值得一读的技术文章

2023-02-16 23:13:42 160

原创 一个设备上配置使用两个 git 账号实践指南

一台设备上配置两个git远程仓库,丝滑切换使用,工作仓库和个人仓库两不误

2023-02-16 23:05:56 1132

原创 加上图标!精致你的markdown

收藏起来,让你的markdown文档更加精致

2022-06-01 16:03:32 681

原创 互联网大厂笔试都考什么题?最新各大厂秋招春招实习笔试题合集【持续更新...】

本文整理网上的大厂笔试题。主要是让读者可以感受一下各个厂的笔试难度!如有侵权,请私信删除!.

2022-03-11 19:59:43 4688

原创 后端开发业务场景一文总结【持续收藏更新】

本文记录一些业务场景下的优秀设计思路12306抢票,极限并发带来的思考?实战!聊聊如何解决MySQL深分页问题

2021-09-28 21:47:19 678

原创 【Java并发编程】测试JUC的原子操作类,多线程对原子变量的有序自增操作

1、原子变量AtomicBoolean、AtomicInteger、AtomicLong 和 AtomicReference 的实例各自提供对相应类型单个变量的访问和更新。每个类也为该类型提供适当的实用工具方法。AtomicIntegerArray、AtomicLongArray 和 AtomicReferenceArray 类进一步扩展了原子操作,对这些类型的数组提供了支持。这些类在为其数组元素提供 volatile 访问语义方面也引人注目,这对于普通数组来说是不受支持的。源码中核心方法:bool

2021-03-31 10:28:48 253

原创 【Java并发编程】测试volatile变量的多线程可见性

1. 使用volatile定义一个类,实现Runnable接口,类中定义一个由volatile修饰的布尔成员变量。重写run方法,在run方法中修改成员变量。class ThreadDemo implements Runnable { private volatile boolean flag = false; @Override public void run() { try { Thread.sleep(200); } catch (InterruptedExcepti

2021-03-31 09:50:20 225

原创 Java利用HttpClient发送请求生成微信支付二维码、查询支付状态

一、HttpClient工具类import org.apache.http.Consts;import org.apache.http.HttpEntity;import org.apache.http.NameValuePair;import org.apache.http.client.ClientProtocolException;import org.apache.http.client.entity.UrlEncodedFormEntity;import org.apache.http

2021-03-03 16:54:22 3230 2

原创 Java实现订单编号工具类

public class OrderNoUtil { /** * 获取订单号 * @return */ public static String getOrderNo() { SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); String newDate = sdf.format(new Date()); String result =

2021-03-03 16:09:24 2688 1

原创 Java实现MD5加密工具类

public final class MD5 { public static String encrypt(String strSrc) { try { char hexChars[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' }; byte[] bytes = strSr

2021-03-03 10:27:17 325

原创 Java随机数4位6位生成工具类

public class RandomUtil { private static final Random random = new Random(); private static final DecimalFormat fourdf = new DecimalFormat("0000"); private static final DecimalFormat sixdf = new DecimalFormat("000000"); public static String getFour

2021-03-02 20:21:57 689

原创 JWT工具类

public class JwtUtils { public static final long EXPIRE = 1000 * 60 * 60 * 24; //设置token过期时间 public static final String APP_SECRET = "ukc8BDbRigUDaY6pZFfWus2jZWLPHO"; //密钥 //生成token字符串的方法 public static String getJwtToken(String id, String

2021-03-02 19:55:48 383

原创 【设计模式】设计模式的目的和重要性

一、设计模式的重要性软件工程中, 设计模式(design pattern)是对软件设计中普遍存在(反复出现)的各种问题,所提出的解决方案。这个术语是由埃里希·伽玛(Erich Gamma)等人在 1990 年代从建筑设计领域引入到计算机科学的。没有设计模式写的软件:用了设计模式写的软件:二、为什么需要设计模式?考虑这么几个问题:拿实际工作经历来说, 当一个项目开发完后,如果 客户提出增新功能,怎么办?面对新功能的需求,软件如何保证可扩展性?如果项目开发完后,原来程序员

2021-01-09 21:22:21 2072

原创 【LeetCode击败99%+】设计一个支持增量操作的栈

题目请你设计一个支持下述操作的栈。实现自定义栈类 CustomStack :CustomStack(int maxSize):用 maxSize 初始化对象,maxSize 是栈中最多能容纳的元素数量,栈在增长到maxSize 之后则不支持 push 操作。void push(int x):如果栈还未增长到 maxSize ,就将 x 添加到栈顶。int pop():弹出栈顶元素,并返回栈顶的值,或栈为空时返回 -1 。void inc(int k, int val):栈底的 k个元素

2021-01-08 21:08:48 97

原创 【LeetCode击败99%+】栈的最小值

题目请设计一个栈,除了常规栈支持的pop与push函数以外,还支持min函数,该函数返回栈元素中的最小值。执行push、pop和min操作的时间复杂度必须为O(1)。示例:MinStack minStack = new MinStack();minStack.push(-2);minStack.push(0);minStack.push(-3);minStack.getMin(); --> 返回 -3.minStack.pop();minStack.top(); -

2021-01-08 21:05:48 83

原创 【LeetCode击败99%+】化栈为队

题目实现一个MyQueue类,该类用两个栈来实现一个队列。示例:MyQueue queue = new MyQueue();queue.push(1);queue.push(2);queue.peek(); // 返回 1queue.pop(); // 返回 1queue.empty(); // 返回 false说明:你只能使用标准的栈操作 – 也就是只有 push to top, peek/pop from top, size 和 is empty操作是合法的。 你

2021-01-08 21:02:29 139

原创 【LeetCode击败99%+】用栈操作构建数组

题目给你一个目标数组 target 和一个整数 n。每次迭代,需要从 list = {1,2,3…, n} 中依序读取一个数字。请使用下述操作来构建目标数组 target :Push:从 list 中读取一个新元素, 并将其推入数组中。Pop:删除数组中的最后一个元素。如果目标数组构建完成,就停止读取更多元素。题目数据保证目标数组严格递增,并且只包含 1 到 n 之间的数字。请返回构建目标数组所用的操作序列。题目数据保证答案是唯一的。示例 1:输入:target =

2021-01-08 20:55:35 115

原创 【LeetCode击败99%+】文件夹操作日志搜集器

题目每当用户执行变更文件夹操作时,LeetCode 文件系统都会保存一条日志记录。下面给出对变更操作的说明:"../" :移动到当前文件夹的父文件夹。如果已经在主文件夹下,则 继续停留在当前文件夹 。"./" :继续停留在当前文件夹。"x/" :移动到名为 x 的子文件夹中。题目数据 保证总是存在文件夹 x 。给你一个字符串列表 logs ,其中 logs[i] 是用户在 ith 步执行的操作。文件系统启动时位于主文件夹,然后执行 logs 中的操作。执行完所有变更文件夹操作

2021-01-08 20:13:22 135

原创 【LeetCode击败99%+】MySQL——变更性别

题目给定一个 salary 表,如下所示,有 m = 男性 和 f = 女性 的值。交换所有的 f 和 m 值(例如,将所有 f 值更改为 m,反之亦然)。要求只使用一个更新(Update)语句,并且没有中间的临时表。注意,您必只能写一个 Update 语句,请不要编写任何 Select 语句。例如:| id | name | sex | salary ||----|------|-----|--------|| 1 | A | m | 2500 || 2 | B

2021-01-08 20:09:09 110

原创 ASCII码表

2021-01-08 16:47:24 215

原创 大白话讲解JVM那点事【持续更新和语言打磨】

Part I 内存与垃圾回收第1章:JVM与Java体系结构第2章:类加载子系统第3章:运行时数据区概述及线程第4章:程序计数器第5章:虚拟机栈第6章:本地方法接口第7章:本地方法栈第8章:堆第9章:方法区第10章:对象的实例化内存布局与访问定位第11章:直接内存第12章:执行引擎第13章:StringTable第14章:垃圾回收概述第15章:垃圾回收相关算法第16章:垃圾回收相关概念第17章:垃圾回收器...

2021-01-05 22:14:27 63

原创 【LeetCode击败99%+】患某种疾病的患者

题目患者信息表: Patients+--------------+---------+| Column Name | Type |+--------------+---------+| patient_id | int || patient_name | varchar || conditions | varchar |+--------------+---------+patient_id (患者 ID)是该表的主键。'conditions' (疾病)包含

2020-12-10 20:33:59 189

原创 【LeetCode击败99%+】检查两个字符串数组是否相等

题目给你两个字符串数组 word1 和 word2 。如果两个数组表示的字符串相同,返回 true ;否则,返回 false 。数组表示的字符串 是由数组中的所有元素 按顺序 连接形成的字符串。示例 1:输入:word1 = ["ab", "c"], word2 = ["a", "bc"]输出:true解释:word1 表示的字符串为 "ab" + "c" -> "abc"word2 表示的字符串为 "a" + "bc" -> "abc"两个字符串相同,返回 true示

2020-12-10 20:31:56 184

原创 【LeetCode击败99%+】MySQL——院系无效的学生

题目院系表: Departments+---------------+---------+| Column Name | Type |+---------------+---------+| id | int || name | varchar |+---------------+---------+id 是该表的主键该表包含一所大学每个院系的 id 信息学生表: Students+---------------+--

2020-12-10 20:28:31 124

原创 【LeetCode击败99%+】MySQL——使用唯一标识码替换员工ID

题目Employees 表:+---------------+---------+| Column Name | Type |+---------------+---------+| id | int || name | varchar |+---------------+---------+id 是这张表的主键。这张表的每一行分别代表了某公司其中一位员工的名字和 ID 。EmployeeUNI 表:+--------

2020-12-10 20:24:06 155

原创 【LeetCode击败99%+】柠檬水找零

题目在柠檬水摊上,每一杯柠檬水的售价为 5 美元。顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯。每位顾客只买一杯柠檬水,然后向你付 5 美元、10 美元或 20 美元。你必须给每个顾客正确找零,也就是说净交易是每位顾客向你支付 5 美元。注意,一开始你手头没有任何零钱。如果你能给每位顾客正确找零,返回 true ,否则返回 false 。示例 1:输入:[5,5,5,10,20]输出:true解释:前 3 位顾客那里,我们按顺序收取 3 张

2020-12-10 20:19:01 138

原创 【LeetCode击败99%+】设计 Goal 解析器

题目请你设计一个可以解释字符串 command 的 Goal 解析器 。command 由 “G”、"()" 和/或 “(al)” 按某种顺序组成。Goal 解析器会将 “G” 解释为字符串 “G”、"()" 解释为字符串 “o” ,"(al)" 解释为字符串 “al” 。然后,按原顺序将经解释得到的字符串连接成一个字符串。给你字符串 command ,返回 Goal 解析器 对 command 的解释结果。示例 1:输入:command = "G()(al)"输出:"Goal"解释:Goa

2020-12-10 20:14:20 139

原创 【LeetCode击败99%+】不同路径

题目一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。问总共有多少条不同的路径?示例 1:输入:m = 3, n = 7输出:28示例 2:输入:m = 3, n = 2输出:3解释:从左上角开始,总共有 3 条路径可以到达右下角。1. 向右 -> 向右 -> 向下2. 向右 -> 向下 -> 向右

2020-12-10 20:05:02 125

原创 Git命令简洁使用指南

一、Git和GitHub的关系二、Git初始设置三、设置SSH Key四、GitHub创建仓库五、

2020-12-09 01:40:03 199

原创 【排序算法系列 7】堆排序

【排序算法系列 1】冒泡排序【排序算法系列 2】选择排序【排序算法系列 3】 插入排序【排序算法系列 4】 高级排序——希尔排序(插入排序的改进)【排序算法系列 5】 高级排序——归并排序【排序算法系列 6】 高级排序——归并排序(由冒泡排序改进)堆排序简介:堆排序(英语:Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。需求:给定一个数组:String[] arr

2020-12-05 23:09:18 281

原创 【数据结构 9】优先队列及其Java实现

【数据结构 1】顺序表及其Java实现【数据结构 2】单向链表及其Java实现【数据结构 3】双向链表及其Java实现【数据结构 4】栈及其Java实现【数据结构 5】队列及其Java实现【数据结构 6】符号表及其Java实现(使用链表实现)【数据结构 7】二叉查找树及其Java实现【未完待续…】不定期更新,内容总结整理不易,欢迎点赞关注博主!感谢!优先队列一、什么是优先队列二、最大优先队列2.1 最大优先队列API设计2.2 最大优先队列代码实现三、最小优先队列3.1 最小优先队列A

2020-12-05 22:04:44 945

原创 【数据结构 8】并查集及其Java实现

【数据结构 1】顺序表及其Java实现【数据结构 2】单向链表及其Java实现【数据结构 3】双向链表及其Java实现【数据结构 4】栈及其Java实现【数据结构 5】队列及其Java实现【数据结构 6】符号表及其Java实现(使用链表实现)【数据结构 7】二叉查找树及其Java实现【未完待续…】不定期更新,内容总结整理不易,欢迎点赞关注博主!感谢!并查集一、什么是并查集1.1 并查集1.2 并查集的结构二、并查集设计2.1 并查集API设计2.2 并查集的实现2.2.1 UF(int

2020-12-05 21:18:27 252

原创 【LeetCode击败99%+】二叉树的最近公共祖先 III

评论:经典递归题目给定一棵二叉树中的两个节点 p 和 q,返回它们的最近公共祖先节点(LCA)。每个节点都包含其父节点的引用(指针)。Node 的定义如下:class Node { public int val; public Node left; public Node right; public Node parent;}根据维基百科中对最近公共祖先节点的定义:“两个节点 p 和 q 在二叉树 T 中的最近公共祖先节点是后代节点中既包括 .

2020-12-05 01:23:39 114

原创 【LeetCode击败99%+】最富有客户的资产总量

题目给你一个 m x n 的整数网格 accounts ,其中 accounts[i][j] 是第 i​​​​​​​​​​​​ 位客户在第 j 家银行托管的资产数量。返回最富有客户所拥有的 资产总量 。客户的 资产总量 就是他们在各家银行托管的资产数量之和。最富有客户就是 资产总量 最大的客户。示例 1:输入:accounts = [[1,2,3],[3,2,1]]输出:6解释:第 1 位客户的资产总量 = 1 + 2 + 3 = 6第 2 位客户的资产总量 = 3 + 2 + 1 =

2020-12-05 01:23:23 222

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除