- 博客(6)
- 收藏
- 关注
原创 读懂jvm之i = i++问题
之前实习背八股文的时候,有刷到过这样一道题目int count = 0;for (int i = 0; i < 100; i ++) { count = count ++;}System.out.println(count);问程序输出多少,当时看到答案输出是0的时候,整个人都是蒙圈的,怀疑了整个世界。后来也去查阅了不少资料,统一给出的答案都是,count在自增后会被原来的值覆盖,所以无论怎么循环都还是原来的数字,对于当时比较菜鸡的我来说,看jvm的字节码指令无疑是看天书一样
2021-05-02 16:28:33 148
原创 synchronized及Lock区别
最近,公司因为安全部分要求,需要对Redis和数据库中保存的token及用户敏感信息加密,Redis中加密比较容易,但是数据库涉及到历史数据,所以临时想出写一个一次性的接口调用,给数据加密就完事了。问题是,数据库大概有10w条数据,而我们用的持久层框架是JPA,本来嘛,而且出于容灾环境同步一致性的问题,只能逐条save,效率奇慢。大致估算了下,10w条数据要5小时左右,那么假如我一次调了接口了,不小心又点了下调用,那不是要做很多重复事情,多点几次数据库不是都要骂人了?所以,就引出代码同步这个问题了。由于
2020-08-09 11:27:40 151
原创 Java源码分析-LinkedList双向链表
简单说下链表和和数组的区别,数组寻址快,遍历快。链表操作效率高,比如插入,删除。而两者的优点正是对方的缺点。可以理解成,数组每个元素都很团结,靠的很紧,所以想拆开他们就很难,而链表是松散的,而联系就是他们的就是指向前一个或者后一个兄弟的部分,所以想插入或者拿走一个就很简单。拿ArrayList来说,就是基于数组实现的,由于数组是一个有序的集合体,每次用add或者remove方法都会调用一个数组拷贝...
2019-03-27 11:44:15 1588
原创 希尔排序的Java实现及简单效率测试
准备工作:希尔排序一般是在插入排序的算法上实现的,如果对此还不熟悉的小伙伴可以先去了解一下插入排序,这样学习希尔排序可以事半功倍。正文:希尔排序又叫缩小增量排序,具体怎么定义的,这里就不再赘述了。先举个例子,比如,有一个待排序的数组的长度为len,先取n = len / 2,把数组划分为n个子序列,每隔n个位置的元素为同一个子序列的元素,先对每个子序列的元素进行排序,效率会快出不少,然...
2019-03-24 11:30:09 333
原创 Java生产者与消费者
Java的线程一直是初学者比较头疼的知识块,特别是线程的并发,而生产者消费者模式刚好是并发的经典,这两天去学习了下,做个笔记。所谓生产者与消费者的模式,其不同点在与,两者中间多了一个容器,生产者生产完产品只需要放入容器中,消费者则从容器中取出产品消费,彼此不直接联系,达到了解耦的目的。
2018-06-07 14:35:08 127
原创 Spring整合redis
最近由于手头项目不多,闲来无事,想去学习下redis。也可能是之前实习(其实现在也是在实习期)找工作很多公司招聘公告上会提及redis,所以兴趣也随之而起。 网上也有许多教学博客,但大多数都是没有贴出项目或者都是需要下载资源去下载的,所以这里给出github的地址,希望大家可以一起学习https://github.com/wx744197705/ssm-redis,话不...
2018-05-11 17:19:58 205
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人