自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ys.hubery

Pursuit Of Happyness

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

原创 Code Bloaters-代码肿胀

Code Review

2022-06-28 10:38:49 198 1

原创 加密与授权 Oauth2.0

加密算法对称加密加密和解密使用同样规则(简称"密钥"),这被称为"对称加密算法"非对称加密授权机制OAuthOAuth2.0授权码(authorization-code隐藏式(implicit)密码式(password)客户端凭证(client credentials)...

2022-01-05 17:03:29 4718

原创 Object hashcode equals

test

2021-11-15 12:35:21 188

原创 Java Queue

先上一张Java集合的框架图,便于参考​​​​以下所有特性仅代表自JAVA 1.8Queue非阻塞队列阻塞队列ArrayBlockingQueueLinkedBlockingQueueSynchronizeQueue

2021-10-26 16:54:03 113

原创 缓存系统设计

ReadWriteLock使用public class CacheSystemTest { public static void main(String[] args) { MyCache cache = new MyCache(); ExecutorService threadpool = Executors.newCachedThreadPool(); for(int i =0;i<10;i++) {

2021-10-25 11:50:53 178

原创 Java Synchronized & Lock

SynchronizedLockReentrantLock读写锁

2021-10-19 23:54:59 131

原创 多线程交替执行

交替执行

2021-10-19 14:08:21 488

原创 Java 线程同步工具类

CyclicBarrierCountDownLatchExchanger

2021-10-18 14:37:49 191

原创 Java ThreadLocal

ThreadLocal

2021-10-15 14:31:46 94

原创 Java Timer定时器

test

2021-10-14 17:25:47 171

原创 Java Set

先上一张Java集合的框架图,便于参考以下所有特性仅代表自JAVA 1.8Setinterface Iterable<E>interface Collection<E> extends Iterable<E>interface Set<E> extends Collection<E>abstract AbstractCollection<E> implements Collection<E>...

2021-09-30 15:39:33 83

原创 Java Map

先上一张Java集合的框架图,便于参考以下所有特性仅代表自JAVA 1.8Mapinterface Map<K,V>abstract abstractMap<K,V> extends Map<K,V> HashMap: 基本原理HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V> 详细参考文章 1...

2021-09-30 15:38:20 94

原创 Maven Note

maven: pom: project object model plugin: maven具体的功能都是靠插件完成,maven本身很小,很多功能来源于插件。maven版本和jdk相关版本: maven 3.3 require是JDK1.7 or above,Maven 3.2 requires JDK1.6 or above ,while Maven 3.0/3.1 ...

2021-09-30 15:17:38 160

原创 Sql优化二三事

1.尽量少连接表,表连接越多,sql执行时间花销越长。2.如果可以的话,将连接拆分为多个步骤,逐一执行。3.如果无法避免多表连接查询,尽量优先执行可显著减少数据量的连接,既降低了复杂度,也能够容易按照预期执行。(补充,额无法避免多表连接查询的地方,大概率设计为数据库设计缺陷)4.查询操作,尽量建立索引,查询速度加快。而关于为何索引可以提升查询速率,参考此文 ->数据库添加索引为什么能加快查询速度5.外连接查询过程中会对左右表进行扫描,降低查询效率。6.尽量使用内连接。...

2021-09-30 15:14:46 74

原创 Java Annotation

1.注解是什么注解(Annotation)也叫元数据,是JDK5.0引入的一种注释机制,用于对代码进行配置说明,可以对包,类,接口,字段,方法参数,局部变量等进行使用。一般注解可以划分为以下三类:元注解: 元注解使用与定义注解的注解,包含@Retention(标明注解被保留的阶段),@Target(标明注解使用的范围),@Inherit额的(标明注解可继承),@Documented(标明是否生成javadoc文档) java自带的标注注解:包含开发人员常见的@OverRide(标明重写某个方法

2021-07-05 15:49:46 151

原创 Redis 底层数据结构

我们可以通过Type命令查看当前键的数据结构类型:分别是 string(字符串),hash(哈希),list(列表),set(集合),zset(有序集合·),但是只是Redis对外的

2021-06-21 17:10:15 145

原创 Redis.实际应用

Redis.实际应用1.利用Redis可以存储二进制数据 (图片缓存)2.利用Redis可以存储数字并且存在相关自增操作(计数器)(Id生成器)3.二进制数据的位1统计bitcount (快速统计在线人数)

2021-06-07 15:51:04 214

原创 Redis Nosql

1.支持数据结构字符串(String) 散列 列表2.支持功能3.实际应用

2021-06-05 16:51:18 88

原创 数据库杂记

Group By“Group By”从字面意义上理解就是根据“By”指定的规则对数据进行分组,所谓的分组就是将一个“数据集”划分成若干个“小区域”,然后针对若干个“小区域”进行数据处理Having与Where的区别where 子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,where条件中不能包含聚组函数,使用where条件过滤出特定的行。 having 子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having...

2020-09-30 00:00:42 112

原创 Git 创建自己的本地分支,发布到远程,并且日常管理

克隆项目默认master分支的克隆git clone <proj address>非master分支的克隆git clone -b <branch name> <proj address>创建本地分支,并且推送到远程创建本地分支git branch <branch name>git checkout <branch name>git checkout -b <branch name> //创建并

2020-09-29 23:40:13 2126

原创 group_concat in mysql, oracle, mss

Mysql

2020-08-26 18:00:26 129

原创 HTTP工作原理 及 HTTPS为何安全

HTTP工作原理HTTP (Hypertext Transform Protocal超文本传输协议),适用于WWW服务器和本地浏览器之间超文本传输的协议,可以使浏览器更加高效,网络传输减少。它不仅可以保证计算机正确快速的传输超文本文档,还确定传输文档中的一部分内容。互联网的关键技术就是TCP/IP协议。两台计算机之间的通信是通过TCP/IP协议在因特网上进行的1.IP:计算机之间的通信IP协议是计算机用来相互识别的通信机制,每台计算机都以一个IP用来在Internet上标识这台计算机..

2020-08-18 16:04:29 391

原创 TCP 建立连接的三次握手 断开连接时的四次挥手

三次握手1.客户端发送请求同步,将SYN标识位 设置为1,此时不能携带任何数据,将seqence number设置为x(x为一随机值)然后客户端进入SYN-SEND状态2.服务器接收到SYN报文段,将SYN标识位 设置为1,将ACK标识位 设置为1 ,将sequence number设置为y,将acknowledgenumber设置为x+1,服务器进入SYN-RECEIVED (半连接)状态3.客户段再一次确认,将ACK标识位 设置为1 ,将sequence number设置为x+1, 将.

2020-08-18 00:11:11 136

原创 Eclipse to IntelliJ IDEA

Eclipse IntelliJ IDEA Action Shortcut Action Shortcut Code completion Ctrl+Space Basic completion Ctrl+Space - - Smart completion Ctrl+Shift+Space - - Statement completion Ctrl+Shift+Enter Quick access Ct

2020-07-21 10:33:13 174

原创 Active Queue/Topic 开发

ActiveMQ结合Spring开发 Queuequeue默认持久化到文件1.引入相关依赖pom: <dependency> <groupId>org.apache.activemq</groupId> <artifactId>activemq-spring</artifactId> <version>5.15.12</version> </dependency> <!--注

2020-06-15 22:49:51 300

原创 ActiveMQ概念及Broker服务创建

What's ActiveMQ 实现JMS Provider,用来帮助实现高可用,高性能,可伸缩,易用和安全的企业级面向消息服务的系统。 1.实现系统之间的解耦 old: A ---> B now: A ---> (Message Oriented Middleware消息中间件) ---> B 2.保证高性能,A系统发出...

2020-06-15 15:44:01 577

原创 Kafka start

1.What's Kafka:kafka: 是一个高性能的跨语言的分布式发布,订阅消息系统,支持数据持久化,全分布式,支持在线和离线处理消息。2.kafka优势1.高吞吐率:在廉价的商用机器上单机可以支持每秒100条消息的读写。2.消息持久化:内部所有下次都将持久化到磁盘,无消息的丢失,支持消息重放。(消息重放:如果active宕机,则backup会自启继续消息处理)3.完全分布式:producer, broker, consumer均支持水平扩展。4.满足同时在线处理和离线处.

2020-06-11 17:01:59 313

原创 数据库 左连接,右连接,全连接,内连接

准备:分别创建TB A,B. 插入一些测试数据。TB_ATB_B1.内链接 (inner join)内连接是一种一一映射关系,就是两张表都有的才能显示出来代码例子:select * from TB_A a inner join TB_B b on a.name=b.name扩展:这里我突然联想到,其实这个查询也可以用以下语句来执行,从而得到同样的效果。select * from TB_A a,TB_B b where a.name=b.name那内连

2020-05-21 12:37:15 986

原创 mysql 如何查看sql语句执行时间

1.show profiles;刚进入mysql的时候,没有任何操作,此时内容为空。2.show variables; 查看profiling是否开启,即Vlaue为ON直接使用show variables命令会将所有的变量展示出来,此时我们可以使用like 命令将profiling挑选出来一般没有开启的情况下,此时value都为OFF3.set profiling=1; 开启profiling4.使用show profiles; 查看sql语句时间花销...

2020-05-20 22:40:05 2440

原创 javascript 截取文件名,文件后缀名

分析想要截取文件名和文件后缀名,我们需要分析文件fullName的特点一般文件的格式为 文件名.文件后缀名,‘.’ 符号在文件名和后缀名之间起到分隔的作用。使用通过正则表达式匹配文件fullName的方式,在通过截取字符串,从而实现文件名后文件后缀名的截取。正则表达式在线正则表达式测试工具1.文件后缀名一般为大小写英文字母 [A-Za-z]2.后缀名英文字符的个...

2020-01-11 16:20:53 1799

原创 SpringBoot 自动配置的原理

1.一切起源之@SpringBootApplicationSpringBoot全局配置文件application.properties或application.yml可以配置哪些属性 参考文档作为SpringBoot项目的入口,@SpringBootApplication起到了关键性的作用,另外需要注意的是SpringBoot所有关于自动配置的源码都在spring-boot-autocon...

2020-01-08 09:42:01 170

原创 Oracle 如何向Table中的Blob类型字段插入文件(图片,文本...)

1.创建文件所在的位置CREATE OR REPLACE DIRECTORY DIR_TEST AS 'D:\DIR_TEST'; --创建文件目录‘DIR_TEST’然后将需要插入的文件放在D:\DIR_TEST目录下本例为: D:\DIR_TEST\test.pdf2.授权给操作用户GRANT READ,WRITE,EXECUTE ON DIR_TEST TO testU...

2020-01-07 15:42:24 1554

原创 SpringBoot日志处理

日志框架列举:在Spring框架中使用JCL(commons-logging.jar)作为日志框架的抽象层在SpringBoot中使用SLF4J作为日志框架的抽象层,而使用Logback作为日志的实现类日志框架使用的原理slf4J官方地址1.统一日志的使用原理(SLF4J和其他日志的整合)2.SpringBoot中日志包之间的依赖关系3.日志级别和其...

2019-12-23 11:19:01 199

原创 SpringBoot 基本配置

SpringBoot全局配置文件application.propertiesapplication.yaml/application.yml一般全局配置文件放在src/main/resources路径下类路径的config目录下yaml文件: 1.大小写敏感 2.空格不可少,缩进控制层级,左对齐的元素拥有相同的层级 3.k:v 字面量v:...

2019-12-21 14:54:30 186

原创 谈谈Java中的 == 和 equals

"=="首先我们来谈谈 "==", "=="只能被用来比较地址。如果从jvm堆栈的角度来说,"=="就是被用来比较栈内存中内容,而栈内存中一般存储地址(对象的引用)或java八大基本类型(byte,short,int,long,char,float,double,boolean)数据。例子:int x=10; //基本变量,数据存储于栈内存中int y=10;Integer...

2019-12-17 00:21:44 180

原创 Java 实现线程的四种方式

1.继承自Thread类public class WinThreadExtThread extends Thread { private Lock lock = new ReentrantLock(true); @Override public void run() { while (true) { try { ...

2019-12-09 14:18:22 150

原创 Java 线程的生命周期和细节

LifeCycle

2019-12-06 18:57:15 60

原创 Java 线程池的使用和原理

ThreadPool

2019-12-06 18:54:49 92

原创 Java List

先上一张Java集合的框架图,便于参考以下所有特性仅代表自JAVA 1.7Listinterface Iterable<E>interface Collection<E> extends Iterable<E>interface Queue<E> extends Collection<E>interface ...

2019-12-04 23:22:05 134

原创 String StringBuffer StringBuilder

String:interface CharSequenceString implements CharSequence 1.String类使用char value[]来存储数据。 2.由于String类使用char value[] 来存储数据,因此一旦定义就不能修改长度。 3.如果需要修改长度则需要重新定义新的对象,定义新的长度,重新分...

2019-12-03 22:12:54 121

空空如也

空空如也

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

TA关注的人

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