![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 57
阿南Nanth
这个作者很懒,什么都没留下…
展开
-
枚举的序列化和枚举实现单例
枚举与普通类的区别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 · 639 阅读 · 0 评论 -
为什么说 Java 只有值传递
为什么说 Java 只有值传递引用传递和值传递的概念值传递(pass by value)是指在调用函数时将实际参数复制一份传递到函数中,这样在函数中如果对参数进行修改,将不会影响到实际参数。引用传递(pass by reference)是指在调用函数时将实际参数的地址直接传递到函数中,那么在函数中对参数所进行的修改,将影响到实际参数。结论:不管是基本数据类型还是引用类型 reference ,Java 中都是值传递,在函数中对引用类型参数所进行修改,是否会影响到实际参数。需要从是否是操作的原创 2021-10-23 19:32:40 · 367 阅读 · 0 评论 -
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 · 584 阅读 · 0 评论 -
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 · 172 阅读 · 0 评论 -
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 · 143 阅读 · 0 评论 -
DispatcherServlet的doDispatch方法的处理流程
doDispatch方法的处理流程1、根据当前的请求去遍历handlerMappings返回一个HandlerExecutionChain包含了处理器和拦截器mappedHandler = getHandler(processedRequest);2、遍历所有注入的HandlerAdapter,依次使用supports方法寻找适合这个HandlerExecutionChain中的Handler的适配器子类。HandlerAdapter ha = getHandlerAdapter(mappedHa原创 2021-01-11 17:03:14 · 303 阅读 · 1 评论 -
SpringMVC中的适配器HandlerAdapter
DispatcherServlte会根据配置文件信息注册HandlerAdapter(initHandlerAdapters),如果在配置文件中没有配置,那么DispatcherServlte会获取HandlerAdapter的默认配置,如果是读取默认配置的话,DispatcherServlte会读取DispatcherServlte.properties文件,该文件中配置了三种HandlerAdapter:HttpRequestHandlerAdapter,SimpleControllerHandlerA原创 2021-01-11 16:22:41 · 1324 阅读 · 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 · 308 阅读 · 0 评论 -
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 · 238 阅读 · 0 评论 -
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 · 117 阅读 · 0 评论