
学习
文章平均质量分 53
qq_20009015
欢迎关注我的公众号《程序员与王子喵》
展开
-
一文讲清楚正则表达式
以前对正则不熟,每次到用的时候,都是现场baidu, 也勉强够用。后面自己做一个IDEA插件的时候 需要大量用到正则去解析xml 。等等。于是硬着头皮从头到尾学了一遍正则,发现这个也没有那么难。于是写这篇文章,做个记录。首先,最好的正则匹配网站https://regexr.com/以上我们都基于这个网站的展示效果进行讲解。首先来熟悉一下正则里面的概念1.字符串字面值字符串...原创 2020-03-02 01:10:05 · 337 阅读 · 0 评论 -
主线程创建子线程,如果子线程不结束,主线程会结束吗?
如果执行到了main end 这里,main方法就结束了,如果此时还有继续打印我是子线程,说明子线程还在继续跑主线程创建子线程,如果子线程不结束,主线程会结束吗?答案是: 子线程不结束,主线程该结束的时候还是会结束,除非主线程是守护线程。a线程创建b线程, 如果a线程不是守护线程,那么实际上a 和b两个线程没有必然联系。...原创 2019-06-10 23:54:59 · 5681 阅读 · 0 评论 -
sleep和wait的区别
sleep不会释放锁,告诉cpu多少时间内不需要为这个线程分配时间片,wait是会释放锁,进行阻塞队列,等待唤醒,即使唤醒之后,也需要参与竞争锁。sleep是thread的方法,wait和notify是obejct的方法wait和notify 必须在synchronize{ }的范围内使用。wait是非静态方法,sleep是静态方法。还有suspend ,也是不释放锁,但是这个已经不推荐用...原创 2019-06-10 22:23:43 · 185 阅读 · 0 评论 -
记一次对java抽象封装的理解和实践
父类是easyexcel的AnalysisEventListener类,用于写解析excel的业务逻辑结构如下/** * @author jipengfei */public abstract class AnalysisEventListener<T> { /** * when analysis one row trigger invoke functi...原创 2019-05-15 21:46:01 · 1307 阅读 · 2 评论 -
forkjoin并行框架实践
@Override public List<TaxForeDTO> getTaxForeForkJoin(List<String> organizeId, String uid, Date Begin, Date end) throws Exception { Long begintime=System.currentTim...原创 2019-05-07 01:09:25 · 310 阅读 · 2 评论 -
延时消息队列
https://blog.youkuaiyun.com/qq_20009015/article/details/89981008 这个场景场景,有两个接口分别会接收两个数据,如果其中一个数据校验失败,那么另一个数据也要删掉。由于是两个独立的数据源,没法做事务的回滚。( 这两个数据源是来自canal的监听得到的)。因此考虑的方案就是,当校验不通过的时候,通过异步的方式,去起一个线程去删掉另一个接口过来...原创 2019-05-14 10:39:30 · 1485 阅读 · 0 评论 -
sleep和wait的区别
对于sleep()方法,我们首先要知道该方法是属于Thread类中的。而wait()方法,则是属于Object类中的。sleep()方法导致了程序暂停执行指定的时间,让出cpu该其他线程,但是他的监控状态依然保持者,当指定的时间到了又会自动恢复运行状态。在调用sleep()方法的过程中,线程不会释放对象锁。而当调用wait()方法的时候,线程会放弃对象锁,进入等待此对象的等待锁定池,只有针对...原创 2019-05-08 23:24:46 · 83093 阅读 · 16 评论 -
jps jstat命令用法
命令:top显示系统信息jpsjps列出所有java进程jps -l 列出所有java进程的入口jps -v 列出所有java进程 和传递给JVMjps -m 列出所有java进程 和传给main方法的参数jstat 查看内存 类装载 gc信息 等先jps找到指定的线程,然后jstat 命令 线程id 时间间隔 次数比如说 jsat -gc 18615 250...原创 2019-04-20 10:24:33 · 988 阅读 · 0 评论 -
泛型擦除的验证
会发现这里这两个方法无法重载因为在public Integer method(List stringList);和 public String method(List integers);中参数最终都是在编译时候擦除类型 变成List这样就无法重载了,重载必须方法签名不同...原创 2019-04-19 19:44:15 · 254 阅读 · 0 评论 -
IDEA配置JVM启动参数
有时候需要用到配置jvm启动参数用来验证一些东西,比如说观察GC日志等原创 2019-03-25 23:35:41 · 8926 阅读 · 0 评论 -
sql查询表的列名并转为行的形式展示
查询表的列名select column_name from INFORMATION_SCHEMA.COLUMNS where TABLE_SCHEMA=‘sfs_server’ and TABLE_NAME=‘t_funds_detail’;转为行select GROUP_CONCAT(column_name) from INFORMATION_SCHEMA.COLUMNS where T...原创 2019-03-18 14:52:23 · 2565 阅读 · 0 评论 -
ABA问题
在多线程 计算中,ABA问题发生在同步期间,当一个位置被读取两次,两个读取具有相同的值,并且“值相同”用于指示“没有任何改变”。但是,另一个线程可以在两个读取之间执行并更改值,执行其他工作,然后更改该值,从而欺骗第一个线程思考“没有任何改变”,即使第二个线程的工作违反了该假设。当访问共享数据的多个线程(或进程)交错时,会发生ABA问题。以下是导致ABA问题的事件序列:处理 {\ displ...转载 2018-09-19 10:37:47 · 4764 阅读 · 0 评论 -
java对象的引用
package test;public class testObejct { public static void main(String[] args) { Integer a=3; Integer b=4; a=b; a=6; System.out.println("a的值:"+a+","+"b的值:...原创 2018-06-16 08:25:05 · 335 阅读 · 0 评论 -
java工程师成神之路 整理自网络
java工程师成神之路JVMJVM内存结构 堆、 栈、方法区、直接内存、堆和栈的区别java内存模型 内存可见性、重排序、顺序一致性、volatile、锁、final垃圾回收 内存分配策略、垃圾收集器(G1)、GC算法、GC参数、 对象存活的判定 JVM参数及调优JAVA对象模型 pp[-klass、对象头 ...原创 2018-04-19 20:52:05 · 508 阅读 · 0 评论