会员
周边
新闻
博问
闪存
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
JMCui
博客园
首页
新随笔
联系
订阅
管理
上一页
1
···
4
5
6
7
8
9
10
11
12
···
19
下一页
2019年12月15日
JVM系列二(垃圾收集算法).
摘要: 一、标记 清除算法(Mark Sweep) 这种算法分为“标记”和“清除”两个阶段:首先标记出所有需要回收的对象,在标记完成后统一回收所有被标记的对象。 Mark Sweep 算法是最基础的收集算法,几乎所有的收集算法都是基于这种思路并对其不足进行改进而得到。它的不足之处主要有两个: 效率问题。标记
阅读全文
posted @ 2019-12-15 15:49 JMCui
阅读(641)
评论(0)
推荐(1)
2019年12月8日
ThreadLocal 源码解读
摘要: 一、引入 首先我们看到的是 Thread 中有一个属性 threadLocals,它的类型是 ThreadLocalMap,封装类型是 default(表示它只能在包内可见),jdk 是这么介绍它的:与此线程有关的 ThreadLocal 值,该映射由 ThreadLocal 类维护。 啥意思呢?那
阅读全文
posted @ 2019-12-08 22:35 JMCui
阅读(522)
评论(0)
推荐(0)
2019年12月3日
JDK动态代理和CGLIB字节码增强
摘要: 一、JDK动态代理 Java 在 java.lang.reflect 包中有自己的代理支持,该类(Proxy.java)用于动态生成代理类,只需传入目标接口、目标接口的类加载器以及 InvocationHandler 便可为目标接口生成代理类及代理对象。我们称这个Java技术为:动态代理 在 Jav
阅读全文
posted @ 2019-12-03 13:01 JMCui
阅读(2532)
评论(0)
推荐(1)
2019年12月1日
JVM系列一(Java内存区域和对象创建).
摘要: 一、JVM 内存区域 堆 - Heap 线程共享,JVM中最大的一块内存,此内存的唯一目的就是存放对象实例,Java 堆是垃圾收集器管理的主要区域,因此很多时候也被称为“GC堆”(Garbage Collected Heap),可以通过 -Xmx 和 -Xms 参数来控制该区域大小。 方法区 - M
阅读全文
posted @ 2019-12-01 16:36 JMCui
阅读(1790)
评论(0)
推荐(1)
2019年11月27日
利用 DFA 算法实现文字过滤
摘要: 一、DFA 算法简介 在实现文字过滤的算法中,DFA是唯一比较好的实现算法。 DFA 全称为:Deterministic Finite Automaton,即确定有穷自动机。其特征为:有一个有限状态集合和一些从一个状态通向另一个状态的边,每条边上标记有一个符号,其中一个状态是初态,某些状态是终态。但
阅读全文
posted @ 2019-11-27 13:45 JMCui
阅读(4146)
评论(0)
推荐(4)
2019年11月24日
maven 利用 profile 进行多环境配置
摘要: 我们在进行项目的多环境配置时,有很多种方式供我们选择,比如 SpringBoot 自带的 application dev.yml、maven 的 profile 等。这里介绍的就是如何利用 profile 进行多环境配置。 首先,在 pom.xml 中添加你需要的 profile 配置: profi
阅读全文
posted @ 2019-11-24 23:06 JMCui
阅读(4420)
评论(0)
推荐(0)
基于 TrueLicense 的项目证书验证
摘要: 一、简述 开发的软件产品在交付使用的时候,往往有一段时间的试用期,这期间我们不希望自己的代码被客户二次拷贝,这个时候 license 就派上用场了,license 的功能包括设定有效期、绑定 ip、绑定 mac 等。授权方直接生成一个 license 给使用方使用,如果需要延长试用期,也只需要重新生
阅读全文
posted @ 2019-11-24 09:16 JMCui
阅读(8202)
评论(0)
推荐(2)
2019年11月22日
SpringMVC 自定义参数解析器.
摘要: 一、简述 有没有想过像 @RequestParam、@RequestBody 这些注解的工作原理呢?为什么 form 表单、application/json 的参数能够直接封装进 Bean 对象中呢?这就要说到 HandlerMethodArgumentResolver — 方法参数解析器,该接口有
阅读全文
posted @ 2019-11-22 08:12 JMCui
阅读(3563)
评论(0)
推荐(0)
2019年11月20日
SpEL + AOP实现注解的动态赋值.
摘要: 一、自定义注解 先聊聊这个需求,我需要根据用户的权限对数据进行一些处理,但是痛点在哪里呢?用户的权限是在请求的时候知道的,我怎么把用户的权限传递给处理规则呢?想了以下几种方案: 1. Mybatis 拦截器:如果你的权限参数可以渗透到 Dao 层,那么这是最好的处理方式,直接在 Dao 层数据返回的
阅读全文
posted @ 2019-11-20 08:47 JMCui
阅读(6438)
评论(4)
推荐(0)
2019年11月14日
String 的 intern() 方法解析
摘要: 一、概述 JDK7 之前和之后的版本,String 的 intern() 方法在实现上存在差异,本文的说明环境是 JDK8,会在文末说明 intern() 方法的版本差异性。 intern() 方法是一个 native 的方法,返回常量池中的字符串引用,主要体现在以下两点: 1. 如果常量池中已存在
阅读全文
posted @ 2019-11-14 12:55 JMCui
阅读(673)
评论(0)
推荐(1)
2019年11月7日
Java 发展历程
摘要: JDK 1.0 1991年4月,由 James Gosling 博士领导的绿色计划(Green Project)开始启动,此计划的目的是开发一种能够在各种消费性电子产品(如机顶盒、冰箱、收音机等)上运行的程序架构。这个计划的产品就是Java语言的前身:Oak(橡树)。Oak当时在消费品市场上并不算成
阅读全文
posted @ 2019-11-07 09:22 JMCui
阅读(1717)
评论(3)
推荐(3)
2019年11月3日
Spring Boot WebFlux 2.1.7 中文翻译文档
摘要: 1. 前言 从一开始学习 Netty 到 rxjava、Rector,再到 java8 的 CompletableFuture,就深深的为响应式编程着迷,这种区别于传统的顺序式编程,没准未来能在编程世界开辟一片天地呢! 然后接触到了 WebFlux 框架,也是充满了浓厚的兴趣,想好好琢磨一番,奈何中
阅读全文
posted @ 2019-11-03 09:47 JMCui
阅读(4687)
评论(0)
推荐(0)
2019年10月27日
Redis学习四(运维指南).
摘要: 一、上线规划 一般 redis 的参数配置都在 redis.conf 中,在上线前根据实际环境配置好合适参数,能有效提高 redis 的可用性。 redis 的运行机器 CPU 不求核数多,但求主频高,Cache大,因为 redis 主处理模式是单进程的。 留意 redis 日志文件的配置,对应 l
阅读全文
posted @ 2019-10-27 17:22 JMCui
阅读(921)
评论(0)
推荐(0)
2019年10月21日
Redis学习三(进阶功能).
摘要: 一、排序 redis 支持对 list,set 和 zset 元素的排序,排序的时间复杂度是 O(N+M log(M))。(N 是集合大小,M 为返回元素的数量) [BY pattern]:sort 命令默认使用集合元素进行排序,可以通过 “BY pattern” 使用外部 key 的数据作为权重排
阅读全文
posted @ 2019-10-21 21:49 JMCui
阅读(880)
评论(0)
推荐(1)
2019年10月20日
Redis学习二(数据操作).
摘要: key 操作 删除 key:del key 批量删除key:redis-cli -a(密码)keys “QXJ_*”| xargs redis-cli -a(密码)del 查看所有的 key(一次性遍历整个数据库,生产上慎重使用):keys [pattern] 利用 cursor 分页查询记录(渐进
阅读全文
posted @ 2019-10-20 13:06 JMCui
阅读(597)
评论(0)
推荐(1)
上一页
1
···
4
5
6
7
8
9
10
11
12
···
19
下一页
公告