上一页 1 ··· 4 5 6 7 8
摘要: 本文参考 "linux下快速启动tomcat脚本" 添加了快速查看实时日志 创建脚本 脚本创建路径 /etc/init.d/tomcat 首先执行: vi /etc/init.d/tomcat 按 i 编辑,将下面内容根据你自己的情况(修改/opt/tomcat8为你的tomcat路径) 修改后co 阅读全文
posted @ 2020-02-24 23:11 灵图 阅读(307) 评论(0) 推荐(0)
摘要: [TOC] ArrayList源码解析(JDK8) 一、简述 ArrayList 是一个数组队列,相当于动态数组。与Java中的数组相比,它的容量能动态增长。因其底层数据结构是数组,所以可想而知,它是 占据一块连续的内存空间 (容量就是数组的 ),所以它也有数组的缺点, 空间效率不高 。由于数组的内 阅读全文
posted @ 2020-02-24 22:54 灵图 阅读(335) 评论(0) 推荐(0)
摘要: 概述 1. ArrayList 是一个 动态数组 ,它是 线程不安全 的,允许元素为null。其底层数据结构依然是 数组 ,因为实现了RandomAccess接口,所以拥有 随机快速访问 的能力,ArrayList可以以O(1)的时间复杂度去根据下标访问元素。由于数组的内存连续,可以根据下标以O1的 阅读全文
posted @ 2020-02-22 21:25 灵图 阅读(2172) 评论(0) 推荐(0)
摘要: 被 transient 所修饰 table 变量 如果大家细心阅读 HashMap 的源码,会发现桶数组 table 被申明为 transient。transient 表示易变的意思,在 Java 中,被该关键字修饰的变量不会被默认的序列化机制序列化。我们再回到源码中,考虑一个问题:桶数组 tabl 阅读全文
posted @ 2020-01-29 23:04 灵图 阅读(4208) 评论(0) 推荐(1)
摘要: 方法join的作用是使所属的线程对象x正常执行run()方法中的任务,而使当前线程Z进行无限期的阻塞,等待线程X销毁后再继续执行线程Z后面的代码。一般用于子线程先执行完毕再继续执行主线程的情况。 但是join方法后面的代码会不会提前执行呢?看下面的代码 1 public class ThreadA 阅读全文
posted @ 2019-12-20 19:09 灵图 阅读(361) 评论(0) 推荐(0)
摘要: 1.方法内的变量为线程安全,实例变量非线程安全 方法中的变量不存在非线程安全问题,永远是线程安全的。这是方法内部的变量是私有的特性造成的。 如果多个线程共同访问1个对象中的实例变量,则有可能出现“非线程安全”问题。 2.多个对象多个锁 关键字synchronized取得的锁都是对象锁,而不是把一段代 阅读全文
posted @ 2019-12-18 19:07 灵图 阅读(208) 评论(0) 推荐(0)
摘要: 一、Spring的jdbcTemplate操作 (1)Spring是一站式框架,对于javaee三层,每一层都有解决技术。 web层:springMVC service:spring的ioc dao层:spring的jdbcTemplate (2)Spring使用jdbcTemplate对dao层进 阅读全文
posted @ 2019-03-25 22:16 灵图 阅读(167) 评论(0) 推荐(0)
摘要: 一、AOP 1.AOP概念 aop:面向切面编程,扩展功能不修改源代码实现。 AOP采取横向抽取机制,取代了传统纵向继承体系重复性代码。 2.AOP原理 (1)第一种情况,有接口情况,使用动态代理创建接口实现类代理对象 (2)第二种情况,没有接口情况,使用动态代理创建类的子类代理对象 3.AOP操作 阅读全文
posted @ 2019-03-19 18:35 灵图 阅读(427) 评论(0) 推荐(0)
摘要: 一、Spring概念 1.什么是Spring   Spring是一个开源框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单 阅读全文
posted @ 2019-03-08 22:17 灵图 阅读(210) 评论(0) 推荐(0)
上一页 1 ··· 4 5 6 7 8