自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

yin__ren的博客

个人的学习笔记,如有问题,敬请斧正

  • 博客(211)
  • 资源 (5)
  • 收藏
  • 关注

原创 springBean结合lambda function

【代码】springBean结合lambda function。

2024-03-20 11:15:24 94 1

原创 fastjson 使用 SimplePropertyPreFilter 导致 map 结果为空

使用 SerializeFilter 指定格式化字段时,对于 map 对象,需要将 map 中的 key 也指定。

2023-01-12 11:22:59 373 1

原创 ping github.com 显示 Request timeout for icmp_seq 0 问题

ping github.com 显示 Request timeout for icmp_seq 0 问题

2022-11-10 10:38:38 1748

原创 fastjson 序列化排除字段

fastjson 序列化排除字段

2022-10-14 17:21:38 1365

原创 G1 垃圾回收器

一、垃圾收集器简介1、发展历程第一阶段,Serial(串行)收集器在jdk1.3.1之前,java虚拟机仅仅能使用Serial收集器。 Serial收集器是一个单线程的收集器,但它的“单线程”的意义并不仅仅是说明它只会使用一个CPU或一条收集线程去完成垃圾收集工作,更重要的是在它进行垃圾收集时,必须暂停其他所有的工作线程,直到它收集结束。第二阶段,Parallel(并行)收集器Parallel收集器也称吞吐量收集器,相比Serial收集器,Parallel最主要的优势在于使用多线程去完成垃

2022-03-21 16:42:26 960 1

原创 查看java对象内存占用

1、maven<dependency> <groupId>org.openjdk.jol</groupId> <artifactId>jol-core</artifactId> <version>0.9</version></dependency>2、ClassLayout.parseInstance 查看@Datapublic class MyTest { private

2022-03-21 15:37:35 1625

原创 thrift 处理类

public final class ThriftUtils { /** * 获取字段值,如果未设定返回默认值 * * @param tBase thrift对象 * @param fieldIdEnum thrift字段名称 * @param defaultValue 默认值 * @param <T> 值类型 * @return */ public static <T> T getIf

2021-09-02 17:47:08 233

原创 详解 java.lang.management & java-jvm

java.lang.management 包提供了用于监控和管理 JVM 的接口,以及 Java 运行时中的其他组件一、接口概述接口名称描述BufferPoolMXBean缓冲池的管理接口,例如:直接或映射缓冲池ClassLoadingMXBeanJava虚拟机的类加载系统的管理接口CompilationMXBeanJava虚拟机的编译系统的管理接口GarbageCollectorMXBeanJava虚拟机的垃圾收集的管理接口MemoryManag.

2021-04-22 11:57:08 607

原创 Java Instrument 详解与获取对象大小

1、详解 Instrument1、理解并使用 Instrument:javaagent使用指南2、Instrument 底层代码剖析:Java 动态调试技术原理及实践2、获取对象大小1、简单方式:java中获取对象所占用的内存大小注:该方式仅仅计算:对象头+基本类型大小的和2、Instrument 方式:一个Java对象到底占用多大内存3、Instrument + Unsafe 方式:java如何获取一个对象的大小...

2021-04-15 15:41:30 709

原创 SpringUtils

@Componentpublic class SpringUtils implements ApplicationContextAware { // Spring应用上下文环境 private static ApplicationContext applicationContext; /** * 实现ApplicationContextAware接口的回调方法,设置上下文环境 */ @Override public void setApplicati

2021-03-30 14:28:19 260

原创 分布式锁学习

一、分布式锁的特点互斥性:分布式锁需要保证在不同节点的不同线程的互斥可重入性:同一个节点上的同一个线程获取锁之后,也可以再次获取这个锁锁超时:支持锁超时,防止死锁高效、高可用:加锁和解锁需要高效,同时也需要保证高可用防止分布式锁失效,可以增加降级支持阻塞和非阻塞(可选):支持 lock 和 trylock 以及 tryLock(long timeOut)支持公平锁和非公平锁(可选):公平锁指按照请求加锁的顺序获得锁,非公平锁则相反是无序获取锁二、实现方式1、基于 mysql 实现基于

2021-03-18 14:29:46 674

原创 规则引擎 Aviator&Drools&&Mvel&EasyRules

1、maven<dependency> <groupId>com.googlecode.aviator</groupId> <artifactId>aviator</artifactId> <version>${aviator.version}</version></dependency>2、特性(1) 支持大部分运算操作符:包括算术操作符、关系运算符、逻辑操作符、正则匹配操.

2021-03-05 18:04:13 5179

原创 Java 中的 goto 语句(break/continue)

一般的 continue 会退回到内存循环的开头,并继续执行一般的 break 会中断并跳出当前循环代标签的 continue 会到达标签的位置,从新开始带标签的 break 会中断并跳出当前标签所指的循环public class LabelDemo { public static void main(String[] args) throws InterruptedException { //标签 exit: while (true){.

2021-01-11 11:22:00 345 1

原创 中文文案排版

推荐阅读:中文文案排版指北一、空格1、中英文之间需要增加空格正确:在 LeanCloud 上,数据存储是围绕 AVObject 进行的。错误:在LeanCloud上,数据存储是围绕AVObject进行的。在 LeanCloud上,数据存储是围绕AVObject 进行的。完整的正确用法:在 LeanCloud 上,数据存储是围绕 AVObject 进行的。每个 AVObject 都包含了与 JSON 兼容的 key-value 对应的数据。数据是 schema-free .

2020-12-17 17:26:47 260

原创 Collection 差交并集

一、List推荐阅读:java-----求两个list的交集、并集、和差集List list1 =new ArrayList();list1.add("1111");list1.add("2222");list1.add("3333"); List list2 =new ArrayList();list2.add("3333");list2.add("4444");list2.add("5555"); //并集list1.addAll(list2);//交集list1.r

2020-12-03 16:14:49 503

原创 RPC 与 CompletableFuture

一、RPC深入剖析通信层和RPC调用的异步化(上)深入剖析通信层和RPC调用的异步化(下)二、CompletableFuture推荐阅读:Java CompletableFuture 详解20个使用 Java CompletableFuture的例子1、Future 与 CompletionStageCompletableFuture 实现了 CompletionStage 和 Future 接口//Futurepublic T get()public T get(long

2020-11-27 18:00:14 438

原创 Log4J2 总结

一、Log4J 组件Logger:日志记录器,负责收集处理日志记录 (如何处理日志)Level: 日志级别,规定输出的日志级别(输出什么类型的日志)Appender:日志输出目的地,负责日志的输出 (输出到什么 地方)Layout:日志格式化,负责对输出的日志格式化(以什么形式展现)二、基本使用方法...

2020-11-26 11:44:11 1129

原创 大数据算法之布隆过滤器

先做一个记录,后续补充

2020-11-19 14:48:40 224

原创 三种 Bitmap 之 Roaring64NavigableMap(长整形压缩 Bitmap)

<dependency> <groupId>org.roaringbitmap</groupId> <artifactId>RoaringBitmap</artifactId> <version>0.9.0</version></dependency>

2020-11-19 14:45:03 3391

原创 三种 Bitmap 之 RoaringBitmp(压缩 Bitmap)

<dependency> <groupId>org.roaringbitmap</groupId> <artifactId>RoaringBitmap</artifactId> <version>0.9.0</version></dependency>

2020-11-19 14:44:32 2070

原创 Java 位移运算

一、运算符<<:左移运算>>:右移运算>>>:无符号右移运算二、位移超过 32/64int 类型:进行 a>>b 的位移操作时,系统会先进行 b % 32 取余操作,得到真正位移的位数long 类型:同 int,会先进行 b % 64 的取余操作public class TestModel { public static void main(String[] args) { long WORD_MASK =

2020-11-19 12:05:47 406

原创 三种 Bitmap 之 Java BitSet

一、BitSet(JDK Bitmap)推荐阅读:Java1.8-BitSet源码分析1、继承体系及属性public class BitSet implements Cloneable, java.io.Serializable { // 保存bit的数组 private long[] words; // 表示在数组words中已经使用的数的个数 private transient int wordsInUse = 0; //用于判断检查,扩容等相关的参数

2020-11-19 11:48:48 408

原创 哈希加密/非加密算法

一、内置函数goodFastHash(int minimumBits):返回一个多用途的,临时使用的,非加密的 Hash Functionmurmur3_32(int seed):使用指定参数值做种子返回一个 murmur3 算法实现的 32 位的哈希值murmur3_32():使用零值种子返回一个 murmur3 算法实现的 32 位的哈希值murmur3_128():使用零值种子返回一个 murmur3 算法实现的128位的哈希值。sipHash24():sipHash24 加密算法sip

2020-11-13 15:49:56 830

原创 Leaf 详解

参考博客:Leaf:美团分布式ID生成服务开源Leaf是美团基础研发平台推出的一个分布式ID生成服务一、Leaf 号段生成1、Leaf 特性全局唯一:不会出现重复 ID,且 ID 整体趋势递增高可用:基于分布式架构,即使 MySQL 宕机,也能容忍一段时间的数据库不可用高并发低延时:在 CentOS 4C8G 的虚拟机上,远程调用QPS可达5W+,TP99在1ms内接入简单:可通过 RPC 服务或 HTTP 调用接入2、Leaf 详解Leaf 采用预分发方式生成 ID:即在 .

2020-11-11 16:50:46 4264 1

原创 注解与 JoinPoint(AOP)案例

一、基础方法1、基础方法String toString(); //连接点所在位置的相关信息 String toShortString(); //连接点所在位置的简短相关信息 String toLongString(); //连接点所在位置的全部相关信息 Object getThis(); //返回AOP代理对象 Object getTarget(); //返回目标对象 Object[] getArgs(); //返回被通知方法参数列表 Signature getSignature

2020-09-24 14:31:59 874

原创 Java 之 tk.mybatis生成器与 sql 分页查询

一、前言三种分页的实现方式:每次取查询结果的所有数据,然后根据页面显示指定的记录根据页面只取一页的数据,然后显示这一页,这里要构造 sql 语句取一定页数的数据,就是前两种的折中实现分页的步骤:创建一个用于封装分页相关属性及操作的类从页面增加分页导航条的功能实现分页查询功能,从页面请求->Servlet->DAO的实现二、自定义实现1、借助数组分页(先查询所有数据,再分页)原理:先获取数据库中所有满足条件的记录,保存在应用的临时数组中,再通过 List 的

2020-09-07 15:59:44 1713

原创 spring 事务 @Transactional

一、事务的ACID特性原子性 Atomicity:一个事务必须被视为一个不可分割的最小工作单元,整个事务中的所有操作要么全部提交成功,要么全部失败回滚主要涉及 InnoDB 事务,相关特性:事务的提交,回滚,信息表一致性 consistency:数据库总是从一个一致性的状态转换到另一个一致性的状态在事务开始前后,数据库的完整性约束没有被破坏。例如违反了唯一性,必须撤销事务,返回初始状态主要涉及内部 InnoDB 处理,以保护数据不受崩溃,相关特性:双写缓冲、崩溃恢复隔离性 iso.

2020-09-07 10:15:15 389

原创 Java 之对象拷贝与转换(convert、mapstruct)

一、getter/setter常规方式,不再赘余。。。二、BeanCopier详细使用案例:使用CGlib实现Bean拷贝(BeanCopier)BeanCopier 使用 cglib 修改字节码,实现真的动态 Read Writer getter/setter注意:当源类和目标类的属性名称、类型都相同,拷贝结果最优当源对象和目标对象的属性名称相同、类型不同,则名称相同而类型不同的属性不会被拷贝注意:原始类型(int,short,char)和其包装类型,在这里都被当成了不同类型,因此

2020-09-07 09:00:18 7157

原创 Java 之定时器

一、Java 定时器二、Spring 定时器三、quartz 定时器

2020-08-31 08:59:12 701

原创 Guava 之 StopWatch 计时器

createStarted():创建并启动一个新的 stopwatch 对象,使用 System.nanoTime() 作为时间资源createStarted(Ticker ticker):创建并启动一个新的 stopwatch 对象,使用特定的时间资源createUnstarted():创建但不启动一个新的 stopwatch 对象,使用 System.nanoTime() 作为时间资源createUnstarted(Ticker ticker):创建但不启动一个新的 stopwatch 对象,使.

2020-08-24 16:24:09 1278

原创 Java 之 double 与 BigDecimal

BigDecimal 用来对超过16位有效位的数进行精确的运算一、构造函数1、常用构造函数BigDecimal(int):创建一个具有参数所指定整数值的对象BigDecimal(double):创建一个具有参数所指定双精度值的对象BigDecimal(long):创建一个具有参数所指定长整数值的对象BigDecimal(String):创建一个具有参数所指定以字符串表示的数值的对象2、使用注意(1) 案例BigDecimal a = new BigDecimal(0.1);Sys.

2020-08-24 10:55:34 5787

原创 Java 之 JSON 转换(jackson 与 fastJson)

推荐阅读:Jackson使用详解前言:相比于 FastJson 和 Gson,Jackson 在性能、运行速度、开源社区的活跃度等方面的综合性能都要更好一、简介1、版本介绍Jackson 的 1.x 版本的包名是 org.codehaus.jackson当升级到 2.x 版本时,包名变为 com.fasterxml.jackson2、核心模块Jackson 的核心模块由三部分组成:jackson-core:核心包,提供基于"流模式"解析的相关 API,包括 JsonPaser .

2020-08-21 14:02:07 1386

原创 spring 加载配置文件

推荐阅读:Spring Boot读取properties配置文件中的数据使用 @Value 注解读取默认读取 application.propertiesapplicationContext.xml 配置文件位置 <context:property-placeholder location="classpath*:*.properties, classpath:META-INF/*.properties" ignore-unresolvable="true"/>使用 Envi

2020-08-18 15:37:49 299

原创 Java 的 Random seed 学习

参考博客:java random seed 使用public static void main(String[] args) { List<Integer> asList = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16); Random random = new Random(10); for (int i = 0; i < 5; i++) {

2020-08-17 13:57:30 299

原创 RESTful 学习

//查询所有人员(传统)localhost:8088/api/user/findAll 请求方式:GET//查询所有人员(RESTful)localhost:8088/api/users 请求方式:GET//修改人员(传统)localhost:8088/api/user/update 请求方式:POST//修改人员(RESTful)localhost:8088/api/users 请求方式:PUT//添加人员(传统)localhost:8088/api/user/add

2020-08-06 20:00:05 165

原创 lombok 整理

参考博客:Java中优雅的使用Lombok一、Maven 依赖<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>${version}</version></dependency>二、lombok 注解参考博客:Lombok 注解详解@Data:

2020-08-06 17:22:32 93

原创 mac(10.15 及 11) 无法在根目录创建文件夹的解决

mac 10.15 后如何在根目录/下创建文件:进入恢复模式:重启电脑,按住 Command + R关闭 SIP:打开终端,输入:csrutil disable挂载根目录:sudo mount -uw /然后就可以在根目录 / 下创建修改文件了注:每次重启后,都会失效,此时重新运行 sudo mount -uw / 即可不要开启 SIP:csrutil enable,免得需再次操作时还要进入恢复模式...

2020-06-23 17:35:17 4999 9

原创 markdown数学公式

参考:https://blog.csdn.net/jmh1996/article/details/782899151、矩阵与行列式矩阵:D(q)=[p1+p2+2p3cosq2p2+p3cosq2p2+p3cosq2p2]D(q) =\begin{bmatrix}p_1+p_2+2p_3cosq_{2} & p_2+p_3cosq_2\\p_2+p_3cosq_2 &am...

2020-02-11 16:22:28 482

原创 Java Unix时间戳转换

package com.company;import java.sql.Timestamp;import java.text.DateFormat;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;import java.util.Locale;publi...

2020-01-10 18:55:10 712

原创 HashMap 初始化时赋值

HashMap 初始化时赋值:public static void main(String[] args) { Map<Integer, Integer> map = new HashMap<Integer, Integer>() { { for (int i = 0; i < 3; i++) { put(i,...

2020-01-06 11:26:27 2087

数据库部分课后习题答案

对于网上数据库答案不全的补充,主要是习题的解答,其中部分习题可能有错误

2019-02-18

zheng 项目配置文档

zheng 项目的配置文档,需要的小伙伴可以下载。如果没有积分可以博客联系我

2018-08-15

软件工程总结手册

关于软件开发过程中的一些开发流程与开发经验总结 原书为:《软件工程(Ian Sommerville 著;程成等 译)》

2018-07-02

内存管理指导书

在windows环境下编写一个程序,模拟实现OPT,FIFO,LRU等页面淘汰算法。具体实验思想和过程请参考《内存管理实验指导书》

2018-05-14

get_pip.py

用于win10一键安装pip。即:下载get-pip.py文件;执行:python get-pip.py

2018-03-16

空空如也

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

TA关注的人

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