自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 ThreadLocal为什么会出现内存泄露,为什使用弱引用?

要避免出现内存泄露,主动调用remove方法才是正确的。

2023-10-24 17:47:21 150 2

原创 数据库的各种隔离级别和存在的问题

了解了数据库事务的隔离级别,知道在什么隔离级别下会存在哪些问题。根据不同业务对数据一致性的不同需求,在当前数据库隔离级别不能保证数据一致性的情况下,合理的编写程序代码,必要的地方加锁,才能保证程序正确运行。

2023-10-20 11:36:49 209 2

原创 Spring中事务的传播、事务的失效

Spring中事务的传播、事务的实效事务的传播事务的失效事务的传播在开发的时候,不仅需要考虑事务的隔离级别,还需要考虑事务的传播机制。在 spring 中,使用 @Transactional 将对应方法加入事务管理,如果在一个已经存在事务的方法中调用另一个有事务的方法/** * @author Peng Tao * @since 11.22.2021 */public class TestServiceImpl implements TestService{ @Override

2021-11-22 18:25:54 694 1

原创 枚举的序列化和枚举实现单例

枚举与普通类的区别public enum RspCode { SUCCESS("01", "操作成功"), FAILURE("00", "操作失败"); private final String code; private final String msg; private RspCode(String code, String msg) { this.code = code;

2021-11-03 15:25:46 704

原创 为什么说 Java 只有值传递

为什么说 Java 只有值传递引用传递和值传递的概念值传递(pass by value)是指在调用函数时将实际参数复制一份传递到函数中,这样在函数中如果对参数进行修改,将不会影响到实际参数。引用传递(pass by reference)是指在调用函数时将实际参数的地址直接传递到函数中,那么在函数中对参数所进行的修改,将影响到实际参数。结论:不管是基本数据类型还是引用类型 reference ,Java 中都是值传递,在函数中对引用类型参数所进行修改,是否会影响到实际参数。需要从是否是操作的

2021-10-23 19:32:40 453

原创 Mac自动操作:实现选中一段日志通过快捷键使用IDEA打开

Mac自动操作:实现选中一段日志通过快捷键使用IDEA打开使用场景实现思路安装IDEA日志查看插件 ideolog创建自动操作1.打开 Mac 自带工具自动操作2.选择新建文稿3.选择快速操作4.选择文本,将新建文本文件拖到右边5.设置文件6.选择资源库,将运行 AppleScript 拖到右边新建文本文件下7.编写 AppleScript 脚本8.在系统偏好设置中为自动操作分配快捷键9.设置日志文件扩展名使用场景当测试发送一段报错日志,通常情况我们会将日志复制到 Sublime Text 等文本编辑器

2021-09-28 16:31:01 865

原创 Servlet、GenericServlet、HttpServlet的关系

Servlet、GenericServlet、HttpServlet的关系Servlet定义了Servlet的生命周期方法GenericServlet实现了init(ServletConfig config)方法,且提供了不带参数的init()初始化空方法,使得我们不用必须实现初始化方法。因此我们继承GenericServlet时只需再实现service方法。HttpServlet实现了service方法(service方法中还提供了实现缓存的模版),在service中调用doGet、doPost

2021-01-12 10:34:13 202

原创 HttpServlet中提供了实现浏览器和服务器缓存的模版方法service

HttpServlet的service方法中提供了实现缓存的模版protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String method = req.getMethod(); if (method.equals(METHOD_GET)) { long

2021-01-12 10:30:13 186

原创 DispatcherServlet的doDispatch方法的处理流程

doDispatch方法的处理流程1、根据当前的请求去遍历handlerMappings返回一个HandlerExecutionChain包含了处理器和拦截器mappedHandler = getHandler(processedRequest);2、遍历所有注入的HandlerAdapter,依次使用supports方法寻找适合这个HandlerExecutionChain中的Handler的适配器子类。HandlerAdapter ha = getHandlerAdapter(mappedHa

2021-01-11 17:03:14 338 1

原创 SpringMVC中的适配器HandlerAdapter

DispatcherServlte会根据配置文件信息注册HandlerAdapter(initHandlerAdapters),如果在配置文件中没有配置,那么DispatcherServlte会获取HandlerAdapter的默认配置,如果是读取默认配置的话,DispatcherServlte会读取DispatcherServlte.properties文件,该文件中配置了三种HandlerAdapter:HttpRequestHandlerAdapter,SimpleControllerHandlerA

2021-01-11 16:22:41 1416 1

原创 可记录插入顺序和访问顺序的LinkedHashMap,记录访问顺序的LinkedHashMap可以用于实现LRU缓存。

LinkedHashMap的Entry继承自HashMap.Node增加了before, after,在HashMap的基础上维护了一个双向链表static class Entry<K,V> extends HashMap.Node<K,V> { Entry<K,V> before, after; Entry(int hash, K key, V value, Node<K,V> next) { super(hash, key

2020-12-10 16:39:38 358

原创 CopyOnWriteArrayList,线程安全的写时复制List

CopyOnWriteArrayList中有一个ReentrantLock,读操作不加锁,适合存放读多写少的数据。写操作先获取ReentrantLock,复制原来的集合,在副本中修改后把array引用指向修改后的集合 final transient ReentrantLock lock = new ReentrantLock(); public boolean add(E e) { final ReentrantLock lock = this.lock;

2020-12-10 16:37:17 282

原创 java.util.ConcurrentModificationException:并发修改异常以ArrayList的迭代器举例

并发修改异常,ConcurrentModificationExceptionArrayList<Integer> arrayList2 = new ArrayList(); arrayList2.add(0,0); arrayList2.add(1); arrayList2.add(2); arrayList2.add(3); arrayList2.add(4); for (Integer i :

2020-12-10 16:31:39 168

原创 记录2020年秋招

记录2020年秋招:2021届实习8月1日投递阿里3号阿里笔试8月9日中电健康云面试8月28日阿里电话面试8月27投递亚信科技9月2日亚信科技一面9月2日亚信科技二面因为疫情的原因,大三下学期都在家里,一星期只上一两次网课,有了更多可以支配的时间。每天刷牛客面经、看书、刷算法题、课程设计的时候会用几天的时间来写一个小项目,虽然早上起的有点迟,但也会学习到深夜,感觉每天过的规律且充实。期间看的最多的书就是Java虚拟机第三版,啃了七八遍。8月1日投递阿里8月1日开始投简历,投了阿里????3号阿里笔试

2020-09-04 14:25:57 588 3

原创 BIO和NIO对比,select,poll和epoll的区别

BIO和NIOBIO的缺点和存在的问题NIO的优点select, poll和epoll(记录学习过程中的总结和体会,如有错误,欢迎指出)BIO的缺点和存在的问题因为BIO是阻塞的,每个客户端的连接都需要一个线程来accept(),不用多线程的话会导致在处理完一个响应之前无法处理其他请求。因此连接太多的时候需要很多的线程,线程间的调度切换消耗了大量的资源,线程间切换的消耗可能大于处理的消耗。NIO的优点accept()不会阻塞,没有连接直接返回null,可以用一个线程接收所有客户端的连接,然后可以交

2020-08-08 22:21:38 706

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除