随笔分类 - java
摘要:AQS简单介绍 Sync是ReentrantLock的一个内部类,它继承了AbstractQueuedSynchronizer,即AQS,在CountDownLatch、FutureTask、Semaphore、ReentrantLock等源码中,我们都能看到它们的身影,足见其重要性。此处我们需
阅读全文
摘要:一.选择排序介绍 选择排序,顾名思义就是用逐个选择的方式来进行排序,逐个选择出数组中的最大(或最小)的元素,直到选择至最后一个元素。此时数组完成了排序。 二.选择排序原理分析 三.选择排序代码实现 四选择排序代码优化 因为选择排序过程中,每一轮选择出最大的元素并将它和数组最后一位互换位置,那么即使在
阅读全文
摘要:冒泡排序介绍 冒泡排序是我们得最多的排序方式之一,原因是简单易实现,且原理易懂。顾名思义,冒泡排序,它的排序过程就像水中的气泡一样,一个一个上浮到水面。 冒泡排序原理分析 冒泡排序代码实现 输出结果 冒泡排序的优化 1 .观察上述代码和运行结果,我们可以发现,当第一轮结束后,最后一个数字一定是数组中
阅读全文
摘要:框架介绍 Mybatis介绍 MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis。是一个基于Java的持久层框架。 Mybatis本质和Hiberna
阅读全文
摘要:1.使用线程池的好处 2.JUC中几种常用的线程池 java.util.concurrent包下的Executors工厂类,提供了一系列的线程池的创建方法,其构造方法如下: 其中常用的线程池有四种,分别是fixedThreadPool、cachedThreadPool、ScheduledThread
阅读全文
摘要:1.创建json对象 1.1 创建JSONObject对象 使用map初始化json 可以看到,当value为null时,转化为json后不会保存,会直接抛弃。 使用javabean初始化json 直接创建JSONObject 1.2 创建JSONArray对象 直接从字符串获取: 用给定的字符串初
阅读全文
摘要:1.HashMap的底层实现图示 如上图所示: HashMap底层是由 数组+(链表)+(红黑树) 组成,每个存储在HashMap中的键值对都存放在一个Node节点之中,其中包含了Key-Value之外,还包括hash值(key.hashCode()) ^ (h >>> 16)) 以及执行下一个节点
阅读全文
摘要:最近看了网上很多大佬们写的验证码生成,寻思着自己也写一个,话不多说,代码如下: 测试代码如下: 生成的验证码图片如下: 程序输出结果如下: 以上,只实现了10以内的加减乘,除法都没有,毕竟作为验证码,除法还要考虑除数非0、整除等内容,因此未添加除法。各位看看就好,水平有限,请多多指教!
阅读全文
摘要:1.最基本的单例模式 2.类加载时不初始化实例的模式 上述单例模式在类加载的时候,就会生成实例,可能造成空间浪费,如果需要修改成,在需要使用时才生成实例,则可修改代码如下: 然而,上述方案虽然在类加载时不会生成实例,但是存在线程安全问题,如果线程A在执行到第10行时,线程B也进入该代码块,恰好也执行
阅读全文
摘要:1.传统的java数据库连接 在传统的开发中,如果要建立java程序和数据库的连接,通常采用JDBC或者Apache Commons DbUtils开发包来完成。他们分别有以下特点: JDBC: 优点:1.底层连接,效率高 缺点:需要手写sql语句,代码重复多,封装结果集繁琐 DbUtils: 优点
阅读全文
摘要:1.悲观锁和乐观锁的基本概念 悲观锁: 乐观锁: 2.乐观锁的一种实现方式:CAS 因为乐观锁的思想是:在通常情况下都认为不会产生并发冲突,因此在对数据进行提交更新的时候,会对将要提交更新的数据进行并发冲突检测、如果冲突存在,则会返回错误信息给用户,让用户决定处理方式。 基于乐观锁的思想,我们可以知
阅读全文
摘要:1.JVM运行区域内存划分 2.各内存区域详细介绍 2.1 程序计数器 程序计数器是一块很小的内存区域,它作为前线程所执行的字节码的行号指示器,指向当前class文件的执行代码的行数。字节码解释器工作时,通过改变程序计数器的数值,来选取下一条将要执行的字节码指令。分支、循环、跳转、异常处理、线程恢复
阅读全文
摘要:非常详细 原文地址:https://blog.csdn.net/jeffleo/article/details/52194977
阅读全文
摘要:使用环境:多线程java程序中。 作用:在多线程的环境下,控制synchronized代码段不被多个线程同时执行。synchronized既可以加在一段代码上,也可以加在方法上。 使用:synchronized锁住的是括号里的对象,而不是代码。对于非static的synchronized方法,锁的就
阅读全文
摘要:一.简介 dom4j是一个Java的XML API,是jdom的升级品,用来读写XML文件的。dom4j是一个十分优秀的JavaXML API,具有性能优异、功能强大和极其易使用的特点,它的性能超过sun公司官方的dom技术,同时它也是一个开放源代码的软件。如今可以看到越来越多的Java软件都在使用
阅读全文
摘要:重写:重写是子类的方法覆盖父类的方法,有两个重要特点 1.子类方法名和参数类型、个数必须和父类一样。 2.如果有返回值,则返回值类型也必须和父类一样. 重载:重载是为了在类中,通过参数类型和个数不同,让一个方法可以有多种实现方式。 重载时。方法名必须一样,参数类型个数和返回值则无要求。 重写与重载的
阅读全文

浙公网安备 33010602011771号