自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(50)
  • 资源 (1)
  • 收藏
  • 关注

原创 Java地图-锁

2021-04-25 17:18:21 134

原创 Java地图-JVM

2021-04-19 15:14:13 137

原创 【Java基础快速入门】数据类型

数据类型总体划分基本类型整数类型字符类型浮点类型布尔类型基本类型默认值数据类型转换自动转换强制转换总体划分基本类型整数类型当数据不带有小数或分数时,即可以声明为整数变量,如3,-147等即为整数。Java中,整数数据类型可以分为long、int、short及byte四种:long为64位,也就是8个字节(bytes),可表示范围为-9223372036854775808 到 9223372036854775807;int为32 位,也就是4个字节,表示范围为-2147483648 到 214

2021-04-13 15:19:47 310

原创 事务概述

2021-04-12 18:37:45 112

原创 日志过滤脚本

awk '{if($1=="2019-09-23" && $2>="17:03:00" && $2<="19:24:00" && $7~"发送消息") print $1}' /data/software/newapps/scheduler/nohup.out.bak |wc -l

2021-04-12 14:06:57 135

原创 【Java基础快速入门】概述及开发环境搭建

总纲简介运行机制程序示例注释标识符模块图简介Java三类方向:运行机制计算机高级语言类型主要为编译和解释型两种,Java为两类的集合,处理过程如下:所有*.class文件都是在JVM上运行,即class文件只需要认识JVM,由JVM去适应各操作系统即可。如下图:程序示例环境搭建:需要先安装JDK配置环境变量Path(让系统认识javac和java命令),javac用于编译java文件成class文件,java用于执行class文件。配置classpath路径(可用于指定执行ja

2021-04-06 17:12:51 90

原创 1.Java源码阅读-Object

private static native void registerNatives(); static { registerNatives(); }public final native Class<?> getClass();public native int hashCode();public boolean equals(Object obj) { return (this == obj); }protected nati.

2021-03-15 21:30:13 99

原创 ffmpeg推视频文件到easydrawin

ffmpeg推流ffmpeg推流环境准备推流命令ffmpeg推流环境准备ffmpeg包,easydrawin, 视频文件easydrawin的web访问地址:http://ip:10008/#/pushers/1推流命令在ffmpeg的bin目录下执行:./ffmpeg -re -stream_loop -1 -i xxx.mp4 -vcodec copy -acodec copy -rtsp_transport tcp -f rtsp http://ip:554/xxxip: 为e

2021-01-08 16:43:00 325

原创 不是吧?2020年了居然还有人分不清Java参数传递方式?

Java参数传递方式前言一、Java到底是值传递还是引用传递?值传递引用传递基本类型值传递,引用类型引用传递值传递(对象内容引用传递)二、图解1.String图解2.对象图解总结前言今天上班后摸鱼知乎的时候,突然发现有人提了一个问题,下面贴图:看到这个问题,我也反思了下,似乎我确实只是知道答案的,但是似乎并没有很有利的证据来证明我的观点,因此,想了想还是开个博客,从更深层次剖析来验证我的观点(ps: 观点有误望勿喷,可以一起学习交流)一、Java到底是值传递还是引用传递?我们先来看下这两

2020-10-27 10:40:28 88

原创 每日一道算法题:20201014-环形链表

环形链表前言一、解决思路1.快慢指针法1,环很大2,环很小2.存放集合二、实现代码1.快慢指针法2.存放集合前言给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。说明:不允许修改给定的链表。示例 1:输入:head = [3,2,0,-4], pos = 1输出:tail connects to node index 1

2020-10-14 15:01:40 311

原创 每日一道算法题:20201013-删除链表倒数第n个节点

删除链表倒数第n个节点问题描述一、解决思路二、实现代码问题描述给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n 保证是有效的。一、解决思路我们可以使用两个指针,一个指针fast先走n步,然后另一个指针slow从头结点开始,找到要删除结点的前一个结点,这样就可以完成结点的删除了。二、实现代

2020-10-13 10:15:45 162

原创 MySQL批量创建测试数据脚本

批量创建测试数据脚本前言一、脚本代码前言本脚本用于MySQL批量创建百万或者千万级测试数据一、脚本代码declare i integer; --定义变量 begin i := 100012; loop /* 插入数据 */ insert into pasp_SignUser ( transSeqNo, cardNo, userName, idNo, idType, mobile, providerName, cardType, bankI

2020-10-12 14:26:06 403

原创 每日一道算法题:20201012-链表合并

链表合并问题描述一、解决思路二、代码实现问题描述将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4一、解决思路这道题可以使用递归实现,新链表也不需要构造新节点,我们下面列举递归三个要素终止条件:两条链表分别名为 l1 和 l2,当 l1 为空或 l2 为空时结束返回值:每一层调用都返回排序好的链表头本级递

2020-10-12 10:11:42 101

原创 四张图搞清left join,inner join,union join

四张图搞清left join,inner join,union join 前言一、left join二、inner join三、union join前言老规矩,开局先上一张图:下面以表A,B为例:一、left joinSELECT * FROM TableA LEFT OUTER JOIN TableB ON TableA name = TableB.name二、inner joinSELECT * FROM TableA INNER JOIN TableB ON TableA na

2020-10-10 17:03:33 1547

原创 每日一道算法题:20201010-爬楼梯

爬楼梯问题描述一、解决方案思路1、公式法2、动态规划法二、代码实现1.公式法代码2.动态规划法代码实现问题描述假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1 阶 + 1 阶2 阶示例 2:输入: 3输出: 3解释: 有三种方法可以爬到楼顶。1 阶 + 1 阶 + 1 阶1 阶 + 2 阶2 阶 + 1 阶一、

2020-10-10 10:24:32 509

原创 什么?你说你懂HTTPS?

HTTPS前言一、为什么用了 HTTPS 就是安全的?二、HTTPS 的底层原理如何实现1.一张图看http向https演变2.https交互流程解释总结前言你既然说你懂了HTTPS,那么下面的这些概念你肯定不会陌生了HTTPS 协议(HyperText Transfer Protocol over Secure Socket Layer):可以理解为HTTP+SSL/TLS, 即 HTTP 下加入 SSL 层,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL,用于安全的 HTT

2020-10-09 18:45:41 178

原创 线程池工作过程

线程池工作过程线程池刚创建时,里面没有一个线程。任务队列是作为参数传进来的。不过,就算队列里面 有任务,线程池也不会马上执行它们。当调用 execute() 方法添加一个任务时,线程池会做如下判断: a) 如果正在运行的线程数量小于 corePoolSize,那么马上创建线程运行这个任务; b) 如果正在运行的线程数量大于或等于 corePoolSize,那么将这个任务放入队列; c) 如果这时候队列满了,而且正在运行的线程数量小于 maximumPoolSize,那么还是要 创建非核心线

2020-07-30 14:11:14 179

原创 1. GRPC的使用

1.导入maven依赖<!-- grpc 开始 --> <dependency> <groupId>io.grpc</groupId> <artifactId>grpc-netty</artifactId> <version>${grpc.version}</version> <scope>provided</scope

2020-07-14 18:55:27 292

原创 每日一道算法题:20200630-三数之和

问题描述给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。示例:给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[[-1, 0, 1],[-1, -1, 2]]Related Topics 数组 双指针解决方案1,先排序,确定一个值,和一个结果target,然后在排序数组中通过二分法查找两个

2020-06-30 13:57:09 284

原创 1. Consul常用命令

安装部署Consul下载解压,加入PATH。启用单节点:consul agent -dev ./consul agent -server -ui -bootstrap-expect=1 -data-dir=/tmp/consul -advertise=127.0.0.1 -bind=0.0.0.0 -client=0.0.0.0 > /dev/null 2>&1 &查看consul成员:consul members (-detailed)服务命令注册服

2020-06-29 18:09:39 931

原创 每日一道算法题:20200629-回文数

问题描述判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例 2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入: 10输出: false解释: 从右向左读, 为 01 。因此它不是一个回文数。解题思路此处撰写解题思路和整数反转差不多的感觉 只要反过来相等就行按照题意负数不算回文数,就直接返回代码cl

2020-06-29 15:49:25 1271

原创 每日一题算法:20200624-除自身以外数组的乘积

问题描述给你一个长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 output ,其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。示例:输入: [1,2,3,4]输出: [24,12,8,6]提示:题目数据保证数组之中任意元素的全部前缀元素和后缀(甚至是整个数组)的乘积都在 32 位整数范围内。说明: 请不要使用除法,且在 O(n) 时间复杂度内完成此题。进阶:你可以在常数空间复杂度内完成这个题目吗?( 出于对空间复杂度分析的目的,

2020-06-24 10:33:42 180

原创 2.类的加载

啥是类的加载?类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个 java.lang.Class对象,用来封装类在方法区内的数据结构。类的加载的最终产品是位于堆区中的 Class对象, Class对象封装了类在方法区内的数据结构,并且向Java程序员提供了访问方法区内的数据结构的接口;如下图:预加载:类加载器并不需要等到某个类被“首次主动使用”时再加载它,JVM规范允许类加载器在预料某个类将要被使用时就预先加载它,如果在预先加载的过程中

2020-06-23 13:46:02 279

原创 每日一道算法:20200623-顺时针打印矩阵

问题描述输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。示例 1:输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[1,2,3,6,9,8,7,4,5]示例 2:输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]输出:[1,2,3,4,8,12,11,10,9,5,6,7]限制:0 <= matrix.length <= 100 (行数)0 <= matrix[i].length &

2020-06-23 10:38:17 191 1

原创 1.JVM内存区域和内存模型(JMM)

概述内存区域是对JVM内存空间的划分,JMM主要是定义线程和主内存之间的抽象关系,简单来说就是JMM规定线程取写共享变量的底层细节-线程只能通过工作内存进行变量操作,无法直接对主内存进行操作;运行数据区直接借用其他人的图看到下面的jvm内存区域:(JDK1.8)再来一张图总结上面的图:内存模型计算机内存模型图如下:就像每个处理器内核拥有私有的高速缓存,JMM 中每个线程拥有私有的本地内存。JVM的内存模型如下:注:参考文章 https://www.cnblogs.com/czwbi

2020-06-22 15:51:33 125

原创 每日一道算法:20200622-二叉树翻转

问题描述翻转一棵二叉树。示例:输入: 4/ 2 7/ \ / 1 3 6 9输出: 4/ 7 2/ \ / 9 6 3 1备注:这个问题是受到 Max Howell 的 原问题 启发的 :谷歌:我们90%的工程师使用您编写的软件(Homebrew),但是您却无法在面试时在白板上写出翻转二叉树这道题,这太糟糕了。Related Topics 树解决方案这是一个非常经典的树的问题,这个问题很适合用递归方法来解决

2020-06-22 10:58:04 147

原创 2.ArrayList

ArrayList包含了两个重要的对象:elementData 和 size。(01) elementData 是"Object[]类型的数组",它保存了添加到ArrayList中的元素。实际上,elementData是个动态数组,我们能通过构造函数 ArrayList(int initialCapacity)来执行它的初始容量为initialCapacity;如果通过不含参数的构造函数ArrayList()来创建ArrayList,则elementData的容量默认是10。elementData数组的.

2020-06-19 15:28:22 212

原创 1.集合概览

Java集合是java提供的工具包,包含了常用的数据结构:集合、链表、队列、栈、数组、映射等。Java集合工具包位置是java.util.*Java集合主要可以划分为4个部分:List列表、Set集合、Map映射、工具类(Iterator迭代器、Enumeration枚举类、Arrays和Collections)、。...

2020-06-19 14:59:33 107

原创 4.IOC

IOC

2020-06-15 16:12:19 105

原创 3.Bean的实例化

Bean的实例化Bean的作用域

2020-06-15 16:03:45 75

原创 2.Bean配置

Bean的配置

2020-06-15 16:00:54 165

原创 1.Bean的生命周期

Bean的生命周期

2020-06-15 15:56:10 93

原创 三种分布式锁概述

分布式锁的必要性在单机时代,虽然不需要分布式锁,但也面临过类似的问题,只不过在单机的情况下,如果有多个线程要同时访问某个共享资源的时候,我们可以采用线程间加锁的机制,即当某个线程获取到这个资源后,就立即对这个资源进行加锁,当使用完资源之后,再解锁,其它线程就可以接着使用了。例如,在JAVA中,甚至专门提供了一些处理锁机制的一些API(synchronize/Lock等)类似的,当多个进程访问共...

2020-03-27 19:23:50 227 2

原创 Spring Security实战小例子(数据库读取)

Spring Security实战小例子主要项目结构如下说明pom.xml 主要包含jpa ,web,mysql,lombok,security等模块;User.java 实体类;UserRepository.java 具体数据操作类;CustomUserDetailsService.java UserDetailsService实现类,用于装载用户信息;SecurityCon...

2020-03-26 20:09:09 204

原创 Logger打印日志

1.声明logger静态声明private final static Logger logger = LoggerFactory.getLogger(xx.class);非静态声明protected final Logger logger = LoggerFactory.getLogger(getClass());2.使用logger静态声明使用logger.info(" [{}]为...

2020-03-26 15:40:42 138

原创 高性能方法级幂等性

高性能方法级幂等性 1.幂等性就是用户对于同一操作发起的一次请求或者多次请求的结果是一致的,不会因为多次点击而产生了副作用。举个最简单的例子,那就是支付,用户购买商品使用约支付,支付扣款成功,但是返回结果的时候网络异常,此时钱已经扣了,用户再次点击按钮,此时会进行第二次扣款,返回结果成功,用户查询余额返发现多扣钱了,流水记录也变成了两条.2.方案设计思路在分布式系统条件下,需要...

2019-07-10 17:12:12 974 1

原创 Java8综合练习

package com.yy.test;import java.util.Arrays;import java.util.Collections;import java.util.List;import java.util.Optional;import java.util.stream.Collectors;public class Test { public stati...

2019-04-28 13:58:50 371

原创 HashMap转对象工具

HashMap转对象工具import java.lang.reflect.Field;import java.util.ArrayList;import java.util.HashMap;import java.util.Iterator;import java.util.Map;public class MapToObject { public static void main...

2019-04-11 15:05:24 747

原创 对象转HashMap

对象转HashMapimport java.lang.reflect.Field;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;public class ObjectToMap { public static void main(S...

2019-04-09 17:38:16 1511

原创 常用算法之排序算法-总结

排序大的分类可以分为两种:内排序和外排序。在排序过程中,全部记录存放在内存,则称为内排序,如果排序过程中需要使用外存,则称为外排序。下面讲的排序都是属于内排序。  内排序有可以分为以下几类:  (1)、插入排序:直接插入排序、二分法插入排序、希尔排序。  (2)、选择排序:简单选择排序、堆排序。  (3)、交换排序:冒泡排序、快速排序。  (4)、归并排序  (5)、基...

2019-01-31 15:17:59 91

jd-gui.tar.gz

jd-gui.tar.gz

2020-10-12

空空如也

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

TA关注的人

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