Java进阶
Java进阶
LYZ0907
SHOW YOUR CODE.
展开
-
【Java进阶】实现自己的ORM框架
【Java进阶】实现自己的ORM框架本文将介绍简单的ORM框架的实现过程。为了能够顺利的读懂本文,你需要有JDBC、注解和反射的基础知识。 先看看效果,一条语句实现插入和更新操作。// 创建SimpleDbPipe对象SimpleDbPipe<Student> dbPipe = new SimpleDbPipe<Student>();// 创建一个带插入数...原创 2017-08-20 18:58:41 · 10742 阅读 · 1 评论 -
【Java源码分析】ConcurrentModificationException并发修改异常分析与解决方案(快速失败与安全失败)
【Java源码分析】ConcurrentModificationException并发修改异常分析与解决方案(快速失败与安全失败)问题描述当执行如下程序时,会抛出异常 java.util.ConcurrentModificationExceptionpublic static void main(String ... args){ Collection<String> coll = new原创 2017-08-16 16:09:11 · 566 阅读 · 0 评论 -
【Java源码分析】为什么不可以在指定默认容量的ArrayList对象中插入元素
【Java基础】为什么指定默认容量的ArrayList对象不可以在指定位置插入元素问题描述:执行以下代码会报异常 java.lang.IndexOutOfBoundsException: Index: 5, Size: 0@Testpublic void test(){ ArrayList<Integer> list = new ArrayList<Integer>(10); li原创 2017-08-14 11:21:53 · 437 阅读 · 0 评论 -
【Java源码分析】Arrays.asList源码分析
【Java基础】Arrays.asList分析类型转换int[] arr1 = {1, 2, 3};List list1 = Arrays.asList(arr1);System.out.println(list1);Integer[] arr2 = {1, 2, 3};List<Integer> list2 = Arrays.asList(arr2);System.out.println(原创 2017-08-15 10:08:19 · 812 阅读 · 0 评论 -
【Java进阶-Java动态代理与AOP】03 创建动态类的实例对象及调用其方法
【Java进阶-Java动态代理】03 创建动态类的实例对象及调用其方法创建动态类的实例对象由上一篇文章中分析,动态代理类只有一个构造方法 com.sun.proxy.$Proxy4(java.lang.reflect.InvocationHandler)因此,我们需要了解InvocationHandler这个接口,其中只有一个invoke方法,签名如下: public Object inv原创 2017-08-14 22:18:24 · 1054 阅读 · 0 评论 -
【Java进阶-Java动态代理与AOP】02 创建动态类及查看其方法列表信息
【Java进阶-Java动态代理】02 创建动态类及查看其方法列表信息创建动态类通过Proxy类的getProxyClass可以生成动态类,其签名如下: Proxy类: getProxyClass(ClassLoader classLoader, Interface… interfaces)//指定类加载器和目标类实现的接口ClassLoader classLoader, 表示类加载原创 2017-08-14 20:36:42 · 584 阅读 · 0 评论 -
【Java进阶-Java动态代理与AOP】01 代理类的作用与原理及AOP概念
【Java进阶-Java动态代理】代理类的作用与原理及AOP概念认识代理代理的概念与作用 生活中的代理,代理商。我们可以通过代理商买东西,而不需要去工厂区买需要的商品。程序中的代理要为已存在的多个具有相同接口的目标类的各个方法增加一些系统功能,例如,异常处理、日志、计算方法的运行时间、事务管理等等。编写一个与目标类具有相同接口的代理类,代理类的个每个方法调用目标类的相同方法,并在调用方法时加原创 2017-08-13 22:27:33 · 827 阅读 · 0 评论 -
【Java进阶】自动装箱与享元模式
【Java进阶】自动装箱与享元模式自动装箱代码示例Integer i = 10;Integer j = 128;以上,可以把int型字面量直接赋值给Integer引用变量,jdk隐含了一步操作,将 int 型数字包装成Integer类型,这个升级是为了简化编程。程序的升级一般包括三个目的中的至少一个: 提高安全性 简化编程 提高性能小小的自动装箱背后隐藏着一个知识点,那就是享元模原创 2017-08-12 15:23:54 · 748 阅读 · 0 评论 -
【Java进阶】内省IntroSpector操作JavaBean和Apache-commons-dbutils对内省的使用
【Java进阶】内省IntroSpector操作JavaBean和DbUtils对内省的使用内省IntroSpector操作JavaBean介绍JavaBeanJavaBean是一种特殊的Java类,主要用于传递数据信息,这种Java类中的方法主要用于访问私有的字段,且方法名符合某种命名规则。如果要在两个模块之间传递多个信息,可以将这些信息封装到一个JavaBean中,这种JavaBean的实例对象原创 2017-08-12 14:54:21 · 542 阅读 · 0 评论 -
【Java进阶】Java浅克隆和深克隆
【Java进阶】Java浅克隆和深克隆什么是浅克隆和深克隆通常情况下,一个类包含一些成员对象(引用类型的对象),在克隆对象时,根据其成员对象(引用类型的对象)是否也克隆,克隆分为两种形式:深克隆和浅克隆。浅克隆在浅克隆中,被复制对象的所有原始类型的变量(普通成员变量)都具有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原来的对象。换言之,浅克隆仅仅复制所考虑的对象(的原始类型的变量),而不复原创 2017-08-09 17:14:43 · 1076 阅读 · 0 评论 -
【JVM】JVM系列
【JVM】JVM系列【JVM】Java虚拟机简介【JVM】JVM类加载机制【JVM】JVM内存区域【JVM】JVM垃圾回收机制【JVM】JVM执行引擎【JVM】JVM沙箱机制【JVM】G1垃圾回收器原创 2017-08-06 21:25:38 · 5005 阅读 · 1 评论 -
【JVM】JVM类加载机制
【JVM】JVM类加载机制 类加载子系统(类加载机制)类加载器类加载器(classloader)的作用 加载 .class 文件(平台无关的二进制字节码文件)classloader 有两种装载class的方式 (时机) 隐式:运行过程中,碰到new方式生成对象时,隐式调用classLoader到JVM 显式:通过class.forname()动态加载类加载过程装载器把一个类装入JVM中要原创 2017-08-06 20:16:05 · 2631 阅读 · 5 评论 -
【JVM】JVM内存区域
【JVM】JVM内存区域JVM 运行时数据区 (JVM Runtime Area) 其实就是指 JVM 在运行期间,其对JVM内存空间的划分和分配。JVM在运行时将数据划分为了5个区域来存储。程序员写的所有程序都被加载到运行时数据区域中,不同类别存放在heap, java stack, native method stack, PC register, method area。JVM运行时数据区可以原创 2017-08-06 20:24:38 · 2138 阅读 · 4 评论 -
【JVM】JVM垃圾回收机制
【JVM】JVM垃圾回收机制垃圾回收GC Java garbage collection is an automatic process to manage the runtime memory used by programs. By doing it automatic JVM relieves the programmer of the overhead of assigning and原创 2017-08-06 20:51:34 · 1939 阅读 · 2 评论 -
【JVM】JVM执行引擎
【JVM】JVM执行引擎 作用: 执行字节码,或者执行本地方法 Java虚拟机的主要任务是装在class文件并且执行其中的字节码。Java虚拟机包含一个类装载器,它可以从程序和API中装载class文件。Java API中只有程序执行时需要的那些类才会被装载。字节码由执行引擎来执行。不同的Java虚拟机中,执行引擎可能实现得非常不同。在由软件实现的虚拟机中,最简单的执行引擎就是一次性解释字节码原创 2017-08-06 21:06:09 · 1746 阅读 · 1 评论 -
【JVM】JVM的沙箱机制
【JVM】JVM的沙箱机制我们平时说Java是安全的,可以使用户免受而已程序的侵犯,这是因为Java提供了一个“沙箱”机制,这个“沙箱”基本组件包括如下4部分:1、类装载器 在Java沙箱中,类装载体系结构是第一道防线,可以防止而已代码去干扰正常程序代码,这是通过由不同的类装载器装入的类提供不同的命名空间来实现的。命名空间由一系列唯一的名称组成,每一个被装载的类都有不同的命名空间是由Java虚拟机原创 2017-08-06 21:09:44 · 5594 阅读 · 3 评论 -
【JVM】Java虚拟机简介
【JVM】Java虚拟机简介 我们看中的并非Java语言,而是JVM。——Java之父James GoslingJava 虚拟机(Java virtual machine,JVM)是运行 Java 程序必不可少的机制。JVM实现了Java语言最重要的特征:即平台无关性。这是因为编译后的 Java 程序指令并不直接在硬件系统的 CPU 上执行,而是由 JVM 执行。JVM屏蔽了与具体平台相关的信原创 2017-08-06 19:54:35 · 3251 阅读 · 1 评论 -
【Java集合】TreeMap分析
【Java集合】TreeMap分析初识TreeMapTreeMap的继承关系public class TreeMap<K,V> extends AbstractMap<K,V> implements NavigableMap<K,V>, Cloneable, java.io.Serializable// 抽象类AbstractMap继承实现关系public abstract cla原创 2017-08-05 19:58:33 · 399 阅读 · 0 评论 -
【Java集合】HashMap和Hashtable
HashMappublic class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable 非线程安全,HashMap可以通过下面的语句进行同步: Map m = Collections.synchronizeMap(hashMap)键值对均能为null迭代器Iterato原创 2017-08-03 19:11:07 · 263 阅读 · 0 评论 -
【Java集合】ArrayList、LinkedList、Vector分析
【Java集合】List分析ArrayList分析ArrayList是由动态的数组实现的 访问元素速度比较快,删除和增加元素速度较慢ArrayList的默认容量是 10 /** * Default initial capacity. */ private static final int DEFAULT_CAPACITY = 10;如果能够预估ArrayList的容量,创建Arra原创 2017-08-03 17:21:07 · 689 阅读 · 0 评论 -
【Java集合】Java集合一览(汇总)
【Java集合】Java集合一览Java Collection Framework中常用类学习MapHashMap工作原理与实现 LinkedHashMap TreeMapCollectionListArrayList、LinkedList和Vector分析SetHashSet LinkedHashSet TreeSetQueuePriorityQueue ArrayDeque Link原创 2017-06-14 14:05:28 · 712 阅读 · 0 评论 -
【Java集合】Java集合体系
Java集合体系Collection 接口分为两大类,java.util..Collection 和 java.util.Map。Collection 体系public interface Collection<E> extends Iterable<E> java.util.Collection的子接口包括: java.util.Set java.util.SortedS原创 2017-07-23 14:35:00 · 1367 阅读 · 0 评论 -
【Java集合】Java8 HashMap工作原理与实现
概述首先,抛出几个问题: 什么时候会使用HashMap?它有什么特点? 你知道HashMap的工作原理吗? 你知道get和put的原理吗?equals()和hashCode()的都有什么作用? 你知道hash的实现吗?为什么要这样实现? 如果HashMap的大小超过了负载因子(load factor)定义的容量,怎么办? 初识HashM原创 2017-07-23 20:31:16 · 759 阅读 · 0 评论 -
【Java集合】LinkedHashMap
LinkedList的概述LinkedHashMap是Map接口的哈希表和链接列表实现,具有可预知的迭代顺序。 LinkedHashMap实现与HashMap的不同之处在于,它维护着一个运行于所有条目的双重链接列表。此链接列表定义了迭代顺序,该迭代顺序可以是插入顺序或者是访问顺序。 注意,此实现不是同步的。如果多个线程同时访问链接的哈希映射,而其中至少一个线程从结构上修改了该映射,则它必须保持外原创 2017-07-23 22:31:10 · 373 阅读 · 0 评论