
JAVA
文章平均质量分 66
牧子与羊
是什么?为什么?怎么做?
这个人很懒,半年才更新一次文章,建议吐槽
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
java使用itextpdf生成pdf文档指定图片印章位置
java使用itextpdf生成pdf文件并添加印章原创 2022-07-15 17:39:03 · 3597 阅读 · 2 评论 -
JVM主要垃圾回收算法
复制算法它将可用内存按容量划分为大小相等的两块,每次只使用其中的一块。当这一块的内存用完了,就将还存活着的对象复制到另外一块上面,然后再把已使用的内存空间一次清理掉,这样一来就不容易出现内存碎片的问题。优点:效率高缺点:空间利用率低标记-清算法第一步标记阶段的任务是标记出所有需要被回收的对象,第二步清除阶段就是回收被标记的对象所占用的空间。优点:相对复制算法空间利用率更高缺点:回收之后的内存空间过于零散标记-整理算法先对不可达分析,对不可达对象进行标记,标记之后,它不是直接清理可回收.原创 2022-04-10 12:21:13 · 143 阅读 · 0 评论 -
java基础回顾之JVM
需要了解的知识点:什么是JDK什么是JRE?JVM的结构?堆:对象进入老年代的条件栈(线程栈):基本数据类型(如int,double等)、局部变量都是存放在栈内存中的,用完就消失。它是一个先进后出的结构注:jdk1.7之前为方法区,1.8后换成了元空间垃圾回收原理及过程?3.1引用计数法3.2可达性分析法类执行过程?JVM调优工具之arthas调优的目的?减少full GC; why? STOP WORKJavaEE 中级软件工程师四种经典架构 SSH1、原创 2022-03-14 22:05:16 · 582 阅读 · 0 评论 -
【转载】mybatis-plus LambdaQueryWrapper类的实现原理
List<ArkMessageArticle> list = this.list(new LambdaQueryWrapper<ArkMessageArticle>() .eq(ArkMessageArticle::getTenantCode, customer.getTenantCode()) .eq(ArkMessageArticle::getDeleted, 0) .orderBy.翻译 2021-05-13 15:38:39 · 1580 阅读 · 0 评论 -
线程池ThreadLoacl传递问题解决办法
起因:JDK的InheritableThreadLocal类可以完成父子线程值的传递。 但对于使用线程池等会缓存线程的组件的情况,线程由线程池创建好,并且线程是缓存起来反复使用的;这时父子线程关系的上下文传递已经没有意义,应用中要做上下文传递,实际上是在把 任务提交给线程池时的上下文传递到 任务执行时。ThreadLocal和InheritableThreadLocal的局限性:InheritableThreadLocal是ThreadLocal的子类,它们之间的联系是:两者都是线程Thread实例获原创 2021-03-31 17:49:55 · 332 阅读 · 0 评论 -
ElasticSearch教程之基础介绍篇(二)
ElasticSearch API的简单使用POST 增DELETE 删PUT 改GET 查偷个懒,等有时间的时候再总结这篇使用kibana操作ElasticSearch原创 2020-12-13 16:31:32 · 188 阅读 · 3 评论 -
ElasticSearch教程之基础介绍篇(一)
666原创 2020-12-13 16:16:59 · 258 阅读 · 0 评论 -
【转载】架构师的初级技能,选组件!
原文作者:小姐姐味道链接:https://juejin.im/post/6870288195674718222来源:掘金著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。本篇内容涵盖14个方面,涉及上百个框架和工具。会有你喜欢的,大概也会有你所讨厌的家伙。这是我平常工作中打交道最多的工具,大小公司都适用。如果你有更好的,欢迎留言补充。一、消息队列二、缓存三、分库分表四、数据同步五、通讯六、微服务七、分布式工具八、监控系统九、调度十、入口工具转载 2020-09-10 09:32:51 · 236 阅读 · 1 评论 -
如何自定义一个Spring Aop切面功能注解
切面功能就当下大多数公司项目都会用到,切面编程的有点这里就不多说了,《关于Spring aop的理解》一篇我个人关于SpringAop的一些理解和想法。这篇文章主要是Spring Aop的实战。网上关于Spring Aop配置式的博客太多,这里也不再做重复工作,重点是介绍一下注解方式的实现。一. 通配符配置的方式二. 自定义注解我们现在自己一些特定的方法上添加切面功能怎么办?如果使用通配符就需要按照通配符定义的规则(如包的路径,类方法的取名等),我们想更灵活些怎么办?这时候用注解标记方法就是一个比原创 2020-07-17 10:18:59 · 2076 阅读 · 0 评论 -
谈谈mybatis的执行器
JDBC执行流程:提到JDBC是因为mybatis就是一个基于JDBC的ORM框架mybatis执行器:执行器接口Executor:提供改查(常说的“增、删、改、查”可以合并为“改、查”),提交,回滚,关闭等操作。抽象父类BaseExecutor:主要提供获取连接,一级缓存等公用功能。query方法提供缓存的使用。这也是经常说的mybatis基于sqlSeesion的一级缓存简单执行器SimpleExecutor:每执行一次update或select,就开启一个Statement对象,用完立原创 2020-07-04 11:06:51 · 1108 阅读 · 0 评论 -
扩展Spring扫描类型同@Component相同功能
前言:由于好奇看了一下《Spring注解Component原理源码解析》的博文,就自己简单写了一个demo,用于扩展自己的类交由spring来管理,emmm。。。。。应用场景的话就比如一些比较老的项目(非spring项目)想改造为spring项目,就可以将项目中某个顶级接口设定为@Component一样的功能。首先声明我们的标记接口,他就相当于@Componentpublic interface MyService {}自定义我们的扫描器,就相当于我们的@ComponentScan(bas原创 2020-06-28 15:51:40 · 618 阅读 · 0 评论 -
关于Spring aop的理解
前言:实际开发中难免会遇到添加非业务功能的代码,如统计、日志、权限验证等,功能通用不可能在每个类中都去写一遍,这时候就需要“代理类”,最早的方法主要是两种:1-聚合织入;2-继承。看一下伪代码聚合:class A{ private C; function a{ C.c(); print("a"); }}class B{ private C; f...原创 2020-05-30 17:43:59 · 372 阅读 · 0 评论 -
Java数组排序面试题-20200516
朋友昨天遇到一个数组排序的面试题,觉得比较有趣就做一下记录。原题目是这样的给定一个正整数数组,按照出现的次数由少到多排序,如果两数次数相同则按照数由小到大排。例:给定数组:{3,3,3,2,2,4,4,1,8,7,7,7,7,6},结果为:[1, 6, 8, 2, 4, 3, 7]解析:1出现一次,6出现一次,8出现一次,按照1<6<8;2出现两次,4出现两次,按照2<4;3出现三次,7出现四次。提示:你可以使用Map,Java8 API来解决。↓↓↓↓↓↓↓下面是我的答案原创 2020-05-16 09:17:21 · 344 阅读 · 0 评论 -
Java类加载机制及三种反射获取class
//TODO翻译 2020-05-15 15:18:57 · 233 阅读 · 0 评论 -
Java正则表达式学习及使用案例干货
// TODO原创 2020-05-08 15:20:00 · 894 阅读 · 0 评论 -
JAVA纯代码自增序列支持集群
数据库实体对象Sequence(注:mod 属性不在表中,这里用于取模,使value的值循环在指定长度中)import com.baomidou.mybatisplus.annotation.TableField;import com.baomidou.mybatisplus.annotation.TableId;import com.baomidou.mybatisplus.annotat...原创 2020-04-26 11:17:41 · 1021 阅读 · 0 评论 -
业务异常的简单封装(支持对异常信息的格式化)
package com.lix.test;import java.util.regex.Matcher;import java.util.regex.Pattern;/** * 业务异常的简单封装,支持对异常信息的格式化。根据业务需求对构造器、方法等补全,这里只提供几个简单示例 * @author lix * @Date 2020/4/8 */public class BizB...原创 2020-04-08 14:27:19 · 338 阅读 · 0 评论 -
fastjson转换为json字符串时丢失null值字段
Fastjson的SerializerFeature序列化属性:QuoteFieldNames——输出key时是否使用双引号,默认为trueWriteMapNullValue——是否输出值为null的字段,默认为falseWriteNullNumberAsZero——数值字段如果为null,输出为0,而非nullWriteNullListAsEmpty——List字段如果为null,输出为...原创 2020-04-08 09:12:13 · 2990 阅读 · 0 评论 -
浅谈java模板方法模式及应用场景
定义:定义一个操作中的算法骨架,而将算法的一些步骤延迟到子类中,使得子类可以不改变该算法结构的情况下重定义该算法的某些特定步骤。它是一种类行为型模式。说的通俗点就相当于你每天都需要:起床穿衣,洗漱,去公司,上班。每天都是重复这样的事,但具体实现方式却不一样,把每天看作是其子类,就比如你今天穿休闲装,明天穿正装,你去公司,今天可能不限号你就开车去,明天限号你就去挤公交。优点:1、它封装了不变...原创 2020-04-07 21:27:38 · 1347 阅读 · 0 评论 -
Springboot常用注解及基本说明
导语:相信现在很多新项目都会首选springboot作为基础进行开发,主要是它摒弃了spring以往项目中大量繁琐的配置,遵循约定大于配置的原则,通过自身默认配置,极大的降低了项目搭建的复杂度。springboot提供了大量的注解,使得代码更加简洁高效,就让我们来简单看一下springboot提供的相关注解(其实很一部分也是继承于spring的)...原创 2020-04-07 11:39:12 · 597 阅读 · 0 评论 -
JAVA8新特性之stream与lambda拉姆达表达式
今天先贴代码: public static void main(String[] args) { Stream<String> strs = Stream.of("abc", "abcd", "abcde", "efg", "cd", "aaaaaa", "cba", "dc", "bbbbbb", "eee"); // filter传入为一个b...原创 2020-04-03 17:57:35 · 280 阅读 · 0 评论