- 博客(21)
- 收藏
- 关注
原创 Graphql-Java实践-2-graphql-java编码的三层架构
graphql-java编码的三层架构com.graphql-java-kickstartgraphql-java-codegen第一层: mutation/query第二层:resolver上一篇:Graphql-Java实践-1-graphql的理念及quickstartcom.graphql-java-kickstart在上一篇中我们介绍了graphql的理念,用它开发的好处及quick-start项目,不知道大家有没有发现,我们的quick-start项目除了最核心的graphql-java包
2022-03-14 19:32:14
2853
4
原创 JAVA内存分页排序小框架
JAVA内存分页排序小框架对于程序员来说,排序和分页是再普通不过的需求,需要在内存中排序分页的情况也时有发生。而自从有了JAVA8 Stream之后,对一个集合的排序分页貌似也在变的简单。来看个例子,定义一个学生类:public class Student { private String name; private Integer age; private String sex; public String getName() { retur
2020-10-31 19:25:04
717
1
原创 JAVA并发编程-10-JMM和底层实现原理
JMM和底层实现原理一、JAVA内存模型JMM1、并发编程领域的关键问题2、现代计算机物理上的内存模型3、Java内存模型4、JVM对Java内存模型的实现5、Java内存模型带来的问题二、Java内存模型中的重排序1、重排序的类型2、重排序与依赖性3、并发下重排序带来的问题一、JAVA内存模型JMM1、并发编程领域的关键问题线程之间的通信线程的通信是指线程之间以何种机制来交换信息。在编程中,线程之间的通信机制有两种,共享内存和消息传递。在共享内存的并发模型里,线程之间共享程序的公共状态,线程之间
2020-06-03 22:48:20
340
2
原创 JAVA并发编程-9-并发安全
线程并发安全的理解一、类的线程安全的定义二、怎么才能做到类的线程安全1、栈封闭2、无状态3、让类不可变4、volatile5、加锁和CAS6、安全的发布7、TheadLocal三、线程不安全会产生的问题1、死锁2、活锁3、线程饥饿四、性能和思考影响性能的因素减少锁的竞争上一篇看这里:JAVA并发编程-8-线程池一、类的线程安全的定义如果多线程下使用这个类,不论多线程如何使用和调度这个类,这个类总是表示出正确的行为,这个类就是线程安全的。类的线程安全表现为:操作的原子性,使用这个类中的方法进行操作
2020-05-19 22:34:56
1299
1
原创 JAVA并发编程-8-线程池
线程池的使用一、为什么要使用线程池二、手动实现一个线程池三、JDK中的线程池和工作机制1、线程池的创建及参数2、提交任务的方法3、关闭线程池的方法4、工作机制四、合理配置线程池五、预定义的线程池六、Executor框架上一篇看这里:JAVA并发编程-7-并发容器一、为什么要使用线程池1、降低资源的消耗。降低线程创建和销毁的资源消耗;2、提高响应速度:线程的创建时间为T1,执行时间T2,销毁时间T3,免去T1和T3的时间3、提高线程的可管理性。二、手动实现一个线程池如何实现线程呢?有2个关键点
2020-05-18 22:59:53
679
原创 JAVA并发编程-7-并发容器
常用的并发容器介绍一、ConcurrentSkipListMap 和 ConcurrentSkipListSet二、ConcurrentLinkedQueue三、写时复制容器 CopyOnWrite四、阻塞队列1、概念2、生产者、消费者模式3、常用方法4、常用阻塞队列5、使用DelayQueue实现延时订单上一篇看这里:JAVA并发编程-6-ConcurrentHashMap上一篇中我们介绍了最重要的一个并发容器ConcurrentHashMap,本章中我们简单介绍一下其他并发容器的原理和使用。一、
2020-05-17 23:50:45
364
2
原创 JAVA并发编程-5-AQS的实现原理
学习并发编程的一座高山-AQS一、LockSupport工具的使用二、初识AQS1、什么是AQS2、模版方法设计模式3、AQS中的方法4、实现一个独占锁三、深入AQS源码1、AQS中的数据结构2、上一章看这里:JAVA并发编程-4-显式锁Lock一、LockSupport工具的使用先来简单讲解下LockSupport的使用java在LockSupport中定义了一组静态方法,来提供最基本的...
2020-04-23 23:36:58
975
4
原创 JAVA并发编程-1-线程基础
JAVA并发编程-1-线程基础一 、基础概念1,cpu核心数与线程数2,进程和线程3,并行和并发4,高并发编程的意义与问题二、实现线程的三种方式1,继承 Thread 类2,实现 Runnable 接口3,实现 Callable 接口三、线程的状态四、线程方法1, 线程终止的方法interrupt()2,等待和通知wait(),notify(),notifyAll()3,利用join()保证线程...
2020-04-07 22:17:59
1250
1
原创 深入浅出:Mysql索引底层原理
深入浅出:Mysql索引底层原理一 索引的概念简介二 为什么是B+ Tree1,二叉树2,红黑树3 B-Tree三 如何做到支持千万级表查四 myIsam和Innodb存储引擎的索引实现五 横向指针的作用浅出总结:一 索引的概念简介对于一个开发,数据库是大家离不开的工具,特别是mysql,在目前很多中国的互联网企业大多选择mysql作为存数数据库。由此,数据库索引的正确使用对于每位工程师尤其是...
2020-01-05 22:38:44
525
2
原创 《深入理解Java虚拟机:JVM高级特性与最佳实践》书评
不知不觉做JAVA开发已经两年多了,《深入理解JAVA虚拟机》第二版是我很早就买的书,大多数时间也一直放在我的工作桌上。想要学习写一门语言的话很简单,掌握基本的语法和编程思想就可以上手工作了;但是想要深入理解和掌握一门语言必须得下苦功夫才可以,而这本书就是帮助你打开JAVA世界大门的钥匙。 说起这本书,必须讲一个不得不提的小故事。当年有幸跟一位大牛架构师邻桌而坐,而我每天早早去到公司...
2019-12-15 00:19:50
304
原创 JAVA处理数据不存在插入存在更新
最近在做项目的时候碰到这样一个问题,做一个用户余额的需求。具体如下:类似这样一张表:CREATE TABLE `test_insert` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `token` varchar(10) NOT NULL DEFAULT '0' COMMENT '用户标志-唯一索引', `remark` var...
2019-01-19 14:52:38
8103
1
转载 JAVA线程池的原理及使用
JAVA线程池的原理及使用一,使用线程池的原因二 ThreadPoolExecutor类的介绍1、构造方法合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart...
2019-01-16 16:03:22
254
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人