- 浏览: 33318 次
- 性别:
- 来自: 北京
最新评论
文章列表
参考:http://www.cnblogs.com/tianguook/archive/2012/10/05/2712098.html
1.点 “window”-> "Preferences" -> "Java" -> "Installed JRES"2.此时"Installed JRES"右边是列表窗格,列出了系统中的 JRE 环境,选择你的JRE,然后点边上的 "Edit...", 会出现一个窗口(Edit JRE)3.选中rt.jar文件的这一项:“c:\prog ...
工厂设计模式分为三种:
1、简单工厂设计模式(Simple Factory)
2、工厂设计模式(Factory Method)
3、抽象设计模式(Abstract Factory)
这三种工厂设计模式都属于创建型设计模式,都是将对象的实例化部分取出来,优化系统架构,增强系统的扩展性。
1、简单工厂模式:
又叫静态工厂,是工厂模式三中状态中结构最为简单的。主要有一个静态方法,用来接受参数,并根据参数来决定返回实现同一接口的不同类的实例
角色:
1、工厂类角色(SimpleFactory):根据逻辑不同,产生不同的产品ConcreteProduct;
2 ...
java 设计模式之单例设计模式
- 博客分类:
- 设计模式
单例设计模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点
特点:
1、单例类构造方法私有化(private修饰),只能有一个实例;
2、单例类必须自己创建自己的实例化对象(private static类型);
3、单例类必须给其他类提供这个实例(定义一个静态方法)
优点:
1、避免实例化对象的重复创建,不仅减少每次创建对象的时间开销,还可以节约内存空间;
2、避免由于创建多个实例导致某些值不一致的情况
适用情况:
在计算机系统中,线程池、缓存、日志对象、对话框、打印机、显卡的驱动程序对象常被设计成单例。这些应用都或多或少具有资源管理器 ...
参考:http://www.cnblogs.com/cxxjohnson/p/6403835.html
设计模式分为三大类:
创建型,共五种:单例模式、静态工厂模式(普通工厂)、抽象工厂模式、建造者模式、原型模式。
结构型,共七种:适配器模式、装饰器模式、代理模 ...
参考:http://www.cnblogs.com/langtianya/archive/2013/03/08/2950934.html
简单工厂模式:客户端传一个条件进工厂类,工厂类根据条件创建相应的产品类对象,并return给客户端,供客户端使用。即客户端使用的是工厂类生产的产品对象。
策略模式:客户端创建一个Context类对象a(可以看作是工厂模式中工厂类),创建一个策略对象并传参给对象a,然后客户端使用a对象的某些方法来使用前面传参进来的策略,即客户端是通过a对象使用策略的。
简单的说,
1、工厂模式根据条件生产出产品给客户端用。而策略模式是客户端使用传参给Conte ...
下表为Java访问控制符的含义和使用情况
类内部
本包
子类
外部包
public
√
√
√
√
protected
√
√
√
×
default
√
√
×
×
private
√
×
×
×
继承:
public、protected修饰的方法可以被子类继承,同一个包下,默认的也可以被继承。
如果子类重写,要修改方法的访问权限,子类方法的访问权限必须比父类大。如下:父类方法为protected修饰,子类继承该方法并重写,可以定义public ...
来源:http://www.cnblogs.com/xing901022/p/5507086.html
之前说过Java中类的加载顺序,这次看完继承部分,就结合继承再来说说类的加载顺序。
继承的加载顺序
由于static块会在首次加载类的时候执行,因此下面的例子就是用static块来测试类的加载顺序。
package xing.test.thinking.chap7;
class A{
static{
System.out.println("A static");
}
}
class B extends ...
来源:http://www.cnblogs.com/dooor/p/5289994.html
为什么研究类加载全过程?
有助于连接JVM运行过程
更深入了解java动态性(解热部署,动态加载),提高程序的灵活性
类加载机制
JVM把class文件加载到内存,并对数据进行校验、解析和初始化,最终形成JVM可以直接使用的java类型的全过程。
加载
将class文件字节码内容加载到内存中,并将这些静态数据转换成方法区中的运行时数据结构,在堆中生成一个代表这个类的java.lang.Class对象,作为方法区类数据的访问入口,这个过程需要类 ...
类的加载着重介绍一下一下几个步骤。
虚拟机启动时,用户需要指定一个要执行的主类(包含main()方法的那个类) 加载:加载主类
准备:为类变量分配内存并设置类变量初始值(0或NULL),如果有static final 变量(对象),准备阶段赋值 static变量(对象)。类变量:static修饰的变量:O或NULLstatic final变量:因为在定义的时候必须赋初始值,在准备阶段直接赋值。实例变量:在对象实例化时随对象一起分配在堆中。
初始化:按顺序初始化变量和其他资源。
new关键字实例化对象;
读取或设置一个类变量(static修饰),调用类的静态方法。如果有stat ...
来源:http://www.cnblogs.com/gaopeng527/p/5246707.html
Java类加载器的作用就是在运行时加载类。Java类加载器基于三个机制:委托、可见性和单一性。委托机制是指将加载一个类的请求交给父类加载 器,如果这个父类加载器不能够找到或者加载这个类,那么再加载它。可见性的原理是子类的加载器可以看见所有的父类加载器加载的类,而父类加载器看不到子类 加载器加载的类。单一性原理是指仅加载一个类一次,这是由委托机制确保子类加载器不会再次加载父类加载器加载过的类。正确理解类加载器能够帮你解决 NoClassDefFoundError和java.la ...
来源:http://blog.csdn.net/typa01_kk/article/details/45000535
Java的运算符,分为四类:
算数运算符、关系运算符、逻辑运算符、位运算符。
算数运算符(9):+ - * / % ++ --
关系运算符(6):== != > >= < <=
逻辑运算符(6):&& || ! ^ & |
位运算符(7):& | ~ ^ >> << >>>
--- ...
来源:http://blog.csdn.net/u011080472/article/details/51330114
Java类初始化的顺序经常让人犯迷糊,现在本文尝试着从JVM的角度,对Java非继承和继承关系中类的初始化顺序进行试验,尝试给出JVM角度的解释。
非继承关系中的初始化顺序
对于非继承关系,主类InitialOrderWithoutExtend中包含了静态成员变量(类变量)SampleClass 类的一个实例,普通成员变量SampleClass 类的2个实例(在程序中的顺序不一样)以及一个静态代码块,其中静态代码块中如果静态成员变量sam不为空,则改变s ...
来源:https://my.oschina.net/u/566829/blog/62249
java虚拟机所管理的内存包括以下几个运行时数据区域: 方法区(Method Area):线程共享的,存放已被虚拟机记载的类信息、常量、静态变量等数据。“永久代(Permanent Generation)” 虚 ...
来源:http://blog.sina.com.cn/s/blog_69dcd5ed0101171h.html
如果字符串常量池中包含一个等于此String对象的字符串,则返回代表池中这个字符串的String对象,否则,将此String对象包含的字符串添加到常量池中,并返回此String对象的引用。
1. 首先String不属于8种基本数据类型,String是一个对象。 因为对象的默认值是null,所以String的默认值也是null;但它又是一种特殊的对象,有其它对象没有的一些特性。