- 浏览: 108541 次
- 性别:
- 来自: 南京
最新评论
文章列表
String类创建对象问题
- 博客分类:
- Java
关于String:
1. 首先String不属于8种基本数据类型,String是一个对象。因为对象的默认值是null,所以String的默认值也是null;但它又是一种特殊的对象,有其它对象没有的一些特性。 2. new String()和new String(“”)都是申明一个新的空字符串,是空串不是null;
常量池(constant pool):
常量池(constant pool)指的是在编译期被确定,并被保存在已编译的.class文件中的一些数据。它包括了关于类、方法、接口等中的常量,也包括字符串常量。
字符串池:
在JVM中存在着一个字符串池,其中保存着很多 ...
状态模式(State)
- 博客分类:
- Design Patterns
1,核心思想
当对象的状态改变时,同时改变其行为。就拿QQ来说,有几种状态,在线、隐身、忙碌等,每个状态对应不同的操作,而且你的好友也能看到你的状态。
在状态模式中,状态是核心,因为状态的改变引起行为的改变是状态模式的用意所在。因此,在状态模式中需要包含如下2个类。
状态类State:它自身包含状态变量value,并提供了根据状态变量的不同值进行切换的操作函数。
状态切换类Context:它负责根据state的不同来切换不同的调用。
2.何时使用
我们经常使用if else if else进行状态切换。如果针对这样的切换反复出现,可以采取状态模式。
也可 ...
桥接模式(Bridge)
- 博客分类:
- Design Patterns
桥接模式(Bridge)
桥接模式就是把事物和其具体实现分开,使他们可以各自独立的变化。桥接的用意是:将抽象化与实现化解耦,使得二者可以独立变化,像我们常用的JDBC桥DriverManager一样,JDBC进行连接数据库的时候,在各个数据库之间进行切换,基本不需要动太多的代码,甚至丝毫不用动,原因就是JDBC提供统一接口,每个数据库提供各自的实现,用一个叫做数据库驱动的程序来桥接就行了。我们来看看关系图:
实现代码:
先定义接口:
[java] view plaincopy
ibatis框架,这个框架是一种“半自动化”的ORM实现,它针对sql语句进行映射。它还是从关系型开始到对象型的思路来解决数据库的操作问题。这一点和hibernate的设计思路不同。而且我们知道hibernate框架是一个“全自动化”的框 ...
Spring 框架概述
- 博客分类:
- Spring
◆简介
Spring 框架是一个分层架构,由 7 个定义良好的模块组成。Spring 模块构建在核心容器之上,核心容器定义了创建、配置和管理 bean 的方式。 组成 Spring 框架的每个模块(或组件)都可以单独存在,或者与其他一个 ...
silk remote config
- 博客分类:
- test
1. Close Remote Desktop sessions opened on your computer.
2. Launch the Registry editor (Regedit.exe).
3. Locate any of the following Registry keys:
HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\ (if you want to change the RDP settings for your user account)
-- or --
HKEY ...
1.滚动条:
this.plotPointsTable.on("scroll", function (e) {
e.scrollTarget.scrollLeft;
});
2.click:
this.plotPointsTable.on(".dgrid-cell:click", function (e) {
return _this.onTableCellClicked(e);
} ...
创建一个 webService 工程。
2. 创建一个普通 Java 类
view plain
JUnit测试预期异常
- 博客分类:
- Junit
我们拿下面的代码作为例子,写一个测试,确保canVote() 方法返回true或者false, 同时你也能写一个测试用来验证这个方法抛出的IllegalArgumentException异常。
public class Student {
public boolean canVote(int age) {
if (i<=0) throw new IllegalArgumentException("age should be +ve");
if (i<18) return false;
else return tr ...
Collection接口相关知识
- 博客分类:
- Java
一.基本概念
Java容器类库的用途是保存对象,根据数据结构不同将其划分为两个不同的概念
(1) Collection,一个独立元素的序列,其中List按照元素的插入顺序保存元素,而set不能有重复元素,Queue按照先进先出(FIFO)的方式来管理数据,Stack按照后进先出(LIFO)的顺序管理数据。
(2) Map,一组键值对(key-value)对象的序列,可以使用key来查找value,其中key是不可以重复的,value可以重复。我们可以称其为字典或者关联数组。其中HashMap是无序的,TreeMap是有序的,WeakHashMap是弱类型的,Hashtable ...
GC(一)之机制原理(转)
- 博客分类:
- Java
ava垃圾回收概况
Java GC(Garbage Collection,垃圾收集,垃圾回收)机制,是Java与C++/C的主要区别之一,作为Java开发者,一般不需要专门编写内存回收和垃圾清理代 码,对内存泄露和溢出的问题,也不需要像C程序员那样战战兢兢。这是因为在Java虚拟机中,存在自动内存管理和垃圾清扫机制。概括地说,该机制对 JVM(Java Virtual Machine)中的内存进行标记,并确定哪些内存需要回收,根据一定的回收策略,自动的回收内存,永不停息(Nerver Stop)的保证JVM中的内存空间,放置出现内存泄露和溢出问题。
关于JVM,需要说明一下的是, ...
外观模式(Facade)
- 博客分类:
- Design Patterns
外观模式是为了解决类与类之家的依赖关系的,像spring一样,可以将类和类之间的关系配置到配置文件中,而外观模式就是将他们的关系放在一个Facade类中,降低了类类之间的耦合度,该模式中没有涉及到接口,看下类图:(我们以一个计算机的启动过程为例)
我们先看下实现类:
[java] view plaincopy
public
设计模式的六大原则(转)
- 博客分类:
- Design Patterns
1、开闭原则(Open Close Principle)
开闭原则就是说对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。所以一句话概括就是:为了使程序的扩展性好,易于维护和升级。想要达到这样的效果,我们需要使用接口和抽象类,后面的具体设计中我们会提到这点。
2、里氏代换原则(Liskov Substitution Principle)
里氏代换原则(Liskov Substitution Principle LSP)面向对象设计的基本原则之一。 里氏代换原则中说,任何基类可以出现的地方,子类一定可以出现。 LSP是继承复用的基石,只有当衍生类 ...
测试Java的变量和方法(转)
- 博客分类:
- test
方法一:修改访问权限修饰符
方法二:利用安全管理器(反射)
方法三:使用模仿(Mock)对象
方法四:利用字节码技术
方法对比
方法 修饰符 使用难度 缺陷
protected 缺省 private
方法一:修改访问权限修饰符 是 是 是 低,有java编程基础即可。 由于需要修改源代码,虽然是同包可见,也会带来一些封闭性的问题。
Process类是一个抽象类,其内部所有的方法都是抽象的,Runtime.exec()方法可以创建一个本地进程,并返回Process子类的一个实例。
Process类的API如下:
l destroy():杀掉子进程
l exitValue():返回子进程的出口值
l InputStream getErrorStream():获得子进程的错误流
l InputStream getInputStream():获得子进程的输入流
l OutputStream getOutputStream():获得子进程的输出流
l waitFor():导致当前进程等待,一直等到由该 ...