自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

转载 Java transient关键字使用小记

原文地址哎,虽然自己最熟的是Java,但很多Java基础知识都不知道,比如transient关键字以前都没用到过,所以不知道它的作用是什么,今天做笔试题时发现有一题是关于这个的,于是花个时间整理下transient关键字的使用,涨下姿势~~~好了,废话不多说,下面开始:1. transient的作用及使用方法我们都知道一个对象只要实现了Serilizable接口,这个对象就可以被序列化,java的这种序列化模式为开发者提供了很多便利,我们可以不必关系具体序列化的过程,只要这个类实现了Serilizab

2020-08-23 20:18:05 188

转载 【转载】Java 8系列之重新认识HashMap

原文地址 https://tech.meituan.com/2016/06/24/java-hashmap.htmlHashMap是Java程序员使用频率最高的用于映射(键值对)处理的数据类型。随着JDK(Java Developmet Kit)版本的更新,JDK1.8对HashMap底层的实现进行了优化,例如引入红黑树的数据结构和扩容的优化等。本文结合JDK1.7和JDK1.8的区别,深入探讨HashMap的结构实现和功能原理。Java为数据结构中的映射定义了一个接口java.util.Map,此接口

2020-08-20 23:49:57 173

原创 Spring中Bean(@Controller、@Service、@Repository)线程安全情况分析

对于Spring中的Bean是怎么样的一种存在,特别是常用的@Controller、@Service、@Repository,每次处理一个请求的时候都是统一个Bean在处理吗?还是新生成Bean处理请求?

2020-05-13 21:23:21 546

原创 Java代理之 - cglib动态代理的一点点

> **外部引用**(cglib相关引用)> - 引用包cglib-xxx.jar> - 非Maven项目还需要手动引用包asm-xxx.jar> **组成**> 1. 业务类(不需要额外接口)> 2. 代理类(实现MethodInterceptor接口),主要**两个方法**:> -- 重写接口中intercept()方法,intercept()方法中调用被代理类的功能并扩展代理类的功能;> -- 对外提供的一个创建代理对象的方法;

2020-05-07 13:57:25 182

原创 Java代理之 - JDK 动态代理浅浅一点

JDK动态代理需要3个部分:1、需要一个接口,只是被代理类要该接口(**代理类不再跟被代理类强关联**);2、被代理类,实现1中的接口,并实现接口中方法,在方法中完成自己的功能;3、代理类,实现InvocationHandler接口,并主要有**三个方法(一个是构造函数)**:> - 构造函数,接收被代理类作为构造函数入参;> - 实现接口中invoke()方法,在invoke()方法中**利用反射调用被代理类中方法**,并扩展代理自己的功能;> - 并提供一个供外部调用的**代理实例创建方法*

2020-05-07 13:00:24 117

原创 Java代理之 - JDK 静态代理浅析

JDK静态代理需要3个部分:1、需要一个接口,代理类和被代理类要实现同一个接口;2、被代理类,实现1中的接口,并实现接口中方法,在方法中完成自己的功能;3、代理类,实现1中的接口,实例化2中的被代理类,实现接口方法时,调用被代理类的实现,并扩展自己的功能;

2020-05-07 12:48:14 157

原创 Redis对象类型、对象编码及对应关系

Redis中5中数据类型就底层实现的

2020-05-03 23:35:37 233

转载 10张图带你深入理解Docker容器和镜像(转载)

深入理解Docker容器和镜像的区别

2020-04-25 23:36:05 144

转载 并发编程之线程池ThreadPoolExecutor(转载)

并发编程之线程池ThreadPoolExecutor

2020-04-25 23:15:53 129

转载 MySQL Explain详解(转载)

Explain 参数详解

2020-04-22 14:15:20 97

原创 Redis-关于RDB的几点顿悟-COW(Copy On Write)

在看Redis的持久化机制中的RDB时,有几个疑问,1、RDB的过程中是否会停止对外提供服务?2、RDB的过程中数据修改了,备份的是修改前的还是修改后的?

2020-04-22 00:03:48 5284 3

转载 MySQL索引与Index Condition Pushdown(转载)

原文链接:MySQL索引与Index Condition Pushdown大约在两年前,我写了一篇关于MySQL索引的文章。最近有同学在文章的评论中对文章的内容提出质疑,质疑主要集中在联合索引的使用方式上。在那篇文章中,我说明联合索引是将各个索引字段做字符串连接后作为key,使用时将整体做前缀匹配。而这名同学在这个页面找到了如下一句话:index condition pushdown is...

2020-04-21 12:35:01 157

转载 MySQL索引背后的数据结构及算法原理(转载)

摘要本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTree索引,因为这是平常使用MySQL时主要打交道的索引,至于哈希索引和全文索引本文暂不讨论。文章主要内容分为三个部分。第...

2020-04-21 12:22:41 138

原创 过滤器(Filter)与拦截器(Interceptor)

过滤器(Filter)与拦截器(Interceptor)

2020-04-20 18:41:28 222

原创 MySQL JSON类型字段操作

MySQL中JSON类型字段的操作

2020-04-20 18:08:58 775

原创 HashMap深度复制

需要复制一个对象,但是普通的复制方法都是浅拷贝的方式

2020-04-20 16:46:06 3110

原创 跨域处理

Java中对跨域问题的处理方式

2020-04-20 16:31:03 106

原创 git stash 临时存一下

当前分支的代码未开发完(提交会异常),但是需要切换到别的分支上处理些紧急问题,为了避免提交本地代码影响其他同事的开发,或者是未保存导致本地代码丢失

2020-04-20 16:25:59 131

原创 git log配置浪起来

git原生的log内容看起来杂乱无章,配置git log管道流的方式来展示

2020-04-20 16:07:08 933

原创 git-修改commit信息

修改commit信息主要有这几种情况1.刚刚commit,还没有push,使用git commit --amend;2.刚刚push,要修改最近一个push的commit信息,使用git commit --amend;3.修改历史push的commit信息,使用git rebase -i HEAD~n【其中的n为记录数】,配合2中的命令注意:其中1、2两种情况的修改方式是一样的,但...

2020-04-20 16:04:08 54416 6

原创 自定义javax.validation校验枚举类

自定义javax.validation校验枚举

2020-04-19 23:35:12 1850

原创 阿里Java开发手册实践:一次SQL查询优化原理分析(900W+数据,从17s到300ms)

原理: 1、减少回表操作; 2、利用延迟关联或者子查询优化超多分页场景;

2020-04-19 23:31:08 1399 6

原创 VirtualVM查看JVM内存结构(深入理解Java虚拟机)

组成部分:程序计数器、Java虚拟机栈、本地方法栈、Java堆、方法区运行时常量池【方法区的一部分】直接内存【不属于JVM内存结构,但会频繁使用,可能导致OOM出现】在最近,使用VirtualVM对系统的内存占用情况进行分析时,VirtualVM中内存变动的图形化展示,对于理解JVM内存结构特别有帮助,于是从《深入理解Java虚拟机 第2版》中手录了这部分内容,整理到线上也方便随时查看。...

2020-04-19 23:29:23 590

原创 git 撤销commit信息(push操作之前)

用到的命令git reset --soft HEAD^注意:–soft 选项表示仅仅是撤回commit操作,回到git add之后的状态,写的代码仍然保留其他说明HEAD^的意思是上一个版本,也可以写成HEAD~1如果进行了2次commit,想都撤回,可以使用HEAD~2–mixed :不删除工作空间改动代码,撤销commit,并且撤销git add操作,作为默认参数,git re...

2020-04-19 23:27:53 689

原创 Java并发-CountDownLatch、CyclicBarrier、Semaphore、Runnable、Callable、Future、FutureTask总结记录

1、CountDownLatch、CyclicBarrier、Semaphore,都位于java.util.concurrent包中,是并发控制的辅助类,可以控制线程的协同工作;2、Runnable(java.lang.Runnable)、Callable(java.util.concurrent),作为线程创建相关类;3、Future(java.util.concurrent),是对于具体...

2020-04-19 23:26:44 337

原创 Redis-淘汰策略

Redis有8种淘汰策略(常规的+Redis4.0新增的2种lfu策略)名词解释lru(less recently used)最近最少使用ttl(time to live)存活时间lfu(least frequency use)最少使用频率淘汰策略1、 no-eviction(默认策略):不淘汰策略,超过最大内存则返回错误信息;2、 volatile-lru:已经设置过期时间...

2020-04-19 23:22:44 225

原创 Redis-常见问题(雪崩、穿透、击穿、数据一致性)

1、缓存雪崩:缓存中大面积的key同时失效,查询请求都打到数据库中;2、缓存穿透:查询的数据在缓存中不存在时,到数据库中查询。可能是无效数据,在数据库中也不存在;3、缓存击穿:类似与雪崩,击穿是单个热点key失效,导致请求直接打到数据库中;4、数据一致性:缓存和数据库中的数据不一致;1、缓存雪崩解决办法:确保不会存在大量key过期时间相同的情况,例如给key的过期时间增加一个随机...

2020-04-19 23:21:03 324

原创 Redis-字符串-二进制安全(sds:简单动态字符串)

简单来说,二进制安全就是,字符串不是根据某种特殊的标志来解析的,无论输入是什么,总能保证输出是处理的原始输入而不是根据某种特殊格式来处理。在 C 语言中,字符串可以用一个 \0 结尾的 char 数组来表示。比如说, hello world 在 C 语言中就可以表示为 "hello world\0"&...

2020-04-19 23:18:55 587

原创 Redis-IO多路复用

1、“I/O多路复用”这个坑爹翻译可能是这个概念在中文里面如此难理解的原因;2、I/O多路复用,即:I/O multiplexing,这里面的 multiplexing 指的其实是在单个线程通过记录跟踪每一个Sock(I/O流)的状态来同时管理多个I/O流。发明它的原因,是尽量多的提高服务器的吞吐能力;3、可以理解成是一种**“时分复用”**;IO 复用例子说明假设你是一个机场的空管,...

2020-04-19 23:17:06 377

原创 InfluxDB入门

InfluxDB(时序数据库),常用的一种使用场景:监控数据统计。每毫秒记录一下电脑内存的使用情况,然后就可以根据统计的数据,利用图形化界面(InfluxDB V1一般配合Grafana)制作内存使用情况的折线图;可以理解为按时间记录一些数据(常用的监控数据、埋点统计数据等),然后制作图表做统计;目前(2019-09-29)建议使用InfluxDB V1 版本1、什么是InfluxDB...

2019-10-03 17:19:04 360

空空如也

空空如也

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

TA关注的人

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