- 博客(124)
- 收藏
- 关注
原创 加密与授权 Oauth2.0
加密算法对称加密加密和解密使用同样规则(简称"密钥"),这被称为"对称加密算法"非对称加密授权机制OAuthOAuth2.0授权码(authorization-code隐藏式(implicit)密码式(password)客户端凭证(client credentials)...
2022-01-05 17:03:29
5735
原创 Java Queue
先上一张Java集合的框架图,便于参考以下所有特性仅代表自JAVA 1.8Queue非阻塞队列阻塞队列ArrayBlockingQueueLinkedBlockingQueueSynchronizeQueue
2021-10-26 16:54:03
179
原创 缓存系统设计
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
256
原创 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
115
原创 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
152
原创 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
285
原创 Sql优化二三事
1.尽量少连接表,表连接越多,sql执行时间花销越长。2.如果可以的话,将连接拆分为多个步骤,逐一执行。3.如果无法避免多表连接查询,尽量优先执行可显著减少数据量的连接,既降低了复杂度,也能够容易按照预期执行。(补充,额无法避免多表连接查询的地方,大概率设计为数据库设计缺陷)4.查询操作,尽量建立索引,查询速度加快。而关于为何索引可以提升查询速率,参考此文 ->数据库添加索引为什么能加快查询速度5.外连接查询过程中会对左右表进行扫描,降低查询效率。6.尽量使用内连接。...
2021-09-30 15:14:46
138
原创 Java Annotation
1.注解是什么注解(Annotation)也叫元数据,是JDK5.0引入的一种注释机制,用于对代码进行配置说明,可以对包,类,接口,字段,方法参数,局部变量等进行使用。一般注解可以划分为以下三类:元注解: 元注解使用与定义注解的注解,包含@Retention(标明注解被保留的阶段),@Target(标明注解使用的范围),@Inherit额的(标明注解可继承),@Documented(标明是否生成javadoc文档) java自带的标注注解:包含开发人员常见的@OverRide(标明重写某个方法
2021-07-05 15:49:46
244
原创 Redis 底层数据结构
我们可以通过Type命令查看当前键的数据结构类型:分别是 string(字符串),hash(哈希),list(列表),set(集合),zset(有序集合·),但是只是Redis对外的
2021-06-21 17:10:15
215
原创 Redis.实际应用
Redis.实际应用1.利用Redis可以存储二进制数据 (图片缓存)2.利用Redis可以存储数字并且存在相关自增操作(计数器)(Id生成器)3.二进制数据的位1统计bitcount (快速统计在线人数)
2021-06-07 15:51:04
267
原创 数据库杂记
Group By“Group By”从字面意义上理解就是根据“By”指定的规则对数据进行分组,所谓的分组就是将一个“数据集”划分成若干个“小区域”,然后针对若干个“小区域”进行数据处理Having与Where的区别where 子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,where条件中不能包含聚组函数,使用where条件过滤出特定的行。 having 子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having...
2020-09-30 00:00:42
169
原创 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
2955
原创 HTTP工作原理 及 HTTPS为何安全
HTTP工作原理HTTP (Hypertext Transform Protocal超文本传输协议),适用于WWW服务器和本地浏览器之间超文本传输的协议,可以使浏览器更加高效,网络传输减少。它不仅可以保证计算机正确快速的传输超文本文档,还确定传输文档中的一部分内容。互联网的关键技术就是TCP/IP协议。两台计算机之间的通信是通过TCP/IP协议在因特网上进行的1.IP:计算机之间的通信IP协议是计算机用来相互识别的通信机制,每台计算机都以一个IP用来在Internet上标识这台计算机..
2020-08-18 16:04:29
460
原创 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
184
原创 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
213
原创 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
390
原创 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
657
原创 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
377
原创 数据库 左连接,右连接,全连接,内连接
准备:分别创建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
1089
原创 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
2551
原创 javascript 截取文件名,文件后缀名
分析想要截取文件名和文件后缀名,我们需要分析文件fullName的特点一般文件的格式为 文件名.文件后缀名,‘.’ 符号在文件名和后缀名之间起到分隔的作用。使用通过正则表达式匹配文件fullName的方式,在通过截取字符串,从而实现文件名后文件后缀名的截取。正则表达式在线正则表达式测试工具1.文件后缀名一般为大小写英文字母 [A-Za-z]2.后缀名英文字符的个...
2020-01-11 16:20:53
2010
原创 SpringBoot 自动配置的原理
1.一切起源之@SpringBootApplicationSpringBoot全局配置文件application.properties或application.yml可以配置哪些属性 参考文档作为SpringBoot项目的入口,@SpringBootApplication起到了关键性的作用,另外需要注意的是SpringBoot所有关于自动配置的源码都在spring-boot-autocon...
2020-01-08 09:42:01
220
原创 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
1729
原创 SpringBoot日志处理
日志框架列举:在Spring框架中使用JCL(commons-logging.jar)作为日志框架的抽象层在SpringBoot中使用SLF4J作为日志框架的抽象层,而使用Logback作为日志的实现类日志框架使用的原理slf4J官方地址1.统一日志的使用原理(SLF4J和其他日志的整合)2.SpringBoot中日志包之间的依赖关系3.日志级别和其...
2019-12-23 11:19:01
266
原创 SpringBoot 基本配置
SpringBoot全局配置文件application.propertiesapplication.yaml/application.yml一般全局配置文件放在src/main/resources路径下类路径的config目录下yaml文件: 1.大小写敏感 2.空格不可少,缩进控制层级,左对齐的元素拥有相同的层级 3.k:v 字面量v:...
2019-12-21 14:54:30
245
原创 谈谈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
228
原创 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
193
原创 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
192
原创 String StringBuffer StringBuilder
String:interface CharSequenceString implements CharSequence 1.String类使用char value[]来存储数据。 2.由于String类使用char value[] 来存储数据,因此一旦定义就不能修改长度。 3.如果需要修改长度则需要重新定义新的对象,定义新的长度,重新分...
2019-12-03 22:12:54
176
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人