![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
佩奇的胖爸爸
这个作者很懒,什么都没留下…
展开
-
@Valid 手工嵌套验证
@Valid 手工嵌套验证原创 2023-02-02 14:26:25 · 301 阅读 · 0 评论 -
synchronized 和 和 ReentrantLock 的区别
synchronized 和 和 ReentrantLock 的区别原创 2022-11-01 16:31:46 · 133 阅读 · 0 评论 -
volatile 关键字的作用
volatile原创 2022-11-01 16:26:12 · 613 阅读 · 0 评论 -
多线程异步 分布式 RedissonClient redis锁
springboot多线程异步 , 分布式锁 redisson原创 2022-06-02 18:41:14 · 1134 阅读 · 0 评论 -
jmap和jhat
jmap -heap PID比如Eden区总容量、已经使用的容量、剩余的空间容量,两个Survivor区的总容量、已经使用的容量和剩余的空间容量,老年代的总容量、已经使用的容量和剩余的容量。但是这些信息大家会想了,其实jstat已经有了啊!对的,所以一般不会用jmap去看这些信息,毕竟他信息还没jstat全呢,因为没有gc相关的统计。使用jmap了解系统运行时的对象分布其实jmap命令比较有用的一个使用方式,是如下的:jmap -histo PID这个命令会打印出来类似下面的信息:这个就原创 2021-06-03 16:51:43 · 307 阅读 · 0 评论 -
jstat
平时我们对运行中的系统,如果要检查他的JVM的整体运行情况,比较实用的工具之一,就是jstat他可以轻易的让你看到当前运行中的系统,他的JVM内的Eden、Survivor、老年代的内存使用情况,还有Young GC和Full gC的执行次数以及耗时。通过这些指标,我们可以轻松的分析出当前系统的运行情况,判断当前系统的内存使用压力以及GC压力,还有就是内存分配是否合理。下面我们就一点点来看看这个jstat工具的使用。jstat -gc PID运行这个命令之后会看到如下列,给大家解释一下:S0C:原创 2021-06-03 16:38:15 · 8387 阅读 · 0 评论 -
cpu 飙高,死循环,死锁排查
cpu 飙高,死循环,死锁top命令查找死锁的进程通过jstack 进程id > show.txt 命令把进程的 堆栈信息输出到文件top -p 进程id -H 查找死锁具体的线程的 idprintf “%x” 线程id 打印出线程id 的 16位less show.txt 根据线程的16进制 id 查看文件死锁信息在文件最后的内容...原创 2021-06-03 15:48:38 · 272 阅读 · 0 评论 -
swagger 全局token设置
Swagger是一个很方便的东东,但正常使用时,我们的接口需要登陆才能访问的。即登陆时,要传一个登陆后的token才能访问的。那这个怎么设置,才可以让所有接口都允许登陆后访问呢。解决办法如下:@EnableSwagger2@Configurationpublic class SwggerConfig { @Bean public Docket createRestApi() { return new Docket(DocumentationType.SWAGGE原创 2020-10-16 14:18:39 · 2031 阅读 · 0 评论 -
Java 集合底层原理剖析(List、Set、Map、Queue)
ListArrayList 的属性、数据结构、add/set/remove 具体流程LinkedList 的属性、数据结构、get 具体流程、Java 8 对它的改进Vector 的属性、数据结构、特征、使用场景Stack 的属性、数据结构、实现原理CopyOnWriteArrayList 和 CopyOnWriteArraySet 的数据结构、特征、实现原理ArrayList 和 V...原创 2020-01-15 17:57:18 · 375 阅读 · 0 评论 -
PowerDesigner excel导入table 批量修改 批量删除 批量添加
这几天 使用了 PowerDesigner 来 整理表结构,分享下。下面,我们 通过 VBScript脚本 实现了 excel导入表字段、批量修改表前缀、批量添加表字段、批量添加表字段。执行脚本:ctrl + shift + x 打开运行VBS 代码窗口,粘贴脚本后,运行1.excel 导入 PowerDesigner'开始Option ExplicitDim mdl ' the ...原创 2019-05-13 10:11:54 · 874 阅读 · 0 评论 -
ava中什么样的对象才能作为gc root
GC管理的主要区域是Java堆,一般情况下只针对堆进行垃圾回收。方法区、栈和本地方法区不被GC所管理,因而选择这些区域内的对象作为GC roots,被GC roots引用的对象不被GC回收。详细:GC Root常说的GC(Garbage Collector) roots,特指的是垃圾收集器(Garbage Collector)的对象,GC会收集那些不是GC roots且没有被GC roots...原创 2019-05-21 21:55:40 · 146 阅读 · 0 评论 -
java 基础对象解析
hashMap: 底层是数组和链表,通过key的hashcode方法定位index,如果有冲突则通过key的equal方法比较获取对象hashtable:底层是红黑树,适用于按自然顺序或自定义顺序遍历键(key),现场安全,但是锁住的是整个MapConCurrentHashMap:对整个桶数组进行了分割分段(Segment),然后在每一个分段上都用lock锁进行保护,相对于HashTable的...原创 2019-05-10 16:22:08 · 107 阅读 · 0 评论 -
vector和arrayList,LinkedList区别
SDK提供了有序集合接口java.util.List的几种实现,其中三种最为人们熟知的 是Vector、ArrayList和LinkedList。有关这些List类的性能差别是一个经常被问及的问题。在这篇文章中,我要探讨的就是 LinkedList和Vector/ArrayList之间的性能差异。为全面分析这些类之间的性能差异,我们必须知道它们的实现方法。因此,接下来我首先从性能的角度出发,简要...转载 2019-05-10 15:40:48 · 109 阅读 · 0 评论 -
两个栈实现队列+两个队列实现栈----java
两个栈实现队列+两个队列实现栈—-java一.两个栈实现一个队列思路:所有元素进stack1,然后全部出stack1并进入stack2.实现队列的先进先出即:若stack2非空,我们需要的恰好再栈顶,出栈;若要给队列添加元素,即先进sack1,要出队时,若stack2不为空就出栈,为空时就把stack1全部进栈到stack2public class StacksToQueue { ...转载 2019-05-10 11:05:17 · 86 阅读 · 0 评论 -
经典面试题:两个栈实现队列+两个队列实现栈----java
两个栈实现队列+两个队列实现栈—-java一.两个栈实现一个队列思路:所有元素进stack1,然后全部出stack1并进入stack2.实现队列的先进先出即:若stack2非空,我们需要的恰好再栈顶,出栈;若要给队列添加元素,即先进sack1,要出队时,若stack2不为空就出栈,为空时就把stack1全部进栈到stack2这里写图片描述import java.util.Stack; ...转载 2019-05-09 16:13:08 · 134 阅读 · 0 评论 -
HashMap面试题
HashMap的工作原理是近年来常见的Java面试题。几乎每个Java程序员都知道HashMap,都知道哪里要用HashMap,知道Hashtable和HashMap之间的区别,那么为何这道面试题如此特殊呢?是因为这道题考察的深度很深。这题经常出现在高级或中高级面试中。投资银行更喜欢问这个问题,甚至会要求你实现HashMap来考察你的编程能力。ConcurrentHashMap和其它同步集合的引入...转载 2019-05-06 16:39:30 · 112 阅读 · 0 评论 -
Java 8中Stream API常用技巧
准备测试数据 Student mode1 = new Student("zhang yi", 16,"男生"); Student mode2 = new Student("li er", 16,"女生"); Student mode3 = new Student("zhao san", 15,"男生"); Student mode4 = new Student("song si",...转载 2019-04-18 17:04:27 · 111 阅读 · 0 评论