摘要: 1.使用线程池的好处 2.JUC中几种常用的线程池 java.util.concurrent包下的Executors工厂类,提供了一系列的线程池的创建方法,其构造方法如下: 其中常用的线程池有四种,分别是fixedThreadPool、cachedThreadPool、ScheduledThread阅读全文
posted @ 2018-12-11 18:41 LearnAndGet 阅读(144) 评论(0) 编辑
摘要: 1.创建json对象 1.1 创建JSONObject对象 使用map初始化json 可以看到,当value为null时,转化为json后不会保存,会直接抛弃。 使用javabean初始化json 直接创建JSONObject 1.2 创建JSONArray对象 直接从字符串获取: 用给定的字符串初阅读全文
posted @ 2018-11-27 18:42 LearnAndGet 阅读(22) 评论(0) 编辑
摘要: 1.HashMap的底层实现图示 如上图所示: HashMap底层是由 数组+(链表)=(红黑树) 组成,每个存储在HashMap中的键值对都存放在一个Node节点之中,其中包含了Key-Value之外,还包括hash值(key.hashCode()) ^ (h >>> 16)) 以及执行下一个节点阅读全文
posted @ 2018-11-22 10:43 LearnAndGet 阅读(173) 评论(0) 编辑
摘要: 最近看了网上很多大佬们写的验证码生成,寻思着自己也写一个,话不多说,代码如下: 测试代码如下: 生成的验证码图片如下: 程序输出结果如下: 以上,只实现了10以内的加减乘,除法都没有,毕竟作为验证码,除法还要考虑除数非0、整除等内容,因此未添加除法。各位看看就好,水平有限,请多多指教!阅读全文
posted @ 2018-11-15 14:43 LearnAndGet 阅读(17) 评论(0) 编辑
摘要: 1.最基本的单例模式 2.类加载时不初始化实例的模式 上述单例模式在类加载的时候,就会生成实例,可能造成空间浪费,如果需要修改成,在需要使用时才生成实例,则可修改代码如下: 然而,上述方案虽然在类加载时不会生成实例,但是存在线程安全问题,如果线程A在执行到第10行时,线程B也进入该代码块,恰好也执行阅读全文
posted @ 2018-11-13 19:47 LearnAndGet 阅读(93) 评论(0) 编辑
摘要: 1.传统的java数据库连接 在传统的开发中,如果要建立java程序和数据库的连接,通常采用JDBC或者Apache Commons DbUtils开发包来完成。他们分别有以下特点: JDBC: 优点:1.底层连接,效率高 缺点:需要手写sql语句,代码重复多,封装结果集繁琐 DbUtils: 优点阅读全文
posted @ 2018-10-18 16:06 LearnAndGet 阅读(18) 评论(0) 编辑
摘要: 1.JVM内存分配和回收 1.1 对象分配原则 在JVM系列1:内存区域中我们谈到,JVM堆中的内存划分如下: 从中可以看出堆内存分为新生代和老年代以及永久代(在JDK1.8中已经被MetaSpace元空间替代),其中新生代又分为Eden区和Survior1区和Survior2区; 堆中分配内存常见阅读全文
posted @ 2018-10-17 10:45 LearnAndGet 阅读(197) 评论(0) 编辑
摘要: 1.悲观锁和乐观锁的基本概念 悲观锁: 乐观锁: 2.乐观锁的一种实现方式:CAS 因为乐观锁的思想是:在通常情况下都认为不会产生并发冲突,因此在对数据进行提交更新的时候,会对将要提交更新的数据进行并发冲突检测、如果冲突存在,则会返回错误信息给用户,让用户决定处理方式。 基于乐观锁的思想,我们可以知阅读全文
posted @ 2018-10-11 16:35 LearnAndGet 阅读(254) 评论(0) 编辑
摘要: 1.对象创建过程: ①.类加载检查:当java虚拟机遇到一条new指令时,首先会去检查该指令的参数能否在常量池中定位到这个类的符号引用,并且检查这个符号引用代表的类是否已被加载、解析、初始化过,如果没有,则必须先执行相应的类加载过程。 ②.分配内存:类加载检查完成后,虚拟机将为新对象分配内存空间,且阅读全文
posted @ 2018-10-10 16:44 LearnAndGet 阅读(179) 评论(0) 编辑
摘要: 1.JVM运行区域内存划分 2.各内存区域详细介绍 2.1 程序计数器 程序计数器是一块很小的内存区域,它作为前线程所执行的字节码的行号指示器,指向当前class文件的执行代码的行数。字节码解释器工作时,通过改变程序计数器的数值,来选取下一条将要执行的字节码指令。分支、循环、跳转、异常处理、线程恢复阅读全文
posted @ 2018-10-09 17:41 LearnAndGet 阅读(41) 评论(0) 编辑