我想任何一本介绍模式的书在讲到Decorator模式的时候不能不提到它的实际应用——在Java/IO库里面的应用,<>这本书也不例外,有点不一样的是,这本书在介绍的时候有个专题,是从两个模式来看Java/IO库,完这个专题后,个人感觉对Java/IO库有了全新的认识同时也加深了Decorator模式跟Adapter适配器模式的理解,现和大家分享下这个在我看来很伟大的成果,同时说明下,以下大部分文字跟图片是来自<>这本书。   一。引子(概括地介绍Java的IO)   无论是哪种编程语言,输入跟输出都是重要的一部分 ...
public void paint(Graphics g) { Graphics2D g2d = (Graphics2D)g; Stroke st = g2d.getStroke(); Stroke bs; //LINE_TYPE_DASHED bs = new BasicStroke(1, BasicStroke.C ...
    变量 变量是指? 变量是存放东西的一个场所.在程序中,为了保存某些值,就要使用到变量.在JAVA中,变量有以下几种. 分类 类型名 大小 有效范围 初始值   整数   byte   1byte   -128~+127   0   short ...
java.io.Reader 和 java.io.InputStream 组成了 Java 输入类。Reader 用于读入16位字符,也就是 Unicode 编码的字符;而 InputStream 用于读 入 ASCII 字符和二进制数据。 在 Java 中,有不同类型的 Reader 输入流对应于不同的数据源:     FileReader 用于从文件输入;     CharArrayReader 用于从程序中的字符数组输入;     StringReader 用于从程序中的字符串输入; & ...
2008-07-10

111

hang out with: spend time with
Java的线程编程非常简单。但有时会看到一些关于线程的错误用法。下面列出一些应该注意的问题。 1.同步对象的恒定性 All java objects are references. 对于局部变量和参数来说,java里面的int, float, double, boolean等基本数据类型,都在栈上。这些基本类型是无法同步的;java里面的对象(根对象是Object),全都在堆里,指向对象的reference在栈上。 java中的同步对象,实际上是对于reference所指的“对象地址”进行同步。 需要注意的问题是,千万不要对同步对象重新赋值。举个例子。 class A implement ...
Javax.comm简介     Javax.comm是Sun公司提供的,用于开发平台独立的通讯应用程序的扩展API。(ps:这里javax的x很准确地表明了它是一个扩展包,而不是核心包(core package),但由于历史原因,javax下的并不都是扩展包,比如swing包已经是Java核心架构的一部分了,不过为了与Java1.1编码兼容,仍使用javax.swing。)javax.comm可以访问RS232接口(串口)及有限制地访问IEEE-1284(并口)。 下载     需要到其官方主页http://java.sun.co ...
主要介绍java和javac命令的使用, 分带package和不带package, 如果要用到第3方包,则使用-classpath参数 1.不带package Hello.java public class Hello {    public static void main(String[] args){    System.out.println("hello");   } } c:/java/hello/Hello.java 编译 c:/java/hello>javac Hello.java 生成class文件 c:/java/he ...
遇到个这样的错误 byte[] bKey=new byte[1]; ArrayList byteList=new ArrayList(); for(int i=0;i<10;i++){ MessagePacket packet=new MessagePacket(); packet.setKey(bKey); byteList.add(packet); } for(int j=0;j<byteList.size();j++) ...
对于java这种语言来说,位操作符比较少用到 &:按位与。 |:按位或。 ^:按位异或。 ~:按位取反。 <<:左移,高位插0,否则插1; >>:右移,高位插0,否则插1; >>>:无符号右移,无论正负,高位插0 1.<< 逻辑左移,右边补0,符号位和其他位一样. 正数: x<<1一般相当于2x,但是可能溢出. 溢出范围: 230~(231-1) 二进制表示 010000...000到01111....1111,移位后最高为变为1了,变成负数了. 负数: x<<1一般也相当于2x,也有可能溢出.所以, x*32可以写 ...
一. 程序设计目标     我们组写了个简单的水果生产程序,描述农场种植水果的过程,旨在通过此次设计更进一步了解工程设计模式,加强编程的结构化能力。     开发环境:JDK1.5 开发工具:JBuilder 2006 二.程序设计介绍 1.程序结构    我们组为一个水果公司写了个简单的生产程序,该公司专门向市场销售各类水果。我们为程序建立了一个名为farm的工程,程序结构比较简单,总共有7个类,并且都放在一个默认的包中。其层次结构可从下图体现出来: 对各个类的说明: Fruit类:水果 ...
一般动态加载类都是直接用Class.forName()这个方法,但这个方法只能创建程序中已经引用的类,并且只能用包名的方法进行索引,比如Java.lang.String,不能对一个.class文件或者一个不在程序引用里的.jar包中的类进行创建。但使用URLClassLoader就可以直接根据创建一个单独的.class文件,并且每当重新载入后并实例化后都是最新的方法。类似于jsp,当你在eclipse中改了一个jsp并且存储后,只要刷新页面就可以得到最新的结果而不用重新启动服务器。     URLClassLoader是在java.net包下的一个类。他的构造函数 ...
由于需要做一个在线更新模块,需要在程序里对jar文件解压,测试程序如下 开始的测试程序如下: package test; import java.io.BufferedInputStream; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.util.Enumeration; import java.util.jar.*; public class TestJarFile extends Thread { ...
C:\\Windows\\system32 \\是windows中的写法,在linux下是不认的 C:/root/local/ / 在linux下也可被识别 所以通用写法应该使用/从而保证跨平台后程序正确运行
引用 could not initialization Dammanage:com.ibatis.dao.client.DaoException: Error while configuring DaoManager.   Cause: com.ibatis.dao.client.DaoException: Error configuring DAO.   Cause: java.lang.InstantiationException: com.finance.ProductDaoImpl Caused by: java.lang.Instantiati ...
HashMap staff = new HashMap(); Set entries = staff.entrySet(); Iterator iter = entries.iterator(); while(iter.hasNext()) { Map.Entry entry = (Map.Entry)iter.next(); Object key = entry.getKey();得么关键字 Object value = entry.getValue();得到值 }
class X { Y b = new Y(); X() { System.out.print("X"); } } class Y { Y() { System.out.print("Y"); } } public class Z extends X { Y y = new Y(); ...
class Person { private String name=""; private int age=0; public Person() { System.out.println("person无参数构造函数"); } public Person(String name,int age) { this.name=name; this.age=age; System.out.println("person 2 参数的构造函数"); } } class Student extends Person { pri ...
import java.io.*; public class GetPhysicalAddress extends Thread{ String xcmd="ipconfig /all"; PrintStream out; StreamGobbler2 errorGobbler; StreamGobbler2 outputGobbler; public static void main(String[] args) { new GetPhysicalAddress(System.out).start(); } publi ...
一般,有3种使用锁进行同步的方法     a.方法同步,例如public synchronized void xxx()...     b.静态方法同步,例如public static synchronized void xxx()...     c.程序块同步,例如         ...         synchronized(object oLock)&nbs ...
Java反射机制 一.概述    reflection是一系列的API,用于表示或者处理当前JVM中的类,接口和对象.    java.lang.reflect/java.lang.Class 二.主要功能     确定一个对象的类     取出类的modifiers,数据成员,方法,构造器,和超类.     找出某个接口里定义的常量和方法说明.     创建一个类实例,这个实例在运行时刻才有名字(运行时间才生成的对象).   ...
public static void saveFileToFile(String F1,String F2){ //实现文件对拷,从F1拷贝到F2,若F2存在则会被覆盖;适用于任何文件. FileInputStream fis = null; FileOutputStream fos = null; try{ fis = new FileInputStream(new File(F1)); //建立文件输入流 File file ...
这是摘自《More Java pitfalls 中文版》上的例子。 先请编译和运行下面程序: import java.util.*; import java.io.*; public class BadExecJavac2 { public static void main(String args[]) { try { Runtime rt = Runtime.getRuntime(); Process proc = rt.e ...
class StreamGobbler extends Thread { InputStream is; String type; StreamGobbler(InputStream is, String type) { this.is = is; this.type = type; } public void run() { try { InputStreamReader isr = new InputStreamReader(is); BufferedRead ...
使用cmd命令下的start命令 启动另一个窗口运行指定的程序或命令。 START ["title"] [/Dpath] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED]       [/LOW | /NORMAL | /HIGH | /REALTIME | /ABOVENORMAL | /BELOWNORMAL]       [/WAIT] [/B] [command/program]       [param ...
2007-08-28

DOS命令行参数

关键字: dos命令行知识
参数    参数说明 /C      执行字符串指定的命令然后终断 /K      执行字符串指定的命令但保留 /S      在 /C 或 /K 后修改字符串处理(见下) /Q      关闭回应 /D      从注册表中停用执行 AutoRun 命令(见下) /A    & ...
一、前言 用Java解析XML文档,最常用的有两种方法:使用基于事件的XML简单API (Simple API for XML)称为SAX和基于树和节点的文档对象模型(Document Object Module)称为DOM。Sun公司提供了Java API for XML Parsing(JAXP)接口来使用SAX和DOM,通过JAXP,我们可以使用任何与JAXP兼容的XML解析器。 JAXP接口包含了三个包: (1)org.w3c.dom W3C推荐的用于XML标准规划文档对象模型的接口。 (2)org.xml.sax  用于对XML进行语法分析的事件驱动的XML简单API(SAX) (3 ...
方法1:采用String的split,验证代码如下: import java.util.Arrays; public class TestSplit { public static void main(String[] args) { String orignString = new String("5,8,7,4,3,9,1"); String[] testString = orignString.split(","); int[] test = { 0, 0, 0, 0, 0, 0, 0 }; //String to int ...
加入缓冲后文件正确的代码 代码 public void downloadLatestVersion(){ String downloadURL=this.getLatestVersionURL(); try { byte[] buffers=new byte[10240]; int size=buffers.length; URL url=new URL(downloadURL); HttpURLCon ...
新项目不做j2ee改做很基础的j2se,j2ee的很多包不能用,这类功能要自己手工写,感觉不错 URL url=new URL("http://192.168.0.78:8080/jar_update/jar.version.php?cmd=GetURLofLatestVersion"); HttpURLConnection conn=(HttpURLConnection) url.openConnection(); BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputSt ...
hellsing42
搜索本博客
我的相册
B2760551-d25c-3e24-ba6d-b3d87475fdc4-thumb
o_umlList
共 1 张
最近加入圈子
存档
最新评论