??xml version="1.0" encoding="utf-8" standalone="yes"?>粉嫩久久99精品久久久久久夜 ,嫩草精品影院,午夜精品久久久久久久四虎美女版http://www.aygfsteel.com/kudy/archive/2012/08/19/385825.html、小l?/dc:creator>、小l?/author>Sun, 19 Aug 2012 10:54:00 GMThttp://www.aygfsteel.com/kudy/archive/2012/08/19/385825.htmlhttp://www.aygfsteel.com/kudy/comments/385825.htmlhttp://www.aygfsteel.com/kudy/archive/2012/08/19/385825.html#Feedback0http://www.aygfsteel.com/kudy/comments/commentRss/385825.htmlhttp://www.aygfsteel.com/kudy/services/trackbacks/385825.html阅读全文

]]>
javase_17(IO的ȝ)http://www.aygfsteel.com/kudy/archive/2012/08/18/385826.html、小l?/dc:creator>、小l?/author>Sat, 18 Aug 2012 11:51:00 GMThttp://www.aygfsteel.com/kudy/archive/2012/08/18/385826.htmlhttp://www.aygfsteel.com/kudy/comments/385826.htmlhttp://www.aygfsteel.com/kudy/archive/2012/08/18/385826.html#Feedback0http://www.aygfsteel.com/kudy/comments/commentRss/385826.htmlhttp://www.aygfsteel.com/kudy/services/trackbacks/385826.html所有的在使用完毕Ӟ都需要调用closeҎq行xQ释放资源?br />׃操作都会有异常Q如果发生异常就有可能导致closeҎ不能被调?br />所以,IO异常一定要处理QcloseҎ写在finally语句?br />1.InputStream : 输入字节?ҎQ?read()从流(兌的设?中读一个字?
** int read(buf):从流中读取n个字节放入缓冲区Q方法会q回一个读取字节的个数 ips-->buf
d一?1Q说明读C的末尾
 ------------------------------------------------------------------------------------------
|---FileInputStream: 重蝲的构造函?nbsp; (String fileName)  (File file)

2.OutputStreamQ?输出字节?:Ҏ write(int c)一个字节写入流  (byte)c
write(buf,offset,len)指定字节数l的一部分写入?buf-->ops
 -------------------------------------------------------------------------------------------
|---FileOutputStream: 重蝲的构造函?(Strng fileName) (String fileName, boolean append)
 append:指定数据是否q加到文件的末尾Q默认是falseQ覆盖原有的数据Q?br /> 讄为trueQ将数据q加到文件的末尾
3.ReaderQ输入字W流 int read() M个字W?nbsp;  int read(buf)  buf是char[]cd
|---FileReader:  FileReader = InputStreamReader(FileInputStream) 只做了一件事Q解?父类在做)
4.WriterQ输出字W流 write(int c) (char)c \  write(String str)
|---|---FileWriter:  FileWriter = OutputStreamWriter(FileOutputStream) 只做了一件事Q编?/p>

理解(会用)Q?br />1.装饰设计模式Q?对原有的cȝq行包装Q对Ҏq行增强
BufferedReaderQ实现缓冲的功能   创徏包装对象的时候,必须l合一个被包装的底层流
    增加了一个新Ҏ String readLine() M?br />|--LineNumberReader: 增加了行号功能,getLineNumber() 、setLineNumber()
BufferedWriterQ实C~冲功能  new BufferedWriter(new FileWriter("1.txt");
    增加了新Ҏ  newLine() 另v一?br />BufferedInputStreamQ实现缓冲的功能
BufferedOutputStreamQ实现缓冲的功能

2.InputStreamReaderQ?转换?nbsp;  : 包装Q实C~码解码的功?br />new InputStreamReader(new FileInputStream("1.txt"));

3.使用包装包装System.inQ读键盘方便Q可以读一?br />BufferedReader br =
 new BufferedReader(new InputStreamReader(System.in));
String line = br.readLine();
 
 
IO需要会写的E序Q?BufferedReader和BufferedWriter包装InputStream和OutputStreamQ读一行写一?/p>

  BufferedReader和BufferedWriter包装Reader和Writer
  BufferedInputStream和BufferedOutputStream包装InputStream和OutputStream
  用基读写,自定义数l作为缓冲区Q实现拷?br />  
-------以下做一个ȝ:

io?数据传输的中转站-->IO?->目的?/p>

 IO一般都是成对出现的,也就是说按照的分向:输入?->输出?br /> IO按照操作来? 字节?->字符?br /> 
一.字符?br />基类:Reader(?Writer(?
|-Reader
 |--BufferedReader:对Readerq行了包?提供了缓冲区(8192),有ReadLine()Ҏ
  构造函?BufferedReader(Reader r);
 |--InputStreamReader:转换?字节流转换成字W流:new InputStreamReader(System.in);
  |--FileReader:d文g的字W流,FileReader(File file) FileReader(String fileName);
|-Writer
 |--BufferedWriter:包装?常用的方法write(String s)、flush()h  newLine()换行
  构造函?BufferedWriter(Writer w);
 |--OutputStreamWriter:转换? new OutputStreamWriter(System.out);
  |--FileWriter:写入文g,FileWriter(File file)  FileWriter(String fileName)
   FileWriter(File file,boolean append),FileWriter(String fileName,boolean append)
   当append为true,写入到文g的末֤,当ؓfalse?从文件开头开始写.׃覆盖原来?默认为false
   
?字节?
|-InputStream(输入?
 |--FileInputStream:d文g的字W流,和FileReader基本是一?br /> |--FilterInputStream:qo?一般不使用,只是针对了InputStreamq行了包?br />  |--BufferedInputStream:包装c?BufferedReader(InputStream in),提供~存功能
  
|-OutputStream(输出?
 |--FileOutputStream:写入文g的字W流,和FileWriter基本一?br /> |--FilterOutputStream
  |--BufferedOutputStream:包装c?BufferedWriter(OutputStream out);
  
?使用IO必要捕获异常,原因在于我们必须要还资源(关闭?

 1 FileWriter fw = null;
 2 try
 3 {
 4     fw = new FileWriter("src/1.txt");
 5 }
 6 catch(IOException e)
 7 {
 8     e.printStractTrace();
 9 }
10 finally
11 {
12     try{if(fw!=null)fw.close();}catch(IOException){e.printStackTrace();}
13 }

?File文gc?br />1.构造方?
File(File parnt,String child)
Ҏprent抽象路径名和child路径名字W串创徏一个新的file实例.
File(String pathname)
通过给定的路径名字来创Z个新的file实例.
File(String parent, String child)
Ҏ parent 路径名字W串?child 路径名字W串创徏一个新 File 实例.

2.常用Ҏ:
isFile:判断对象是否是一个标准文?br />isDirectory:判断对象是否Z个文件夹
isAbsolute:判断是否Z个绝对\?br />exists:判断对象指定的文件是否存?br />createNewFile:Ҏ对象的描q创Z个对?br />getName:获得文g?br />getPath:获得路径?br />getParent:获得文g的父U抽象\?br />getAbsolutepath:获得文g的绝对\径名
mkdir:创徏此抽象\径指定的目录,(只能在存在的文g夹下创徏一个目?
mkdirs:创徏此抽象\径指定的目录,包括所有必M不存在的目录.创徏多目录(c:/a/b/c)
list(FilenameFilter filter)Q根据指定过滤器遍历文g夹中的所有文Ӟq回String[]
 如果对象为标准文Ӟ则返回nullQ如果对象是一个空文g夹,则返回空数组。length?
 FilenameFilter是一个接口,只有一个方法acceptQ我们需要实现接口的acceptҎ?br /> 实现cLllistҎ自动调用?br /> Ҏ的参数是listҎ传给我们的,q回的结果也是给listҎȝ?br />listFilesQ和list基本一Pq回值类型不一Pq回File[]?br />常用案例Q遍历目录下所有的文g和文件夹   拯一个文件夹  .

?RandomAccessFile 文g?可以d
1.RandomAccessFile(File file,String mode)、RandomAccessFile(String fileName,String mode)
 mode:常用? r,只读 rwd
2.有很多read和writeҎ.
 seekҎ,指定从那个位|开始读seek(0) ,从原有的位置覆盖?br />skipBytes(int n)Q蟩q多个字节

?PrintStream、PrintWriter打印?br />有一个特D的Ҏprint可以实现打印
writeҎ是直接将字节和字W写出去
printQ首先调用对象的toStringҎ转成字符?如果是基本数据类型,会先自动装箱)
 再将字符串编码成字节数组Q调用writeҎ写出?/p>

?SequenceInputStream序列?br />可以多个字节流l合h
构造方法:SequenceInputStream(Enumeration<? extends InputStream> e) 
  //Enumeration可以通过Vector来获得,如果用的是ArrayListQ如何获得呢Q?br />     SequenceInputStream(InputStream in1,InputStream in2)

?ObjectInputStream、ObjectOutputStream操作对象的字节流
一般成对出?br />使用writeObjectҎ写入的对象,只能由readObjectҎd?br />操作的对象必d现java.io.Serializable序列化接口,该对象才可以被序列化和反序列化?br />序列? Java中规定的一U保存对象的数据格式

?DataInputStream、DataOutputStream操作基本数据cdQ格式化数据
readInt、writeInt{方法?br />writeInt写入一个整敎ͼ文g大小?字节。证明就是把基本数据cd对应的字节写出去了,没有丢失_ֺ

?ByteArrayInputStream、ByteArrayOutputStream对Byte数组q行d的字节流Q针对内存进行读?br />源和目的地都是内存,一般用于对内存中的数据q行处理?/p>

十一:PipedInputStream、PipedOutputStream道?br />1、输入管道流
构造方法:PipedInputStream(PipedOutputStream pos)实现拼接
也可以通过connect(PipedOutputStream pos)Ҏq行拼接

2、输出管道流
构造方法:PipedOutputStream(PipedInputStream pis)实现拼接
也可以通过connect(PipedInputStream pis)Ҏq行拼接

 1 --Test:序列化与反序列化..
 2 package com.java.kudy_Say;
 3 
 4 import java.io.FileNotFoundException;
 5 import java.io.FileOutputStream;
 6 import java.io.IOException;
 7 import java.io.ObjectOutputStream;
 8 import java.io.Serializable;
 9 import java.util.ArrayList;
10 import java.io.ObjectInputStream;
11 import java.io.FileInputStream;
12 /*
13     序列化与反序列化的过E?
14 */
15 public class Test {
16     
17     public static void main(String[]args) throws FileNotFoundException, IOException,ClassNotFoundException
18     {
19             
20 /*        Student s1 = new Student("张三",18);
21         Student s2 = new Student("王五",19);
22         Student s3 = new Student("李四",20);
23         Student s4 = new Student("大毛",21);
24         ObjectOutputStream oos = 
25                 new ObjectOutputStream(new FileOutputStream("f:/a.txt"));
26         ArrayList<Student> al = new ArrayList<Student>();
27         al.add(s1);
28         al.add(s2);
29         al.add(s3);
30         al.add(s4);
31         oos.writeObject(al);
32         oos.close();//关闭?
33         //首先我们把内ҎC个集合里面去
34 */
35         ObjectInputStream ois = 
36                 new ObjectInputStream(new FileInputStream("f:/a.txt"));
37         ArrayList<Student> al = (ArrayList<Student>)ois.readObject();
38         for(Student s :al)
39             System.out.println(s);
40         ois.close();
41     
42     
43         
44     }
45 }
46 
47 //必须要实C个类
48 class Student implements Serializable
49 {
50     private String name;
51     private int age;
52     Student(){}
53     Student(String name,int age)
54     {
55         this.name = name;
56         this.age = age;
57     }
58     public String toString()
59     {
60         return name+"@"+age;
61     }
62 }

 



]]>
javase_常用phttp://www.aygfsteel.com/kudy/archive/2012/08/18/385827.html、小l?/dc:creator>、小l?/author>Sat, 18 Aug 2012 11:48:00 GMThttp://www.aygfsteel.com/kudy/archive/2012/08/18/385827.htmlhttp://www.aygfsteel.com/kudy/comments/385827.htmlhttp://www.aygfsteel.com/kudy/archive/2012/08/18/385827.html#Feedback0http://www.aygfsteel.com/kudy/comments/commentRss/385827.htmlhttp://www.aygfsteel.com/kudy/services/trackbacks/385827.html教程由JAVA中文|整理校对发?javaweb.cc)

     Abstract Window Toolkit(AWT)抽象H口工具?
  一个用本地囑Şlg实现的图形接口。这些组件提供了大部分的本地lg。这个接口正逐步被Swinglg所替代Q参见Swing Set.

  Abstract 抽象?br />  一个Java语言中的关键字,用在cȝ声明中来指明一个类是不能被实例化的Q但是可以被其它cȝѝ一个抽象类可以使用抽象ҎQ抽象方法不需要实玎ͼ但是需要在子类中被实现

  abstract class 抽象c?br />  含有一个或多个抽象Ҏ的类Q不能被实例化。定义抽象类的目的是使其他类能够从它l承Qƈ且通过实现抽象Ҏ使这个类具体?/p>

  abstract method 抽象Ҏ
  没有实现的方?/p>

  access control 讉K控制
  控制用户或程序访问资源的权限Q保证资源的一致性的Ҏ

  API 应用E序接口
  Application Programming Interface的羃写。指导应用程序开发h员访问类Ҏ和类状态的说明

  applet 应用程?br />  通常在Web览器中执行的一个JavalgQ同样可以在其他的支持applet模型的应用程序或讑֤中执?br /> 
  Applet container applet容器
  一个支持applet的容?

  argument 参数
  在函数调用中使用的数据项。一个参数可以是帔R、变量或表达?br /> 
  array 数组
  相同cd的数据的集合Q每一个数据项通过一个整数唯一标识

  ASCII
  American Standard Code for Information Interchange的羃写。一个标准的7位字W编码,参见Unicode

 

       Bean
  一个可以重用的lgQ可以通过l合Bean来创建应用程?/p>

  bean-managed persistence
  当一个实体bean实例和资源管理器交换数据的时候,由实体bean实例来管?/p>

  bean-managed transaction
  Enterprise Bean定义事务的界限的时?/p>

  binary operator 二值操作符
  有两个操作数的操作符

  bit ?br />  计算Z表示信息的最单位,只有0?两个?/p>

  bitwise operator 位操作符
  q行的对一个或多个操作数的位进行单独的操作。比如二q制逻辑q算W(&,|,^Q,二进制移位符Q?lt;<,>>,>>>Q和求补q算W(~Q?/p>

  block ?br />  在Java语言中,M被大括号括v来的E序Dc?/p>

  boolean 逻辑?br />  指一个表辑ּ或一个变量只能有true或者false两种cd。Java语言提供了booleancd以及true和false两个帔R

  break
  一个Java的关键字Q用来改变程序执行流E,立刻从当前语句的下一句开始执行从。如果后面跟有一个标{,则从标签对应的地方开始执?/p>

  business logic 商业逻辑
  实现某个应用功能的代码。在Enterprise JavaBeans模型中,q种逻辑是由某个Enterprise Javabean的方法实现的?/p>

  business method 商业Ҏ
  某个Enterprise Javabean的方法用来实现商业逻辑或者某个应用的规则?/p>

  Byte 字节
  序?位bitQJava语言中有对应的bytecd

  bytecode 字节?
  由Java~译器生成的跟机器相关代码,由Java解释器执?/p>

  callback methods 回调Ҏ
  lg的方法,由存放该lg的容器来调用的,用来在组件生命周期中通知它重要的事g

  case
  Java语言的关键字Q用来定义一l分支选择Q如果某个值和switch中给出的gP׃从该分支开始执行?

  casting
  强制cd转化?
 
  catch
  Java的一个关键字Q用来声明当try语句块中发生q行旉误或非运行时异常时运行的一个块?/p>

  char
  Java语言的一个关键字Q用来定义一个字W类?/p>

  class c?
  在Java语言中定义一个特定类的实现。一个类的定义包含成员变量,成员ҎQ还有这个类实现的接口,以及q个cȝ父类。如果没有显式指明父c,那么它的父类会隐式的被认为是Object?/p>

  class method cL?
  不需要引用特定对象就可以使用的方法,cL法的作用域是全局的,而不是某个特定的cd例,也被UC静态方法static methodQ参看instance method

  classpath c\?
  Classpath是一个环境变量,用来向Java虚拟机和ZJava的应用程序指明系l类库和用户cd的位|(比如Q工具包在JDK1.1.X/bin目录中)

  class variable cd?
  一个和整个cȝ关的数据,而不是只和某个实例,cd量在cd义中定义Q也被称作static field,参看instance variable.

  codebase
  ?lt;APPLET>标签中的Code属性配合给出找到appletcȝ完整路径QCodel出文g的名字,Codebase指出包含该文件的URL路径

  comment 注释
  在编E语a中被~译器忽略的解释性语句。在Java中注释?/?*…*/定界

  compiler ~译?
  一个把源代码翻译成机器可以执行的代码的E序。Java~译器把Java源码译成Java虚拟够识别的字节码,参见interpreter

  component lg
  一U被容器所支持的应用的Y件单元。组件在使用的时候是可配|的。J2EEq_定义了四U类型的lgQEnterprise BeanQWeb componentsQapplets和application client?/p>

  component contract
  lg和它的容器之间的规范。这U规范包括:lg的生命周期的理Q一个上下文的接口,lg可以通过它获得容器的信息和服务,以及每个容器必须提供的一pd服务?/p>

  component environment
  应用E序lg提供商定义的一个集合,使组件在J2EElg的名字空间中可见。环境选项q件的使用描述W指明。每一个组件命名ƈ讉K它的环境配置值通过使用java:comp/evn JNDI上下文。这些值可以是lg所依赖的一个对象,比如JDBC DataSouceQ或者一个简单|比如一个税率?/p>

  Connector q接?
  一个标准的扩充机制使容器可以提供到EISs的连接。一个连接器q接到特定的EISQ由资源适配器和针对EIS的应用开发工L成。一个资源适配器插入到一个容器通过在连接器体系l构中定义的pȝU的联系?/p>

  connector architecture
  一个集成J2EE和EISs的体pȝ构。这个体pȝ构中有两大部分:一个EIS厂商提供的资源适配器和一个允许这个适配器插入的J2EE服务器。这个体pȝ构定义了一pd资源适配器ؓ了能插入J2EE服务器而必L持的规范Q比如事务,安全Q资源管理?/p>

  Constructor 构造函?
  一个创建对象的伪方法。在Java语言中构造函数是和类同名的成员函数。构造函C般用在new操作W之后?/p>

  Container 容器
  一个ؓlg提供生命周期理Q安全,配置Q和q行时服务的实体。每一个类型的容器QEJB, Web, JSP, servlet, applet, 和application clientQ也会提供各自组件相关的服务

  container-managed persistence
  当一个实体bean实例和资源管理器交换数据的时候,p源管理器来管?/p>

  container-managed transaction
  当一个EJB容器定义一个事务的边界的时候,一个Bean必须使用q种事务cd

  continue
  一个Java的关键字Q用来打断当前@环过E,从当前@环的最后重新开始执行,如果后面跟有一个标{,则从标签对应的地方开始执行?/p>

  core class 核心c?
  一个Javaq_上的标准的公q或接口。Javaq_的核心类Q至在所有的能支持Java的操作系l的q_上都是可用的。一个完全用Java~写的程序只需要Java核心cd可以q行了,q意味着它能够在M地方q行Q参?00% Pure Java(TM).

  Core Packages 核心?
  在Q何Javaq_和Q何兼容^C必须被支持的API的集合?/p>

  Declaration 声明
  一个在标识W和属性之间徏立联pȝ语句Q不需要必要的存储分配或具体实现。参见definition

  default ~省?
  一个Java语言的关键字Q作为在switch语句中的所有case之后的可选项Q如果所有的case条g都没有被满Q就会执行default语句
 
  delegation 授权
  一U某个负责h批准另外一个负责h在一定限制下使用它的w䆾或特权的行ؓ

  deprecation
  指不再推荐的c,接口Q构造函敎ͼҎ或成员变量,可能在以后的版本中会消失

  derived from
  cX "derived from" cY是指类X是从cYl承q来的,参见subclass, superclass

  distributed 分布?
  在多于一个的地址I间内运?br />  
  distributed application 分布式应?
  ׃同的q行于分ȝq行环境下的lg构成的应用程序,通常是在不同的^C通过|络互联h。典型的分布式应用是二端QClient/ServerQ,三端Qclient/middleware/serverQ和n端(client/multiple middleware/multiple serverQ?/p>

  do
  一个Java语言的关键字Q用来声明一个@环,q个循环的结束条件可以通过while关键字设|?/p>

  DOM
  Document Object Model的羃写。一는拥有包含遍历q棵树ƈ且生成相应XML文档的接口的对象构成的树Q符合W3C的规?

  double
  一个Java语言的关键字Q用来定义一个doublecd的变?/p>

  EJB container EJB容器
  一个实CJ2EE体系l构中EJBlg规范的容器。这个规范指定了一个Enterprise bean的运行时环境Q包括安全,一致性,生命周期Q事务,配置Q和其他的服务。一个EJB容器可以由EJB或者J2EE服务器提供?/p>

  EJB Container Provider EJB容器提供?br />  提供EJB容器的厂?/p>

  EJB context EJB上下?
  一个允许Enterprise Bean使用容器提供的服务和获得客户-hQclient-invokeQ方法调用者信息的对象

  EJB home object
  一个提供关于Enterprise Bean生命周期操作Q创建,删除Q查找)的对象。这个对象的cd是由容器的配|工具生的。EJB home object实现了Enterpeise Bean的home接口。客户通过引用一个EJB home object来进行生命周期的操作。客户用JNDI来定位一个EJB home object

  EJB .jar file
  一个包含EJB模块的JAR文g

  EJB module
  一个由一个或多个Enterprise bean和一个EJB配置描述W组成的软g单元?/p>

  EJB object
  实现了enterprise bean的remote接口的对象。客户不能直接引用一个enterprise bean的实例;客户L引用一个EJB object。EJB object的类型是由容器的配置工具生成的?/p>

  EJB server
  为EJB容器提供服务的Y件。比如,典型的,一个EJB容器L依靠一个作为EJB Server一部分的事务管理器来进行双向的认在所有参与的资源理器之间。J2EE体系l构假设EJB容器和EJB Server是由同一厂商提供的,所以没有制定这两个实体之间的规范。一个EJB Server可以包含一个或多个EJB Container

  EJB Server Provider
  提供EJB Server的厂?/p>

  EIS resource
  一个ؓ客户提供W合EIS规范的功能的实体。例子有Q一条或多条数据库中的记录,在一个ERPpȝ中的一个business objectQ在一个事务处理系l中的一个事务程?/p>

  else
  一个Java语言的关键字Q如果if语句的条件不满׃执行该语句?/p>

  encapsulation 装
  一个模块中的内部属性,因ؓ对象会封装数据和实现Q用者可以把对象看作一个能提供服务的黑匣子。实例变量可以被dQ删除,或改变。只要这个对象所提供的服务是不变的,使用q个对象的代码就可以l箋使用而不需要修改,参见instance variable, instance method.

  enterprise bean
  实现商业d和商业实体的lgQ或者是一个entity beanQ或者是一个session bean

  Enterprise Information System (EIS)
  一个包含企业已l存在的获取企业U信息的pȝ的应用程序,q些应用E序Z业提供了一个信息结构。一个EISpȝ提供很好定义的服务的集合l它的客戗这些服务在客户看来是本地的?或者远E的接口。EIS的例子有Q一个ERPpȝQ一个事务处理系l的LӞ一个遗留的数据库系l?/p>

  Enterprise Bean Provider Enterprise Bean提供?
  生enterprise beanQremote和home接口Q配|描q符文gQƈ把这些打包入JAR文g的应用程序开发h?/p>

  Enterprise JavaBeans(TM) (EJB)
  一个用于开发和使用面向对象的,分布式的Q企业应用E序的组件体pȝ构。用Enterprise JavaBeans体系l构~写的Y件是可扩展的Q面向事务的Q多用户的,安全的?/p>

  entity bean
  一个代表由数据库维护的持久数据的enterprise bean。一个entity bean可以理它自q持久性,或者把q个功能授权l它的容器。一个  entity bean׃个主键来标识。如果存放entity bean的容器崩溃了Q那么这个entity beanQ它的主键,以及Mq程的引用都能从崩溃中幸存下来?/p>

  ebXML
  ebXML建立在XML(Extensive Markup Language)之上Q目的是提供一pd模块化的规范QM地方的Q何规模的企业都能够通过Internet指导商业zd。它提供了公司和l织一个标准的Ҏ来交换数据,指导商业关系Q交数据通过公共的Ş式,定义q注册商业过E?/p>

  exception 异常
  一个在E序执行q程中阻止程序正常执行的事gQ通常是一个错误。Java语言通过tryQcatch和throw关键字支持异常的处理Q参见exception
handler

  exception handler
  一D处理特定类型的异常的代码。如果程序能够从异常中恢复过来,那么在处理完异常之后E序可以l箋执行?/p>

  executable content
  在HTML文g中执行的应用E序Q参见applet?/p>

  extends l承
  cX 通过extend cY来添加功能,或者添加变量,或者添加方法,或者覆盖类Y的方法。一个接口extends另外一个接口来dҎ。类XUCؓcY的一个子c,参见derived from

  field ?
  一个类的数据成员。除非显式指明,否则一个field不是static?/p>

  final
  一个Java语言的关键字。你只能定义一个实体一ơ,以后不能改变它或l承它。更严格的讲Q一个final修饰的类不能被子cdQ一个final修饰的方法不能被重写Q一个final修饰的变量不能改变其初始倹{?/p>

  finally
  一个Java语言的关键字Q用来执行一D代码不在前面定义的try语句中是否有异常或运行时错误发生?/p>

  float
  一个Java语言的关键字Q用来定义一个QҎ变量

  for
  一个Java语言的关键字Q用来声明一个@环。程序员可以指定要@环的语句Q推出条件和初始化变量?/p>

  FTP
  基本的Internet文g传输协议QFile Transfer ProtocolQ。FTP是基于TCP/IP协议的,它允许在L之间通过Internet传送文件。参见TCP/IP

  formal parameter list
  在一个方法的定以中指定的参数。参见actual parameter list

  handle
  一个标识enterprise bean的对象。客户可以串行化handleQ以后从串行化中恢复handle来得C个对enterprise bean的引?/p>

  hexadecimal 十六q制?
  使用16作ؓ基的计数pȝ。记?-9和a-fQ或者A-FQ代表了数字0?5。在Java?6q制数必d?x前缀。参见octal

  hierarchy
  关系的一U分c,除了最高层的对象(通常UCrootQ,每一个对象有一个专门的上层对象。每个对象可以由一个或多个下层对象在层ơ关pM。在Java中,root对象是Object

  home interface
  enterprise bean两个接口中的一个。home接口定义?个或多个Ҏ来创建和删除一个enterprise bean。对于session beanQhome接口定义了创建和删除ҎQ然而对于entity beanQhome接口定义了创建,查找和删除的Ҏ?/p>

  home handle
  一个对象,能够用来得到对一个home接口的引用。一个home handle能够被串行化写入持久存储器中Q通过反串行化来得到这个引用?br /> 
  HTML
  HyperText Markup Language的羃写。这是一个文件格式,ZSGMLQؓ了超文本在Internet上的传输。它十分单,允许嵌入囄Q声韻I视频,表单域和单的文本格式。对其他对象的引用被嵌入到URLs中?/p>

  HTTP
  HyperText Transfer Protocol的羃写。Internet的协议,ZTCP/IPQ用来获得远E主Z的超文本。参见TCP/IP?

  HTTPS
  建立在SSL协议之上的超文本传输协议QHTTPQ?/p>

  IDL
  接口定义语言QInterface Definition LanguageQ的~写Q用Java(TM)~写的API提供Z标准的和CORBA的交互性和q接性?/p>

  identifier 标识W?
  在JavaE序中一个对象的名称

  IIOP
  Internet Inter-ORB Protocol的羃写。一个用来在CORBA对象h代理之间交流的协议?/p>

  if
  Java~程语言的一个关键字Q用来生成一个条件测试,如果条g为真Q就执行if下的语句?/p>

  implements
  Java(TM)~程语言的一个关键字Q在cȝ声明中是可选的Q用来指明当前类实现的接口?/p>

  import
  Java(TM)~程语言的一个关键字Q在源文件的开始部分指明后面将要引用的一个类或整个包Q这样就不必在用的时候加上包的名字?/p>

  inheritance l承
  一个概念:一个类型会自动包含其父cdQsupertypesQ的变量和方法。参见superclass, subclass?/p>

  initialization parameter
  初始化Servlet上下文的参数?/p>

  instance 实例
  一个特定类型的对象。在Java(TM)语言中,一个对象是由new操作W创建的?br />  
  instance method 实例Ҏ
  M跟一个类的实例相关的ҎQ也UCmethod。参见class method?/p>

  instance variable 实例变量
  M和一个特定对象相关的数据V每一个类的实例有一份类定义中声明的实例变量的拷贝,也称作field。参见class variable?/p>

  instanceof
  一个二操作数的Java(TM)语言关键字,用来试W一个参数的q行时类型是否和W二个参数兼宏V?/p>

  int
  Java(TM)的一个关键字Q用来定义一个整形变?/p>

  interface
  Java(TM)的一个关键字Q用来定义一pd的方法和帔R。它可以被类实现Q通过implements关键字?/p>

  Internet
  一个由全球各个l织Q各个国家的数百万的Ll成的巨大的一个网l。它是由很多网l物理的q接在一赯成的,数据通过公共的一l协议传输?/p>

  IP
  Internet Protocol的羃写,Internet的基本协议,它提供不可靠的主机间的数据包的传送。它不保证是否数据包能够正确传送,需要多久的旉来传送,或者当有多个包时是否按序到达。徏立在该协议之上的协议提供q接和可靠性的概念。参?TCP/IP.

  interpreter 解释?br />  一个可选解码ƈ且执行代码中的每一句语句的模块。Java(TM)解释器解码ƈ执行为符合Java虚拟范的字节码。参见compiler, runtime system?/p>

  ISV
  Independent Software Vendor的羃?/p>

本篇文章来自Java中文|:http://javaweb.cc/other/english/2212.shtml

教程由JAVA中文|整理校对发?javaweb.cc)

       J2EE application
  M可配|的J2EE功能单元。可能是׃个或多个软g模块与一个J2EE应用E序配置描述W打包成.ear文g。J2EE应用E序通常设计成在多机环境下运行的分布式应用?
 
  J2EE product
  一个遵循J2EEq_规范的实现?

  J2EE Product Provider
  提供J2EE产品的生产商?

  J2EE server
  J2EE Product的运行时部分。一个J2EE提供Web?或EJB容器?

  JAE
  Java(TM) Application Environment的羃写。Java Development Kit (JDK(TM))的源代码?

  JAR Files (.jar)
  Java ARchive的羃写。一U把许多文g聚合C个文件的一U文件格式?

  JAR file format
  JAR是一U把许多文g聚合C个文件的q_无关一U文件格式。许多个用Java~写的applet以及它们所需要的lgQ?class文gQ图片,声音和其他资源文Ӟ能够被打包到一个JAR文g中,以便以后在单独一个HTTPh中就能够下蝲到客L。它同样支持文g压羃和数字签名?

  Java(TM)
  是Sun公司的商标,标识了一pd在独立的和网l化的环境中创徏q安全的q行E序的技术?/p>

  Java Application Environment (JAE)
  Java Development Kit (JDK(TM))的源代码?/p>

  Java(TM) 2 Platform, Standard Edition (J2SE platform)
  核心的Java技术^?/p>

  Java(TM) 2 Platform, Enterprise Edition (J2EE platform)
  一个用来开发和配置企业应用E序的环境。J2EEq_׃pd的服务,应用E序接口QAPIsQ和提供开发多U的Q基于Web的功能的协议l成?

  Java(TM) 2 SDK, Enterprise Edition
  Sun公司的对J2EEq_的一个实现。这个实现提供了一个可操作的J2EEq_的定义?/p>

  JavaBeans(TM)
  一个可UL的,q_无关的,可重用的lg模型?/p>

  Java Blend(TM)
  一个通过映射数据库数据到Java~程环境中的对象QObjectQ和映射对象到数据库使程序员能够化数据库应用开发的产品?/p>

  Java Card(TM) API
  一个和ISO 7816-4兼容的应用开发环境,集中在smart card上?/p>

  JavaCheck(TM)
  一个工P用来查一个应用程序或一个applet是否W合某个规范?/p>

  Java(TM) Compatibility Kit (JCK)
  一个测试包Q一l工P和其它的一些需求,用来查一个实现是否和Javaq_规范和Y件参考实现兼宏V?

  Java Database Connectivity (JDBC(TM))
  一个Javaq_和大量数据库q_之间互联的^台无关的工业标准。JDBC(TM)提供了调用的API来操作支持SQL语言的数据库?/p>

  Java Developer Connection(SM)
  一个ؓ个h开发者设计的服务Q提供在U训l,产品打折Q专题文章,错误信息和一些早期的版本兼容性信息?

  Java Development Kit (JDK(TM))
  一个Y件开发^収ͼ支持使用Java语言~写Applet或应用程序?/p>

  Java(TM) Enterprise API
  q个API使编写大型的Q可能在一个组l中或Internet上与其它应用E序׃n多媒体数据的商业或数据库应用E序变得单。在Java(TM)
Enterprise API家族中已l有四个APIs被设计出来?/p>

  Java(TM) Foundation Classes (JFC)
  一个扩展,把图形用h口加入到抽象H口工具集(AWTQ中?/p>

  Java(TM) IDL
  一个提供J2EEq_与CORBA交互能力和互联能力的技术。这些兼ҎJ2EE应用E序能够通过OMG IDL和IIOP调用q程|络上的操作?/p>

  Java(TM) Interface Definition Language (IDL)
  用Java~写的APIsQ提供标准化的与CORBAQCommon Object Request Broker ArchitectureQ的交互能力和互联能力?/p>

  Java(TM) Message Service (JMS)
  使用企业U消息系l的APIQ比如IBM MQ SeriesQTIBCO Reanezvous{?/p>

  Java Naming and Directory Interface(TM) (JNDI)
  一l用来提供多重命名和目录服务的APIs的集合?/p>

  JavaOS(TM)
  一个基于Java的操作系l,对各U计和用户q_q行了优化。JavaOS(TM)操作环境提供了一个运行时规范QJavaE序能够直接q行在硬件^C上而不需要宿L作系l?/p>

  Java(TM) Platform
  由Java~程语言Q一lAPIsQ类库,其它在开发,~译Q错误检查中要用到的E序Q和一个能够装载ƈ执行class文g的Java虚拟机组成?

  除此之外QJavaq_的目标是提供一l一致的兼容的实现。符合兼Ҏ规范的实现能够得到Sun公司的兼Ҏ标志?/p>

  Java 2是当前的一代Javaq_?br /> 


  Jini(TM) Technology
  一lJava APIsQ可能是M一个Java 2q_的可选包。Jini API使网l设备和服务变得透明Q不再需要用户去理pȝ或网l其正常工作?br />  Jini在目前是M一个Javaq_版本的一个可选Y件包?/p>

  JNDI
  Java Naming and Directory Interface(TM)的羃写,一l用来提供重命名和目录服务的APIs的集合?/p>

  JPEG
  Joint Photographic Experts Group的羃写?p个小l徏立的一个图象文件压~标准。它通过几乎察觉不出的图象质量的损失来实C巨大的图象压~比?/p>

  JRE
  Java(TM) runtime environment的羃写。一个Java Development Kit (JDK(TM))的子集,适合最l用户和希望重新发布q行环境的开发h员。Java runtime environment由Java虚拟机,Java核心cd支持文gl成?/p>

  Just-in-time (JIT) Compiler
  一个在Javaq行Ӟ把所有字节码转换为本C码的~译器。这样就会加速Java的执行,相对Java虚拟机的解释执行?/p>

  JVM
  参见: Java(TM) Virtual Machine (JVM)


本篇文章来自Java中文|:http://javaweb.cc/other/english/2213.shtml


教程由JAVA中文|整理校对发?javaweb.cc)

       lexical
  关于如何把源代码译成各U编译器能够识别的记?/p>

  literal
  整数QQҎQ字W的基本表示Ҏ。比如,字面?.0是一个双_ֺ点敎ͼ"a"是一个字W?/p>

  local variable
  一个块中可见的数据,但是对块外面的代码是不可见的。比如,M在一个方法中声明的变量是一个局部变量,不能在方法外面被使用?br /> 
  long
  Java语言的一个关键字Q用来定义一个longcd的变量?br />    

  member
  cȝ一个域或者方法,除非昑ּ指明Q否则一个member不是静态的?

  method
  cM定义的一个方法,参见instance method, class methodQ除非显式指明,否则一个method不是静态的?/p>

  module
  一个Y件单位,׃个或多个相同容器cd的J2EElg和一个相同类型的配置描述W组成。有三种modulecdQEJBQWebQ和Application Client。模块可以被配置成独立的单元或嵌入到应用E序中?/p>

  Mosaic
  一个提供简单图形界面,使用戯够方便的讉KInternet上的数据的程序。这些数据可能是单文Ӟ或者超文本文档。Mosaic是由NCSA的一个小l编写的?/p>

  multithreaded
  描述一个程序,它的代码被设计成拥有多个同时被执行的部分。参见thread?/p>

        object
  面向对象E序的主要的一个构造块。每一个对象是一个编E单元,由数据(instance methodsQ和功能Qinstance methodsQ组成,参见class?/p>

  object-oriented design
  一个Y件设计方法,通过cd对象为抽象和具体的对象的特点建模?/p>

  octal
  使用8作ؓ基的计数pȝ。用数?-7。在Java?q制数必d?前缀。参见hexadecimal?

  One
  Open Net Environment的羃写,由Sunl织Q主要工业参与商资助Q描qC一个易于理解的体系l构Q用来创建,~译和配|Web服务。ONE是^台无关的Q基于完全开攄标准。Sun ONE指代一个特定的由Sun和iPlanet提供的对q个体系l构的实现?/p>

  Optional Packages
  一个或多个APIs的集合,在Javaq_上,它们是可用的Qƈ且可能在兼容q_上也被支持?
  随着旉推移QOptional Packages可能因ؓ市场需要而变成必需的?/p>

  ORB
  Object Request Broker的羃写。一个函数库QCORBA对象能够定位另一个对象且和它通讯?/p>

  OTS
  Object Transaction Service的羃写,一l接口定义CORBA对象能够处理事务?/p>

  overloading
  在同一个作用域里面使用一个标识符指代多个对象。在Java语言中,你可以overloadҎQ但不能是变量和操作W?/p>

  overriding
  在子cM对在父类中定义的Ҏ提供一个不同的实现?br />  re-entrant enterprise bean
  一个enterprise beanQ能够被q发的,交叉的,或递归的调用,q且怺之间不干扰?/p>

  reference
  一个内Ҏ地址的数据元素?/p>

  remote interface
  enterprise bean两个接口中的一个。remote接口定义了能够被客户调用的商业方法?/p>

  remove method
  在home接口中定义的ҎQ客L可以调用它来删除一个enterprise bean?/p>

  resource adapter
  一个系l的Y仉动,被EJB容器和应用程序客L来连接到一个EIS。通常一个resource adapterL针对某一特定EIS的。它以函数库的Ş式提供,q行在用它的服务器或客户地址I间中。一个resource adapter插入C个容器中。应用程序组仉|容器,然后使用客户端APIQ由adapter提供的)或者由高层抽象生成的工h讉K下面的EIS。resource adapter和EJB容器配合提供与EISq接的下层机?- 事务Q安全,和连接池?/p>

  resource manager
  提供讉K一l共享对象的能力。一个recource manager参与一个被事务理器外部控制和调整的事务。一个resource manager通常和访问它的客戯行在不同的主Z和不同的地址I间中?/p>

  resource manager connection
  代表一个和资源理器的会话的对象?/p>

  resource manager connection factory
  一个用来创源管理器对象的对象?br />本篇文章来自Java中文|:http://javaweb.cc/other/english/2214.shtml

教程由JAVA中文|整理校对发?javaweb.cc)

       role (development)
  在开发和配置一个基于J2EE技术的应用E序的过E中某个对象起到的作用。role有:应用E序lg提供者,应用E序~译? 应用E序配置?br />, J2EEq_提供? EJB容器提供? EJB容器提供? Web容器提供? Web服务器提供?工具提供者和pȝ理员?/p>

  role (security)
  一个抽象的逻辑的用LQ由Application Assembler定义。当一个application被配|的时候,roles被映到安全标识Q比如负责h或者组Q在操作和环境中?/p>

  role mapping
  把由容器所识别的组和负责h和由配置描述W定义的安全角色联系h的一个过E。在lg被安装到服务器之前,安全角色必须被配制器映射?/p>

  rollback
  当一个事务中所有的Ҏ据库的更新被取消的一个点?/p>

  root
  在对象层ơ中的一个对象,所有对象都是从它承而来的,root对象在层ơ图中没有上层对象,参见hierarchy, class, package?/p>

  RPC
  Remote Procedure Call的羃写。通过向远E主机发送网l数据包执行Q看上去p普通的调用q程Q或Ҏ调用Q是一LQ?/p>

  runtime system
  一个Y件环境,其中能够q行为Java虚拟机编译的E序。runtime system包含了ؓ了装入用Java~写的程序,动态连接本地方法,内存理Q异常处理和实现一个Java虚拟机(可能是Java一个解释器Q所必须的代码。SAX
  Simple API for XML的羃写。一个ؓ讉KXML文档提供的事仉动的Q串行访问的机制?/p>

  Sandbox
  p多的pȝlgl成Q从作ؓ应用E序一部分q行的安全管理器Q到Java虚拟Z的和语言本n的安全措施。SandBox保证一个不可信ȝQ可能恶意攻ȝ应用E序不能讉Kpȝ资源?/p>

  scope
  一个特性标识,用来规定哪些地方标识W是可见的。Java环境中的大多数标识符拥有cL者局部的scope。实例变量和cd量有cȝscopeQ它们在cȝ外部或者子cM使用时必d它们前面加上一个类名前~Q对cd量和cL法)或者类实例名。所有其他的在方法内部定义的变量h局部scopeQ它们只能在闭的块中用?/p>

  Secure Socket Layer (SSL)
  一个ؓ了个人隐U在Web服务器和览器之间进行加密的协议?/p>

  security attributes
  一l和负责人相兌的属性。Security attributes能够和一个负责h相关联,通过J2EE产品提供商制定的认证协议?/p>

本篇文章来自Java中文|:http://javaweb.cc/other/english/2215.shtml


教程由JAVA中文|整理校对发?javaweb.cc)

       security constraint
  一个明的Ҏ来注释想要的对Web内容的保护。一个security constraint׃pdWeb资源Q一个认证限制和用户数据限制l成?/p>

  security context
  一个对象,装了跟安全有关的两个实体之间的׃n状态信息?/p>

  security permission
  由J2SE定义的J2EEq_用来表述应用lg供应商必遵循的~程限制的一个机制?/p>

  security permission set
  J2EE产品提供商ؓ每一个组件类型的执行所必须提供的安全允许的最集合?/p>

  security policy domain
  一个作用域Q其中安全策略被定义q且由安全管理员强制执行。一个security policy domain有以下的几个特征Q?br />   它有一l用P或者负责hQ?br />   它有一个很好定义的认证协议来认证用?br />   它可能有l的概念来简化安全策略的讄

  security technology domain
  一个作用域Q其中同L安全机制被用来强制执行一个安全策略。在单个technology domain中可以存在多个security policy domain?/p>

  server principal
  服务器在操作pȝ中执行的C?/p>

  servlet
  一U扩展Web服务器功能的JavaE序Q动态生成文档,q且使用使用h应答的方式和用户交互?br /> 
       stream
  Stream是一个简单的从发送着到接受者的数据字节。有两种基本的分c,所以java.io包包含两个抽象类QInputStream和OutputStreamQ?br /> 
  subarray
  一个在另一个数l中的数l?/p>

  subclass
  从某个类z出来的类Q可能是和一个或多个cM间的关系。参见superclass, supertype?

  subtype
  如果cdXl承或者实CcdYQ那么X是Y的一个subtype。参见supertype?

  superclass
  一个类Q某个类是从它派生而来的,可能是和一个或多个cM间的关系。参见subclass, subtype?/p>

  super
  Java语言的一个关键字Q用来访问父cȝcL员?/p>

  supertype
  一个类型的父类型是指它所实现的所有接口和l承的类型,参见subtype, superclass?

  switch
  Java语言的关键字Q用来计一个变量,在后面用来匹配由case语句指定的|以决定执行哪一l语句?/p>

  Swing Set
  一pd囑Ş用户接口GUIQ组件的代码名称Q能够在M支持Java虚拟机的本地q_上一致的q行。因为它们是完全用Java语言~写的,q些lg可能提供的功能比本地q_提供的等价功能更为强大。(和AWTҎQ?

  synchronized
  Java语言的关键字Q当它用来修C个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线E执行该D代码。(
 
  TCP/IP
  Transmission Control Protocol based on IP的羃写。这是一个Internet协议Q提供可靠的Z的从一个主机到另一个的数据传输。参见IP?

  Technology Compatibility Kit (TCK)
  一个测试包Q一l工P和其它必需的东西,用来证明一个特定的Sun的技术的实现是否和应用程序规范兼Ҏ者是否和Sun和Sun设计的参考实现兼宏V?/p>

  this
  Java语言的关键字Q用来代表它出现的类的一个实例。this可以用来讉Kcd量和cL法?br /> 
 

  UDDI
  Universal Description Discovery and Integration的羃写。UDDI提供了一个全局的,公共的,ZXML的,在线的商业注册,商业用户通过它可以注册ƈ宣传它们的Web服务。UDDI定义Internet版的白页和黄는话号码本?/p>

  Unicode
  ISO 10646定义?6位长的字W集。参见ASCII。Java环境中所有的源代码都是用Unicode~写的?

  URI
  Uniform Resource Identifier的羃写。一个用来标识抽象或物理资源的简z字W串。一个URI或者是一个URL或者是一个URN。URLs和URNs是具体的实存在的实体。URI是一个抽象的父类?/p>

  URL
  Uniform Resource Locator的羃写。一个用文本指代WWW|站上Q意数据的标准。一个URL通常是这L"protocol://host/localinfo"Qprotocol指明传输对象的时候用的协议Q比如HTTP或FTPQ,host指明在Internet上找CC机的名字Qlocalinfo是一个传递给q程L上协议处理器的字W串Q常常是一个文件名Q?/p>

  URL path
  通过一个HTTPh传递的URLQ来使用一个servlet。URL由Context Path + Servlet Path + PathInfol成Q其中被h的servlet是与Context Path相关联的servlet上下文的一部分。如果这个上下文是默认的上下文,以Web服务器的URL名字I间的基目录为根Q那么这个\径前~会是一个空字符丌Ӏ否则这个\径前~?开始,但是不是?l束。Servlet Path部分直接和激z这个请求的映射对应。这个\径以/字符开始。PathInfo是请求\径的一部分Q但不是Context Path或者Servlet Path的一部分?/p>

  URN
  Uniform Resource Name的羃写。唯一标识一个实体的标识W,但是不能l出实体的位|。系l可以先在本地寻找一个实体,在它试着在Web上找到该实体之前。它也允许Web位置改变Q然而这个实体却q是能够被找到?br /> 
  variable
  ׃个标识符命名的数据项。每一个variable有一U类型,比如一个整数或者一个对象,和一个作用域。参见class variable, instance variable, local variable?

  virtual machine
  一个抽象的计算讑֤规范Q可以用不同的Ҏ实现QY件的或者硬件的。你把程序编译成virtual machine的指令集和你把程序编译成微处理器指o集是十分怼的。Java(TM) virtual machine*由字节码指o集合Q一l寄存器Q一个堆栈,一个垃圾收集堆和一个存放方法的区域
本篇文章来自Java中文|:http://javaweb.cc/other/english/2216.shtml

教程由JAVA中文|整理校对发?javaweb.cc)

       vocabulary
  传统上,软gE序被编写,然后~译成直接和计算Z驱动微处理器工作的操作系l相关的机器码。Javaq_通过提供一个程序编写编译,然后能够通过|络传输q且在Q何由_兼容性的虚拟机的q_上运行的模型减轻了这U依赖型?/p>

  q个模型提供了额外的好处Q高安全性,卛_为程序可以被虚拟机验证一致性在通过|络传输之后Q也因ؓ虚拟行在安全?sandbox"的中Q能够阻止一些特定的破坏性的行ؓ?/p>

  软g开发h员已l投入Java语言的怀抱,因ؓ它减了~写E序和支持Y件代码的费用和时间。他们不再需要ؓ不同的操作系l和不同的微处理器重新编写功能相同的代码。正在配|应用程序的公司和组l喜ƢJavaQ因为它减少了购买和修改不同版本的应用程序光应各自|络环境中各U类型的计算机和服务器的费用?

  void
  Java语言的关键字Q用在Java语言的方法声明中说明q个Ҏ没有Mq回倹{?void"也可以用来表CZ句没有Q何功能的语句?/p>

  volatile
  Java语言的关键字Q用在变量的声明中表C个变量是被同时运行的几个U程异步修改的?br />  一个UNIX命oQ用它会{待所有的后台q程l束Qƈ且报告他们的l束状态?/p>

  Web application, distributable
  用J2EE技术编写的应用E序Q所以它可以被配|到一个分布运行在一台或多台L的多个Java虚拟Z的Web容器中。这U类型的应用E序的配|描q符使用可分布的元素?/p>

  Web component
  一个通过相应求提供服务的lgQ或者是一个Servlet或者是一个JSP面?/p>

  Web container
  实现J2EE体系l构中Weblg协议的容器。这个协议规定了一个Weblgq行时的环境Q包括安全,一致性,生命周期理Q事务,配置和其它的服务。一个提供和JSP和J2EEq_APIs界面相同服务的容器。一个Web container 由Web服务器或者J2EE服务器提供?/p>

  Web container, distributed
  一个Web容器Q能够运行一个标Cؓ分布式的Q在同一C机或不同L上的多个Java虚拟Zq行的Web应用E序?/p>

  Web server
  提供讉KInetrnetQIntranet或者Extranet服务的Y件。一个Web serverq行在Web站点上,提供对HTTP和其它协议的支持Qƈ且运行服务器端的E序Q比如CGI脚本或者servletsQ来实现一定的功能。在J2EE体系l构中,Web Server为Web容器提供服务。比如,一个Web容器通常依靠Web Server来处理HTTP消息。J2EEq_假设一个Web容器Lq行在同一个厂商提供的Web Server之上Q所以没有制定这两个实体之间的协议。一个Web Server可以q行一个或多个Web容器?/p>

 



]]>
javase_16(其它?http://www.aygfsteel.com/kudy/archive/2012/08/14/385828.html、小l?/dc:creator>、小l?/author>Tue, 14 Aug 2012 05:10:00 GMThttp://www.aygfsteel.com/kudy/archive/2012/08/14/385828.htmlhttp://www.aygfsteel.com/kudy/comments/385828.htmlhttp://www.aygfsteel.com/kudy/archive/2012/08/14/385828.html#Feedback0http://www.aygfsteel.com/kudy/comments/commentRss/385828.htmlhttp://www.aygfsteel.com/kudy/services/trackbacks/385828.html阅读全文

]]>
javase_15(Filecȝ应用)http://www.aygfsteel.com/kudy/archive/2012/08/11/385829.html、小l?/dc:creator>、小l?/author>Sat, 11 Aug 2012 14:48:00 GMThttp://www.aygfsteel.com/kudy/archive/2012/08/11/385829.htmlhttp://www.aygfsteel.com/kudy/comments/385829.htmlhttp://www.aygfsteel.com/kudy/archive/2012/08/11/385829.html#Feedback0http://www.aygfsteel.com/kudy/comments/commentRss/385829.htmlhttp://www.aygfsteel.com/kudy/services/trackbacks/385829.html阅读全文

]]>
javase_14(字节?http://www.aygfsteel.com/kudy/archive/2012/08/08/385830.html、小l?/dc:creator>、小l?/author>Wed, 08 Aug 2012 05:06:00 GMThttp://www.aygfsteel.com/kudy/archive/2012/08/08/385830.htmlhttp://www.aygfsteel.com/kudy/comments/385830.htmlhttp://www.aygfsteel.com/kudy/archive/2012/08/08/385830.html#Feedback0http://www.aygfsteel.com/kudy/comments/commentRss/385830.htmlhttp://www.aygfsteel.com/kudy/services/trackbacks/385830.html阅读全文

]]>
javase_13(字符?http://www.aygfsteel.com/kudy/archive/2012/08/08/385831.html、小l?/dc:creator>、小l?/author>Tue, 07 Aug 2012 17:40:00 GMThttp://www.aygfsteel.com/kudy/archive/2012/08/08/385831.htmlhttp://www.aygfsteel.com/kudy/comments/385831.htmlhttp://www.aygfsteel.com/kudy/archive/2012/08/08/385831.html#Feedback0http://www.aygfsteel.com/kudy/comments/commentRss/385831.htmlhttp://www.aygfsteel.com/kudy/services/trackbacks/385831.htmlIO(Input OutPut)?/strong>

IO用来处理设备之间的数据传输

JAVAҎ据的操作是通过的方式

JAVA用于操作的对象都在IO包中

按操作对象分ؓ两种: 字节?字符?/p>

按向分ؓ: 输入?输出?

其它的内容还是比较简单的,注意的是以下q几个自定义包装c?

实现1.

MyBufferedReader.class

 1 package com.javami.kudy.Code13;
 2 import java.io.IOException;
 3 import java.io.Reader;  //d字符的抽象c?/span>
 4 import java.io.IOException;
 5 /*
 6  * 自定义MyBufferedReader包装Reader,提供了一个缓冲区的功?提供了ReadLine功能.
 7  * 1.用一个次l合,拿到被包装的Reader对象
 8  * 2.定义一个字W数l作为缓冲区
 9  * 3.实现一个readҎ,填充~冲?从缓冲区那里q回一个字W?
10  * 4.定义一个readLineҎ,内部调用readҎ,循环d一?q行q回
11  * 5.定义一个closeҎ,关闭地底层所包装的流
12  */
13 public class MyBufferedReader  extends Reader{
14     private Reader r;
15     char[] buf = new char[1024];
16     int len =0;
17     int pos = 0;
18     public MyBufferedReader(Reader r)
19     {
20         this.r = r;
21     }
22     /*
23      * 实现read()Ҏ,实现~存的功?
24      * 分析:
25      * 1.当别人第一ơ调用该Ҏ的时,一ơ性的d充缓冲区
26      * 2.定义一个len变量C~冲区的可用字符的数?
27      * 3.数l的W一个元素返?
28      * 4.当别人第二次调用的时,数l的二个元素q回
29      * 5.每次q回元素 len --
30      * 6.当len为零?说明数组没有可用字符?那么q时候返回一?1
31      * 
32      * 思\:
33      * 1.定义两个成员变量,lenC可用字符数量,posC当前字符的角?
34      * 2.判断len是否?,如果为零要填充缓冲区.q且pos为零
35      * 3.判断len,如果?1,则返?1
36      * 4.pos位置的元素返?pos++
37      */
38     public int read() throws IOException
39     {
40         if(len ==0)
41         {
42             len = r.read(buf);
43             pos = 0;
44         }
45         if(len==-1)
46             return -1;
47         len--;
48         return buf[pos++];
49     }
50     
51     /*
52      * 实现readLineҎ,实现M行的功能,
53      * 1.循环调用自己的方法的readҎ,d字符
54      * 2.知道回R的字W?Ҏq?
55      */ 
56     public String readLine() throws IOException
57     {
58         StringBuilder sb = new StringBuilder();
59         int ch;
60         while((ch=read())!=-1)
61         {
62             if(ch=='\r')
63                 continue;
64             if(ch=='\n')
65                 break;
66             sb.append((char)ch);
67             if(ch==-1&&sb.length()==0)
68                 return null;
69         }
70         return sb.toString(); //转换成字W串
71     }
72     @Override
73     public void close() throws IOException {
74         r.close();
75     }
76 
77     @Override
78     public int read(char[] cbuf, int off, int len) throws IOException {
79         int count=0;
80         for(int i=0; i<off+len; i++)
81         {
82             int ch = read();
83             if(ch==-1)
84                 break;
85             count++;
86             buf[i] = (char)ch;
87         }
88         return count;
89     }
90 
91     
92     
93 }

MyBufferedWriter.class  q个主要是写?/p>

 1 package com.javami.kudy.Code13;
 2 import java.io.IOException;
 3 import java.io.Writer;
 4 
 5 public class MyBufferedWriter  extends Writer{
 6     
 7     private Writer w;
 8     private char[] buf = new char[1024];
 9     private int pos = 0;
10     
11     public MyBufferedWriter(Writer w)
12     {
13         this.w = w;
14     }
15     /*
16      * 定义WriterҎ,实现写一个字W?实现~存的功?
17      * 1.定义一个变量posC当前的写入位|?
18      * 2.每次调用都用这个方法都会传入一个字W?字W缓存到数组pos位置里面?
19      * 3.pos++
20      * 4.每次上来判?如果pos =1024,h~冲?,pos = 0
21      */
22     public void Writer(int ch)throws IOException
23     {
24         if(pos == 1024)
25         {
26             flush(); //h一下缓冲区.q且初始化ؓ?/span>
27             pos = 0;
28         }
29         buf[pos++] = (char)ch;
30     }
31     @Override
32     public void close() throws IOException {
33         flush();
34         w.close();
35     }
36 
37     @Override
38     public void flush() throws IOException { 
39         w.write(buf,0,pos); //把buf0-pos位置的内容写入进?/span>
40     }
41     public void writer(String data)throws IOException
42     {
43         char[] chars = data.toCharArray(); //转换成字W?/span>
44         for(char c : chars)
45             write(c);
46     }
47     public void newline()throws IOException
48     {
49         write("\r\n"); //所谓的换行是一?/span>
50     }
51     @Override
52     public void write(char[] cbuf, int off, int len) throws IOException {
53         for(int i=0; i<off+len; i++)
54         {
55             w.write(buf[i]);
56         }
57         
58     }
59 
60 }

׃每次都要关闭啊~~无奈.只好使用一个类来实现它?/p>

CloseUtil.class

 1 package com.javami.kudy.Code13;
 2 import java.io.IOException;
 3 import java.io.Reader;
 4 import java.io.Writer;
 5 public class CloseUtil {
 6     private CloseUtil(){}
 7     public static void close(Reader r,Writer w)throws IOException
 8     {
 9         try
10         {
11             if(r!=null)
12                 r.close();
13         }
14         finally
15         {
16             if(w!=null)
17             w.close();
18         }
19     }
20 }

一个简单的试c?

 1 package com.javami.kudy.Code13;
 2 import java.io.FileReader;
 3 import java.io.FileWriter;
 4 import java.io.IOException;
 5 
 6 public abstract class BufferedTest {
 7 
 8     /**
 9      * @param args
10      */
11     public static void main(String[] args)
12     {
13         MyBufferedReader mr = null;
14         MyBufferedWriter mw = null;
15         try
16         {
17             mr = new MyBufferedReader(new FileReader("src/a.txt"));
18             mw = new MyBufferedWriter(new FileWriter("src/b.txt"));
19             int len;
20             while((len=mr.read())!=-1)
21             {
22                 mw.Writer(len);
23             }
24         }
25         catch(IOException e)
26         {
27             e.printStackTrace();
28         }
29         finally
30         {
31             try
32             {
33                 CloseUtil.close(mr, mw);
34             }
35             catch(IOException e)
36             {
37         }
38         }
39     }
40 }

BufferedReader ?BufferedWriter 的存储图:

以上q几个都是比较难理解?.~~

 

加a?.

 



]]>
javase_12(集合+旉对象)http://www.aygfsteel.com/kudy/archive/2012/08/07/385832.html、小l?/dc:creator>、小l?/author>Mon, 06 Aug 2012 17:10:00 GMThttp://www.aygfsteel.com/kudy/archive/2012/08/07/385832.htmlhttp://www.aygfsteel.com/kudy/comments/385832.htmlhttp://www.aygfsteel.com/kudy/archive/2012/08/07/385832.html#Feedback0http://www.aygfsteel.com/kudy/comments/commentRss/385832.htmlhttp://www.aygfsteel.com/kudy/services/trackbacks/385832.htmlMap集合


1.Map存储了一pd键值的映射关系
2.Map集合需要保证键的唯一?br />3.可以通过键获取到?反之则不?br />4.Map集合存储元素使用put(key,valus)Ҏ.
5.遍历Map集合的两U遍历方?br /> a)通过KeySetҎq回由键l成的集?q代集合里面的元素拿到所有的键再通过getҎҎ键来获取?br /> b)通过entrySetҎq回键所映射的关pȝ成的集合,q代该集合就拿到一个键值映的关系,再通过getKey获取到键,再通过getValue()Ҏ获取到?/p>


HashMap
U程不安?存储速度?允许存放null?null?br /> 通过HashSet保持键的唯一?/p>

Hashtable
U程安全,存储速度?不允许存放null键与null?/p>

TreeMap
通过二叉树的原理保证了键的唯一?br /> 寚wq行了排?排序原理与SetMap相同.
(如果惌使用q个Ҏ,必须要冲构造方法里面重写Comparator 或者从对象所属的cȝ承Comparator实现q个接口)

Properties
Hashtable的子c?所以是U程安全?
用于d配置文g,一般配|项{号两边都是String,所以集合中的两个列保存的都是Stringcd的数?
q个集合中只能存String,所以不能用泛?


/*JavaAPIȝ:application programming interface应用E序~程接口 sun公司提供l我们用的程?br />一、String、StringBuffer、StringBuilder
1、StringcL字符串常?br />2、String池:String s = "abc" 和String s = new String("abc")的区?br />3、Stringcȝ常用ҎQcharAt、indexOf、toCharArray、substring、split、compareTo、equals
4、StringBufferQ字W串容器Q长度可变,一般用于字W串的增减删的操作。reverseҎ反向
String s = "abc"; s = s + "xxx";//String长度不可变,因ؓ是常?br />5、StringBuilderU程不安全,StringBufferU程安全

二、集合类
|-IterableQ实现增强for循环
|--Collection:单列Q按照一U或多种规则来存储一pd元素
|---List:有序Q允许有重复元素
|----AbstractListQ抽象类Q实CiteratorҎ?br />|-----ArrayListQ数l实玎ͼ查找块,增删?br />|-----VectorQ和ArrayList一P只是U程安全
|-----LinkedListQ链表实玎ͼ查找慢,增删?br />|---SetQ无序,不允许有重复元素
|----HashSetQ通过哈希法保证元素不重复,对象要正重写equals和hashCodeҎ
|----HashTableQ同上,但是U程安全
|----TreeSetQ通过树状l构保证元素不重复,两种方式
1、按照元素的自然序q行排序Q前提是元素具备比较功能Q实CComparable接口的compareToҎ
2、在构造TreeSet实例Ӟ传入一个比较器Q实现Comparator接口的compareҎ

|-MapQ保存的是键值对应关p,其中键不允许有重复,可以通过keySetҎ拿到一个包含所有键的Set
再调用get(key)Ҏ通过键拿到value
|--HashMap:通过HashSet的原理保证键不重复?br />|--TreeMapQ通过TreeSet的原理保证键不重?br />|--PropertiesQ用于读取配|文Ӟ不需要声明泛型,因ؓ键和值都只能为Stringcd?br /> listҎ集合中的配|项输出C个打印流
loadҎ一个输入流中的配置存到集合中
Jdk1.5新特性泛型,减少集合存元素时错误发生的几率?br />Jdk1.5出现IterableQؓ了实现增强for循环 for(元素cd 变量Q集合或数组)

工具c:
CollectionsQ集合工LQsort、binarySearch、reverse
ArraysQ数l工LQsort。。。?/p>


三、包装类
1、Integer x = 0;x = x + 1; 装箱-拆箱-装箱Qjdk1.5Q?br />2、Interger.parseInt(String)字W串转ؓint?/p>

四、Systemc?br />1、Systemcȝ常用ҎQgc()垃圾回收、exit(0)l止E序、currentTimeMillis()获得?970q??日零?br /> 以来的毫U数、getPropertyҎ获得pȝ属性?br />2、两个静态成员变量:in和out
inQ标准输入流QInputStreamReadercd
outQ标准打印流QPrintStreamcd

五、Runtimec?br />表示q行ӞexecҎQ在后台新开启一个窗口运行命令,是当前窗口的子窗口,l承所有窗口属?/p>

六、日期对?br />1、DateQ大部分Ҏ已过Ӟ用new Date()创徏日期对象表示当前旉
2、DateFormatQ将日期格式化,抽象c?br /> DateFormat df = DateFormat.getInstance(); String dateStr = df.format(new Date);
3、Calendar对象Q?br /> Calendar c = Calendar.getInstance();
可以类中定义的帔R当做参数传入get和setҎ来获得和讄旉?br />addҎQ增加时间|具体增加哪一,q传入的常量,调用完此ҎQ时间对象就被改变了?br />*/

面试题目ȝ:

一、请说说ArrayList、Vector和LinkedList的区?br />q三者都是单列集合Collection下List集合的实现类Q所以他们的共同点,元素有序Q允讔R复元?br />不同点:
ArrayList和Vector底层都是数组实现Q这L实现注定查找快、增删慢
ArrayList和Vector的区别在于线E安全问题,Vector支持U程同步Q是U程讉K安全的,而ArrayListU程不安?br />LinkedList底层是链表结构,查找元素慢、增删元素速度快,U程不安全?/p>

二、请说说HashSet原理Qƈ写程序证?br />HashSet在存元素Ӟ会调用对象的hashCodeҎ计算出存储位|,然后和该位置上所有的元素q行equals比较Q?br />如果该位|没有其他元素或者比较的l果都ؓfalse存q去Q否则就不存?br />q样的原理注定了元素是按照哈希值来扑֭储位|,所有无序,而且可以保证无重复元?br />我们在往HashSet集合存储元素Ӟ对象应该正确重写ObjectcȝhashCode和equalsҎ
正因L原理QHashSet集合是非帔R效的?br />比如Q要查找集合中是否包含某个对象,首先计算对象的hashCodeQ折出位置P到该位置上去扑ְ可以了,而不用和所有的元素都比较一?/p>

三、Collection和Collections的区?br />两者没有Q何关p?br />Collection是单列集合的父接口,JDK1.5中定义了Iterable接口作ؓCollection父类Qؓ了实现增强for循环
Collections是工LQ提供了关于集合的常用操作,例如Q排序、二分法查找、反转元素等

 

  1 Collections 的应?
  2 
  3 1.
  4 package com.javami.kudyMap;
  5 import java.util.ArrayList;
  6 import java.util.Collections;
  7 import java.util.Comparator;
  8 import java.util.List;
  9 public class ColletionsTest {
 10     public static void main(String[]args)
 11     {
 12         /*
 13          * Collections工具c?提供关于集合的常用操?
 14          */
 15         ArrayList<String> al = new ArrayList<String>();
 16         al.add("ab");
 17         al.add("aadc");
 18         al.add("aaa");
 19         al.add("hgdfakjg");
 20         al.add("xhyns");
 21         al.add("yyiouop");
 22         al.add("qq");
 23         al.add("zdff");
 24         
 25         /*
 26         for(String s : al)
 27             System.out.println(s+" ");
 28         */
 29         
 30         /*Collections.sort(al);  //list是一个接? 父类型的应用可以指向子类型的对象..
 31         for(String s : al)
 32             System.out.println(s+" ");*/
 33         Collections.sort(al, new StringComparator());
 34         /*
 35          * W一U方?: 通过比较器来Ҏ排序   可以在构造方法里?
 36          * 或者在对象里面实现q个比较?当new q个实现接口.它会自动调用比较器的Ҏq行比较
 37         */
 38         System.out.println("通过StringComparator()Ҏ已经排序?----");
 39         for(String s : al)
 40             System.out.print(s+" ");
 41         /*
 42          * 使用了API里面的方?
 43         //binarySearch(List<? extends T> list, T key, Comparator<? super T> c) 
 44         int pos = Collections.binarySearch(al,"aaa",new StringComparator());
 45         System.out.println(pos);//因ؓ我们需要通过比较才可?
 46         */
 47         int pos = MyCollections.binarySearch(al,"dasdas",new StringComparator());
 48         System.out.println(pos);
 49     }
 50     
 51 }
 52 
 53 /*
 54  * 比较? 先比? 长短,再比较顺?
 55  */
 56 class StringComparator implements Comparator<String>
 57 {
 58 
 59     @Override
 60     public int compare(String s1, String s2)
 61     {
 62         //首先比较长度,再按照字兔R?/span>
 63         int num = s1.length()- s2.length();
 64         if(num !=0)
 65             return num;
 66         return s1.compareTo(s2);
 67         
 68     }
 69     
 70 }
 71 
 72 //实现一个二分查?/span>
 73 class MyCollections
 74 {
 75     private MyCollections(){}//U有?/span>
 76     public static<T> int binarySearch(List<T> l,T key,Comparator<T> com)
 77     {
 78         int min = 0;
 79         int max = l.size()-1;
 80         int mid = 0;
 81         while(max >=min)
 82         {
 83             mid = (min+max) / 2;
 84             //判断比较器里面有没有!
 85             if(com.compare(key,l.get(mid))>0)//扑ֈ集合位置的?/span>
 86                 min = mid+1;
 87             else if(com.compare(key, l.get(mid))<0)
 88                 max = mid-1;
 89             else
 90                 return mid;
 91         }
 92         
 93         //判断mid位置的元素和key的大?/span>
 94         if(com.compare(key, l.get(mid))>0)
 95             return -mid-2;
 96         return -mid-1;
 97             
 98     }
 99 }
100 
101 2.必须要通过比较器比较才能实C分查?
102 
103 package com.javami.kudyAPI;
104 import java.util.ArrayList;
105 import java.util.Collections;
106 import java.util.Comparator;
107 
108 public class Test {
109     public static void main(String[]args)
110     {
111         ArrayList<String> al = new ArrayList<String>();
112         al.add("as");
113         al.add("scx");
114         al.add("dsad");
115         al.add("hellsda");
116         al.add("dsazxc");
117         al.add("dascxxc");
118         //在通过二分查找之前我们要经q排?
119         System.out.println("q没有排序之?);
120         for(String s : al)
121             System.out.print(s+" ");
122         
123         
124         //W二?: 当你调用二分查找之后.会调用比较器q行比较.是经q排序后的才可以q行二分查找
125         //比较器一定要传过?/span>
126         int num = Collections.binarySearch(al, "dsaas",new Comparator<String>(){
127 
128             @Override
129             public int compare(String s1, String s2) {
130                 int num = s1.length() - s2.length();//比较长度
131                 if(num != 0)
132                     return num;
133                 return s1.compareTo(s2); //按字兔R序排
134             }
135             
136         });
137         System.out.println(num+1);
138     }
139 }
140 
141 
142 日期的应?
143 
144 package com.javami.kudyAPI;
145 import java.util.Calendar;
146 public class CalendarTest {
147 
148     /**
149      * @param args
150      */
151 
152     public static void main(String[] args)
153     {
154         Calendar calendar = Calendar.getInstance();
155         printCalendar(calendar);
156         int nums = getDayNum(2012);
157         System.out.println(nums);
158         
159         //----------------
160         Calendar startDay = Calendar.getInstance();//获取当前的日?/span>
161         Calendar finishDay = getFinishDay(startDay);
162         int num = finishDay.get(Calendar.DAY_OF_YEAR) - calendar.get(Calendar.DAY_OF_YEAR);
163         System.out.println(num+"天数");
164     }
165     
166     //计算出某q的2月䆾有多天
167     public static int getDayNum(int year)
168     {
169         //1.获取一个日?/span>
170         Calendar calendar = Calendar.getInstance();
171         
172         /*
173          * set(int year, int month, int date) 
174           讄日历字段 YEAR、MONTH ?DAY_OF_MONTH 的倹{?
175          */
176         calendar.set(year,2,1); //2月䆾其实是中国的三?
177         //日历字段  DAY_OF_YEAR获取到年中的月䆾  , -1  其实是2月䆾
178         calendar.add(Calendar.DAY_OF_YEAR,-1);
179         return calendar.get(Calendar.DAY_OF_MONTH); //获取C月䆾的天?/span>
180     }
181     
182     //一个项目做100天,周末休息Q五一和十一各休息一天,今天开始做Q哪天完?
183     //一个项目做100天,周末休息Q五一和十一各休息一天,今天开始做Q哪天完?/span>
184     public static Calendar getFinishDay(Calendar c) {
185         for(int i=0; i<100; i++) {
186             
187             //如果是星期六或者星期天(get ?set 的字D|字,指示一个星期中的某天?
188             if(c.get(Calendar.DAY_OF_WEEK)==1||c.get(Calendar.DAY_OF_WEEK)==7)
189                 i--;
190             //(get ?set 的字D|字,指示一个月中的某天?
191             else if(c.get(c.DAY_OF_MONTH)==1&&(c.get(c.MONTH)==4||c.get(c.MONTH)==9))
192                 i--;
193             c.add(Calendar.DAY_OF_YEAR, 1);
194         }
195         return c;
196     }
197     //代表是一个时?/span>
198     public static void printCalendar(Calendar calendar)
199     {
200         int year = calendar.get(calendar.YEAR); //q?/span>
201         int month = calendar.get(calendar.MONTH); //?/span>
202         int day = calendar.get(calendar.WEEK_OF_MONTH);//?/span>
203         int week = calendar.get(calendar.DAY_OF_WEEK);//星期
204         int hour = calendar.get(calendar.HOUR_OF_DAY); //
205         int minute = calendar.get(calendar.MINUTE);//?/span>
206             
207         String StringWeek = null;
208         switch(week)
209         {
210         
211             case 1:
212                     StringWeek = "星期?;
213                     break;
214             case 2:
215                     StringWeek = "星期一";
216                     break;
217             case 3:
218                     StringWeek = "星期?;
219                     break;
220             case 4:
221                     StringWeek = "星期?;
222                     break;
223             case 5:
224                     StringWeek = "星期?;
225                     break;
226             case 6:
227                     StringWeek = "星期?;
228                     break;
229             case 7:
230                     StringWeek = "星期?;
231                     break;
232         }
233         //q接成字W串
234         String str = ""+year+"-"+(month+1)+"-"+day+"-"+week+"-"+hour+"-"+minute;
235         System.out.println(str);
236     }
237 
238 
239 }


]]>
javase_11(集合的理?http://www.aygfsteel.com/kudy/archive/2012/08/07/385833.html、小l?/dc:creator>、小l?/author>Mon, 06 Aug 2012 17:09:00 GMThttp://www.aygfsteel.com/kudy/archive/2012/08/07/385833.htmlhttp://www.aygfsteel.com/kudy/comments/385833.htmlhttp://www.aygfsteel.com/kudy/archive/2012/08/07/385833.html#Feedback0http://www.aygfsteel.com/kudy/comments/commentRss/385833.htmlhttp://www.aygfsteel.com/kudy/services/trackbacks/385833.html
集合c:

Z么用集合类?

在面向对象的~程思想中,都是以对象的形式对事物进行描q的,Z保证对象的生命周期,我们需要持有对?br />Q什么叫做持有对象呢?Person p = new Person()Q?/p>

数组和集合类的区?

1.数组和集合类都是容器Q都能存储对?br />2.集合cM点就是长度可?而数l一旦定?长度是不能修改的.


集合的特点:

集合cd用于存储对象.
集合cȝ长度可变
一个集合可以存储多U类型的对象..

Collection 接口Q?/span>
1.一个独立的元素的序列,q些元素从一条或多条规则
2.collection接口下分为list集合和Set集合
3.list集合的特Ҏ元素有序Q可以允许有重复的元?br />4.set集合的特Ҏ元素无序Q不允许有重复的元素
↓↓
ListQ子接口Q?/span>
↓↓
ArrayList(实现c?
1.底层数组实现Q查扑ֿQ增删慢
2.U程不安?br />----------------------------------
VectorQ实现类Q?/span>
1.与ArrayList基本一?br />2.U程安全
----------------------------------
LinkedList(实现c?
1.底层是链表的实现
2.增删快,查找?/p>


{
List集合元素存取Ҏ一?br />使用add()Ҏ增加元素
׃List集合有序Q可以用get()Ҏ获取元素
元素的P?Iterator)
通过集合对象的iterator()Ҏ获得q代器Iterator
通过Iteratorq代器的hasNext()Ҏ判断是否存在下一个元?br />通过Iteratorq代器的next()Ҏ获取下一个元?br />元素的P?Enumeration)
q代Vector集合中的元素可以使用Enumeration
通过Enumeration的hasNextElements()Ҏ判断是否q有元素
通过Enumeration的nextElement()Ҏq回下一个元?br />}


↓↓
SetQ子接口Q?/span>
↓↓
Set集合无须Q不允许有重复的元素
1.set集合通过存入对象的equalsҎ来保证集合中没有重复的元?/p>

HashSetQ实现类Q?br />HashSet是set的子c,因而没有重复元?br />底层使用了哈希算法保证没有重复元?br />存储对象Ӟ先调用对象的HashSetQ)ҎQ找到存储位|,再和当前的存储位|上已经存在的元素通过equals()Ҏq行比较Q如果返回falseQ才能进行存?br />往HashSet集合里存储的对象必须是重写HahCode 和equals()Ҏ?/p>

TreeSetQ实现类Q?br />TreeSet集合通过二叉树算法保证无重复元素Qƈ对元素进行排?br />W一U方? 如果对象实现了Comparable接口Q就可以存入TreeSet集合 因ؓ它会自动的去调用里面的一个比较方?所以在Person里面重写
W二U方? 如果对象没有实现Comparable接口Q在创徏TreeSet对象Ӟ需要给构造函数扔q一个比较器Q实现Comparator接口 .(必须要在匿名内部c重?或者承一个类来重?

----------------------------------

Map接口Q?/span>
1.一l成对的“键值对”对象Q允许根据键来查扑ր?br />2.Map集合的健g允许有重复的Q所以Map所有的键都构成了一个Set集合

Iterable接口Q?br />1.JDK1.5新定义的接口作ؓCollection的父接口
2.主要是实现了增强for循环

 

jdk1.5的新特征Q?/span>

泛型:
׃集合可以存储不同数据cd的对象,所以取元素(地址)时会Dcd转换错误
jdk1.5新增加了泛型Qؓ了减操作集合的出错?br />例如Q?ArrayList<Person> arraylist = new ArrayList<Person>();
比喻Q?我在每一个挂了一个牌?只能是Person 使用.做了一个限?.

使用泛型的好处:
1.提高的代码的安全?br /> 2.讲运行期间的问题转到了编译期间的问题Q你懂的~~Q?br /> 3.省v了类型{换的ȝ
4.泛型cȝ出现优化了程序设?/p>

增强for循环Q?/span>
新接口Iterable中定义了增强for循环
可以通过增强for循环Ҏl和集合q行遍历
在P代集合元素时Q需要定义了泛型才能使用for循环

可变参数Q?/span>

有的时候在设计Ҏ时无法确定将来别Z传入的参C?br /> JDK1.5增加了新Ҏ可变参敎ͼ在函C只声明参数类型,不规定个?br /> Ҏ接受的参数实际上是一个数l,可以在方法中遍历数组
可变参数只能被定义ؓ函数的最后一个Ş?br /> 语法格式Q?q回?函数?参数cd… 形参)

 

 1 package com.javami.kudy.javaapin.StringStudy;
 2 
 3 public class Test {
 4         public static void main(String[]args)
 5         {
 6             show(33,45,7657,332,11,5465);
 7         }
 8         
 9         public static void show(int ... i)
10         {
11             for(int num : i)
12                 System.out.println(num);
13         }
14 }


]]>
javase_10(StringcL常操?http://www.aygfsteel.com/kudy/archive/2012/08/07/385834.html、小l?/dc:creator>、小l?/author>Mon, 06 Aug 2012 17:07:00 GMThttp://www.aygfsteel.com/kudy/archive/2012/08/07/385834.htmlhttp://www.aygfsteel.com/kudy/comments/385834.htmlhttp://www.aygfsteel.com/kudy/archive/2012/08/07/385834.html#Feedback0http://www.aygfsteel.com/kudy/comments/commentRss/385834.htmlhttp://www.aygfsteel.com/kudy/services/trackbacks/385834.htmlW一:

package com.javami.kudy.javaapi1.StringStudy;

public class StringDemo {
    /*面试题:
     * 1.Stirng s = "abc" String s = new String("abc"); //有什么区?
     * 2.String s = new String("abc"); 创徏了几个对?2?池里没有)??池里有了)Q?
     * 3.String s = "a" + "b" + "c" + "d"; 创徏了几个对象? 创徏?个对?
     * 4.String s1 = "a"; String s2 = "b"; String s3 = s1 + s2;  s3=="ab"?
     */
    
    public static void main(String[]args)
    {
        /*
         * 1.String?׃字符串操作很频繁.java针对String对象提供了缓冲池
         * s1首先会在~冲池里面看一下有没有"abc" 如果没有?那么把对象创建的引用q回ls1
         * 当s2开始执?会检查缓冲池里面有没?如果有的.直接把对象的地址q回ls2 .所以是相等??
        String s1 = "abc";
        String s2 = "abc";
        System.out.println(s1 == s2);
        */
        
        /*
        String s1 = "abc";
        String s2 = new String(s1); 
        outcome Q?false
        s2在堆内存中创Z一个对?把地址q回来~),q且在堆内存里面的缓冲池里面创徏一?abc"(q个是对象里面的一个拷贝副?
        做java的日常维?所以那么这两个地址一比较.׃不相{?.
        */
        
        /*
        String s1 = "a"+"b"+"c";
        String s2 ="abc";
        outCome = "true";
        因ؓjava~译器有个合q已知量的功?在编译阶D?a"+"b"+"c" 合ƈ?abc"q且保存在缓冲池里面
        所以s2在检缓冲池里面.到已经有了.直接把对象的引用所q回?那么证明了s1  s2 是同一个地址/所以比较出来ؓtrue
        */
        
        /*
        String s1 = new String("abc");
        String s2 = new String("abc");
        q两个里面创Z多少个对象呢?
        解答Q? 首先会在堆内存中创徏一个对?在检池里面有没?没有也在了缓冲池里面创徏了一?做日常的l护
        s2也会在堆内存中创Z个对?q时候检到池里面已l有?所以就不再创徏/
        说百了也是3?.
        一般面试简单的q接说Q?个就可以.
        */
        
        /*
         * String 是一个常?是不能改变的?
         * 内部实现Q?
         * StringBuilder sb = new StringBuilder(s1);
         * sb.append(s2);
         * s3 = sb.toString(); //转换回字W串
         * q回调用Ҏ的都是创Z个对象的
         * 
         */
        String s1 = "a";
        String s2 = "b";
        String s3 = s1 + s2;
        System.out.println(s3=="ab"); //直接q回一个flase
        
    }

}

W二:

package com.javami.kudy.javaapi1.StringStudy;

import java.io.UnsupportedEncodingException;

public class DecodeTest {
    
    /*
     * 解码Q?用错误的码再变回?然后用正的~码方式可?
     * ~码错误Q?没办?仙也救不了
     */
    public static void main(String[]args) throws UnsupportedEncodingException
    {
        String str1 = "中国?;  //使用gb2312~码
        // 使用q_的默认字W集此 String ~码?byte 序列Qƈ结果存储到一个新?byte 数组中?/span>
        byte[] newbyte = str1.getBytes();
        
        String str2 = new String(newbyte);
        System.out.println(str2);
        
        
        String str3 = new String(newbyte,"iso-8859-1");
        //System.out.println(str3);~码的信息出?/span>
        newbyte = str3.getBytes("iso-8859-1");    
        String str4 = new String(newbyte);
        System.out.println(str4);
        
        byte[]new1 = str1.getBytes("iso-8859-1");
        //一开始编码的信息出?因ؓ我的计算机根本就没有q个~码
        String s6 = new String(new1);
        new1 = s6.getBytes("iso-8859-1");
        String st7 = new String(new1);
        System.out.println(st7);
    }
}

W三:

package com.javami.kudy.javaapi1.StringStudy;

public class StringTest {
    /*String Z么要重写toString()Ҏ?
        解答Q因为在String如果不重写Object的toStringҎ.那么直接复用父类的方?打印出的是对?
        q显然不是String惌得到的结?
     */
        public static void main(String[]args) 
        {
            String s1 = "kudy";
            System.out.println(s1.charAt(3)); //索引是从零开始\
            String s2 ="abcde";
            String s3 = "aBcddddd";
            System.out.println(s2.compareToIgnoreCase(s3));
            
            String s4 = "abc";
            String s5 = "def";
            System.out.println((s4.concat(s5)).toString());
            
            boolean is = s4.contains(s5);
            System.out.println(is);
            
            String fileName = "Demo.jdk";
            if(fileName.endsWith(".java"))
                    System.out.println("您是java文g");
            
            String s6 = "cnabcdbvklabcjdhfabcdhla";
            int newint = s6.indexOf("abc",0);  //注意Q烦引是从零开?/span>
            System.out.println(newint);
            
            String s7 = "abc";
            String s8 = new String("abc");
            s8.intern();
            System.out.println(s7 == s8);
            
            String s9 = "cascascacvdfdjkgksd";
            int num = s9.lastIndexOf("k",s9.length()-1);
            System.out.println(num);
            
            String s10 = "abc";
            String s11 = s10.replace("abc","***");
            System.out.println(s11);
            
            String s12 = "hello.java";
            String s13 = s12.replace("java","jdk" );
            System.out.println(s13);
            
            
            /*
             * 把有逗号的内容去掉?
             */
            String s14 = "ab,cd,ef";
            String [] s15 = s14.split(",");
            for(String num1 : s15)
                    System.out.print(num1);
            
            String s16 = "abcbsbdasdas";
            char[] newchar = s16.toCharArray();
            for(char num2 : newchar)
                    System.out.print(num2);
            System.out.println();
            
            /*
             * 但注意中间的是不能去掉的~~
             */
            String s17 = "   abc      def     ";
            String s18 = s17.trim();
            System.out.println(s18);
        }
}

W四:

  1 package com.javami.kudy.javaapi1.StringStudy;
  2 
  3 import java.io.IOException;
  4 
  5 public class StringUtil {
  6     private StringUtil(){} //U有?/span>
  7     
  8     /* 查找子字W串在字W串中出现的位置 例:“ab”?habjklabljhlabhjdjfla"出现的位|ؓQ? 6  12 
  9      * 思\Q?
 10      * 1.定义一个StringBuilder容器Q用于存储位|,定义一个pos变量C出现的位|,初始gؓ0
 11      * 2.定义一个while循环Q查扑֭串出现的位置
 12      * 3.调用indexOfҎQ从起始位置开始查扑և子串首次出现的位|?
 13      * 4.如果pos?1Q说明没扑ֈQ应该结束@?
 14      * 5.位|存入StringBuilder容器Q再加一个逗号分隔
 15      * 6.从找到的位置加上子串的长度作为新的v始位|,
 16      * 7.循环l束Q将StringBuffer转ؓString字符Ԍ调用splitҎ以逗号q行分隔Q获得了String数组
 17      * 8.准备一个新的int数组Q长度和String数组一P遍历String数组Q将每个元素转ؓint存入int数组
 18      */
 19     public static int[]findIndexOfSubstr(String str, String substr)
 20     {
 21         StringBuilder sb = new StringBuilder();
 22         int pos = 0;
 23         while(true)
 24         {
 25              pos = str.indexOf(substr,pos);
 26              if(pos ==-1)
 27                  break;
 28              sb.append(pos+",");
 29              pos+=substr.length(); //pos假设找ab 扑ֈ1 + 2 {于?刚好从第三个开始找~
 30         }
 31         if(sb.length() == 0) //容器什么都没有Q?/span>
 32             return null;  //一个都找不?/span>
 33         String s = sb.toString(); //转换成字W串形式
 34         String[] parts = s.split(",");
 35         int[] arr = new int[parts.length];
 36         for(int i=0; i<parts.length; i++)
 37         {
 38             arr[i] = Integer.parseInt(parts[i]);
 39         }
 40         return arr;
 41     }
 42     
 43     /*
 44      * 设计一个方法,d键盘输入的一行(只支持英文字母)
 45      * 提示QSystem.in.read()d键盘上的一个字W?
 46      * 思\Q?
 47      * 1.定义一个容器StringBuilder容器
 48      * 2.定义一个while循环,循环d键盘.
 49      * 3.如果d回R或者\n p出@?
 50      * 4.存入StringBuilfer容器?
 51      * 5.循环l束,q回一个toString转换为字W串
 52      */
 53         public static String readLine() throws IOException
 54         {
 55             StringBuilder sb = new StringBuilder();
 56             while(true)
 57             {
 58                 int ch = System.in.read();
 59                 if(ch == '\r')  //如果回R 跛_?/span>
 60                     continue;
 61                 if(ch == '\n')  //{上面的执行完毕.再来
 62                     break;
 63                 sb.append((char)ch);
 64             }
 65             return sb.toString(); //转换成字W串
 66         }
 67         
 68         /*
 69          * *给定的字节数组截取一部分Q进行解码,要求输出完整的汉字,例如Q?abc中国?截取6?输出的是abc?
 70          * 思\Q?
 71          *     1.遍历数组被截取的部分,
 72          * 2.判断正负敎ͼl计负数个数为count
 73          * 3.判断count的奇Ӟ奇数减去1Q偶C?
 74          * 4.解码
 75          * 汉字是占?个字?我们怎么判断它是汉字?
 76          * 汉字的第一位字节保证是负数!W二个是正数
 77          * 
 78          */
 79         public static String decode(byte[]buf, int len)
 80         {
 81             int count = 0;
 82             for(int i=0; i<buf.length;i++)
 83                 if(buf[i]<0)
 84                         count++; //如果W一个字节是负数?是代表汉字马上来?׃+1
 85             if(count % 2 == 1)
 86                 len--;
 87             return new String(buf,0,len);
 88             /*E序程图: ׃输入一个buf   len = 5
 89              * for 执行5?
 90              * 因ؓ一个汉字是占了2个字?而第一个字节保证是负数
 91              * 如果 buf[i]里面的是负数?count +1 = 1
 92              * 如果   % 2  {于1代表的是Q?  ׃len 传递进来的减M个字?
 93              * 
 94              */
 95         }
 96         
 97         public static String decodeBYGBK(byte[]buf,int len)
 98         {
 99             boolean b = false; 
100             for(int i=0; i<buf.length; i++)
101                 if(b)
102                     b = false;
103                 else if(buf[i]<0)
104                     b = true;
105             if(b)
106                 len --;
107             return new String(buf,0,len);
108             
109         }
110         
111         /*
112          * 查找一个字W串出现ơ数最多的字符     abvjdabahabballfja   出现ơ数最多的?a  6
113          * 思\Q?
114          * 1.调用toCharArray字符串把字符串{换成字符数组
115          * 2.定义maxQ用于记住出现最多字W的ơ数Q定义一个maxCharC出现最多的字符
116          * 3.定义一个@环,每次循环都统计一个字W出现最多的ơ数Q每ơ让ơ数和max?谁最大就?l束条g。当长度的数l?
117          * 为零
118          * 4.定义一个countQ记住本ơ统计字W的ơ数
119          * 5.循环遍历数组Q统计第一个字W出现的ơ数
120          * 6.让次数和max比,如果max大,让maxC它的ơ数Q让maxcharC当前的字W?
121          * 7.当前的字符从数l中删除
122          * ------
123          * 此字符串{换ؓ一个新的字W数l?
124          */
125 
126         public static char searchMaxChar(String str)
127         {
128             char[] buf = str.toCharArray();
129             int max = 0;
130             char maxChar = 0;
131             while(buf.length>0)
132             {
133                 int count = 0; //个数{于0
134                 char firstChar = buf[0];
135                 for(char c : buf)
136                     if(c ==firstChar)
137                         count++;
138                 if(count>max) //max 已经是默认记住上一个的|
139                 {
140                     max = count;
141                     maxChar = firstChar; //如果你是最多的pl你~~
142                 }
143                 //把当前的字符删除Q?/span>
144                 buf = deleteChar(buf,firstChar,count);
145             }
146             return maxChar;
147         }
148 
149         private static char[] deleteChar(char[] buf, char firstChar, int count)
150         {
151             char[]arr = new char[buf.length-count];
152             int pos = 0;
153             for(int i=0; i<buf.length; i++)
154             {
155                 if(buf[i]==firstChar)
156                         continue;
157                 arr[pos++] = buf[i];
158             }
159             return arr;
160         }
161         /* 查找两个字符串中的最大子? jflwertyakjfa;l    fjdlkwertyjf;ajf 最大子Ԍwerty
162          * 1.判断Z个字W串的长短,扑և较长的和较短?
163          * 2.循环遍历较短的字W串的所有子Ԍ由长到短遍历
164          *         定义一个@环,每次遍历一U长度的子串Q将i作ؓ长度Qi的取? length~1
165          *         定义一个内层@环,具体遍历某一U长度的子串Qj做ؓ子串的开始位|, j取|0~length-i
166          *         截取子串Qsubstring  起始位置:j  l束位置:j+i
167          * 3.每次变量Q都判断子串是否长的字符串的子串Q如果是Q直接返?
168          * 4.循环l束Q依然没有返回,说明没有相同子串Q返回null
169          */
170         public static String searchMaxSubStr(String s1, String s2) 
171         {
172             String longStr = s1.length() > s2.length() ? s1 : s2;
173             String shortStr = s1.length() > s2.length() ? s2 : s1; 
174             for(int i=shortStr.length(); i>0; i--)
175             {
176                 for(int j=0;j<shortStr.length()-i+1;j++)
177                 {
178                     String sub = shortStr.substring(j, j+i); //例如Q?abcd 攑ֈsub里面?
179                     //abcd abc ab  a 和它里面的做一个对? 
180                     //当且仅当此字W串包含指定?char 值序列时Q返?true?
181                     if(longStr.contains(sub)) 
182                         //判断长的字符串里面是否包含这?/span>
183                         return sub; //如果包含直接q回.没有包含
184                 }
185             }
186             return null;
187         }
188 }
189 
190 
191 ----------------------
192 
193 package com.javami.kudy.javaapi1.StringStudy;
194 
195 public class StringUtilTest {
196         public static void main(String[]args) throws Exception
197         {
198             /*
199             String str = "dsdcvcvxvczxbedfaacff";
200             String substr = "y";
201             //遍历a 出现的位|?
202             int[]arr =  StringUtil.findIndexOfSubstr(str, substr);
203             if(arr ==null)
204             {
205                 System.out.println("找不刎ͼ");
206                 return ;
207             }
208             for(int num : arr)
209             {
210                     System.out.print(num+" ");
211             }
212             System.out.println();
213             
214             */
215             /*
216              * 再输入byte的时候就l束,不断的去?
217 
218             while(true)
219             {
220                 String str2 = StringUtil.readLine();
221                 if("bye".equals(str2))
222                     break;
223                 System.out.println(str2);
224             }
225             System.out.println("E序l束");    
226             */
227             byte[] buf = "abc中国?.getBytes();
228             //String s3 = StringUtil.decode(buf, 3);
229             String s3 = StringUtil.decodeBYGBK(buf, 5);
230             System.out.println(s3);
231             
232             char maxChar = StringUtil.searchMaxChar("dasfasdfaaaaaaaasfgdagfafgsad");
233             System.out.println(maxChar);
234             
235             String s33 = "jflwertyakjfa;l";
236             String s44 = "fjdlkwertyjf;ajf";
237             String s55 =StringUtil.searchMaxSubStr(s33,s44);
238             System.out.print(s55);
239         }
240 
241 }


]]>
վ֩ģ壺 ɽ| | | ɽ| | | | ʮ| Ƕ| | | Ժ| ۩| | | Ϸ| | п| ѭ| κ| ̩| ƽȪ| ɽ| | | ˮ| | | | | ·| Ƽ| ϲ| | | | | ɽ| | Ϸ| Ϻ|