自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(28)
  • 收藏
  • 关注

原创 [clone]Java中的深拷贝和浅拷贝 实例解析

我们平时在开发中经常用到clone这个Object类的方法,但是super.clone()方法所返回的拷贝是浅拷贝,(所谓浅拷贝和深拷贝是相对的,浅拷贝中的内部对象与原始对象的内部对象是共享的,是同一个;而深拷贝中的内部对象也是不同的。),有些情况下,我们需要得到对象的深拷贝

2015-08-16 11:25:47 686

原创 java: system.gc()和 finalize 的使用情景

finalize的作用的在进行垃圾回收前,执行的一个方法,这个方法里面不能放回收资源的东西,比如关闭流等,因为这个方法不一定被调用这个方法只有进行垃圾回收时才被调用下面这个例子是关于finalize的一个使用情景

2015-08-14 10:32:22 512

原创 Spring源码学习-5.AOP原理分析

AOP是Aspect-Oriented Programming 面向切面编程的简称在Spring AOP的实现中,使用的是java本身的语言特性,如java proxy代理类,拦截器技术来实现AOP编织,AOP与IoC结合使用,为Spring本身和应用程序开发提供了很好的帮助spring AOP中封装AspectJ 这个一优秀的AOP解决方案

2015-08-10 15:21:34 382

原创 Spring源码学习-4.IoC容器其他特征分析

1.ApplicationContext和Bean的初始化与销毁对于Beanfactory特别是 ApplicationContext,容器自身也有一个初始化与销毁关闭的过程,下面我们一起来探究这个过程在prepareBeanFactory这个方法里面为BeanFactory设置了classLoad等属性protected void prepareBeanFactory

2015-08-09 15:44:22 613

原创 数据结构与算法学习计划-100天

If you want to become a good programmer, you can spend 10 years programming, or spend 2 years programming and learning algorithms.算法与数据结构很重要,这是无数学长与前辈给我的教导,尤其是我亲爱的茂茂学长(又爱又恨),所以我感觉持续的数据结构与算法学习特

2015-10-08 19:34:39 536

原创 如何把应用从单机拓展到分布式--从冯诺依曼模型来看

按照冯诺依曼模型,我们把计算机划分为5个部分,从使用者角度来看,分布式系统就像一个超级计算机我们来狭义的从这5个部分来看下区别和变化1.输入设备的变化传统意义的输入是人机交互的输入设备,而在由多个节点组成的分布式系统中,在接受其他节点传来的数据时,该节点就可以被看做为一个输入设备2.输出设备的变化传统意义的输出设备是例如终端用户的屏幕,在分布式系统中系统节点在向另一个节

2015-09-09 10:38:50 224

原创 深入理解java虚拟机-4 虚拟机类加载机制

在java语言中,类的加载,链接和初始化都是在运行期间发生的,所以java语言天生就可以实现动态拓展1.类的生命周期加载->验证->准备->解析->初始化->使用->卸载验证+准备+解析 叫做连接(Linking)类的生命周期共有7步,其中加载,验证,准备,使用,卸载的顺序是固定的,但是解析和初始化不是固定的,某些情况下解析可以在初始化后面进行1.加载加载过程中需要

2015-09-08 16:43:44 448

转载 软件人员推荐书目(一) 大师篇

软件人员推荐书目(一) 大师篇 一、 科学哲学和管理哲学 【1】 "程序开发心理学"(The Psychology of Computer Programming : Silver Anniversary Edition) 【2】 "系统化思维导论"(An Introduction to Systems Thinking, Silver Anniversary Edition)

2015-08-11 17:21:18 437

原创 JAVA网络编程基础-2-URL与模拟表达提交

1.建立URL链接1.下面是简单的URL建立链接的过程package day20150811;import java.net.URL;import java.util.Scanner;public class URLTest { public static void main(String[] args) throws Exception { URL url

2015-08-11 11:44:21 64

原创 Spring源码学习-5.ProxyFactoryBean实现与源代码分析

1.设计原理proxyConfig在这个继承关系中,ProxyConfig是最底层的类,这是一个数据基类,为子类提供配置属性AdvisedSupport: 封装了AOP对通知和通知器的操作proxyCreatorSupport:子类创建AOP对象的一个辅助类AspectJProxyFactory:集成AOP和AspectJProxyFactory :封装AO

2015-08-11 09:08:02 979

原创 JAVA网络编程基础-1-快速网络编程入门-聊天服务器实现

java的网络编程部分是如此有魅力,以至于一旦开始使用Java网络API,只要你能想到它就能够做得到.java网络编程可以实现功能完整的网络客户端和服务器,无论是希望编写特殊用途的Web服务器、安全的在线订单接收程序、简单的组播代理还是电子邮件客户端,都会找到可供学习和借用的代码。

2015-08-10 09:09:45 384

原创 8月9日,牢骚第一阶段 暑假一期计划

谁最了解自己那?肯定是自己.你所有的谎言骗得了别人,但是永远骗不了自己.今天是8月9号,暑假一期计划失败了.一共坚持了12天,然后就失败了.第一期计划中,我的学习目标有spring源码.JVM,多线程,数据结构,Linux.英语,设计结构等等,很多东西,spring源码阅读进行的很困难,第一部分Ioc十分复杂,但是我还是会一直坚持下去,我的目标不大,半年看完springIoC,Aop,事物,M

2015-08-09 08:51:23 683

原创 Java高效并发-1 java线程基础知识

1.Java内存模型1.主内存与工作内存Java内存模型规定了,所有变量的都存储在主内存中,这里的变量是指包括了实例字段,静态字段,和构成数组对象的元素每条线程都有自己的工作内存,线程对变量的所有操作都是在工作内存中2.内存间交互操作虚拟机实现规定了,主内存与工作空间之间的下面八种类型的操作都是原子性的.Lock 锁定unlock 解锁read读取loa

2015-08-04 09:45:05 341

原创 Spring源码学习-4.IoC.依赖注入

对于IoC容器初始化的过程已经完成了,初始化就是在容器中建立BeanDefinition的数据映射,接下来我们来分析下,Spring是怎么对Bean进行依赖注入的Bean的初始化一般是在第一次获取这个Bean的时候完成的,也可以设置lazy-init完成预实例化,现在我来看第一次获取时,是怎么样依赖注入的:依赖注入的开始就是在BeanFactory里面就有的一个方法,get

2015-08-03 16:11:11 472

原创 深入理解java虚拟机-3 内存分配与回收策略

Java技术体系中的自动化内存管理最终可以分为两个问题:给对象分配内存以及回收分配给对象的内存下面使用Serial 和serial Old收集器来验证分配策略1,对象优先在Eden分配新生区分 Eden与Serivivor 默认比例8:1大多数情况下,对象在新生代Eden中分配,新生代没有空间时,虚拟机发起一场Minor GC-XX:+PrintfGCDetails 在垃圾回收

2015-08-03 08:38:17 500

原创 synchronized 与IllegalMonitorStateException异常

来看一个面试题目在子线程中执行一段代码10次,然后在主线程中执行代码50次,然后再在子线程中执行代码10次,然后是主线程....这样循环50次,应该如何实现这个题目考验的是线程的互斥和通信,互斥就是加一个锁,通信就是设置一个共享的值,我以为很简单就用下面的代码实现IllegalMonitorStateException异常处理

2015-08-02 20:50:04 390

原创 synchronized 与IllegalMonitorStateException异常

来看一个面试题目在子线程中执行一段代码10次,然后在主线程中执行代码50次,然后再在子线程中执行代码10次,然后是主线程....这样循环50次,应该如何实现这个题目考验的是线程的互斥和通信,互斥就是加一个锁,通信就是设置一个共享的值,我以为很简单就用下面的代码实现package day20150802;import org.junit.Test;public class Cop

2015-08-02 19:08:08 204

原创 Spring源码学习-3.IoC.资源的加载与注册

ApplicationContext中资源加载是IOC容器初始化的第二步,第一步定位资源已经在上一篇中完成了,这一篇我们就来分析一下,IoC资源是怎么加载到BeanDefinition中的.refresh()方法出现在FileSystemXmlApplicationContext的构造函数中public FileSystemXmlApplicationContext(String[]

2015-08-01 19:12:25 361

原创 网易云课堂-数据结构-练习题实现-00,打印沙漏

本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印***** ***  * ********所谓“沙漏形状”,是指每行输出奇数个符号;各行符号中心对齐;相邻两行符号数差2;符号数先从大到小顺序递减到1,再从小到大顺序递增;首尾符号数相等。给定任意N个符号,不一定能正好组成一个沙漏。要求打印出的沙漏能用掉尽可能多的符号

2015-08-01 12:04:18 550

原创 网易云课堂-数据结构练习题00-打印沙漏

本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印***** ***  * ********所谓“沙漏形状”,是指每行输出奇数个符号;各行符号中心对齐;相邻两行符号数差2;符号数先从大到小顺序递减到1,再从小到大顺序递增;首尾符号数相等。给定任意N个符号,不一定能正好组成一个沙漏。要求打印出的沙漏能用掉尽可能多的符号

2015-08-01 12:02:18 86

原创 Spring源码学习-2.IOC-ApplicationContext资源定位

resource定位过程即容器寻找数据的过程,IOC初始化有三个步骤要完成1,Resource定位2,BeanDefinition加载3,BeanDefinition注册我们使用FileSystemXmlApplicationContext类来加载XML配置文件,进而分析IOC容器是如何完成初始化的//  追踪父类。AbstractApplicationContext  获

2015-07-31 20:01:41 295

原创 java多线程基础部分探究

1.多线程实现方式1.继承Thread类,但是对于单继承的Java,限制很大2.实现Runnable接口public class DemoThread { public static void main(String[] args) { Play play = new Play(); Thread thread = new Thread(play);

2015-07-31 19:43:22 318

原创 设计模式 2-模板模式与策略模式 (由Spring源码引发的思考-doGetBean方法)

引发思考的代码,究竟是模板模式还是策略模式那?protected Object doGetBean( final String name, final Class requiredType, final Object[] args, boolean typeCheckOnly) throws BeansException { final String beanName = tra

2015-07-31 16:48:46 105

原创 Spring源码学习-1.IOC-DefaultListableBeanFactory

1,spring简介                       |   spring事务    spring应用                       |                       |   spring AOP  |    spring JDBC/ORM SpringMVC Spring远程支持                       |

2015-07-31 14:06:45 507

原创 深入理解java虚拟机-2 垃圾收集器

1.对象已死?1.引用计数算法2.可达性分析算法2.引用1.强引用2.软引用 3.弱引用 4.虚引用作用:在这个对象被回收时,收到一个系统通知3.Finalize 一个对象死亡的过程 发现没有和GC Roots相连接->被标记一个,并检测,是否有必要执行Finalize方法->Yes的话被放入F-Queue中->稍后GC对 F

2015-07-31 09:12:07 401

原创 java反射学习笔记-core java

1.反射概述反射库是个强大的工具库,大量用于javaBean中。能够分析类能力的程序都被称为反射。作用有:1.分析类的结构。(后面实现了一个类结构分析器)2.在运行时查看对象。(不管是公共还是私有的)后面实现了一个超级攻击类,万能toString()3.实现数组的操作代码4.利用method对象,很像C++的函数指针。(可以调用类似于单例模式的私有化的构造器)2.利用反

2015-07-30 16:36:51 358

原创 深入理解java虚拟机-1 内存结构与OutOfMemory溢出异常

一,内存结构1.栈 Stack虚拟机栈 为java方法服务Java虚拟机栈也是线程私有的,它的生命周期与线程相同。虚拟机栈描述的是java方法执行的内存模型:每个方法被执行时都会同时创建一个栈帧用于存放局部变量表、操作数栈、动态连接和方法出口等信息。每个方法被调用直至执行完成过程,就对应着一个栈帧在虚拟机中从入栈到出栈的过程。Java虚拟机栈的局部变量表存放了编

2015-07-30 15:30:11 1195

原创 设计模式 1-单例模式(Singleton)

Singleton单类模式是最简单的设计模式,它的主要作用是保证在程序运行生命周期中,使用了单类模式的类只能有一个实例对象存在。单类模式实现了类似C语言中全局变量的功能,单类模式常用于注册/查找的服务。笔者知道的实现单例模式有三种:第一种 饱汉/饿汉饱汉就是类创建时就创建实例class Singletion1{private static Singletion

2015-07-30 11:01:30 414

空空如也

空空如也

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

TA关注的人

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