java
iRich_全栈
这个作者很懒,什么都没留下…
展开
-
ehcache使用
依赖 <dependencies> <dependency> <groupId>net.sf.ehcache</groupId> <artifactId>ehcache</artifactId> </dependency> <dependency> <groupId>org.sp.原创 2020-12-30 17:05:02 · 301 阅读 · 0 评论 -
使用FutureTask解决并发重复计算问题,提升执行效率
文章目录业务场景用例图流程图类图具体代码实现接口具体业务代码业务场景现有一个消耗资源比较大的计算业务需要优化,如果是同一个计算业务,需要保证只被计算一次,后面再有此计算,则直接从缓存中读取结果用例图流程图类图具体代码实现接口这里主要涉及的两个接口:计算接口:执行的计算逻辑缓存接口:执行的是缓存相关操作计算接口public interface Computer { Integer compute(String id);}缓存接口public interfa原创 2020-05-17 00:30:05 · 1105 阅读 · 0 评论 -
引用传递 VS 值传递(pass by reference VS pass by value)
文章目录前言引用传递值传递JAVA是引用传递还是值传递?引用传递是啥样?先来看个C++中的值传递:再来看个C++引用传递总结前言编程语言中方法调用是会有参数传递进来,在传递参数的时候就会涉及引用传递和值传递,那么到底什么是引用传递?什么是值传递。引用传递在维基百科中没有找到对应的解释,但是有传引用调用的解释:在“传引用调用”求值中,传递给函数的是它的实际参数的隐式引用而不是实参的拷贝。...原创 2019-05-16 16:56:14 · 881 阅读 · 0 评论 -
Springboot(2.x)集成Spring-data-redis(2.x) RedisCacheManager缓存源码分析及配置
文章目录RedisCacheManager基本运作流程源码分析cacheMapinitializeCaches()getCache()getMissingCache()配置使用构造方法RedisCacheManager基本运作流程其中底层数据处理可以是redis、ehcache源码分析RedisCacheManager继承关系:其中主要是org.springframework.cac...原创 2019-04-25 17:32:25 · 1284 阅读 · 0 评论 -
Java动态追踪技术探究
引子在遥远的希艾斯星球爪哇国塞沃城中,两名年轻的程序员正在为一件事情苦恼,程序出问题了,一时看不出问题出在哪里,于是有了以下对话:“Debug一下吧。”“线上机器,没开Debug端口。”“看日志,看看请求值和返回值分别是什么?”“那段代码没打印日志。”“改代码,加日志,重新发布一次。”“怀疑是线程池的问题,重启会破坏现场。”长达几十秒的沉默之后:“据说,排查问题的最高境界,就是只通...转载 2019-03-02 21:56:10 · 7021 阅读 · 0 评论 -
JVM基础知识(四)JVM内存结构 VS Java内存模型 VS Java对象模型
前面几篇文章中, 系统的学习了下JVM内存结构、Java内存模型、Java对象模型, 但是发现自己还是对这三者的概念和区别比较模糊, 傻傻分不清楚。所以就有了这篇文章, 本文主要是对这三个技术点再做一个总结和区分, 加深印象。JVM内存结构在《Java虚拟机规范(Java SE 8)》中描述了JVM运行时内存区域结构如下:也就是说, JVM内存结构由Java虚拟机规范定义, 其描述的是...转载 2019-03-01 10:33:45 · 7791 阅读 · 0 评论 -
JVM基础知识(三)Java对象模型
java对象在内存中,一个Java对象包含三部分:对象头、实例数据和对齐填充。而对象头中又包含锁状态标志、线程持有的锁等标志。oop-klass modelOOP(Ordinary Object Pointer)指的是普通对象指针,而Klass用来描述对象实例的具体类型。oop体系://定义了oops共同基类typedef class oopDesc* ...转载 2019-03-01 10:28:13 · 7741 阅读 · 0 评论 -
JVM基础知识(二)Java内存模型
java线程之可见性volatile不需要加锁, 比synchronized更轻量级, 不会阻塞线程; 从内存可见性角度看, volatile读相当于加锁, volatile写相当于解锁。synchronized既能保证可见性, 又能保证原子性; volatile只能保证可见性,无法保证原子性。同步退出同步块 -> 释放监视器 -> 刷新缓冲区到主内存; 进入同步块 ->...转载 2019-03-01 10:21:37 · 7584 阅读 · 0 评论 -
JVM基础知识(一)jvm内存结构
一. java内存组成介绍堆内存: 用于分配所有类实例和数组的内存非堆内存: 方法区、JVM内部处理或优化、类结构(常量池,字段,方法数据)、方法、构造方法二. JVM内存区域模型方法区(永久代、非堆)用于存储虚拟机加载的类信息、常量、静态变量、以及在类中声明的各种方法和方法字段, 被各个线程共享1.1 用于存储虚拟机加载的类信息、常量、静态变量、以及在类中声明的各种方法和方法字段...转载 2019-03-01 10:06:29 · 7813 阅读 · 0 评论 -
java-NIO-简单聊天程序
服务端功能:接受客户端连接发送消息读取客户端消息Server.javapublic class Server { private Selector selector; private ByteBuffer writeBuffer = ByteBuffer.allocate(1024); private ByteBuffer readBuffer = Byt...原创 2019-01-26 22:49:37 · 13200 阅读 · 0 评论