自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 收藏
  • 关注

原创 对浅拷贝和深拷贝的理解------拷贝两个相互引用的对象

Object类的 clone() 方法能实现对对象的浅拷贝, 如果需要对对象实现深拷贝, 则需要实现Cloneable接口并重写 clone() 方法, 且方法访问权限为 public. 我们来看看当两个对象相互引用时, 实现浅拷贝和深拷贝的情况:Man类中存在一个Woman引用类型的实例属性, Woman类中也存在一个 Man引用类型的实例属性. 使Man类实现 Cloneable接口并...

2018-11-26 18:49:28 763

原创 HashSet与HashMap的区别

HashSet 集合不允许存储相同的元素, 它底层实际上使用 HashMap 来存储元素的, 不过关注的只是key元素, 所有 value元素默认为 Object类对象.HashSet源码如下:HashSet 的构造方法//HashSet底层用来存储元素的结构,实际上使用HashMap来存储private transient HashMap<E,Object> map;...

2018-11-24 22:39:01 20837

原创 HashMap底层实现分析

一. HashMap 概述HashMap根据键的 hashCode 值存储数据, 大多数情况下可以直接定位到它的值, 因而具有很快的访问速度, 但遍历的顺序却是不确定的. HashMap 最多只允许一条记录的 key为null, 但是允许多条记录的 value值为null.  HashMap是飞线程安全的, 即任一时刻如果有多条线程同时访问 HashMap, 可能会造成数据的不一致性.在 ...

2018-11-24 09:35:48 255

原创 ArrayLsit与Vector的区别

ArrayList 和 Vector 类都是基于数组实现的 List 类. ArrayList 和 Vector 封装了一个动态的, 允许再分配的 Object[] 数组. ArrayList 和 Vector 使用 initialCapacity 参数来设置该数组的长度. 当向 ArrayLsit 和 Vector 数组中添加元素超过改数组的长度时, 在底层会自动将数组进行扩容.关于 Arr...

2018-11-22 16:23:39 328

原创 ArrayList初始化容量为10源码解析

ArrayList 和 Vector 类是 List 集合的两个典型实现类, ArrayList 和 Vector 都是基于数组实现的 List 类.ArrayList 和 Vector 类封装了一个动态的, 允许再分配的 Object[] 数组. 如果一开始就知道 ArrayList 和 Vector 需要保存多少个元素, 则可以在创建它们时就指定 initialCapacity 大小....

2018-11-21 21:38:54 3565 2

原创 TransactionTemplate模板类对数据库操作实现事务管理

只有详细代码标注,  以备忘使用JdbcTemplate模板类对DAO层的简易实现使用TransactionTemplate事务模板类实现对持久层的事务管理,  TransactionTemplate是线程安全的. ...

2018-10-22 23:56:03 502

原创 Spring 容器事件

ApplicationContext 扩展了 ApplicationEventPublisher 接口. 让容器拥有了发布应用文上下事件的能力.  包括容器启动事件,  关闭事件的功能.先解释几个名词: (1)事件源:  事件的产生者.  任何一个 EventObject 都必须拥有一个事件源.(2)事件监听器注册表:  组件或框架的时间监听器必须有所依存. 必须提供一个地方保存时间监...

2018-10-13 16:58:05 546

原创 MySQL数据类型

1.  char 和 varchar 类型.char 和 varchar 都用来保存数据库中较短的字符串. 二者的主要区别在于:char 列的长度固定为创建表时声明的长度. 长度可以从 0-255 的任何值.varchar 列中的值为可变长的字符串.  长度可以指定为 0-65535 之间的值.在检索时,  char 列删除了尾部的空格.  而 varchar 保留了这些空格....

2018-10-11 10:30:25 108

原创 MySQL基础---------SQL语言

一.MySQL基础MySQL是二十世纪九十年代开发的一个关系型数据库, MySQL5.0增加了对视图,  数据库存储过程,  触发器,  服务器端游标,  以及分布式事务协议等高级特性的支持.MySQL优势:  开源,  免费,  跨平台,  性能高,  用户较多 弱点:  SQL标准符合性差.当面对一个陌生的数据库时,  通常需要一种方式与它进行交互,  就用到了 SQL语言....

2018-10-10 14:07:25 263

原创 CGLib动态代理的实现

使用JDK创建动态代理有一个限制,  即它只能为接口创建代理实例.  对于没有定义接口的业务方法的类,  使用CDGlib 进行动态代理.CGLib是一个强大的, 高性能的代码生成库.  被广泛应用于 AOP 框架. 用以提供方法拦截操作.CGLib采用底层的字节码技术,  可以为一个类创建子类,  在子类中采用方法拦截的技术拦截所有父类方法的调用,  并织入横切逻辑.一. CGLib...

2018-10-09 00:26:01 9487

原创 JDK动态代理

Spring AOP使用了两种代理机制:  一种是基于JDK的动态代理;  一种是基于 CGLib 的动态代理.JDK本身只提供接口代理,  而不支持类的代理.JDK动态代理主要涉及 java.lang.reflect 包中的两个类:  Proxy 和 InvocationHandler.InvocationHandler 是一个接口,  可以通过实现该接口定义横切逻辑,  并通过反射...

2018-10-08 19:05:43 5362

转载 JDK动态代理(转载)

关于JDK的动态代理,最为人熟知要可能要数Spring AOP的实现,默认情况下,Spring AOP的实现对于接口来说就是使用的JDK的动态代理来实现的,而对于类的代理使用CGLIB来实现。那么,什么是JDK的动态代理呢?JDK的动态代理,就是在程序运行的过程中,根据被代理的接口来动态生成代理类的class文件,并加载运行的过程。JDK从1.3开始支持动态代理。那么JDK是如何生成动态代...

2018-10-08 14:43:15 152

原创 Spring AOP 概述

一.什么是 AOPAOP 是 Aspect  Oriented  Programing 的简称.  也称为 面向切面编程.图解说明一下AOP:上图中的业务逻辑代码淹没在重复化非业务逻辑代码中 (监控和事务代码).  无法通过抽象父类的方式消除重复性横切代码,  因为这些横切逻辑依附在业务逻辑中,  不能转移到其他地方.AOP 将这些分散在各个业务逻辑代码中的相同代码通过横向切割...

2018-10-07 18:29:57 213

原创 简述Spring IoC容器内部工作机制

Spring Ioc 容器继承体系图 Spring 的AbstractApplicationContext 是 ApplicationContext 的抽象实现类.  该抽象实现类的 refresh() 方法定义了 Spring 容器在加载配置文件后的各项处理工作.  这些处理过程清晰地刻画了 Spring 容器启动时所执行的各项操作.   1.Abstract...

2018-10-06 08:15:11 1014

原创 Spring中的FactoryBean

Spring 通过反射机制利用<bean>的class属性指定实现类实例化Bean. 在某些情况下,  实例化Bean的过程比较复杂, 如果按照传统方式, 需要在<bean>中提供大量的配置信息. 配置方式的灵活性受限. 这时采用编码可能会获得一个简单的方式.Spring 提供了一个 org.springframework.beans.factory.FactoryBe...

2018-09-27 19:08:33 500

原创 通过编码方式动态添加Bean

DefaultListableBeanFactory 实现了 ConfigurableListableBeanFactory 接口.  提供了可扩展配置,  循环枚举等功能. 可以通过此类实现Bean的动态注入.  为了实现在Spring容器启动阶段能动态注入自定义Bean,  需要实现Bean工厂后处理器接口 BeanFactoryPostProcessor.  并实现 postProcesso...

2018-09-27 17:57:17 293

原创 在IoC容器中装配Bean-----------基于Java类的配置

JavaConfig是Spring的一个子项目, 它皆在通过Java类的方式提供 Bean的定义信息.  普通的POJO只要标注了 @Configuration注解, 就可以为 Spring 容器提供Bean定义的信息了. 每个标注了 @Bean注解的方法都相当于提供了 Bean的定义信息.使用 @Configuration 注解标注配置类:在不同配置类中引用定义的Bean, 因为...

2018-09-27 15:50:45 508

原创 在IoC容器中装配Bean之---------------基于注解的配置

Spring从2.0开始引入基于注解的配置方式1.使用注解定义Bean采用基于XML的配置, 则Bean的定义信息和Bean的实现类本身是分离的. 采用基于注解的配置文件, Bean定义信息通过在Bean实现类上标注注解实现.上面使用注解定义了一个 userdao Bean. @Component 注解在类 UserDao上对类进行标注, 它可以被Spring容器识别, Sprin...

2018-09-26 22:04:04 330

原创 XML配置中<bean>之间的关系

1.依赖一般情况下, 可以使用&lt;ref&gt;标签建立对其他Bean的依赖关系, Spring负责管理这些Bean的关系. 当实例化一个Bean时, Spring确保该Bean所依赖的其他Bean, 已经初始化.在某些情况下, Bean之间的依赖关系并不明显.代码示例如下:CacheManager 依赖于 SystemSettings 类. SystemSetti...

2018-09-25 20:24:50 553

原创 在IoC容器中装配Bean之-----------基于XML的配置(依赖注入)

一.Spring装配Bean的简要概述1.要使应用程序中的Spring容器成功启动, 需要同时具备以下三个方面的条件:(1)Spring框架的类包都已经被Maven项目依赖成功.(2)应用程序为Spring提供了完整的Bean配置信息.(3)Bean的类都已经放在应用程序的类路径2.Spring是如何在容器中存储Bean的信息?Spring启动时读取应用程序提供的Bean的...

2018-09-23 20:01:59 247

原创 Spring之ApplicationContext简述

ApplicationContext 由 BeanFactory 派生而来, 提供了更多面向实际应用的功能.ApplicationContext 的主要实现类是 ClassPathXmlApplicationContext 和 FileSystemApplicationContext, 前者默认从类路径加载配置文件, 后者默认从文件系统中装载配置文件. ApplicationContext继承...

2018-09-21 17:02:19 1793

原创 Spring之BeanFactory简述

什么是控制反转 (IoC) Inverse of Control?IoC包括两方面的内容: (1)控制 (2)反转"控制" 指对某一个接口的具体实现类选择的控制权"反转" 指这种控制权从调用者手上移除控制反转就是指, 某一接口具体实现类的选择控制权从调用类移除, 转交给第三方决定 ,第三方可以是Spring容器. Bean工厂 (com.springframework.be...

2018-09-20 17:52:37 484

原创 Spring资源访问接口------------Resource

资源抽象接口JDK提供的访问资源的类 (java.net.URL  File)不能很好地满足各种底层资源的访问需求, Spring设计了一个Resource接口, 提供了更强的底层资源访问能力.  Spring的Resource接口及其实现类可以在脱离Spring框架的情况下使用.Resource接口及其实现类示意图:WritableResource: 可写资源接口, Spring...

2018-09-19 21:39:12 340

原创 Spring之-----------------SpringIoC容器与Bean的装配

 一.Spring简介1.Spring是一个开源框架, 是为了解决企业级应用开发的复杂性而创建的,  最初创建Spring的主要目的是用来替代更加重量级的企业级Java技术, 尤其是EJB  (企业级JavaBean, Enterprise JavaBean). 相对于EJB来说, Spring提供了更加轻量级和简单的编程模型. 增强了简单老式Java对象 (POJO) 的功能, 使之具备了之...

2018-09-16 20:44:13 275

原创 Linux基础知识-------进程及服务的控制

进程及服务的控制1.什么是进程系统中正在运行的程序.2.图形的进程查看方式gnome-system-monitor  (查看的是/proc里的进程)3.查看进程的命令ps  查看进程ps  a  查看当前环境相关进程ps  -A  查看所有进程ps  -e  查看所有进程ps  -a  在当前终端中运行的进程, 但不包含当前环境进程p...

2018-08-21 22:12:22 208

原创 Linux基础知识---------网络配置

一.直连网络tcp ip协议: 传输控制协议, 又名网络通信协议, 由网络层的ip协议和传输层的tcp协议组成, TCP/IP定义了电子设备如何介入因特网, 以及数据如何在它们之间传输的标准.TCP: TCP是面向连接的通信协议, 通过三次握手建立连接, 通讯完成时要拆除连接, TCP只能用于端到端通信.直连网络: 指不用经过其他路由器就可以直接到达的网络.二.路由器路由器的作...

2018-08-21 22:10:22 738

原创 Linux基础知识--------文件权限

一. 文件权限的控制1.权限存在意义Linux文件一般分为两种, 一般文件和目录文件. 文件权限对数据的安全性至关重要.在Linux系统中,每一个文件都有很多属性, 尤其是群组的概念, 用以确保数据安全性.实现系统保护功能.实现数据共享功能.2.权限的识别ls  -l  file   查看文件的权限ls   -ld  dir   查看目录的权限3.权限的...

2018-08-18 21:12:52 177

原创 Linux基础知识-------用户的管理

一.系统中为什么要有用户?用户:系统最底层的安全设定. linux操作系统中, 每一个文件和程序必须属于某一个"用户". 每一个用户都有一个唯一的身份标识叫做用户ID (UID).每一个用户也至少需要属于一个用户分组. 用户分组也有一个唯一的身份标识叫做用户分组ID(GID). 用户可以归属于多个用户分组.用户组可分为初始组和附加组:   初始组:指用户一登录就立刻拥有改组权限...

2018-08-12 21:52:47 484

原创 Linux系统基础知识

一.什么是Linxu系统1.Linux: linux指在电脑中运行的内核, 不同linux版本都使用的linux内核, (是什么内核就是什么操作系统)故称为linux操作系统.安卓手机就是linux系统.2.linux是开源的软件, 存在很多版本. 所谓linux操作系统实际上是指 linux内核与其他GNU(开源组织)软件结合, 形成完全自由的操作系统. linux操作系统也被称...

2018-08-03 13:21:41 475

原创 JavaWeb(猜拳游戏)

&lt;!DOCTYPE html&gt;&lt;html&gt;    &lt;head&gt;        &lt;meta charset="UTF-8"&gt;        &lt;title&gt;猜拳游戏&lt;/title&gt;                &lt;style type="text/css"&gt;          

2018-06-29 13:49:35 1203

原创 Java新IO

一.Java新IO概述1.传统的

2018-06-08 22:01:25 719

原创 Javase类的加载和反射

一.类的加载  连接和初始化        1.JVM和类        当我们调用Java命令运行某个Java程序时, 该命令会启动一条Java虚拟机进程, 不管该Java程序有多复杂, 改程序启动了多少个线程, 它们都处于Java虚拟机进程里, 同一个JVM的所有线程, 所有变量都处于同一个进程里, 它们都使用该JVM进程的内存区. 当系统出现以下几种情况时, JVM进程将被终止:      ...

2018-06-06 20:12:11 189

原创 对象序列化的含义和意义

序列化机制允许将实现序列化的Java对象转换成字节序列 ,这些字节序列可以被保存在磁盘上,或者通过网络传输,以备以后重新恢复成原来的对象.1.对象的序列化(serialize)指将一个Java对象写入IO流中,对象的反序列化机制(Deserialize)则指从IO流中恢复该Java对象.如果需要让某个对象可以支持序列化机制,必须让它的类是可序列化的(实现Serialize接口或者Externali...

2018-06-03 19:48:03 23349 3

原创 TreeSet类(概述)

1. TreeSet是SortedSet接口的唯一实现, TreeSet可以确保集合元素处于排序状态.  TreeSet并不是根据元素的插入顺序进行排序,        而是根据元素实际值来进行排序.(可以确保元素唯一并且元素排序)  TreeSet采用红黑树的数据结构对元素进行排序.2.TreeSet支持两种排序方法:  自然排序和比较器排序.  默认情况下,TreeSet 采用自然排序.(In...

2018-05-09 21:06:59 1414

原创 Set接口概述

1.  Set集合和List集合的区别?        Set: 不允许元素重复, 集合元素唯一(元素可以为null), 不能保证迭代顺序恒久不变, 无序(存储和取出不一致).        List:  允许元素重复,  并且元素有序(存储和取出一致).2. Set 集合存储元素时可以保证元素的唯一性, 原因什么?        HashSet 集合的add()方法底层依赖于双列集合HashMa...

2018-05-09 19:40:30 4048

原创 Collection集合的概述及程序出现的异常

1.Java提供集合类用于保存盛装引用类型变量,因此集合类也被成为容器类. 所有的集合类都位于java.util包下. 集合只能用来存放引用数据类型(即对象,实际上是保存对象的引用变量).2.Java的集合类主要由两个接口派生而出: Collection和Map, Collection和Map是Java集合框架的根接口,这两个接口又包含了一些子接口或实现类.3.Collection集合的两个子接口...

2018-05-09 18:57:07 226

原创 JAVA基础知识

1.switch语句的格式?针对格式的解释?以及注意事项?switch语句的格式switch(表达式){case 常量:        语句;        break;case 常量:        语句;        break;........default:        语句;        break;}针对格式的解释switch:是一个选择结构语句,与if语句功能一样.case:它...

2018-04-04 20:12:01 252

原创 css+div布局

&lt;!DOCTYPE html&gt;&lt;html&gt;    &lt;head&gt;        &lt;meta charset="UTF-8"&gt;        &lt;title&gt;lianxi&lt;/title&gt;        &lt;style type="text/css"&gt;            #main

2018-03-30 16:43:47 152

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除