自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

hu斌的博客

临渊羡鱼 不如退而结网

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

原创 设计模式-Java实现装饰器模式

设计模式-Java实现装饰器模式装饰器模式允许向一个现有的对象添加新的功能,同时又不改变其结构。通俗的说,装饰器模式可以给一个已经确定的对象添加额外功能而且不需要改变其类的代码。在Java中基础的IO流就运用了这种模式,装饰器模式主要有以下几种角色抽象接口(装饰器类和被装饰类都需要实现或者间接实现此接口)具体的被装饰类(实现抽象接口,原始对象比如IO中的节点流如FileInputStr...

2018-06-06 17:33:26 1079 1

原创 java虚拟机2-常见内存溢出及解决方法

JVM常用参数及常见内存溢出解决方法在我们日常开发中,都有可能遇到内存溢出(java.lang.OutOfMemoryError)问题,要解决这类问题必须要了解一定的JVM内存区域划分的知识,并且要知道内存溢出具体在那块内存产生,产生的原因。这样才能够快速定位,并解决问题。内存溢出和内存泄露首先我们复习两个概念内存泄露:程序在申请内存后,无法自己释放已申请的内存空间,始终占用...

2018-05-08 16:45:07 382

原创 java虚拟机1-JVM内存区域划分详解

JVM内存区域划分详解java的跨平台java 语言是一种跨平台的编程语言,是因为JAVA 其实是运行在JAVA虚拟机(JVM)上,然后由JVM解析执行。不同的平台JVM 不同 ,但是运行的却是相同的java程序。所以实现了跨平台 “一次编译,到处执行”。JAVA程序运行在JVM上,JVM是整个java实现跨平台的 最核心的部分,所有的java程序会首先被编译为class的类文件,...

2018-05-04 16:51:19 373

原创 排序算法——插入排序

排序算法——插入排序插入排序也是经典的排序算法之一,同选择排序一样,插入排序也将数据分为有序区,和无序区。在选择排序中,需要遍历无序区间,找到无序区间的最小数据,然后放入有序区间的末尾。但是在插入排序中需要将a[i],(i 之前是有序区间),在有序区间中找到合适的位置并且插入。详细操作如下定义a[0]…..到 a[n-1] 的N位数的数组,并且默认a[0]是有序区间。将a[1] 与有序

2018-01-17 15:31:04 171

原创 排序算法——选择排序

排序算法——选择排序选择排序是经典的排序算法之一,他将数据分为有序区和无序区,每一次遍历将会找到无序区中最小的数据,然后插入有序区的末尾。具体过程如下:定义a[0]…..到 a[n-1] 的N位数的数组第一次遍历,找到数组中 a[0] 到 a[n - 1] 中的最小数 ,然后与a[0] 交换(如果a[0] 最小,就与它本身交换)第二次遍历,找到数组中 a[1] 到 a[n - 1]

2018-01-17 14:27:43 242 1

原创 设计模式-java实现动态代理

设计模式-java实现动态代理通过 设计模式-java实现代理模式(静态代理)这篇文章,我们了解到了代理模式的基本定义,涉及到的角色和各个角色的基本作用。并通过了一个简单的例子解释了在java中如何使用代理模式(静态代理),首先回顾一下代理模式的特点:使用代理对象将真实对象(被代理对象)包装起来,然后用该代理对象取代真实对象。任何通过对真实对象的调用都要通过代理对象调用,不能直接调用真实对象。

2017-12-13 16:49:54 208

原创 java基础-反射3(反射,反射创建对象,操作对象属性,调用对象方法)

java基础-反射3(反射,反射创建对象,操作对象属性,调用对象方法)前面通过学习,我们了解的运行时类型信息的基本原理,以及通过Class对象和反射来获取运行时类型信息。下面来了解通过反射来创建对象,以及操作对象的属性和方法首先还是创建一个person类@Servicepublic class Person1 extends PersronParent implements PersonInte

2017-12-11 15:22:30 3290

原创 java基础-反射2(反射,反射操作对象,Class对象的使用,类型信息的获取)

java基础-反射2(反射,Class对象的使用,类型信息的获取)通过反射的第一篇文章java基础-反射1(类型信息,Class对象简介,Class对象初始化)我们可以知道java通过class对象来表示运行时类型信息,并且了解了RTTI,下面我们来学习Class对象的使用。Class对象,反射Class对象表示了运行时类型信息,但是如果要获取这些信息我们就要通过反射来获取这些运行时类型信息。首先我

2017-12-05 14:01:33 353 1

原创 java基础,静态变量,静态初始化块,初始化快,成员变量的初始化顺序

java基础-延伸,变量的初始化顺序从这篇文章java基础-反射1(类型信息,Class对象简介,Class对象初始化) 我们可以了解到类在第一次使用时类加载到内存中的顺序有三个步骤类的加载:由类加载器执行,根据类名查找.class文件,并从中创建一个class对象类的链接:验证.class文件(字节码文件)看其结构是否完整,并且为静态域分配空间类的初始化:如果类有父类则初始化父类,执行父类

2017-12-01 09:48:23 1552 1

原创 java基础-反射1(类型信息,Class对象简介,Class对象初始化)

java基础-反射1(反射基础,运行时类型信息,Class对象)在学习反射之前,先来了解一下类型信息,类型信息就是JAVA类的一些信息,包括(包,方法,属性等),运行时类型信息可以让你在程序运行时了解类的信息并且使用类,那么如何在运行时获取类的信息?在JAVA中有两种方式:传统的RTTI反射RTTI(Run-Time Type identification)传统的RTTI的使用是假定我们在编译

2017-11-30 15:18:37 1310

原创 设计模式-java工厂模式2(抽象工厂模式)

java设计模式 抽象工厂模式了解抽象工厂模式之前我们先来了解一个问题,一辆汽车有发动机,轮胎,空调等组成。他们都属于一辆车,如果使用工厂方法模式的话,我们就需要建立,发动机工厂,轮胎工厂,空调工厂等。这样产生了大量的工厂,但是如果使用抽象工厂模式就只需要建立一个汽车工厂就可以了。下面就以创建汽车的例子来讲解。首先来了解两个概念:产品等级结构:即产品的继承结构,比如一个抽象类是发动机,那么他的子类

2017-11-29 15:33:00 322 2

原创 设计模式-java工厂模式1(简单工厂模式+工厂方法模式)

java工厂模式1(简单工厂+工厂方法)工厂模式负责将有共同接口的类实例化。工厂模式可以动态决定将哪一个类实例化,而不必事先知道每次要实例化哪一个类,并且在创建对象时不会对客户端暴露创建逻辑,通过使用一个共同的接口来指向新创建的对象。简单工厂模式简单工厂模式主要是通过一个工厂类来实现对具体对象的创建,用户不需要知道创建对象的具体实现,它的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类

2017-11-28 13:50:52 299 2

原创 设计模式-java实现代理模式(静态代理)

设计模式-java实现代理模式(静态代理)代理模式是一种通过代理对象访问目标对象(被代理对象)的设计模式,它为目标对象的间接访问提供了一个解决方法,以限制直接访问目标对象。它的特点有以下几点:使用代理对象将原始对象包装起来,然后用该代理对象取代原始对象。任何通过对原始对象的调用都要通过代理对象调用,不能直接调用原始对象。代理对象决定是否以及何时将调用转移到原始对象上。代理模式主要涉及到三种角

2017-10-10 15:10:02 334 1

原创 设计模式-Java实现单例模式

设计模式-Java实现单例模式单例模式是一种常见的设计模式,许多时候系统只需要一个全局的对象时可以运用单例模式,它确保在系统中某种类只能有一个实例它的特点有:类最多只能拥有一个实例对象类自己创建唯一实例对象类向外提供获取唯一实例对象的方法单例模式实现方法单例类通常拥有一个本类对象的引用以及获取本类唯一对象的静态方法,当其他类调用这个静态方法时,如果持有的本类对象的引用为null则创建一个本类

2017-10-09 15:44:36 243

空空如也

空空如也

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

TA关注的人

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