﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>语源科技BlogJava-_自学是一种信仰</title><link>http://www.blogjava.net/kudy/</link><description>kudy</description><language>zh-cn</language><lastBuildDate>Fri, 10 Apr 2026 01:25:41 GMT</lastBuildDate><pubDate>Fri, 10 Apr 2026 01:25:41 GMT</pubDate><ttl>60</ttl><item><title>javase_18(回顾与反射机制学习)</title><link>http://www.blogjava.net/kudy/archive/2012/08/19/385825.html</link><dc:creator>、小细</dc:creator><author>、小细</author><pubDate>Sun, 19 Aug 2012 10:54:00 GMT</pubDate><guid>http://www.blogjava.net/kudy/archive/2012/08/19/385825.html</guid><wfw:comment>http://www.blogjava.net/kudy/comments/385825.html</wfw:comment><comments>http://www.blogjava.net/kudy/archive/2012/08/19/385825.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kudy/comments/commentRss/385825.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kudy/services/trackbacks/385825.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: AM上午总结: 1 package com.java.kudy.day17_2.ObjectReview; 2  3 public class ObjectTest { 4  5     /** 6      *虚拟机做了什么事情? 7      *1.在栈内存中定义了一个变量p 8      *2.在类加载器中加载Person.class 9      *...&nbsp;&nbsp;<a href='http://www.blogjava.net/kudy/archive/2012/08/19/385825.html'>阅读全文</a><img src ="http://www.blogjava.net/kudy/aggbug/385825.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kudy/" target="_blank">、小细</a> 2012-08-19 18:54 <a href="http://www.blogjava.net/kudy/archive/2012/08/19/385825.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>javase_17(IO的总结)</title><link>http://www.blogjava.net/kudy/archive/2012/08/18/385826.html</link><dc:creator>、小细</dc:creator><author>、小细</author><pubDate>Sat, 18 Aug 2012 11:51:00 GMT</pubDate><guid>http://www.blogjava.net/kudy/archive/2012/08/18/385826.html</guid><wfw:comment>http://www.blogjava.net/kudy/comments/385826.html</wfw:comment><comments>http://www.blogjava.net/kudy/archive/2012/08/18/385826.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kudy/comments/commentRss/385826.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kudy/services/trackbacks/385826.html</trackback:ping><description><![CDATA[<p>所有的流在使用完毕时，都需要调用close方法进行关流，释放资源。<br />由于流操作都会有异常，如果发生异常就有可能导致close方法不能被调用<br />所以，IO异常一定要处理，close方法写在finally语句中<br />1.InputStream : 输入字节流 方法： read()从流(关联的设备)中读一个字节 <br />** int read(buf):从流中读取n个字节放入缓冲区，方法会返回一个读取字节的个数 ips--&gt;buf<br />读到一个-1，说明读到了流的末尾<br />&nbsp;------------------------------------------------------------------------------------------<br />|---FileInputStream: 重载的构造函数&nbsp; (String fileName)&nbsp; (File file)</p>
<p>2.OutputStream： 输出字节流 :方法 write(int c)将一个字节写入流&nbsp; (byte)c<br />write(buf,offset,len)将指定字节数组的一部分写入流。 buf--&gt;ops<br />&nbsp;-------------------------------------------------------------------------------------------<br />|---FileOutputStream: 重载的构造函数 (Strng fileName) (String fileName, boolean append)<br />&nbsp;append:指定数据是否追加到文件的末尾，默认是false，覆盖原有的数据，<br />&nbsp;设置为true，将数据追加到文件的末尾<br />3.Reader：输入字符流 int read() 读一个字符&nbsp;&nbsp; int read(buf)&nbsp; buf是char[]类型<br />|---FileReader:&nbsp; FileReader = InputStreamReader(FileInputStream) 只做了一件事：解码(父类在做)<br />4.Writer：输出字符流 write(int c) (char)c \&nbsp; write(String str) <br />|---|---FileWriter:&nbsp; FileWriter = OutputStreamWriter(FileOutputStream) 只做了一件事：编码</p>
<p>理解(会用)：<br />1.装饰设计模式： 对原有的类的进行包装，对方法进行增强<br />BufferedReader：实现缓冲的功能&nbsp;&nbsp; 创建包装流对象的时候，必须组合一个被包装的底层流<br />&nbsp;&nbsp;&nbsp;&nbsp;增加了一个新方法 String readLine() 读一行<br />|--LineNumberReader: 增加了行号功能，getLineNumber() 、setLineNumber()<br />BufferedWriter：实现了缓冲功能&nbsp; new BufferedWriter(new FileWriter("1.txt");<br />&nbsp;&nbsp;&nbsp;&nbsp;增加了新方法&nbsp; newLine() 另起一行<br />BufferedInputStream：实现缓冲的功能<br />BufferedOutputStream：实现缓冲的功能</p>
<p>2.InputStreamReader： 转换流&nbsp;&nbsp; : 包装，实现了编码解码的功能<br />new InputStreamReader(new FileInputStream("1.txt"));</p>
<p>3.使用包装流包装System.in，读键盘方便，可以读一行<br />BufferedReader br = <br />&nbsp;new BufferedReader(new InputStreamReader(System.in));<br />String line = br.readLine();<br />&nbsp;<br />&nbsp;<br />IO需要会写的程序： BufferedReader和BufferedWriter包装InputStream和OutputStream，读一行写一行</p>
<p>&nbsp;&nbsp;BufferedReader和BufferedWriter包装Reader和Writer<br />&nbsp;&nbsp;BufferedInputStream和BufferedOutputStream包装InputStream和OutputStream<br />&nbsp;&nbsp;用基础流读写，自定义数组作为缓冲区，实现拷贝<br />&nbsp;&nbsp;<br />-------以下做一个总结:</p>
<p>io流:数据传输的中转站--&gt;IO流--&gt;目的地</p>
<p>&nbsp;IO流一般都是成对出现的,也就是说按照流的分向:输入流--&gt;输出流<br />&nbsp;IO流按照操作来分: 字节流--&gt;字符流<br />&nbsp;<br />一.字符流<br />基类:Reader(读)Writer(写)<br />|-Reader<br />&nbsp;|--BufferedReader:对Reader进行了包装,提供了缓冲区(8192),有ReadLine()方法<br />&nbsp;&nbsp;构造函数:BufferedReader(Reader r);<br />&nbsp;|--InputStreamReader:转换流:将字节流转换成字符流:new InputStreamReader(System.in);<br />&nbsp;&nbsp;|--FileReader:读取文件的字符流,FileReader(File file) FileReader(String fileName);<br />|-Writer<br />&nbsp;|--BufferedWriter:包装流:常用的方法write(String s)、flush()刷新&nbsp; newLine()换行<br />&nbsp;&nbsp;构造函数:BufferedWriter(Writer w);<br />&nbsp;|--OutputStreamWriter:转换流: new OutputStreamWriter(System.out);<br />&nbsp;&nbsp;|--FileWriter:写入文件,FileWriter(File file)&nbsp; FileWriter(String fileName)<br />&nbsp;&nbsp;&nbsp;FileWriter(File file,boolean append),FileWriter(String fileName,boolean append)<br />&nbsp;&nbsp;&nbsp;当append为true,将写入到文件的末尾处,当为false时,从文件开头开始写.就会覆盖原来的.默认为false<br />&nbsp;&nbsp;&nbsp;<br />二.字节流:<br />|-InputStream(输入流)<br />&nbsp;|--FileInputStream:读取文件的字符流,和FileReader基本是一样<br />&nbsp;|--FilterInputStream:过滤流,一般不使用,只是针对了InputStream进行了包装<br />&nbsp;&nbsp;|--BufferedInputStream:包装类:BufferedReader(InputStream in),提供缓存功能<br />&nbsp;&nbsp;<br />|-OutputStream(输出流)<br />&nbsp;|--FileOutputStream:写入文件的字符流,和FileWriter基本一样<br />&nbsp;|--FilterOutputStream<br />&nbsp;&nbsp;|--BufferedOutputStream:包装类:BufferedWriter(OutputStream out);<br />&nbsp;&nbsp;<br />三.使用IO流必须要捕获异常,原因在于我们必须要还资源(关闭流)</p>
<div class="cnblogs_code">
<pre><span style="color: #008080;"> 1</span> FileWriter fw = <span style="color: #0000ff;">null</span><span style="color: #000000;">;
</span><span style="color: #008080;"> 2</span> <span style="color: #0000ff;">try</span>
<span style="color: #008080;"> 3</span> <span style="color: #000000;">{
</span><span style="color: #008080;"> 4</span>     fw = <span style="color: #0000ff;">new</span> FileWriter("src/1.txt"<span style="color: #000000;">);
</span><span style="color: #008080;"> 5</span> <span style="color: #000000;">}
</span><span style="color: #008080;"> 6</span> <span style="color: #0000ff;">catch</span><span style="color: #000000;">(IOException e)
</span><span style="color: #008080;"> 7</span> <span style="color: #000000;">{
</span><span style="color: #008080;"> 8</span> <span style="color: #000000;">    e.printStractTrace();
</span><span style="color: #008080;"> 9</span> <span style="color: #000000;">}
</span><span style="color: #008080;">10</span> <span style="color: #0000ff;">finally</span>
<span style="color: #008080;">11</span> <span style="color: #000000;">{
</span><span style="color: #008080;">12</span>     <span style="color: #0000ff;">try</span>{<span style="color: #0000ff;">if</span>(fw!=<span style="color: #0000ff;">null</span>)fw.close();}<span style="color: #0000ff;">catch</span><span style="color: #000000;">(IOException){e.printStackTrace();}
</span><span style="color: #008080;">13</span> }</pre>
</div>
<p>四.File文件类<br />1.构造方法:<br />File(File parnt,String child)<br />根据prent抽象路径名和child路径名字符串创建一个新的file实例.<br />File(String pathname)<br />通过将给定的路径名字来创建一个新的file实例.<br />File(String parent, String child) <br />根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 实例.</p>
<p>2.常用方法:<br />isFile:判断对象是否是一个标准文件<br />isDirectory:判断对象是否为一个文件夹<br />isAbsolute:判断是否为一个绝对路径<br />exists:判断对象指定的文件是否存在<br />createNewFile:根据对象的描述创建一个对象<br />getName:获得文件名<br />getPath:获得路径名<br />getParent:获得文件的父级抽象路径<br />getAbsolutepath:获得文件的绝对路径名<br />mkdir:创建此抽象路径指定的目录,(只能在存在的文件夹下创建一个目录)<br />mkdirs:创建此抽象路径指定的目录,包括所有必须但不存在的目录.创建多级目录(c:/a/b/c)<br />list(FilenameFilter filter)：根据指定过滤器遍历文件夹中的所有文件，返回String[]<br />&nbsp;如果对象为标准文件，则返回null，如果对象是一个空文件夹，则返回空数组。length为0<br />&nbsp;FilenameFilter是一个接口，只有一个方法accept，我们需要实现接口的accept方法。<br />&nbsp;实现类是给list方法自动调用的<br />&nbsp;方法的参数是list方法传给我们的，返回的结果也是给list方法去用。<br />listFiles：和list基本一样，返回值类型不一样，返回File[]。<br />常用案例：遍历目录下所有的文件和文件夹&nbsp;&nbsp; 拷贝一个文件夹&nbsp; .</p>
<p>五:RandomAccessFile 文件流,可以读写<br />1.RandomAccessFile(File file,String mode)、RandomAccessFile(String fileName,String mode)<br />&nbsp;mode:常用的: r,只读 rw读写<br />2.有很多read和write方法.<br />&nbsp;seek方法,指定从那个位置开始读seek(0) ,从原有的位置覆盖掉<br />skipBytes(int n)：跳过多少个字节</p>
<p>六:PrintStream、PrintWriter打印流<br />有一个特殊的方法print可以实现打印<br />write方法是直接将字节和字符写出去<br />print：首先调用对象的toString方法转成字符串(如果是基本数据类型，会先自动装箱)<br />&nbsp;再将字符串编码成字节数组，调用write方法写出去</p>
<p>七:SequenceInputStream序列流<br />可以将多个字节流组合起来<br />构造方法：SequenceInputStream(Enumeration&lt;? extends InputStream&gt; e)&nbsp;<br />&nbsp;&nbsp;//Enumeration可以通过Vector来获得，如果用的是ArrayList，如何获得呢？<br />&nbsp;&nbsp;&nbsp;&nbsp; SequenceInputStream(InputStream in1,InputStream in2) </p>
<p>八:ObjectInputStream、ObjectOutputStream操作对象的字节流<br />一般成对出现<br />使用writeObject方法写入的对象，只能由readObject方法读出来<br />操作的对象必须实现java.io.Serializable序列化接口，该对象才可以被序列化和反序列化。<br />序列化: Java中规定的一种保存对象的数据格式</p>
<p>九:DataInputStream、DataOutputStream操作基本数据类型，格式化数据<br />readInt、writeInt等方法。<br />writeInt写入一个整数，文件大小为4字节。证明就是把基本数据类型对应的字节写出去了，没有丢失精度</p>
<p>十:ByteArrayInputStream、ByteArrayOutputStream对Byte数组进行读写的字节流，针对内存进行读写<br />源和目的地都是内存，一般用于对内存中的数据进行处理。</p>
<p>十一:PipedInputStream、PipedOutputStream管道流<br />1、输入管道流<br />构造方法：PipedInputStream(PipedOutputStream pos)实现拼接<br />也可以通过connect(PipedOutputStream pos)方法进行拼接</p>
<p>2、输出管道流<br />构造方法：PipedOutputStream(PipedInputStream pis)实现拼接<br />也可以通过connect(PipedInputStream pis)方法进行拼接 </p>
<div class="cnblogs_code">
<pre><span style="color: #008080;"> 1</span> --<span style="color: #000000;">Test:序列化与反序列化..
</span><span style="color: #008080;"> 2</span> <span style="color: #0000ff;">package</span><span style="color: #000000;"> com.java.kudy_Say;
</span><span style="color: #008080;"> 3</span> 
<span style="color: #008080;"> 4</span> <span style="color: #0000ff;">import</span><span style="color: #000000;"> java.io.FileNotFoundException;
</span><span style="color: #008080;"> 5</span> <span style="color: #0000ff;">import</span><span style="color: #000000;"> java.io.FileOutputStream;
</span><span style="color: #008080;"> 6</span> <span style="color: #0000ff;">import</span><span style="color: #000000;"> java.io.IOException;
</span><span style="color: #008080;"> 7</span> <span style="color: #0000ff;">import</span><span style="color: #000000;"> java.io.ObjectOutputStream;
</span><span style="color: #008080;"> 8</span> <span style="color: #0000ff;">import</span><span style="color: #000000;"> java.io.Serializable;
</span><span style="color: #008080;"> 9</span> <span style="color: #0000ff;">import</span><span style="color: #000000;"> java.util.ArrayList;
</span><span style="color: #008080;">10</span> <span style="color: #0000ff;">import</span><span style="color: #000000;"> java.io.ObjectInputStream;
</span><span style="color: #008080;">11</span> <span style="color: #0000ff;">import</span><span style="color: #000000;"> java.io.FileInputStream;
</span><span style="color: #008080;">12</span> <span style="color: #008000;">/*</span>
<span style="color: #008080;">13</span> <span style="color: #008000;">    序列化与反序列化的过程
</span><span style="color: #008080;">14</span> <span style="color: #008000;">*/</span>
<span style="color: #008080;">15</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">class</span><span style="color: #000000;"> Test {
</span><span style="color: #008080;">16</span>     
<span style="color: #008080;">17</span>     <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">void</span> main(String[]args) <span style="color: #0000ff;">throws</span><span style="color: #000000;"> FileNotFoundException, IOException,ClassNotFoundException
</span><span style="color: #008080;">18</span> <span style="color: #000000;">    {
</span><span style="color: #008080;">19</span>             
<span style="color: #008080;">20</span> <span style="color: #008000;">/*</span><span style="color: #008000;">        Student s1 = new Student("张三",18);
</span><span style="color: #008080;">21</span> <span style="color: #008000;">        Student s2 = new Student("王五",19);
</span><span style="color: #008080;">22</span> <span style="color: #008000;">        Student s3 = new Student("李四",20);
</span><span style="color: #008080;">23</span> <span style="color: #008000;">        Student s4 = new Student("大毛",21);
</span><span style="color: #008080;">24</span> <span style="color: #008000;">        ObjectOutputStream oos = 
</span><span style="color: #008080;">25</span> <span style="color: #008000;">                new ObjectOutputStream(new FileOutputStream("f:/a.txt"));
</span><span style="color: #008080;">26</span> <span style="color: #008000;">        ArrayList&lt;Student&gt; al = new ArrayList&lt;Student&gt;();
</span><span style="color: #008080;">27</span> <span style="color: #008000;">        al.add(s1);
</span><span style="color: #008080;">28</span> <span style="color: #008000;">        al.add(s2);
</span><span style="color: #008080;">29</span> <span style="color: #008000;">        al.add(s3);
</span><span style="color: #008080;">30</span> <span style="color: #008000;">        al.add(s4);
</span><span style="color: #008080;">31</span> <span style="color: #008000;">        oos.writeObject(al);
</span><span style="color: #008080;">32</span> <span style="color: #008000;">        oos.close();//关闭流
</span><span style="color: #008080;">33</span> <span style="color: #008000;">        //首先我们把内容放到一个集合里面去
</span><span style="color: #008080;">34</span> <span style="color: #008000;">*/</span>
<span style="color: #008080;">35</span>         ObjectInputStream ois = 
<span style="color: #008080;">36</span>                 <span style="color: #0000ff;">new</span> ObjectInputStream(<span style="color: #0000ff;">new</span> FileInputStream("f:/a.txt"<span style="color: #000000;">));
</span><span style="color: #008080;">37</span>         ArrayList&lt;Student&gt; al = (ArrayList&lt;Student&gt;<span style="color: #000000;">)ois.readObject();
</span><span style="color: #008080;">38</span>         <span style="color: #0000ff;">for</span><span style="color: #000000;">(Student s :al)
</span><span style="color: #008080;">39</span> <span style="color: #000000;">            System.out.println(s);
</span><span style="color: #008080;">40</span> <span style="color: #000000;">        ois.close();
</span><span style="color: #008080;">41</span>     
<span style="color: #008080;">42</span>     
<span style="color: #008080;">43</span>         
<span style="color: #008080;">44</span> <span style="color: #000000;">    }
</span><span style="color: #008080;">45</span> <span style="color: #000000;">}
</span><span style="color: #008080;">46</span> 
<span style="color: #008080;">47</span> <span style="color: #008000;">//</span><span style="color: #008000;">必须要实现一个类</span>
<span style="color: #008080;">48</span> <span style="color: #0000ff;">class</span> Student <span style="color: #0000ff;">implements</span><span style="color: #000000;"> Serializable
</span><span style="color: #008080;">49</span> <span style="color: #000000;">{
</span><span style="color: #008080;">50</span>     <span style="color: #0000ff;">private</span><span style="color: #000000;"> String name;
</span><span style="color: #008080;">51</span>     <span style="color: #0000ff;">private</span> <span style="color: #0000ff;">int</span><span style="color: #000000;"> age;
</span><span style="color: #008080;">52</span> <span style="color: #000000;">    Student(){}
</span><span style="color: #008080;">53</span>     Student(String name,<span style="color: #0000ff;">int</span><span style="color: #000000;"> age)
</span><span style="color: #008080;">54</span> <span style="color: #000000;">    {
</span><span style="color: #008080;">55</span>         <span style="color: #0000ff;">this</span>.name =<span style="color: #000000;"> name;
</span><span style="color: #008080;">56</span>         <span style="color: #0000ff;">this</span>.age =<span style="color: #000000;"> age;
</span><span style="color: #008080;">57</span> <span style="color: #000000;">    }
</span><span style="color: #008080;">58</span>     <span style="color: #0000ff;">public</span><span style="color: #000000;"> String toString()
</span><span style="color: #008080;">59</span> <span style="color: #000000;">    {
</span><span style="color: #008080;">60</span>         <span style="color: #0000ff;">return</span> name+"@"+<span style="color: #000000;">age;
</span><span style="color: #008080;">61</span> <span style="color: #000000;">    }
</span><span style="color: #008080;">62</span> }</pre>
</div>
<p>&nbsp;</p><img src ="http://www.blogjava.net/kudy/aggbug/385826.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kudy/" target="_blank">、小细</a> 2012-08-18 19:51 <a href="http://www.blogjava.net/kudy/archive/2012/08/18/385826.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>javase_常用英语</title><link>http://www.blogjava.net/kudy/archive/2012/08/18/385827.html</link><dc:creator>、小细</dc:creator><author>、小细</author><pubDate>Sat, 18 Aug 2012 11:48:00 GMT</pubDate><guid>http://www.blogjava.net/kudy/archive/2012/08/18/385827.html</guid><wfw:comment>http://www.blogjava.net/kudy/comments/385827.html</wfw:comment><comments>http://www.blogjava.net/kudy/archive/2012/08/18/385827.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kudy/comments/commentRss/385827.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kudy/services/trackbacks/385827.html</trackback:ping><description><![CDATA[<p>教程由JAVA中文网整理校对发布(javaweb.cc)</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; Abstract Window Toolkit(AWT)抽象窗口工具集 <br />　 一个用本地图形组件实现的图形接口。这些组件提供了大部分的本地组件。这个接口正逐步被Swing组件所替代，参见Swing Set.</p>
<p>　 Abstract 抽象的<br />　 一个Java语言中的关键字，用在类的声明中来指明一个类是不能被实例化的，但是可以被其它类继承。一个抽象类可以使用抽象方法，抽象方法不需要实现，但是需要在子类中被实现</p>
<p>　 abstract class 抽象类<br />　 含有一个或多个抽象方法的类，不能被实例化。定义抽象类的目的是使其他类能够从它继承，并且通过实现抽象方法使这个类具体化</p>
<p>　 abstract method 抽象方法<br />　 没有实现的方法</p>
<p>　 access control 访问控制<br />　 控制用户或程序访问资源的权限，保证资源的一致性的方法</p>
<p>　 API 应用程序接口<br />　 Application Programming Interface的缩写。指导应用程序开发人员访问类方法和类状态的说明</p>
<p>　 applet 小应用程序<br />　 通常在Web浏览器中执行的一个Java组件，同样可以在其他的支持applet模型的应用程序或设备中执行<br />　<br />　 Applet container applet容器<br />　 一个支持applet的容器 </p>
<p>　 argument 参数<br />　 在函数调用中使用的数据项。一个参数可以是常量、变量或表达式<br />　<br />　 array 数组 <br />　 相同类型的数据的集合，每一个数据项通过一个整数唯一标识</p>
<p>　 ASCII <br />　 American Standard Code for Information Interchange的缩写。一个标准的7位字符编码，参见Unicode</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Bean<br />　　一个可以重用的组件，可以通过组合Bean来创建应用程序</p>
<p>　　bean-managed persistence <br />　　当一个实体bean实例和资源管理器交换数据的时候，由实体bean实例来管理</p>
<p>　　bean-managed transaction <br />　　Enterprise Bean定义事务的界限的时候</p>
<p>　　binary operator 二值操作符<br />　　有两个操作数的操作符 </p>
<p>　　bit 位<br />　　计算机中表示信息的最小单位，只有0和1两个值</p>
<p>　　bitwise operator 位操作符<br />　　并行的对一个或多个操作数的位进行单独的操作。比如二进制逻辑运算符（&amp;,|,^），二进制移位符（&lt;&lt;,&gt;&gt;,&gt;&gt;&gt;）和求补运算符（~）</p>
<p>　　block 块<br />　　在Java语言中，任何被大括号括起来的程序段。</p>
<p>　　boolean 逻辑型<br />　　指一个表达式或一个变量只能有true或者false两种类型。Java语言提供了boolean类型以及true和false两个常量</p>
<p>　　break <br />　　一个Java的关键字，用来改变程序执行流程，立刻从当前语句的下一句开始执行从。如果后面跟有一个标签，则从标签对应的地方开始执行</p>
<p>　　business logic 商业逻辑 <br />　　实现某个应用功能的代码。在Enterprise JavaBeans模型中，这种逻辑是由某个Enterprise Javabean的方法实现的。</p>
<p>　　business method 商业方法 <br />　　某个Enterprise Javabean的方法用来实现商业逻辑或者某个应用的规则。</p>
<p>　　Byte 字节 <br />　　顺序的8位bit，Java语言中有对应的byte类型</p>
<p>　　bytecode 字节码 <br />　　由Java编译器生成的跟机器相关代码，由Java解释器执行</p>
<p>　　callback methods 回调方法 <br />　　组件的方法，由存放该组件的容器来调用的，用来在组件生命周期中通知它重要的事件</p>
<p>　　case <br />　　Java语言的关键字，用来定义一组分支选择，如果某个值和switch中给出的值一样，就会从该分支开始执行。 </p>
<p>　　casting <br />　　强制类型转化换 <br />　<br />　　catch <br />　　Java的一个关键字，用来声明当try语句块中发生运行时错误或非运行时异常时运行的一个块。</p>
<p>　　char <br />　　Java语言的一个关键字，用来定义一个字符类型</p>
<p>　　class 类 <br />　　在Java语言中定义一个特定类的实现。一个类的定义包含成员变量，成员方法，还有这个类实现的接口，以及这个类的父类。如果没有显式指明父类，那么它的父类会隐式的被认为是Object。</p>
<p>　　class method 类方法 <br />　　不需要引用特定对象就可以使用的方法，类方法的作用域是全局的，而不是某个特定的类实例，也被称作静态方法static method，参看instance method</p>
<p>　　classpath 类路径 <br />　　Classpath是一个环境变量，用来向Java虚拟机和基于Java的应用程序指明系统类库和用户类库的位置（比如，工具包在JDK1.1.X/bin目录中）</p>
<p>　　class variable 类变量 <br />　　一个和整个类相关的数据项，而不是只和某个实例，类变量在类定义中定义，也被称作static field,参看instance variable.</p>
<p>　　codebase <br />　　和&lt;APPLET&gt;标签中的Code属性配合给出找到applet类的完整路径：Code给出文件的名字，Codebase指出包含该文件的URL路径</p>
<p>　　comment 注释 <br />　　在编程语言中被编译器忽略的解释性语句。在Java中注释使用//或/*&hellip;*/定界</p>
<p>　　compiler 编译器 <br />　　一个把源代码翻译成机器可以执行的代码的程序。Java编译器把Java源码翻译成Java虚拟机能够识别的字节码，参见interpreter</p>
<p>　　component 组件 <br />　　一种被容器所支持的应用级的软件单元。组件在使用的时候是可配置的。J2EE平台定义了四种类型的组件：Enterprise Bean，Web components，applets和application client。</p>
<p>　　component contract <br />　　组件和它的容器之间的规范。这种规范包括：组件的生命周期的管理，一个上下文的接口，组件可以通过它获得容器的信息和服务，以及每个容器必须提供的一系列服务。</p>
<p>　　component environment <br />　　应用程序组件提供商定义的一个集合，使组件在J2EE组件的名字空间中可见。环境选项由组件的使用描述符指明。每一个组件命名并访问它的环境配置值通过使用java:comp/evn JNDI上下文。这些值可以是组件所依赖的一个对象，比如JDBC DataSouce，或者一个简单值，比如一个税率。</p>
<p>　　Connector 连接器 <br />　　一个标准的扩充机制使容器可以提供到EISs的连接。一个连接器连接到特定的EIS，由资源适配器和针对EIS的应用开发工具组成。一个资源适配器插入到一个容器通过在连接器体系结构中定义的系统级的联系。</p>
<p>　　connector architecture <br />　　一个集成J2EE和EISs的体系结构。这个体系结构中有两大部分：一个EIS厂商提供的资源适配器和一个允许这个适配器插入的J2EE服务器。这个体系结构定义了一系列资源适配器为了能插入J2EE服务器而必须支持的规范，比如事务，安全，资源管理。</p>
<p>　　Constructor 构造函数 <br />　　一个创建对象的伪方法。在Java语言中构造函数是和类同名的成员函数。构造函数一般用在new操作符之后。</p>
<p>　　Container 容器 <br />　　一个为组件提供生命周期管理，安全，配置，和运行时服务的实体。每一个类型的容器（EJB, Web, JSP, servlet, applet, 和application client）也会提供各自组件相关的服务</p>
<p>　　container-managed persistence <br />　　当一个实体bean实例和资源管理器交换数据的时候，由资源管理器来管理</p>
<p>　　container-managed transaction <br />　　当一个EJB容器定义一个事务的边界的时候，一个Bean必须使用这种事务类型</p>
<p>　　continue <br />　　一个Java的关键字，用来打断当前循环过程，从当前循环的最后重新开始执行，如果后面跟有一个标签，则从标签对应的地方开始执行。</p>
<p>　　core class 核心类 <br />　　一个Java平台上的标准的公共类或接口。Java平台的核心类，至少在所有的能支持Java的操作系统的平台上都是可用的。一个完全用Java编写的程序只需要Java核心类就可以运行了，这意味着它能够在任何地方运行，参看100% Pure Java(TM).</p>
<p>　　Core Packages 核心包 <br />　　在任何Java平台和任何兼容平台上必须被支持的API的集合。</p>
<p>　　Declaration 声明 <br />　　一个在标识符和属性之间建立联系的语句，不需要必要的存储分配或具体实现。参见definition</p>
<p>　　default 缺省的 <br />　　一个Java语言的关键字，作为在switch语句中的所有case之后的可选项，如果所有的case条件都没有被满足，就会执行default语句<br />　<br />　　delegation 授权 <br />　　一种某个负责人批准另外一个负责人在一定限制下使用它的身份或特权的行为</p>
<p>　　deprecation <br />　　指不再推荐的类，接口，构造函数，方法或成员变量，可能在以后的版本中会消失</p>
<p>　　derived from <br />　　类X "derived from" 类Y就是指类X是从类Y继承过来的，参见subclass, superclass</p>
<p>　　distributed 分布的 <br />　　在多于一个的地址空间内运行<br />　　<br />　　distributed application 分布式应用 <br />　　由不同的运行于分离的运行环境下的组件构成的应用程序，通常是在不同的平台上通过网络互联起来。典型的分布式应用是二端（Client/Server），三端（client/middleware/server）和n端（client/multiple middleware/multiple server）</p>
<p>　　do <br />　　一个Java语言的关键字，用来声明一个循环，这个循环的结束条件可以通过while关键字设置</p>
<p>　　DOM <br />　　Document Object Model的缩写。一棵由拥有包含遍历这棵树并且生成相应XML文档的接口的对象构成的树，符合W3C的规范 </p>
<p>　　double <br />　　一个Java语言的关键字，用来定义一个double类型的变量</p>
<p>　　EJB container EJB容器 <br />　　一个实现了J2EE体系结构中EJB组件规范的容器。这个规范指定了一个Enterprise bean的运行时环境，包括安全，一致性，生命周期，事务，配置，和其他的服务。一个EJB容器可以由EJB或者J2EE服务器提供。</p>
<p>　　EJB Container Provider EJB容器提供商<br />　　提供EJB容器的厂商</p>
<p>　　EJB context EJB上下文 <br />　　一个允许Enterprise Bean使用容器提供的服务和获得客户-请求（client-invoke）方法调用者信息的对象</p>
<p>　　EJB home object <br />　　一个提供关于Enterprise Bean生命周期操作（创建，删除，查找）的对象。这个对象的类型是由容器的配置工具产生的。EJB home object实现了Enterpeise Bean的home接口。客户通过引用一个EJB home object来进行生命周期的操作。客户使用JNDI来定位一个EJB home object</p>
<p>　　EJB .jar file <br />　　一个包含EJB模块的JAR文件</p>
<p>　　EJB module <br />　　一个由一个或多个Enterprise bean和一个EJB配置描述符组成的软件单元。</p>
<p>　　EJB object <br />　　实现了enterprise bean的remote接口的对象。客户不能直接引用一个enterprise bean的实例；客户总是引用一个EJB object。EJB object的类型是由容器的配置工具生成的。</p>
<p>　　EJB server <br />　　为EJB容器提供服务的软件。比如，典型的，一个EJB容器总是依靠一个作为EJB Server一部分的事务管理器来进行双向的确认在所有参与的资源管理器之间。J2EE体系结构假设EJB容器和EJB Server是由同一厂商提供的，所以没有制定这两个实体之间的规范。一个EJB Server可以包含一个或多个EJB Container</p>
<p>　　EJB Server Provider <br />　　提供EJB Server的厂商</p>
<p>　　EIS resource <br />　　一个为客户提供符合EIS规范的功能的实体。例子有：一条或多条数据库中的记录，在一个ERP系统中的一个business object，在一个事务处理系统中的一个事务程序</p>
<p>　　else <br />　　一个Java语言的关键字，如果if语句的条件不满足就会执行该语句。</p>
<p>　　encapsulation 封装<br />　　一个模块中的内部属性，因为对象会封装数据和实现，使用者可以把对象看作一个能提供服务的黑匣子。实例变量可以被添加，删除，或改变。只要这个对象所提供的服务是不变的，使用这个对象的代码就可以继续使用而不需要修改，参见instance variable, instance method.</p>
<p>　　enterprise bean <br />　　实现商业任务和商业实体的组件；或者是一个entity bean，或者是一个session bean</p>
<p>　　Enterprise Information System (EIS) <br />　　一个包含企业已经存在的获取企业级信息的系统的应用程序，这些应用程序为企业提供了一个信息结构。一个EIS系统提供很好定义的服务的集合给它的客户。这些服务在客户看来是本地的和/或者远程的接口。EIS的例子有：一个ERP系统，一个事务处理系统的主框架，一个遗留的数据库系统。</p>
<p>　　Enterprise Bean Provider Enterprise Bean提供商 <br />　　生产enterprise bean，remote和home接口，配置描述符文件，并把这些打包入JAR文件的应用程序开发人员</p>
<p>　　Enterprise JavaBeans(TM) (EJB) <br />　　一个用于开发和使用面向对象的，分布式的，企业级应用程序的组件体系结构。使用Enterprise JavaBeans体系结构编写的软件是可扩展的，面向事务的，多用户的，安全的。</p>
<p>　　entity bean <br />　　一个代表由数据库维护的持久数据的enterprise bean。一个entity bean可以管理它自己的持久性，或者把这个功能授权给它的容器。一个　　entity bean由一个主键来标识。如果存放entity bean的容器崩溃了，那么这个entity bean，它的主键，以及任何远程的引用都能从崩溃中幸存下来。</p>
<p>　　ebXML <br />　　ebXML建立在XML(Extensive Markup Language)之上，目的是提供一系列模块化的规范，使任何地方的任何规模的企业都能够通过Internet指导商业活动。它提供了公司和组织一个标准的方法来交换数据，指导商业关系，交流数据通过公共的形式，定义并注册商业过程</p>
<p>　　exception 异常 <br />　　一个在程序执行过程中阻止程序正常执行的事件，通常是一个错误。Java语言通过try，catch和throw关键字支持异常的处理，参见exception <br />handler</p>
<p>　　exception handler <br />　　一段处理特定类型的异常的代码。如果程序能够从异常中恢复过来，那么在处理完异常之后程序可以继续执行。</p>
<p>　　executable content <br />　　在HTML文件中执行的应用程序，参见applet。</p>
<p>　　extends 继承<br />　　类X 通过extend 类Y来添加功能，或者添加变量，或者添加方法，或者覆盖类Y的方法。一个接口extends另外一个接口来添加方法。类X称为类Y的一个子类，参见derived from</p>
<p>　　field 域 <br />　　一个类的数据成员。除非显式指明，否则一个field不是static的</p>
<p>　　final <br />　　一个Java语言的关键字。你只能定义一个实体一次，以后不能改变它或继承它。更严格的讲：一个final修饰的类不能被子类化，一个final修饰的方法不能被重写，一个final修饰的变量不能改变其初始值。</p>
<p>　　finally <br />　　一个Java语言的关键字，用来执行一段代码不管在前面定义的try语句中是否有异常或运行时错误发生。</p>
<p>　　float <br />　　一个Java语言的关键字，用来定义一个浮点数变量</p>
<p>　　for <br />　　一个Java语言的关键字，用来声明一个循环。程序员可以指定要循环的语句，推出条件和初始化变量。</p>
<p>　　FTP <br />　　基本的Internet文件传输协议（File Transfer Protocol）。FTP是基于TCP/IP协议的，它允许在主机之间通过Internet传送文件。参见TCP/IP</p>
<p>　　formal parameter list <br />　　在一个方法的定以中指定的参数。参见actual parameter list</p>
<p>　　handle <br />　　一个标识enterprise bean的对象。客户可以串行化handle，以后从串行化中恢复handle来得到一个对enterprise bean的引用</p>
<p>　　hexadecimal 十六进制的 <br />　　使用16作为基的计数系统。记号0-9和a-f（或者A-F）代表了数字0到15。在Java中16进制数必须带有0x前缀。参见octal</p>
<p>　　hierarchy <br />　　关系的一种分类，除了最高层的对象（通常称作root），每一个对象有一个专门的上层对象。每个对象可以由一个或多个下层对象在层次关系中。在Java中，root对象是Object</p>
<p>　　home interface <br />　　enterprise bean两个接口中的一个。home接口定义了0个或多个方法来创建和删除一个enterprise bean。对于session bean，home接口定义了创建和删除方法，然而对于entity bean，home接口定义了创建，查找和删除的方法。</p>
<p>　　home handle <br />　　一个对象，能够用来得到对一个home接口的引用。一个home handle能够被串行化写入持久存储器中，通过反串行化来得到这个引用。<br />　<br />　　HTML <br />　　HyperText Markup Language的缩写。这是一个文件格式，基于SGML，为了超文本在Internet上的传输。它十分简单，允许嵌入图片，声音，视频流，表单域和简单的文本格式。对其他对象的引用被嵌入到URLs中。</p>
<p>　　HTTP <br />　　HyperText Transfer Protocol的缩写。Internet的协议，基于TCP/IP，用来获得远程主机上的超文本。参见TCP/IP。 </p>
<p>　　HTTPS <br />　　建立在SSL协议之上的超文本传输协议（HTTP）</p>
<p>　　IDL <br />　　接口定义语言（Interface Definition Language）的缩写，使用Java(TM)编写的API提供基于标准的和CORBA的交互性和连接性。</p>
<p>　　identifier 标识符 <br />　　在Java程序中一个对象的名称</p>
<p>　　IIOP <br />　　Internet Inter-ORB Protocol的缩写。一个用来在CORBA对象请求代理之间交流的协议。</p>
<p>　　if <br />　　Java编程语言的一个关键字，用来生成一个条件测试，如果条件为真，就执行if下的语句。</p>
<p>　　implements <br />　　Java(TM)编程语言的一个关键字，在类的声明中是可选的，用来指明当前类实现的接口。</p>
<p>　　import <br />　　Java(TM)编程语言的一个关键字，在源文件的开始部分指明后面将要引用的一个类或整个包，这样就不必在使用的时候加上包的名字。</p>
<p>　　inheritance 继承 <br />　　一个概念：一个类型会自动包含其父类型（supertypes）的变量和方法。参见superclass, subclass。</p>
<p>　　initialization parameter <br />　　初始化Servlet上下文的参数。</p>
<p>　　instance 实例 <br />　　一个特定类型的对象。在Java(TM)语言中，一个对象是由new操作符创建的。<br />　　<br />　　instance method 实例方法 <br />　　任何跟一个类的实例相关的方法，也称作method。参见class method。</p>
<p>　　instance variable 实例变量 <br />　　任何和一个特定对象相关的数据项。每一个类的实例有一份类定义中声明的实例变量的拷贝，也称作field。参见class variable。</p>
<p>　　instanceof <br />　　一个二操作数的Java(TM)语言关键字，用来测试第一个参数的运行时类型是否和第二个参数兼容。</p>
<p>　　int <br />　　Java(TM)的一个关键字，用来定义一个整形变量</p>
<p>　　interface <br />　　Java(TM)的一个关键字，用来定义一系列的方法和常量。它可以被类实现，通过implements关键字。</p>
<p>　　Internet <br />　　一个由全球各个组织，各个国家的数百万的主机组成的巨大的一个网络。它是由很多小网络物理的连接在一起而成的，数据通过公共的一组协议传输。</p>
<p>　　IP <br />　　Internet Protocol的缩写，Internet的基本协议，它提供不可靠的主机间的数据包的传送。它不保证是否数据包能够正确传送，需要多久的时间来传送，或者当有多个包时是否按顺序到达。建立在该协议之上的协议提供连接和可靠性的概念。参见 TCP/IP. </p>
<p>　　interpreter 解释器<br />　　一个可选解码并且执行代码中的每一句语句的模块。Java(TM)解释器解码并执行为符合Java虚拟机规范的字节码。参见compiler, runtime system。</p>
<p>　　ISV <br />　　Independent Software Vendor的缩写</p>
<p>本篇文章来自Java中文网：<a href="http://javaweb.cc/other/english/2212.shtml">http://javaweb.cc/other/english/2212.shtml</a></p>
<p>教程由JAVA中文网整理校对发布(javaweb.cc)</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; J2EE application <br />　　任何可配置的J2EE功能单元。可能是由一个或多个软件模块与一个J2EE应用程序配置描述符打包成.ear文件。J2EE应用程序通常设计成在多机环境下运行的分布式应用。 <br />　<br />　　J2EE product <br />　　一个遵循J2EE平台规范的实现。 </p>
<p>　　J2EE Product Provider <br />　　提供J2EE产品的生产商。 </p>
<p>　　J2EE server <br />　　J2EE Product的运行时部分。一个J2EE提供Web和/或EJB容器。 </p>
<p>　　JAE <br />　　Java(TM) Application Environment的缩写。Java Development Kit (JDK(TM))的源代码。 </p>
<p>　　JAR Files (.jar) <br />　　Java ARchive的缩写。一种把许多文件聚合到一个文件的一种文件格式。 </p>
<p>　　JAR file format <br />　　JAR是一种把许多文件聚合到一个文件的平台无关一种文件格式。许多个用Java编写的applet以及它们所需要的组件（.class文件，图片，声音和其他资源文件）能够被打包到一个JAR文件中，以便以后在单独一个HTTP请求中就能够下载到客户端。它同样支持文件压缩和数字签名。 </p>
<p>　　Java(TM) <br />　　是Sun公司的商标，标识了一系列在独立的和网络化的环境中创建并安全的运行程序的技术。</p>
<p>　　Java Application Environment (JAE) <br />　　Java Development Kit (JDK(TM))的源代码。</p>
<p>　　Java(TM) 2 Platform, Standard Edition (J2SE platform) <br />　　核心的Java技术平台</p>
<p>　　Java(TM) 2 Platform, Enterprise Edition (J2EE platform) <br />　　一个用来开发和配置企业应用程序的环境。J2EE平台由一系列的服务，应用程序接口（APIs）和提供开发多级的，基于Web的功能的协议组成。 </p>
<p>　　Java(TM) 2 SDK, Enterprise Edition <br />　　Sun公司的对J2EE平台的一个实现。这个实现提供了一个可操作的J2EE平台的定义。</p>
<p>　　JavaBeans(TM) <br />　　一个可移植的，平台无关的，可重用的组件模型。</p>
<p>　　Java Blend(TM) <br />　　一个通过映射数据库数据到Java编程环境中的对象（Object）和映射对象到数据库使程序员能够简化数据库应用开发的产品。</p>
<p>　　Java Card(TM) API <br />　　一个和ISO 7816-4兼容的应用开发环境，集中在smart card上。</p>
<p>　　JavaCheck(TM) <br />　　一个工具，用来检查一个应用程序或一个applet是否符合某个规范。</p>
<p>　　Java(TM) Compatibility Kit (JCK) <br />　　一个测试包，一组工具，和其它的一些需求，用来检查一个实现是否和Java平台规范和软件参考实现兼容。 </p>
<p>　　Java Database Connectivity (JDBC(TM))<br />　　一个Java平台和大量数据库平台之间互联的平台无关的工业标准。JDBC(TM)提供了调用级的API来操作支持SQL语言的数据库。</p>
<p>　　Java Developer Connection(SM) <br />　　一个为个人开发者设计的服务，提供在线训练，产品打折，专题文章，错误信息和一些早期的版本兼容性信息。 </p>
<p>　　Java Development Kit (JDK(TM)) <br />　　一个软件开发平台，支持使用Java语言编写Applet或应用程序。</p>
<p>　　Java(TM) Enterprise API <br />　　这个API使编写大型的，可能在一个组织中或Internet上与其它应用程序共享多媒体数据的商业或数据库应用程序变得简单。在Java(TM) <br />Enterprise API家族中已经有四个APIs被设计出来。</p>
<p>　　Java(TM) Foundation Classes (JFC) <br />　　一个扩展，把图形用户接口加入到抽象窗口工具集（AWT）中。</p>
<p>　　Java(TM) IDL <br />　　一个提供J2EE平台与CORBA交互能力和互联能力的技术。这些兼容性使J2EE应用程序能够通过OMG IDL和IIOP调用远程网络上的操作。</p>
<p>　　Java(TM) Interface Definition Language (IDL) <br />　　用Java编写的APIs，提供标准化的与CORBA（Common Object Request Broker Architecture）的交互能力和互联能力。</p>
<p>　　Java(TM) Message Service (JMS) <br />　　使用企业级消息系统的API，比如IBM MQ Series，TIBCO Reanezvous等。</p>
<p>　　Java Naming and Directory Interface(TM) (JNDI) <br />　　一组用来提供多重命名和目录服务的APIs的集合。</p>
<p>　　JavaOS(TM) <br />　　一个基于Java的操作系统，对各种计算和用户平台进行了优化。JavaOS(TM)操作环境提供了一个运行时规范，使Java程序能够直接运行在硬件平台之上而不需要宿主操作系统。</p>
<p>　　Java(TM) Platform <br />　　由Java编程语言，一组APIs，类库，其它在开发，编译，错误检查中要用到的程序，和一个能够装载并执行class文件的Java虚拟机组成。 </p>
<p>　　除此之外，Java平台的目标是提供一组一致的兼容的实现。符合兼容性规范的实现能够得到Sun公司的兼容性标志。</p>
<p>　　Java 2是当前的一代Java平台。<br />　</p>
<p><br />　　Jini(TM) Technology <br />　　一组Java APIs，可能是任何一个Java 2平台的可选包。Jini API使网络设备和服务变得透明，不再需要用户去管理系统或网络使其正常工作。<br />　　Jini在目前是任何一个Java平台版本的一个可选软件包。</p>
<p>　　JNDI <br />　　Java Naming and Directory Interface(TM)的缩写，一组用来提供重命名和目录服务的APIs的集合。</p>
<p>　　JPEG <br />　　Joint Photographic Experts Group的缩写。 由这个小组建立的一个图象文件压缩标准。它通过几乎察觉不出的图象质量的损失来实现了巨大的图象压缩比。</p>
<p>　　JRE <br />　　Java(TM) runtime environment的缩写。一个Java Development Kit (JDK(TM))的子集，适合最终用户和希望重新发布运行环境的开发人员。Java runtime environment由Java虚拟机，Java核心类和支持文件组成。</p>
<p>　　Just-in-time (JIT) Compiler <br />　　一个在Java运行时，把所有字节码转换为本地代码的编译器。这样就会加速Java的执行，相对Java虚拟机的解释执行。</p>
<p>　　JVM <br />　　参见: Java(TM) Virtual Machine (JVM)</p>
<p><br />本篇文章来自Java中文网：<a href="http://javaweb.cc/other/english/2213.shtml">http://javaweb.cc/other/english/2213.shtml</a></p>
<p><br />教程由JAVA中文网整理校对发布(javaweb.cc)</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lexical <br />　　关于如何把源代码翻译成各种编译器能够识别的记号</p>
<p>　　literal <br />　　整数，浮点数，字符的基本表示方法。比如，字面上3.0是一个双精度浮点数，"a"是一个字符。</p>
<p>　　local variable <br />　　一个块中可见的数据项，但是对块外面的代码是不可见的。比如，任何在一个方法中声明的变量是一个局部变量，不能在方法外面被使用。<br />　<br />　　long <br />　　Java语言的一个关键字，用来定义一个long类型的变量。<br />　　　　</p>
<p>　　member <br />　　类的一个域或者方法，除非显式指明，否则一个member不是静态的。 </p>
<p>　　method <br />　　类中定义的一个方法，参见instance method, class method，除非显式指明，否则一个method不是静态的。</p>
<p>　　module <br />　　一个软件单位，由一个或多个相同容器类型的J2EE组件和一个相同类型的配置描述符组成。有三种module类型：EJB，Web，和Application Client。模块可以被配置成独立的单元或嵌入到应用程序中。</p>
<p>　　Mosaic <br />　　一个提供简单图形界面，使用户能够方便的访问Internet上的数据的程序。这些数据可能是简单文件，或者超文本文档。Mosaic是由NCSA的一个小组编写的。</p>
<p>　　multithreaded <br />　　描述一个程序，它的代码被设计成拥有多个同时被执行的部分。参见thread。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; object<br />　　面向对象程序的主要的一个构造块。每一个对象是一个编程单元，由数据（instance methods）和功能（instance methods）组成，参见class。</p>
<p>　　object-oriented design <br />　　一个软件设计方法，通过类和对象为抽象和具体的对象的特点建模。</p>
<p>　　octal <br />　　使用8作为基的计数系统。使用数字0-7。在Java中8进制数必须带有0前缀。参见hexadecimal。 </p>
<p>　　One <br />　　Open Net Environment的缩写，由Sun组织，主要工业参与商资助，描述了一个易于理解的体系结构，用来创建，编译和配置Web服务。ONE是平台无关的，基于完全开放的标准。Sun ONE指代一个特定的由Sun和iPlanet提供的对这个体系结构的实现。</p>
<p>　　Optional Packages <br />　　一个或多个APIs的集合，在Java平台上，它们是可用的，并且可能在兼容平台上也被支持。 <br />　　随着时间推移，Optional Packages可能因为市场需要而变成必需的。</p>
<p>　　ORB <br />　　Object Request Broker的缩写。一个函数库，使CORBA对象能够定位另一个对象且和它通讯。</p>
<p>　　OTS <br />　　Object Transaction Service的缩写，一组接口定义使CORBA对象能够处理事务。</p>
<p>　　overloading <br />　　在同一个作用域里面使用一个标识符指代多个对象。在Java语言中，你可以overload方法，但不能是变量和操作符。</p>
<p>　　overriding <br />　　在子类中对在父类中定义的方法提供一个不同的实现。<br />　　re-entrant enterprise bean <br />　　一个enterprise bean，能够被并发的，交叉的，或递归的调用，并且相互之间不干扰。</p>
<p>　　reference <br />　　一个内容是地址的数据元素。</p>
<p>　　remote interface <br />　　enterprise bean两个接口中的一个。remote接口定义了能够被客户调用的商业方法。</p>
<p>　　remove method <br />　　在home接口中定义的方法，客户端可以调用它来删除一个enterprise bean。</p>
<p>　　resource adapter <br />　　一个系统级的软件驱动，被EJB容器和应用程序客户用来连接到一个EIS。通常一个resource adapter总是针对某一特定EIS的。它以函数库的形式提供，运行在使用它的服务器或客户地址空间中。一个resource adapter插入到一个容器中。应用程序组件配置容器，然后使用客户端API（由adapter提供的）或者由高层抽象生成的工具来访问下面的EIS。resource adapter和EJB容器配合提供与EIS连接的下层机制 - 事务，安全，和连接池。</p>
<p>　　resource manager <br />　　提供访问一组共享对象的能力。一个recource manager参与一个被事务管理器外部控制和调整的事务。一个resource manager通常和访问它的客户运行在不同的主机上和不同的地址空间中。</p>
<p>　　resource manager connection <br />　　代表一个和资源管理器的会话的对象。</p>
<p>　　resource manager connection factory <br />　　一个用来创建资源管理器对象的对象。<br />本篇文章来自Java中文网：<a href="http://javaweb.cc/other/english/2214.shtml">http://javaweb.cc/other/english/2214.shtml</a></p>
<p>教程由JAVA中文网整理校对发布(javaweb.cc)</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; role (development) <br />　　在开发和配置一个基于J2EE技术的应用程序的过程中某个对象起到的作用。role有：应用程序组件提供者，应用程序编译者, 应用程序配置者<br />, J2EE平台提供者, EJB容器提供者, EJB容器提供者, Web容器提供者, Web服务器提供者,工具提供者和系统管理员。</p>
<p>　　role (security) <br />　　一个抽象的逻辑的用户组，由Application Assembler定义。当一个application被配置的时候，roles被映射到安全标识，比如负责人或者组，在操作和环境中。</p>
<p>　　role mapping <br />　　把由容器所识别的组和负责人和由配置描述符定义的安全角色联系起来的一个过程。在组件被安装到服务器之前，安全角色必须被配制器映射。</p>
<p>　　rollback <br />　　当一个事务中所有的对数据库的更新被取消的一个点。</p>
<p>　　root <br />　　在对象层次中的一个对象，所有对象都是从它继承而来的，root对象在层次图中没有上层对象，参见hierarchy, class, package。</p>
<p>　　RPC <br />　　Remote Procedure Call的缩写。通过向远程主机发送网络数据包执行，看上去就跟普通的调用过程（或方法调用）是一样的，</p>
<p>　　runtime system <br />　　一个软件环境，其中能够运行为Java虚拟机编译的程序。runtime system包含了为了装入用Java编写的程序，动态连接本地方法，内存管理，异常处理和实现一个Java虚拟机（可能是Java一个解释器）所必须的代码。SAX <br />　　Simple API for XML的缩写。一个为访问XML文档提供的事件驱动的，串行访问的机制。</p>
<p>　　Sandbox <br />　　由许多的系统组件组成，从作为应用程序一部分运行的安全管理器，到Java虚拟机中的和语言本身的安全措施。SandBox保证一个不可信任的，可能恶意攻击的应用程序不能访问系统资源。</p>
<p>　　scope <br />　　一个特性标识，用来规定哪些地方标识符是可见的。Java环境中的大多数标识符拥有类或者局部的scope。实例变量和类变量有类的scope；它们在类的外部或者子类中使用时必须在它们前面加上一个类名前缀（对类变量和类方法）或者类实例名。所有其他的在方法内部定义的变量具有局部scope；它们只能在封闭的块中使用。</p>
<p>　　Secure Socket Layer (SSL) <br />　　一个为了个人隐私在Web服务器和浏览器之间进行加密的协议。</p>
<p>　　security attributes <br />　　一组和负责人相关联的属性。Security attributes能够和一个负责人相关联，通过J2EE产品提供商制定的认证协议。</p>
<p>本篇文章来自Java中文网：<a href="http://javaweb.cc/other/english/2215.shtml">http://javaweb.cc/other/english/2215.shtml</a></p>
<p><br />教程由JAVA中文网整理校对发布(javaweb.cc)</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; security constraint <br />　　一个明确的方法来注释想要的对Web内容的保护。一个security constraint由一系列Web资源，一个认证限制和用户数据限制组成。</p>
<p>　　security context <br />　　一个对象，封装了跟安全有关的两个实体之间的共享状态信息。</p>
<p>　　security permission <br />　　由J2SE定义的J2EE平台用来表述应用组件供应商必须遵循的编程限制的一个机制。</p>
<p>　　security permission set <br />　　J2EE产品提供商为每一个组件类型的执行所必须提供的安全允许的最小集合。</p>
<p>　　security policy domain <br />　　一个作用域，其中安全策略被定义并且由安全管理员强制执行。一个security policy domain有以下的几个特征：<br />　　　它有一组用户（或者负责人）<br />　　　它有一个很好定义的认证协议来认证用户<br />　　　它可能有组的概念来简化安全策略的设置</p>
<p>　　security technology domain <br />　　一个作用域，其中同样的安全机制被用来强制执行一个安全策略。在单个technology domain中可以存在多个security policy domain。</p>
<p>　　server principal <br />　　服务器在操作系统中执行的地位。</p>
<p>　　servlet <br />　　一种扩展Web服务器功能的Java程序，动态生成文档，并且使用使用请求应答的方式和用户交互。<br />　<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; stream <br />　　Stream是一个简单的从发送着到接受者的数据字节流。有两种基本的分类，所以java.io包包含两个抽象类（InputStream和OutputStream）。<br />　<br />　　subarray <br />　　一个在另一个数组中的数组。</p>
<p>　　subclass <br />　　从某个类派生出来的类，可能是和一个或多个类之间的关系。参见superclass, supertype。 </p>
<p>　　subtype <br />　　如果类型X继承或者实现了类型Y，那么X是Y的一个subtype。参见supertype。 </p>
<p>　　superclass <br />　　一个类，某个类是从它派生而来的，可能是和一个或多个类之间的关系。参见subclass, subtype。</p>
<p>　　super <br />　　Java语言的一个关键字，用来访问父类的类成员。</p>
<p>　　supertype <br />　　一个类型的父类型是指它所实现的所有接口和继承的类型，参见subtype, superclass。 </p>
<p>　　switch <br />　　Java语言的关键字，用来计算一个变量，在后面用来匹配由case语句指定的值，以决定执行哪一组语句。</p>
<p>　　Swing Set <br />　　一系列图形用户接口GUI）组件的代码名称，能够在任何支持Java虚拟机的本地平台上一致的运行。因为它们是完全用Java语言编写的，这些组件可能提供的功能比本地平台提供的等价功能更为强大。（和AWT对比） </p>
<p>　　synchronized <br />　　Java语言的关键字，当它用来修饰一个方法或者一个代码块的时候，能够保证在同一时刻最多只有一个线程执行该段代码。（<br />&nbsp;<br />　　TCP/IP <br />　　Transmission Control Protocol based on IP的缩写。这是一个Internet协议，提供可靠的基于流的从一个主机到另一个的数据传输。参见IP。 </p>
<p>　　Technology Compatibility Kit (TCK) <br />　　一个测试包，一组工具，和其它必需的东西，用来证明一个特定的Sun的技术的实现是否和应用程序规范兼容或者是否和Sun和Sun设计的参考实现兼容。</p>
<p>　　this <br />　　Java语言的关键字，用来代表它出现的类的一个实例。this可以用来访问类变量和类方法。<br />&nbsp;<br />&nbsp;</p>
<p>　　UDDI <br />　　Universal Description Discovery and Integration的缩写。UDDI提供了一个全局的，公共的，基于XML的，在线的商业注册，商业用户通过它可以注册并宣传它们的Web服务。UDDI定义Internet版的白页和黄页电话号码本。</p>
<p>　　Unicode <br />　　ISO 10646定义的16位长的字符集。参见ASCII。Java环境中所有的源代码都是用Unicode编写的。 </p>
<p>　　URI <br />　　Uniform Resource Identifier的缩写。一个用来标识抽象或物理资源的简洁字符串。一个URI或者是一个URL或者是一个URN。URLs和URNs是具体的确实存在的实体。URI是一个抽象的父类。</p>
<p>　　URL <br />　　Uniform Resource Locator的缩写。一个使用文本指代WWW网站上任意数据的标准。一个URL通常是这样的"protocol://host/localinfo"，protocol指明传输对象的时候使用的协议（比如HTTP或FTP），host指明在Internet上找到一台主机的名字，localinfo是一个传递给远程主机上协议处理器的字符串（常常是一个文件名）。</p>
<p>　　URL path <br />　　通过一个HTTP请求传递的URL，来使用一个servlet。URL由Context Path + Servlet Path + PathInfo组成，其中被请求的servlet是与Context Path相关联的servlet上下文的一部分。如果这个上下文是默认的上下文，以Web服务器的URL名字空间的基目录为根，那么这个路径前缀将会是一个空字符串。否则这个路径前缀以/开始，但是不是以/结束。Servlet Path部分直接和激活这个请求的映射对应。这个路径以/字符开始。PathInfo是请求路径的一部分，但不是Context Path或者Servlet Path的一部分。</p>
<p>　　URN <br />　　Uniform Resource Name的缩写。唯一标识一个实体的标识符，但是不能给出实体的位置。系统可以先在本地寻找一个实体，在它试着在Web上找到该实体之前。它也允许Web位置改变，然而这个实体却还是能够被找到。<br />&nbsp;<br />　　variable <br />　　由一个标识符命名的数据项。每一个variable有一种类型，比如一个整数或者一个对象，和一个作用域。参见class variable, instance variable, local variable。 </p>
<p>　　virtual machine <br />　　一个抽象的计算设备规范，可以使用不同的方法实现，软件的或者硬件的。你把程序编译成virtual machine的指令集和你把程序编译成微处理器指令集是十分相似的。Java(TM) virtual machine*由字节码指令集合，一组寄存器，一个堆栈，一个垃圾收集堆和一个存放方法的区域<br />本篇文章来自Java中文网：<a href="http://javaweb.cc/other/english/2216.shtml">http://javaweb.cc/other/english/2216.shtml</a></p>
<p>教程由JAVA中文网整理校对发布(javaweb.cc)</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vocabulary <br />　　传统上，软件程序被编写，然后编译成直接和计算机中驱动微处理器工作的操作系统相关的机器码。Java平台通过提供一个程序编写编译，然后能够通过网络传输并且在任何由足够兼容性的虚拟机的平台上运行的模型减轻了这种依赖型。</p>
<p>　　这个模型提供了额外的好处，高安全性，即因为程序可以被虚拟机验证一致性在通过网络传输之后，也因为虚拟机运行在安全的"sandbox"的中，能够阻止一些特定的破坏性的行为。</p>
<p>　　软件开发人员已经投入Java语言的怀抱，因为它减少了编写程序和支持软件代码的费用和时间。他们不再需要为不同的操作系统和不同的微处理器重新编写功能相同的代码。正在配置应用程序的公司和组织喜欢Java，因为它减少了购买和修改不同版本的应用程序使其适应各自网络环境中各种类型的计算机和服务器的费用。 </p>
<p>　　void <br />　　Java语言的关键字，用在Java语言的方法声明中说明这个方法没有任何返回值。"void"也可以用来表示一句没有任何功能的语句。</p>
<p>　　volatile <br />　　Java语言的关键字，用在变量的声明中表示这个变量是被同时运行的几个线程异步修改的。<br />　　一个UNIX命令，使用它将会等待所有的后台进程结束，并且报告他们的结束状态。</p>
<p>　　Web application, distributable <br />　　用J2EE技术编写的应用程序，所以它可以被配置到一个分布运行在一台或多台主机的多个Java虚拟机中的Web容器中。这种类型的应用程序的配置描述符使用可分布的元素。</p>
<p>　　Web component <br />　　一个通过相应为请求提供服务的组件，或者是一个Servlet或者是一个JSP页面。</p>
<p>　　Web container <br />　　实现J2EE体系结构中Web组件协议的容器。这个协议规定了一个Web组件运行时的环境，包括安全，一致性，生命周期管理，事务，配置和其它的服务。一个提供和JSP和J2EE平台APIs界面相同服务的容器。一个Web container 由Web服务器或者J2EE服务器提供。</p>
<p>　　Web container, distributed <br />　　一个Web容器，能够运行一个标记为分布式的，在同一台主机或不同主机上的多个Java虚拟机中运行的Web应用程序。</p>
<p>　　Web server <br />　　提供访问Inetrnet，Intranet或者Extranet服务的软件。一个Web server运行在Web站点上，提供对HTTP和其它协议的支持，并且运行服务器端的程序（比如CGI脚本或者servlets）来实现一定的功能。在J2EE体系结构中，Web Server为Web容器提供服务。比如，一个Web容器通常依靠Web Server来处理HTTP消息。J2EE平台假设一个Web容器总是运行在同一个厂商提供的Web Server之上，所以没有制定这两个实体之间的协议。一个Web Server可以运行一个或多个Web容器。</p>
<p>&nbsp;</p><img src ="http://www.blogjava.net/kudy/aggbug/385827.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kudy/" target="_blank">、小细</a> 2012-08-18 19:48 <a href="http://www.blogjava.net/kudy/archive/2012/08/18/385827.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>javase_16(其它流)</title><link>http://www.blogjava.net/kudy/archive/2012/08/14/385828.html</link><dc:creator>、小细</dc:creator><author>、小细</author><pubDate>Tue, 14 Aug 2012 05:10:00 GMT</pubDate><guid>http://www.blogjava.net/kudy/archive/2012/08/14/385828.html</guid><wfw:comment>http://www.blogjava.net/kudy/comments/385828.html</wfw:comment><comments>http://www.blogjava.net/kudy/archive/2012/08/14/385828.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kudy/comments/commentRss/385828.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kudy/services/trackbacks/385828.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: IO包中的其他流:&nbsp;1.打印流a)PrintWriter(写--&gt;print打印)&nbsp;与PrintStream&nbsp;&nbsp;(字符流) 1 PrintWriter用法一:其实它是对一个Writer进行了封装 2 package com.javami.kudyTest;  3 import java.io.FileNotFoundExce...&nbsp;&nbsp;<a href='http://www.blogjava.net/kudy/archive/2012/08/14/385828.html'>阅读全文</a><img src ="http://www.blogjava.net/kudy/aggbug/385828.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kudy/" target="_blank">、小细</a> 2012-08-14 13:10 <a href="http://www.blogjava.net/kudy/archive/2012/08/14/385828.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>javase_15(File类的应用)</title><link>http://www.blogjava.net/kudy/archive/2012/08/11/385829.html</link><dc:creator>、小细</dc:creator><author>、小细</author><pubDate>Sat, 11 Aug 2012 14:48:00 GMT</pubDate><guid>http://www.blogjava.net/kudy/archive/2012/08/11/385829.html</guid><wfw:comment>http://www.blogjava.net/kudy/comments/385829.html</wfw:comment><comments>http://www.blogjava.net/kudy/archive/2012/08/11/385829.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kudy/comments/commentRss/385829.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kudy/services/trackbacks/385829.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: File类:用来将文件或者文件夹封装成对象方便对文件或者文件夹的操作File对象可以作为参数传递给一个流.递归:函数自己调用自己应用场景:当某一个功能需要重复调用..1.遍历一个文件,并且让让这个文件写入到一个文本里面,(需要树状的排序) 1 package com.javami.kudy.CodeAM; 2 import java.io.BufferedWriter; 3 imp...&nbsp;&nbsp;<a href='http://www.blogjava.net/kudy/archive/2012/08/11/385829.html'>阅读全文</a><img src ="http://www.blogjava.net/kudy/aggbug/385829.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kudy/" target="_blank">、小细</a> 2012-08-11 22:48 <a href="http://www.blogjava.net/kudy/archive/2012/08/11/385829.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>javase_14(字节流)</title><link>http://www.blogjava.net/kudy/archive/2012/08/08/385830.html</link><dc:creator>、小细</dc:creator><author>、小细</author><pubDate>Wed, 08 Aug 2012 05:06:00 GMT</pubDate><guid>http://www.blogjava.net/kudy/archive/2012/08/08/385830.html</guid><wfw:comment>http://www.blogjava.net/kudy/comments/385830.html</wfw:comment><comments>http://www.blogjava.net/kudy/archive/2012/08/08/385830.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kudy/comments/commentRss/385830.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kudy/services/trackbacks/385830.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 字节流的抽象基类:InputStream(输入)&nbsp; OutPutStream(输出)字符流的抽象基类:Reader(读)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Writer(写)这四个类派生出来的子类都是由父类的名作为子类名的后缀.&nbsp;IO需要了解的问题:1.有了垃圾回收站为什么还要调用close方法去进行关闭解答...&nbsp;&nbsp;<a href='http://www.blogjava.net/kudy/archive/2012/08/08/385830.html'>阅读全文</a><img src ="http://www.blogjava.net/kudy/aggbug/385830.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kudy/" target="_blank">、小细</a> 2012-08-08 13:06 <a href="http://www.blogjava.net/kudy/archive/2012/08/08/385830.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>javase_13(字符流)</title><link>http://www.blogjava.net/kudy/archive/2012/08/08/385831.html</link><dc:creator>、小细</dc:creator><author>、小细</author><pubDate>Tue, 07 Aug 2012 17:40:00 GMT</pubDate><guid>http://www.blogjava.net/kudy/archive/2012/08/08/385831.html</guid><wfw:comment>http://www.blogjava.net/kudy/comments/385831.html</wfw:comment><comments>http://www.blogjava.net/kudy/archive/2012/08/08/385831.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kudy/comments/commentRss/385831.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kudy/services/trackbacks/385831.html</trackback:ping><description><![CDATA[<p><strong>IO(Input OutPut)流</strong></p>
<p>IO流用来处理设备之间的数据传输</p>
<p>JAVA对数据的操作是通过流的方式</p>
<p>JAVA用于操作流的对象都在IO包中</p>
<p>流按操作对象分为两种: 字节流,字符流</p>
<p>流按流向分为: 输入流,输出流.</p>
<p><img src="http://pic002.cnblogs.com/images/2012/356496/2012080801344250.png" alt="" /></p>
<p>其它的内容还是比较简单的,注意的是以下这几个自定义包装类:</p>
<p>实现1.</p>
<p><span style="color: #ff0000;">MyBufferedReader.class</span></p>
<div class="cnblogs_code">
<pre><span style="color: #008080;"> 1</span> <span style="color: #0000ff;">package</span><span style="color: #000000;"> com.javami.kudy.Code13;
</span><span style="color: #008080;"> 2</span> <span style="color: #0000ff;">import</span><span style="color: #000000;"> java.io.IOException;
</span><span style="color: #008080;"> 3</span> <span style="color: #0000ff;">import</span> java.io.Reader;  <span style="color: #008000;">//</span><span style="color: #008000;">读取字符流的抽象类</span>
<span style="color: #008080;"> 4</span> <span style="color: #0000ff;">import</span><span style="color: #000000;"> java.io.IOException;
</span><span style="color: #008080;"> 5</span> <span style="color: #008000;">/*</span>
<span style="color: #008080;"> 6</span> <span style="color: #008000;"> * 自定义MyBufferedReader包装Reader,提供了一个缓冲区的功能.提供了ReadLine功能.
</span><span style="color: #008080;"> 7</span> <span style="color: #008000;"> * 1.用一个次组合,拿到被包装的Reader对象
</span><span style="color: #008080;"> 8</span> <span style="color: #008000;"> * 2.定义一个字符数组作为缓冲区
</span><span style="color: #008080;"> 9</span> <span style="color: #008000;"> * 3.实现一个read方法,填充缓冲区,从缓冲区那里返回一个字符
</span><span style="color: #008080;">10</span> <span style="color: #008000;"> * 4.定义一个readLine方法,内部调用read方法,循环读取一行,进行返回
</span><span style="color: #008080;">11</span> <span style="color: #008000;"> * 5.定义一个close方法,关闭地底层所包装的流
</span><span style="color: #008080;">12</span>  <span style="color: #008000;">*/</span>
<span style="color: #008080;">13</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">class</span> MyBufferedReader  <span style="color: #0000ff;">extends</span><span style="color: #000000;"> Reader{
</span><span style="color: #008080;">14</span>     <span style="color: #0000ff;">private</span><span style="color: #000000;"> Reader r;
</span><span style="color: #008080;">15</span>     <span style="color: #0000ff;">char</span>[] buf = <span style="color: #0000ff;">new</span> <span style="color: #0000ff;">char</span>[1024<span style="color: #000000;">];
</span><span style="color: #008080;">16</span>     <span style="color: #0000ff;">int</span> len =0<span style="color: #000000;">;
</span><span style="color: #008080;">17</span>     <span style="color: #0000ff;">int</span> pos = 0<span style="color: #000000;">;
</span><span style="color: #008080;">18</span>     <span style="color: #0000ff;">public</span><span style="color: #000000;"> MyBufferedReader(Reader r)
</span><span style="color: #008080;">19</span> <span style="color: #000000;">    {
</span><span style="color: #008080;">20</span>         <span style="color: #0000ff;">this</span>.r =<span style="color: #000000;"> r;
</span><span style="color: #008080;">21</span> <span style="color: #000000;">    }
</span><span style="color: #008080;">22</span>     <span style="color: #008000;">/*</span>
<span style="color: #008080;">23</span> <span style="color: #008000;">     * 实现read()方法,实现缓存的功能
</span><span style="color: #008080;">24</span> <span style="color: #008000;">     * 分析:
</span><span style="color: #008080;">25</span> <span style="color: #008000;">     * 1.当别人第一次调用该方法的时,一次性的去填充缓冲区
</span><span style="color: #008080;">26</span> <span style="color: #008000;">     * 2.定义一个len变量记住缓冲区的可用字符的数量
</span><span style="color: #008080;">27</span> <span style="color: #008000;">     * 3.将数组的第一个元素返回
</span><span style="color: #008080;">28</span> <span style="color: #008000;">     * 4.当别人第二次调用的时,将数组的二个元素返回
</span><span style="color: #008080;">29</span> <span style="color: #008000;">     * 5.每次返回元素 len --
</span><span style="color: #008080;">30</span> <span style="color: #008000;">     * 6.当len为零时,说明数组没有可用字符啦,那么这时候返回一个-1
</span><span style="color: #008080;">31</span> <span style="color: #008000;">     * 
</span><span style="color: #008080;">32</span> <span style="color: #008000;">     * 思路:
</span><span style="color: #008080;">33</span> <span style="color: #008000;">     * 1.定义两个成员变量,len记住可用字符数量,pos记住当前字符的角标
</span><span style="color: #008080;">34</span> <span style="color: #008000;">     * 2.判断len是否为0,如果为零要填充缓冲区.并且pos为零
</span><span style="color: #008080;">35</span> <span style="color: #008000;">     * 3.判断len,如果为-1,则返回-1
</span><span style="color: #008080;">36</span> <span style="color: #008000;">     * 4.将pos位置的元素返回.pos++
</span><span style="color: #008080;">37</span>      <span style="color: #008000;">*/</span>
<span style="color: #008080;">38</span>     <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">int</span> read() <span style="color: #0000ff;">throws</span><span style="color: #000000;"> IOException
</span><span style="color: #008080;">39</span> <span style="color: #000000;">    {
</span><span style="color: #008080;">40</span>         <span style="color: #0000ff;">if</span>(len ==0<span style="color: #000000;">)
</span><span style="color: #008080;">41</span> <span style="color: #000000;">        {
</span><span style="color: #008080;">42</span>             len =<span style="color: #000000;"> r.read(buf);
</span><span style="color: #008080;">43</span>             pos = 0<span style="color: #000000;">;
</span><span style="color: #008080;">44</span> <span style="color: #000000;">        }
</span><span style="color: #008080;">45</span>         <span style="color: #0000ff;">if</span>(len==-1<span style="color: #000000;">)
</span><span style="color: #008080;">46</span>             <span style="color: #0000ff;">return</span> -1<span style="color: #000000;">;
</span><span style="color: #008080;">47</span>         len--<span style="color: #000000;">;
</span><span style="color: #008080;">48</span>         <span style="color: #0000ff;">return</span> buf[pos++<span style="color: #000000;">];
</span><span style="color: #008080;">49</span> <span style="color: #000000;">    }
</span><span style="color: #008080;">50</span>     
<span style="color: #008080;">51</span>     <span style="color: #008000;">/*</span>
<span style="color: #008080;">52</span> <span style="color: #008000;">     * 实现readLine方法,实现读一行的功能,
</span><span style="color: #008080;">53</span> <span style="color: #008000;">     * 1.循环调用自己的方法的read方法,读取字符
</span><span style="color: #008080;">54</span> <span style="color: #008000;">     * 2.知道回车的字符,方法就结束
</span><span style="color: #008080;">55</span>      <span style="color: #008000;">*/</span> 
<span style="color: #008080;">56</span>     <span style="color: #0000ff;">public</span> String readLine() <span style="color: #0000ff;">throws</span><span style="color: #000000;"> IOException
</span><span style="color: #008080;">57</span> <span style="color: #000000;">    {
</span><span style="color: #008080;">58</span>         StringBuilder sb = <span style="color: #0000ff;">new</span><span style="color: #000000;"> StringBuilder();
</span><span style="color: #008080;">59</span>         <span style="color: #0000ff;">int</span><span style="color: #000000;"> ch;
</span><span style="color: #008080;">60</span>         <span style="color: #0000ff;">while</span>((ch=read())!=-1<span style="color: #000000;">)
</span><span style="color: #008080;">61</span> <span style="color: #000000;">        {
</span><span style="color: #008080;">62</span>             <span style="color: #0000ff;">if</span>(ch=='\r'<span style="color: #000000;">)
</span><span style="color: #008080;">63</span>                 <span style="color: #0000ff;">continue</span><span style="color: #000000;">;
</span><span style="color: #008080;">64</span>             <span style="color: #0000ff;">if</span>(ch=='\n'<span style="color: #000000;">)
</span><span style="color: #008080;">65</span>                 <span style="color: #0000ff;">break</span><span style="color: #000000;">;
</span><span style="color: #008080;">66</span>             sb.append((<span style="color: #0000ff;">char</span><span style="color: #000000;">)ch);
</span><span style="color: #008080;">67</span>             <span style="color: #0000ff;">if</span>(ch==-1&amp;&amp;sb.length()==0<span style="color: #000000;">)
</span><span style="color: #008080;">68</span>                 <span style="color: #0000ff;">return</span> <span style="color: #0000ff;">null</span><span style="color: #000000;">;
</span><span style="color: #008080;">69</span> <span style="color: #000000;">        }
</span><span style="color: #008080;">70</span>         <span style="color: #0000ff;">return</span> sb.toString(); <span style="color: #008000;">//</span><span style="color: #008000;">转换成字符串</span>
<span style="color: #008080;">71</span> <span style="color: #000000;">    }
</span><span style="color: #008080;">72</span> <span style="color: #000000;">    @Override
</span><span style="color: #008080;">73</span>     <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span> close() <span style="color: #0000ff;">throws</span><span style="color: #000000;"> IOException {
</span><span style="color: #008080;">74</span> <span style="color: #000000;">        r.close();
</span><span style="color: #008080;">75</span> <span style="color: #000000;">    }
</span><span style="color: #008080;">76</span> 
<span style="color: #008080;">77</span> <span style="color: #000000;">    @Override
</span><span style="color: #008080;">78</span>     <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">int</span> read(<span style="color: #0000ff;">char</span>[] cbuf, <span style="color: #0000ff;">int</span> off, <span style="color: #0000ff;">int</span> len) <span style="color: #0000ff;">throws</span><span style="color: #000000;"> IOException {
</span><span style="color: #008080;">79</span>         <span style="color: #0000ff;">int</span> count=0<span style="color: #000000;">;
</span><span style="color: #008080;">80</span>         <span style="color: #0000ff;">for</span>(<span style="color: #0000ff;">int</span> i=0; i&lt;off+len; i++<span style="color: #000000;">)
</span><span style="color: #008080;">81</span> <span style="color: #000000;">        {
</span><span style="color: #008080;">82</span>             <span style="color: #0000ff;">int</span> ch =<span style="color: #000000;"> read();
</span><span style="color: #008080;">83</span>             <span style="color: #0000ff;">if</span>(ch==-1<span style="color: #000000;">)
</span><span style="color: #008080;">84</span>                 <span style="color: #0000ff;">break</span><span style="color: #000000;">;
</span><span style="color: #008080;">85</span>             count++<span style="color: #000000;">;
</span><span style="color: #008080;">86</span>             buf[i] = (<span style="color: #0000ff;">char</span><span style="color: #000000;">)ch;
</span><span style="color: #008080;">87</span> <span style="color: #000000;">        }
</span><span style="color: #008080;">88</span>         <span style="color: #0000ff;">return</span><span style="color: #000000;"> count;
</span><span style="color: #008080;">89</span> <span style="color: #000000;">    }
</span><span style="color: #008080;">90</span> 
<span style="color: #008080;">91</span>     
<span style="color: #008080;">92</span>     
<span style="color: #008080;">93</span> }</pre>
</div>
<p>MyBufferedWriter.class&nbsp; 这个主要是写入</p>
<div class="cnblogs_code">
<pre><span style="color: #008080;"> 1</span> <span style="color: #0000ff;">package</span><span style="color: #000000;"> com.javami.kudy.Code13;
</span><span style="color: #008080;"> 2</span> <span style="color: #0000ff;">import</span><span style="color: #000000;"> java.io.IOException;
</span><span style="color: #008080;"> 3</span> <span style="color: #0000ff;">import</span><span style="color: #000000;"> java.io.Writer;
</span><span style="color: #008080;"> 4</span> 
<span style="color: #008080;"> 5</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">class</span> MyBufferedWriter  <span style="color: #0000ff;">extends</span><span style="color: #000000;"> Writer{
</span><span style="color: #008080;"> 6</span>     
<span style="color: #008080;"> 7</span>     <span style="color: #0000ff;">private</span><span style="color: #000000;"> Writer w;
</span><span style="color: #008080;"> 8</span>     <span style="color: #0000ff;">private</span> <span style="color: #0000ff;">char</span>[] buf = <span style="color: #0000ff;">new</span> <span style="color: #0000ff;">char</span>[1024<span style="color: #000000;">];
</span><span style="color: #008080;"> 9</span>     <span style="color: #0000ff;">private</span> <span style="color: #0000ff;">int</span> pos = 0<span style="color: #000000;">;
</span><span style="color: #008080;">10</span>     
<span style="color: #008080;">11</span>     <span style="color: #0000ff;">public</span><span style="color: #000000;"> MyBufferedWriter(Writer w)
</span><span style="color: #008080;">12</span> <span style="color: #000000;">    {
</span><span style="color: #008080;">13</span>         <span style="color: #0000ff;">this</span>.w =<span style="color: #000000;"> w;
</span><span style="color: #008080;">14</span> <span style="color: #000000;">    }
</span><span style="color: #008080;">15</span>     <span style="color: #008000;">/*</span>
<span style="color: #008080;">16</span> <span style="color: #008000;">     * 定义Writer方法,实现写一个字符,实现缓存的功能
</span><span style="color: #008080;">17</span> <span style="color: #008000;">     * 1.定义一个变量pos记住当前的写入位置
</span><span style="color: #008080;">18</span> <span style="color: #008000;">     * 2.每次调用都使用这个方法都会传入一个字符,将字符缓存到数组pos位置里面去
</span><span style="color: #008080;">19</span> <span style="color: #008000;">     * 3.pos++
</span><span style="color: #008080;">20</span> <span style="color: #008000;">     * 4.每次上来就判断,如果pos =1024,刷新缓冲区 ,pos = 0
</span><span style="color: #008080;">21</span>      <span style="color: #008000;">*/</span>
<span style="color: #008080;">22</span>     <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span> Writer(<span style="color: #0000ff;">int</span> ch)<span style="color: #0000ff;">throws</span><span style="color: #000000;"> IOException
</span><span style="color: #008080;">23</span> <span style="color: #000000;">    {
</span><span style="color: #008080;">24</span>         <span style="color: #0000ff;">if</span>(pos == 1024<span style="color: #000000;">)
</span><span style="color: #008080;">25</span> <span style="color: #000000;">        {
</span><span style="color: #008080;">26</span>             flush(); <span style="color: #008000;">//</span><span style="color: #008000;">刷新一下缓冲区.并且初始化为零</span>
<span style="color: #008080;">27</span>             pos = 0<span style="color: #000000;">;
</span><span style="color: #008080;">28</span> <span style="color: #000000;">        }
</span><span style="color: #008080;">29</span>         buf[pos++] = (<span style="color: #0000ff;">char</span><span style="color: #000000;">)ch;
</span><span style="color: #008080;">30</span> <span style="color: #000000;">    }
</span><span style="color: #008080;">31</span> <span style="color: #000000;">    @Override
</span><span style="color: #008080;">32</span>     <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span> close() <span style="color: #0000ff;">throws</span><span style="color: #000000;"> IOException {
</span><span style="color: #008080;">33</span> <span style="color: #000000;">        flush();
</span><span style="color: #008080;">34</span> <span style="color: #000000;">        w.close();
</span><span style="color: #008080;">35</span> <span style="color: #000000;">    }
</span><span style="color: #008080;">36</span> 
<span style="color: #008080;">37</span> <span style="color: #000000;">    @Override
</span><span style="color: #008080;">38</span>     <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span> flush() <span style="color: #0000ff;">throws</span><span style="color: #000000;"> IOException { 
</span><span style="color: #008080;">39</span>         w.write(buf,0,pos); <span style="color: #008000;">//</span><span style="color: #008000;">把buf0-pos位置的内容写入进去</span>
<span style="color: #008080;">40</span> <span style="color: #000000;">    }
</span><span style="color: #008080;">41</span>     <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span> writer(String data)<span style="color: #0000ff;">throws</span><span style="color: #000000;"> IOException
</span><span style="color: #008080;">42</span> <span style="color: #000000;">    {
</span><span style="color: #008080;">43</span>         <span style="color: #0000ff;">char</span>[] chars = data.toCharArray(); <span style="color: #008000;">//</span><span style="color: #008000;">转换成字符</span>
<span style="color: #008080;">44</span>         <span style="color: #0000ff;">for</span>(<span style="color: #0000ff;">char</span><span style="color: #000000;"> c : chars)
</span><span style="color: #008080;">45</span> <span style="color: #000000;">            write(c);
</span><span style="color: #008080;">46</span> <span style="color: #000000;">    }
</span><span style="color: #008080;">47</span>     <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span> newline()<span style="color: #0000ff;">throws</span><span style="color: #000000;"> IOException
</span><span style="color: #008080;">48</span> <span style="color: #000000;">    {
</span><span style="color: #008080;">49</span>         write("\r\n"); <span style="color: #008000;">//</span><span style="color: #008000;">所谓的换行就是一个</span>
<span style="color: #008080;">50</span> <span style="color: #000000;">    }
</span><span style="color: #008080;">51</span> <span style="color: #000000;">    @Override
</span><span style="color: #008080;">52</span>     <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span> write(<span style="color: #0000ff;">char</span>[] cbuf, <span style="color: #0000ff;">int</span> off, <span style="color: #0000ff;">int</span> len) <span style="color: #0000ff;">throws</span><span style="color: #000000;"> IOException {
</span><span style="color: #008080;">53</span>         <span style="color: #0000ff;">for</span>(<span style="color: #0000ff;">int</span> i=0; i&lt;off+len; i++<span style="color: #000000;">)
</span><span style="color: #008080;">54</span> <span style="color: #000000;">        {
</span><span style="color: #008080;">55</span> <span style="color: #000000;">            w.write(buf[i]);
</span><span style="color: #008080;">56</span> <span style="color: #000000;">        }
</span><span style="color: #008080;">57</span>         
<span style="color: #008080;">58</span> <span style="color: #000000;">    }
</span><span style="color: #008080;">59</span> 
<span style="color: #008080;">60</span> }</pre>
</div>
<p>由于每次都要关闭流啊~~无奈.只好使用一个类来实现它们</p>
<p>CloseUtil.class</p>
<div class="cnblogs_code">
<pre><span style="color: #008080;"> 1</span> <span style="color: #0000ff;">package</span><span style="color: #000000;"> com.javami.kudy.Code13;
</span><span style="color: #008080;"> 2</span> <span style="color: #0000ff;">import</span><span style="color: #000000;"> java.io.IOException;
</span><span style="color: #008080;"> 3</span> <span style="color: #0000ff;">import</span><span style="color: #000000;"> java.io.Reader;
</span><span style="color: #008080;"> 4</span> <span style="color: #0000ff;">import</span><span style="color: #000000;"> java.io.Writer;
</span><span style="color: #008080;"> 5</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">class</span><span style="color: #000000;"> CloseUtil {
</span><span style="color: #008080;"> 6</span>     <span style="color: #0000ff;">private</span><span style="color: #000000;"> CloseUtil(){}
</span><span style="color: #008080;"> 7</span>     <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">void</span> close(Reader r,Writer w)<span style="color: #0000ff;">throws</span><span style="color: #000000;"> IOException
</span><span style="color: #008080;"> 8</span> <span style="color: #000000;">    {
</span><span style="color: #008080;"> 9</span>         <span style="color: #0000ff;">try</span>
<span style="color: #008080;">10</span> <span style="color: #000000;">        {
</span><span style="color: #008080;">11</span>             <span style="color: #0000ff;">if</span>(r!=<span style="color: #0000ff;">null</span><span style="color: #000000;">)
</span><span style="color: #008080;">12</span> <span style="color: #000000;">                r.close();
</span><span style="color: #008080;">13</span> <span style="color: #000000;">        }
</span><span style="color: #008080;">14</span>         <span style="color: #0000ff;">finally</span>
<span style="color: #008080;">15</span> <span style="color: #000000;">        {
</span><span style="color: #008080;">16</span>             <span style="color: #0000ff;">if</span>(w!=<span style="color: #0000ff;">null</span><span style="color: #000000;">)
</span><span style="color: #008080;">17</span> <span style="color: #000000;">            w.close();
</span><span style="color: #008080;">18</span> <span style="color: #000000;">        }
</span><span style="color: #008080;">19</span> <span style="color: #000000;">    }
</span><span style="color: #008080;">20</span> }</pre>
</div>
<p>一个简单的测试类:</p>
<div class="cnblogs_code">
<pre><span style="color: #008080;"> 1</span> <span style="color: #0000ff;">package</span><span style="color: #000000;"> com.javami.kudy.Code13;
</span><span style="color: #008080;"> 2</span> <span style="color: #0000ff;">import</span><span style="color: #000000;"> java.io.FileReader;
</span><span style="color: #008080;"> 3</span> <span style="color: #0000ff;">import</span><span style="color: #000000;"> java.io.FileWriter;
</span><span style="color: #008080;"> 4</span> <span style="color: #0000ff;">import</span><span style="color: #000000;"> java.io.IOException;
</span><span style="color: #008080;"> 5</span> 
<span style="color: #008080;"> 6</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">abstract</span> <span style="color: #0000ff;">class</span><span style="color: #000000;"> BufferedTest {
</span><span style="color: #008080;"> 7</span> 
<span style="color: #008080;"> 8</span>     <span style="color: #008000;">/**</span>
<span style="color: #008080;"> 9</span> <span style="color: #008000;">     * </span><span style="color: #808080;">@param</span><span style="color: #008000;"> args
</span><span style="color: #008080;">10</span>      <span style="color: #008000;">*/</span>
<span style="color: #008080;">11</span>     <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> main(String[] args)
</span><span style="color: #008080;">12</span> <span style="color: #000000;">    {
</span><span style="color: #008080;">13</span>         MyBufferedReader mr = <span style="color: #0000ff;">null</span><span style="color: #000000;">;
</span><span style="color: #008080;">14</span>         MyBufferedWriter mw = <span style="color: #0000ff;">null</span><span style="color: #000000;">;
</span><span style="color: #008080;">15</span>         <span style="color: #0000ff;">try</span>
<span style="color: #008080;">16</span> <span style="color: #000000;">        {
</span><span style="color: #008080;">17</span>             mr = <span style="color: #0000ff;">new</span> MyBufferedReader(<span style="color: #0000ff;">new</span> FileReader("src/a.txt"<span style="color: #000000;">));
</span><span style="color: #008080;">18</span>             mw = <span style="color: #0000ff;">new</span> MyBufferedWriter(<span style="color: #0000ff;">new</span> FileWriter("src/b.txt"<span style="color: #000000;">));
</span><span style="color: #008080;">19</span>             <span style="color: #0000ff;">int</span><span style="color: #000000;"> len;
</span><span style="color: #008080;">20</span>             <span style="color: #0000ff;">while</span>((len=mr.read())!=-1<span style="color: #000000;">)
</span><span style="color: #008080;">21</span> <span style="color: #000000;">            {
</span><span style="color: #008080;">22</span> <span style="color: #000000;">                mw.Writer(len);
</span><span style="color: #008080;">23</span> <span style="color: #000000;">            }
</span><span style="color: #008080;">24</span> <span style="color: #000000;">        }
</span><span style="color: #008080;">25</span>         <span style="color: #0000ff;">catch</span><span style="color: #000000;">(IOException e)
</span><span style="color: #008080;">26</span> <span style="color: #000000;">        {
</span><span style="color: #008080;">27</span> <span style="color: #000000;">            e.printStackTrace();
</span><span style="color: #008080;">28</span> <span style="color: #000000;">        }
</span><span style="color: #008080;">29</span>         <span style="color: #0000ff;">finally</span>
<span style="color: #008080;">30</span> <span style="color: #000000;">        {
</span><span style="color: #008080;">31</span>             <span style="color: #0000ff;">try</span>
<span style="color: #008080;">32</span> <span style="color: #000000;">            {
</span><span style="color: #008080;">33</span> <span style="color: #000000;">                CloseUtil.close(mr, mw);
</span><span style="color: #008080;">34</span> <span style="color: #000000;">            }
</span><span style="color: #008080;">35</span>             <span style="color: #0000ff;">catch</span><span style="color: #000000;">(IOException e)
</span><span style="color: #008080;">36</span> <span style="color: #000000;">            {
</span><span style="color: #008080;">37</span> <span style="color: #000000;">        }
</span><span style="color: #008080;">38</span> <span style="color: #000000;">        }
</span><span style="color: #008080;">39</span> <span style="color: #000000;">    }
</span><span style="color: #008080;">40</span> }</pre>
</div>
<p align="left">BufferedReader 与 BufferedWriter 的存储图:</p>
<p><img src="http://pic002.cnblogs.com/images/2012/356496/2012080801385476.png" alt="" /></p>
<p>以上这几个都是比较难理解的..~~</p>
<p>&nbsp;</p>
<p>加油啦..</p>
<p>&nbsp;</p><img src ="http://www.blogjava.net/kudy/aggbug/385831.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kudy/" target="_blank">、小细</a> 2012-08-08 01:40 <a href="http://www.blogjava.net/kudy/archive/2012/08/08/385831.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>javase_12(集合+时间对象)</title><link>http://www.blogjava.net/kudy/archive/2012/08/07/385832.html</link><dc:creator>、小细</dc:creator><author>、小细</author><pubDate>Mon, 06 Aug 2012 17:10:00 GMT</pubDate><guid>http://www.blogjava.net/kudy/archive/2012/08/07/385832.html</guid><wfw:comment>http://www.blogjava.net/kudy/comments/385832.html</wfw:comment><comments>http://www.blogjava.net/kudy/archive/2012/08/07/385832.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kudy/comments/commentRss/385832.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kudy/services/trackbacks/385832.html</trackback:ping><description><![CDATA[<p>Map集合</p>
<p><br />1.Map存储了一系列键值的映射关系<br />2.Map集合需要保证键的唯一性<br />3.可以通过键获取到值,反之则不能<br />4.Map集合存储元素使用put(key,valus)方法.<br />5.遍历Map集合的两种遍历方式<br />	a)通过KeySet方法返回由键组成的集合,迭代集合里面的元素拿到所有的键再通过get方法根据键来获取值<br />	b)通过entrySet方法返回键所映射的关系组成的集合,迭代该集合就拿到一个键值映射的关系,再通过getKey获取到键,再通过getValue()方法获取到值</p>
<p><br />HashMap<br />	线程不安全,存储速度快,允许存放null键,null值<br />	通过HashSet保持键的唯一性</p>
<p>Hashtable<br />	线程安全,存储速度慢,不允许存放null键与null值</p>
<p>TreeMap<br />	通过二叉树的原理保证了键的唯一性<br />	对键进行了排序,排序原理与SetMap相同.<br />(如果想要使用这个方法,必须要冲构造方法里面重写Comparator 或者从对象所属的类继承Comparator实现这个接口)</p>
<p>Properties<br />	Hashtable的子类,所以是线程安全的.<br />	用于读写配置文件,一般配置项等号两边都是String,所以集合中的两个列保存的都是String类型的数据.<br />	这个集合中只能存String,所以不能使用泛型.</p>
<p><br />/*JavaAPI总结:application programming interface应用程序编程接口 sun公司提供给我们用的程序<br />一、String、StringBuffer、StringBuilder<br />1、String类是字符串常量<br />2、String池：String s = "abc" 和String s = new String("abc")的区别<br />3、String类的常用方法：charAt、indexOf、toCharArray、substring、split、compareTo、equals<br />4、StringBuffer：字符串容器，长度可变，一般用于字符串的增减删的操作。reverse方法反向<br />String s = "abc"; s = s + "xxx";//String长度不可变，因为是常量<br />5、StringBuilder线程不安全，StringBuffer线程安全</p>
<p>二、集合类<br />|-Iterable：实现增强for循环<br />|--Collection:单列，按照一种或多种规则来存储一系列元素<br />|---List:有序，允许有重复元素<br />|----AbstractList：抽象类，实现了iterator方法。<br />|-----ArrayList：数组实现，查找块，增删慢<br />|-----Vector：和ArrayList一样，只是线程安全<br />|-----LinkedList：链表实现，查找慢，增删块<br />|---Set：无序，不允许有重复元素<br />|----HashSet：通过哈希算法保证元素不重复，对象要正确重写equals和hashCode方法<br />|----HashTable：同上，但是线程安全<br />|----TreeSet：通过树状结构保证元素不重复，两种方式<br />	1、按照元素的自然顺序进行排序，前提是元素具备比较功能，实现了Comparable接口的compareTo方法<br />	2、在构造TreeSet实例时，传入一个比较器，实现Comparator接口的compare方法<br />	<br />|-Map：保存的是键值对应关系，其中键不允许有重复，可以通过keySet方法拿到一个包含所有键的Set<br />		再调用get(key)方法通过键拿到value<br />|--HashMap:通过HashSet的原理保证键不重复。<br />|--TreeMap：通过TreeSet的原理保证键不重复<br />|--Properties：用于读取配置文件，不需要声明泛型，因为键和值都只能为String类型。<br />	list方法将集合中的配置项输出到一个打印流<br />	load方法将一个输入流中的配置项存到集合中<br />Jdk1.5新特性泛型，减少集合存元素时错误发生的几率。<br />Jdk1.5出现Iterable，为了实现增强for循环  for(元素类型  变量：集合或数组)</p>
<p>工具类：<br />Collections：集合工具类，sort、binarySearch、reverse<br />Arrays：数组工具类，sort。。。。</p>
<p><br />三、包装类<br />1、Integer x = 0;x = x + 1; 装箱-拆箱-装箱（jdk1.5）<br />2、Interger.parseInt(String)将字符串转为int型</p>
<p>四、System类<br />1、System类的常用方法：gc()垃圾回收、exit(0)终止程序、currentTimeMillis()获得自1970年1月1日零时<br />	以来的毫秒数、getProperty方法获得系统属性。<br />2、两个静态成员变量：in和out<br />in：标准输入流，InputStreamReader类型<br />out：标准打印流，PrintStream类型</p>
<p>五、Runtime类<br />表示运行时，exec方法，在后台新开启一个窗口运行命令，是当前窗口的子窗口，继承所有窗口属性</p>
<p>六、日期对象<br />1、Date：大部分方法已过时，用new Date()创建日期对象表示当前时间<br />2、DateFormat：将日期格式化，抽象类<br />	DateFormat df = DateFormat.getInstance(); String dateStr = df.format(new Date);<br />3、Calendar对象：<br />	Calendar c = Calendar.getInstance();<br />可以将类中定义的常量当做参数传入get和set方法来获得和设置时间。<br />add方法，增加时间值，具体增加哪一项，就看传入的常量，调用完此方法，时间对象就被改变了。<br />*/</p>
<p>面试题目总结:</p>
<p>一、请说说ArrayList、Vector和LinkedList的区别<br />这三者都是单列集合Collection下List集合的实现类，所以他们的共同点，元素有序，允许重复元素<br />不同点：<br />ArrayList和Vector底层都是数组实现，这样的实现注定查找快、增删慢<br />ArrayList和Vector的区别在于线程安全问题，Vector支持线程同步，是线程访问安全的，而ArrayList线程不安全<br />LinkedList底层是链表结构，查找元素慢、增删元素速度快，线程不安全。</p>
<p>二、请说说HashSet原理，并写程序证明<br />HashSet在存元素时，会调用对象的hashCode方法计算出存储位置，然后和该位置上所有的元素进行equals比较，<br />如果该位置没有其他元素或者比较的结果都为false就存进去，否则就不存。<br />这样的原理注定了元素是按照哈希值来找存储位置，所有无序，而且可以保证无重复元素<br />我们在往HashSet集合存储元素时，对象应该正确重写Object类的hashCode和equals方法<br />正因为这样的原理，HashSet集合是非常高效的。<br />比如，要查找集合中是否包含某个对象，首先计算对象的hashCode，折算出位置号，到该位置上去找就可以了，而不用和所有的元素都比较一遍</p>
<p>三、Collection和Collections的区别<br />两者没有任何关系<br />Collection是单列集合的父接口，JDK1.5中定义了Iterable接口作为Collection父类，为了实现增强for循环<br />Collections是工具类，提供了关于集合的常用操作，例如，排序、二分法查找、反转元素等</p>
<p>&nbsp;</p>
<div class="cnblogs_code">
<pre><span style="color: #008080;">  1</span> <span style="color: #000000;">Collections 的应用:
</span><span style="color: #008080;">  2</span> 
<span style="color: #008080;">  3</span> 1<span style="color: #000000;">.
</span><span style="color: #008080;">  4</span> <span style="color: #0000ff;">package</span><span style="color: #000000;"> com.javami.kudyMap;
</span><span style="color: #008080;">  5</span> <span style="color: #0000ff;">import</span><span style="color: #000000;"> java.util.ArrayList;
</span><span style="color: #008080;">  6</span> <span style="color: #0000ff;">import</span><span style="color: #000000;"> java.util.Collections;
</span><span style="color: #008080;">  7</span> <span style="color: #0000ff;">import</span><span style="color: #000000;"> java.util.Comparator;
</span><span style="color: #008080;">  8</span> <span style="color: #0000ff;">import</span><span style="color: #000000;"> java.util.List;
</span><span style="color: #008080;">  9</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">class</span><span style="color: #000000;"> ColletionsTest {
</span><span style="color: #008080;"> 10</span>     <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> main(String[]args)
</span><span style="color: #008080;"> 11</span> <span style="color: #000000;">    {
</span><span style="color: #008080;"> 12</span>         <span style="color: #008000;">/*</span>
<span style="color: #008080;"> 13</span> <span style="color: #008000;">         * Collections工具类:提供关于集合的常用操作.
</span><span style="color: #008080;"> 14</span>          <span style="color: #008000;">*/</span>
<span style="color: #008080;"> 15</span>         ArrayList&lt;String&gt; al = <span style="color: #0000ff;">new</span> ArrayList&lt;String&gt;<span style="color: #000000;">();
</span><span style="color: #008080;"> 16</span>         al.add("ab"<span style="color: #000000;">);
</span><span style="color: #008080;"> 17</span>         al.add("aadc"<span style="color: #000000;">);
</span><span style="color: #008080;"> 18</span>         al.add("aaa"<span style="color: #000000;">);
</span><span style="color: #008080;"> 19</span>         al.add("hgdfakjg"<span style="color: #000000;">);
</span><span style="color: #008080;"> 20</span>         al.add("xhyns"<span style="color: #000000;">);
</span><span style="color: #008080;"> 21</span>         al.add("yyiouop"<span style="color: #000000;">);
</span><span style="color: #008080;"> 22</span>         al.add("qq"<span style="color: #000000;">);
</span><span style="color: #008080;"> 23</span>         al.add("zdff"<span style="color: #000000;">);
</span><span style="color: #008080;"> 24</span>         
<span style="color: #008080;"> 25</span>         <span style="color: #008000;">/*</span>
<span style="color: #008080;"> 26</span> <span style="color: #008000;">        for(String s : al)
</span><span style="color: #008080;"> 27</span> <span style="color: #008000;">            System.out.println(s+" ");
</span><span style="color: #008080;"> 28</span>         <span style="color: #008000;">*/</span>
<span style="color: #008080;"> 29</span>         
<span style="color: #008080;"> 30</span>         <span style="color: #008000;">/*</span><span style="color: #008000;">Collections.sort(al);  //list是一个接口  父类型的应用可以指向子类型的对象..
</span><span style="color: #008080;"> 31</span> <span style="color: #008000;">        for(String s : al)
</span><span style="color: #008080;"> 32</span> <span style="color: #008000;">            System.out.println(s+" ");</span><span style="color: #008000;">*/</span>
<span style="color: #008080;"> 33</span>         Collections.sort(al, <span style="color: #0000ff;">new</span><span style="color: #000000;"> StringComparator());
</span><span style="color: #008080;"> 34</span>         <span style="color: #008000;">/*</span>
<span style="color: #008080;"> 35</span> <span style="color: #008000;">         * 第一种方法 : 通过比较器来对比排序   可以在构造方法里面.
</span><span style="color: #008080;"> 36</span> <span style="color: #008000;">         * 或者在对象里面实现这个比较器.当new 这个实现接口.它会自动调用比较器的方法进行比较
</span><span style="color: #008080;"> 37</span>         <span style="color: #008000;">*/</span>
<span style="color: #008080;"> 38</span>         System.out.println("通过StringComparator()方法已经排序好-----"<span style="color: #000000;">);
</span><span style="color: #008080;"> 39</span>         <span style="color: #0000ff;">for</span><span style="color: #000000;">(String s : al)
</span><span style="color: #008080;"> 40</span>             System.out.print(s+" "<span style="color: #000000;">);
</span><span style="color: #008080;"> 41</span>         <span style="color: #008000;">/*</span>
<span style="color: #008080;"> 42</span> <span style="color: #008000;">         * 使用了API里面的方法!
</span><span style="color: #008080;"> 43</span> <span style="color: #008000;">        //binarySearch(List&lt;? extends T&gt; list, T key, Comparator&lt;? super T&gt; c) 
</span><span style="color: #008080;"> 44</span> <span style="color: #008000;">        int pos = Collections.binarySearch(al,"aaa",new StringComparator());
</span><span style="color: #008080;"> 45</span> <span style="color: #008000;">        System.out.println(pos);//因为我们需要通过比较才可以!
</span><span style="color: #008080;"> 46</span>         <span style="color: #008000;">*/</span>
<span style="color: #008080;"> 47</span>         <span style="color: #0000ff;">int</span> pos = MyCollections.binarySearch(al,"dasdas",<span style="color: #0000ff;">new</span><span style="color: #000000;"> StringComparator());
</span><span style="color: #008080;"> 48</span> <span style="color: #000000;">        System.out.println(pos);
</span><span style="color: #008080;"> 49</span> <span style="color: #000000;">    }
</span><span style="color: #008080;"> 50</span>     
<span style="color: #008080;"> 51</span> <span style="color: #000000;">}
</span><span style="color: #008080;"> 52</span> 
<span style="color: #008080;"> 53</span> <span style="color: #008000;">/*</span>
<span style="color: #008080;"> 54</span> <span style="color: #008000;"> * 比较器: 先比较  长短,再比较顺序
</span><span style="color: #008080;"> 55</span>  <span style="color: #008000;">*/</span>
<span style="color: #008080;"> 56</span> <span style="color: #0000ff;">class</span> StringComparator <span style="color: #0000ff;">implements</span> Comparator&lt;String&gt;
<span style="color: #008080;"> 57</span> <span style="color: #000000;">{
</span><span style="color: #008080;"> 58</span> 
<span style="color: #008080;"> 59</span> <span style="color: #000000;">    @Override
</span><span style="color: #008080;"> 60</span>     <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">int</span><span style="color: #000000;"> compare(String s1, String s2)
</span><span style="color: #008080;"> 61</span> <span style="color: #000000;">    {
</span><span style="color: #008080;"> 62</span>         <span style="color: #008000;">//</span><span style="color: #008000;">首先比较长度,再按照字典顺序</span>
<span style="color: #008080;"> 63</span>         <span style="color: #0000ff;">int</span> num = s1.length()-<span style="color: #000000;"> s2.length();
</span><span style="color: #008080;"> 64</span>         <span style="color: #0000ff;">if</span>(num !=0<span style="color: #000000;">)
</span><span style="color: #008080;"> 65</span>             <span style="color: #0000ff;">return</span><span style="color: #000000;"> num;
</span><span style="color: #008080;"> 66</span>         <span style="color: #0000ff;">return</span><span style="color: #000000;"> s1.compareTo(s2);
</span><span style="color: #008080;"> 67</span>         
<span style="color: #008080;"> 68</span> <span style="color: #000000;">    }
</span><span style="color: #008080;"> 69</span>     
<span style="color: #008080;"> 70</span> <span style="color: #000000;">}
</span><span style="color: #008080;"> 71</span> 
<span style="color: #008080;"> 72</span> <span style="color: #008000;">//</span><span style="color: #008000;">实现一个二分查找</span>
<span style="color: #008080;"> 73</span> <span style="color: #0000ff;">class</span><span style="color: #000000;"> MyCollections
</span><span style="color: #008080;"> 74</span> <span style="color: #000000;">{
</span><span style="color: #008080;"> 75</span>     <span style="color: #0000ff;">private</span> MyCollections(){}<span style="color: #008000;">//</span><span style="color: #008000;">私有化</span>
<span style="color: #008080;"> 76</span>     <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span>&lt;T&gt; <span style="color: #0000ff;">int</span> binarySearch(List&lt;T&gt; l,T key,Comparator&lt;T&gt;<span style="color: #000000;"> com)
</span><span style="color: #008080;"> 77</span> <span style="color: #000000;">    {
</span><span style="color: #008080;"> 78</span>         <span style="color: #0000ff;">int</span> min = 0<span style="color: #000000;">;
</span><span style="color: #008080;"> 79</span>         <span style="color: #0000ff;">int</span> max = l.size()-1<span style="color: #000000;">;
</span><span style="color: #008080;"> 80</span>         <span style="color: #0000ff;">int</span> mid = 0<span style="color: #000000;">;
</span><span style="color: #008080;"> 81</span>         <span style="color: #0000ff;">while</span>(max &gt;=<span style="color: #000000;">min)
</span><span style="color: #008080;"> 82</span> <span style="color: #000000;">        {
</span><span style="color: #008080;"> 83</span>             mid = (min+max) / 2<span style="color: #000000;">;
</span><span style="color: #008080;"> 84</span>             <span style="color: #008000;">//</span><span style="color: #008000;">判断比较器里面有没有!</span>
<span style="color: #008080;"> 85</span>             <span style="color: #0000ff;">if</span>(com.compare(key,l.get(mid))&gt;0)<span style="color: #008000;">//</span><span style="color: #008000;">找到集合位置的值</span>
<span style="color: #008080;"> 86</span>                 min = mid+1<span style="color: #000000;">;
</span><span style="color: #008080;"> 87</span>             <span style="color: #0000ff;">else</span> <span style="color: #0000ff;">if</span>(com.compare(key, l.get(mid))&lt;0<span style="color: #000000;">)
</span><span style="color: #008080;"> 88</span>                 max = mid-1<span style="color: #000000;">;
</span><span style="color: #008080;"> 89</span>             <span style="color: #0000ff;">else</span>
<span style="color: #008080;"> 90</span>                 <span style="color: #0000ff;">return</span><span style="color: #000000;"> mid;
</span><span style="color: #008080;"> 91</span> <span style="color: #000000;">        }
</span><span style="color: #008080;"> 92</span>         
<span style="color: #008080;"> 93</span>         <span style="color: #008000;">//</span><span style="color: #008000;">判断mid位置的元素和key的大小</span>
<span style="color: #008080;"> 94</span>         <span style="color: #0000ff;">if</span>(com.compare(key, l.get(mid))&gt;0<span style="color: #000000;">)
</span><span style="color: #008080;"> 95</span>             <span style="color: #0000ff;">return</span> -mid-2<span style="color: #000000;">;
</span><span style="color: #008080;"> 96</span>         <span style="color: #0000ff;">return</span> -mid-1<span style="color: #000000;">;
</span><span style="color: #008080;"> 97</span>             
<span style="color: #008080;"> 98</span> <span style="color: #000000;">    }
</span><span style="color: #008080;"> 99</span> <span style="color: #000000;">}
</span><span style="color: #008080;">100</span> 
<span style="color: #008080;">101</span> 2<span style="color: #000000;">.必须要通过比较器比较才能实现二分查找:
</span><span style="color: #008080;">102</span> 
<span style="color: #008080;">103</span> <span style="color: #0000ff;">package</span><span style="color: #000000;"> com.javami.kudyAPI;
</span><span style="color: #008080;">104</span> <span style="color: #0000ff;">import</span><span style="color: #000000;"> java.util.ArrayList;
</span><span style="color: #008080;">105</span> <span style="color: #0000ff;">import</span><span style="color: #000000;"> java.util.Collections;
</span><span style="color: #008080;">106</span> <span style="color: #0000ff;">import</span><span style="color: #000000;"> java.util.Comparator;
</span><span style="color: #008080;">107</span> 
<span style="color: #008080;">108</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">class</span><span style="color: #000000;"> Test {
</span><span style="color: #008080;">109</span>     <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> main(String[]args)
</span><span style="color: #008080;">110</span> <span style="color: #000000;">    {
</span><span style="color: #008080;">111</span>         ArrayList&lt;String&gt; al = <span style="color: #0000ff;">new</span> ArrayList&lt;String&gt;<span style="color: #000000;">();
</span><span style="color: #008080;">112</span>         al.add("as"<span style="color: #000000;">);
</span><span style="color: #008080;">113</span>         al.add("scx"<span style="color: #000000;">);
</span><span style="color: #008080;">114</span>         al.add("dsad"<span style="color: #000000;">);
</span><span style="color: #008080;">115</span>         al.add("hellsda"<span style="color: #000000;">);
</span><span style="color: #008080;">116</span>         al.add("dsazxc"<span style="color: #000000;">);
</span><span style="color: #008080;">117</span>         al.add("dascxxc"<span style="color: #000000;">);
</span><span style="color: #008080;">118</span>         <span style="color: #008000;">//</span><span style="color: #008000;">在通过二分查找之前我们要经过排序'</span>
<span style="color: #008080;">119</span>         System.out.println("还没有排序之前"<span style="color: #000000;">);
</span><span style="color: #008080;">120</span>         <span style="color: #0000ff;">for</span><span style="color: #000000;">(String s : al)
</span><span style="color: #008080;">121</span>             System.out.print(s+" "<span style="color: #000000;">);
</span><span style="color: #008080;">122</span>         
<span style="color: #008080;">123</span>         
<span style="color: #008080;">124</span>         <span style="color: #008000;">//</span><span style="color: #008000;">第二部 : 当你调用二分查找之后.会调用比较器进行比较.是经过排序后的才可以进行二分查找
</span><span style="color: #008080;">125</span>         <span style="color: #008000;">//</span><span style="color: #008000;">比较器一定要传过来</span>
<span style="color: #008080;">126</span>         <span style="color: #0000ff;">int</span> num = Collections.binarySearch(al, "dsaas",<span style="color: #0000ff;">new</span> Comparator&lt;String&gt;<span style="color: #000000;">(){
</span><span style="color: #008080;">127</span> 
<span style="color: #008080;">128</span> <span style="color: #000000;">            @Override
</span><span style="color: #008080;">129</span>             <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">int</span><span style="color: #000000;"> compare(String s1, String s2) {
</span><span style="color: #008080;">130</span>                 <span style="color: #0000ff;">int</span> num = s1.length() - s2.length();<span style="color: #008000;">//</span><span style="color: #008000;">比较长度</span>
<span style="color: #008080;">131</span>                 <span style="color: #0000ff;">if</span>(num != 0<span style="color: #000000;">)
</span><span style="color: #008080;">132</span>                     <span style="color: #0000ff;">return</span><span style="color: #000000;"> num;
</span><span style="color: #008080;">133</span>                 <span style="color: #0000ff;">return</span> s1.compareTo(s2); <span style="color: #008000;">//</span><span style="color: #008000;">按字典顺序排</span>
<span style="color: #008080;">134</span> <span style="color: #000000;">            }
</span><span style="color: #008080;">135</span>             
<span style="color: #008080;">136</span> <span style="color: #000000;">        });
</span><span style="color: #008080;">137</span>         System.out.println(num+1<span style="color: #000000;">);
</span><span style="color: #008080;">138</span> <span style="color: #000000;">    }
</span><span style="color: #008080;">139</span> <span style="color: #000000;">}
</span><span style="color: #008080;">140</span> 
<span style="color: #008080;">141</span> 
<span style="color: #008080;">142</span> <span style="color: #000000;">日期的应用:
</span><span style="color: #008080;">143</span> 
<span style="color: #008080;">144</span> <span style="color: #0000ff;">package</span><span style="color: #000000;"> com.javami.kudyAPI;
</span><span style="color: #008080;">145</span> <span style="color: #0000ff;">import</span><span style="color: #000000;"> java.util.Calendar;
</span><span style="color: #008080;">146</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">class</span><span style="color: #000000;"> CalendarTest {
</span><span style="color: #008080;">147</span> 
<span style="color: #008080;">148</span>     <span style="color: #008000;">/**</span>
<span style="color: #008080;">149</span> <span style="color: #008000;">     * </span><span style="color: #808080;">@param</span><span style="color: #008000;"> args
</span><span style="color: #008080;">150</span>      <span style="color: #008000;">*/</span>
<span style="color: #008080;">151</span> 
<span style="color: #008080;">152</span>     <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> main(String[] args)
</span><span style="color: #008080;">153</span> <span style="color: #000000;">    {
</span><span style="color: #008080;">154</span>         Calendar calendar =<span style="color: #000000;"> Calendar.getInstance();
</span><span style="color: #008080;">155</span> <span style="color: #000000;">        printCalendar(calendar);
</span><span style="color: #008080;">156</span>         <span style="color: #0000ff;">int</span> nums = getDayNum(2012<span style="color: #000000;">);
</span><span style="color: #008080;">157</span> <span style="color: #000000;">        System.out.println(nums);
</span><span style="color: #008080;">158</span>         
<span style="color: #008080;">159</span>         <span style="color: #008000;">//</span><span style="color: #008000;">----------------</span>
<span style="color: #008080;">160</span>         Calendar startDay = Calendar.getInstance();<span style="color: #008000;">//</span><span style="color: #008000;">获取当前的日历</span>
<span style="color: #008080;">161</span>         Calendar finishDay =<span style="color: #000000;"> getFinishDay(startDay);
</span><span style="color: #008080;">162</span>         <span style="color: #0000ff;">int</span> num = finishDay.get(Calendar.DAY_OF_YEAR) -<span style="color: #000000;"> calendar.get(Calendar.DAY_OF_YEAR);
</span><span style="color: #008080;">163</span>         System.out.println(num+"天数"<span style="color: #000000;">);
</span><span style="color: #008080;">164</span> <span style="color: #000000;">    }
</span><span style="color: #008080;">165</span>     
<span style="color: #008080;">166</span>     <span style="color: #008000;">//</span><span style="color: #008000;">计算出某年的2月份有多少天</span>
<span style="color: #008080;">167</span>     <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">int</span> getDayNum(<span style="color: #0000ff;">int</span><span style="color: #000000;"> year)
</span><span style="color: #008080;">168</span> <span style="color: #000000;">    {
</span><span style="color: #008080;">169</span>         <span style="color: #008000;">//</span><span style="color: #008000;">1.获取一个日历</span>
<span style="color: #008080;">170</span>         Calendar calendar =<span style="color: #000000;"> Calendar.getInstance();
</span><span style="color: #008080;">171</span>         
<span style="color: #008080;">172</span>         <span style="color: #008000;">/*</span>
<span style="color: #008080;">173</span> <span style="color: #008000;">         * set(int year, int month, int date) 
</span><span style="color: #008080;">174</span> <span style="color: #008000;">          设置日历字段 YEAR、MONTH 和 DAY_OF_MONTH 的值。
</span><span style="color: #008080;">175</span>          <span style="color: #008000;">*/</span>
<span style="color: #008080;">176</span>         calendar.set(year,2,1); <span style="color: #008000;">//</span><span style="color: #008000;">2月份其实就是中国的三月
</span><span style="color: #008080;">177</span>         <span style="color: #008000;">//</span><span style="color: #008000;">日历字段  DAY_OF_YEAR获取到年中的月份  , -1  其实就是2月份</span>
<span style="color: #008080;">178</span>         calendar.add(Calendar.DAY_OF_YEAR,-1<span style="color: #000000;">);
</span><span style="color: #008080;">179</span>         <span style="color: #0000ff;">return</span> calendar.get(Calendar.DAY_OF_MONTH); <span style="color: #008000;">//</span><span style="color: #008000;">获取到二月份的天数</span>
<span style="color: #008080;">180</span> <span style="color: #000000;">    }
</span><span style="color: #008080;">181</span>     
<span style="color: #008080;">182</span>     <span style="color: #008000;">//</span><span style="color: #008000;">一个项目做100天，周末休息，五一和十一各休息一天，今天开始做，哪天完工
</span><span style="color: #008080;">183</span>     <span style="color: #008000;">//</span><span style="color: #008000;">一个项目做100天，周末休息，五一和十一各休息一天，今天开始做，哪天完工</span>
<span style="color: #008080;">184</span>     <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span><span style="color: #000000;"> Calendar getFinishDay(Calendar c) {
</span><span style="color: #008080;">185</span>         <span style="color: #0000ff;">for</span>(<span style="color: #0000ff;">int</span> i=0; i&lt;100; i++<span style="color: #000000;">) {
</span><span style="color: #008080;">186</span>             
<span style="color: #008080;">187</span>             <span style="color: #008000;">//</span><span style="color: #008000;">如果是星期六或者星期天(get 和 set 的字段数字，指示一个星期中的某天。)</span>
<span style="color: #008080;">188</span>             <span style="color: #0000ff;">if</span>(c.get(Calendar.DAY_OF_WEEK)==1||c.get(Calendar.DAY_OF_WEEK)==7<span style="color: #000000;">)
</span><span style="color: #008080;">189</span>                 i--<span style="color: #000000;">;
</span><span style="color: #008080;">190</span>             <span style="color: #008000;">//</span><span style="color: #008000;">(get 和 set 的字段数字，指示一个月中的某天。)</span>
<span style="color: #008080;">191</span>             <span style="color: #0000ff;">else</span> <span style="color: #0000ff;">if</span>(c.get(c.DAY_OF_MONTH)==1&amp;&amp;(c.get(c.MONTH)==4||c.get(c.MONTH)==9<span style="color: #000000;">))
</span><span style="color: #008080;">192</span>                 i--<span style="color: #000000;">;
</span><span style="color: #008080;">193</span>             c.add(Calendar.DAY_OF_YEAR, 1<span style="color: #000000;">);
</span><span style="color: #008080;">194</span> <span style="color: #000000;">        }
</span><span style="color: #008080;">195</span>         <span style="color: #0000ff;">return</span><span style="color: #000000;"> c;
</span><span style="color: #008080;">196</span> <span style="color: #000000;">    }
</span><span style="color: #008080;">197</span>     <span style="color: #008000;">//</span><span style="color: #008000;">代表是一个时间</span>
<span style="color: #008080;">198</span>     <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> printCalendar(Calendar calendar)
</span><span style="color: #008080;">199</span> <span style="color: #000000;">    {
</span><span style="color: #008080;">200</span>         <span style="color: #0000ff;">int</span> year = calendar.get(calendar.YEAR); <span style="color: #008000;">//</span><span style="color: #008000;">年</span>
<span style="color: #008080;">201</span>         <span style="color: #0000ff;">int</span> month = calendar.get(calendar.MONTH); <span style="color: #008000;">//</span><span style="color: #008000;">月</span>
<span style="color: #008080;">202</span>         <span style="color: #0000ff;">int</span> day = calendar.get(calendar.WEEK_OF_MONTH);<span style="color: #008000;">//</span><span style="color: #008000;">日</span>
<span style="color: #008080;">203</span>         <span style="color: #0000ff;">int</span> week = calendar.get(calendar.DAY_OF_WEEK);<span style="color: #008000;">//</span><span style="color: #008000;">星期</span>
<span style="color: #008080;">204</span>         <span style="color: #0000ff;">int</span> hour = calendar.get(calendar.HOUR_OF_DAY); <span style="color: #008000;">//</span><span style="color: #008000;">时间</span>
<span style="color: #008080;">205</span>         <span style="color: #0000ff;">int</span> minute = calendar.get(calendar.MINUTE);<span style="color: #008000;">//</span><span style="color: #008000;">分</span>
<span style="color: #008080;">206</span>             
<span style="color: #008080;">207</span>         String StringWeek = <span style="color: #0000ff;">null</span><span style="color: #000000;">;
</span><span style="color: #008080;">208</span>         <span style="color: #0000ff;">switch</span><span style="color: #000000;">(week)
</span><span style="color: #008080;">209</span> <span style="color: #000000;">        {
</span><span style="color: #008080;">210</span>         
<span style="color: #008080;">211</span>             <span style="color: #0000ff;">case</span> 1<span style="color: #000000;">:
</span><span style="color: #008080;">212</span>                     StringWeek = "星期天"<span style="color: #000000;">;
</span><span style="color: #008080;">213</span>                     <span style="color: #0000ff;">break</span><span style="color: #000000;">;
</span><span style="color: #008080;">214</span>             <span style="color: #0000ff;">case</span> 2<span style="color: #000000;">:
</span><span style="color: #008080;">215</span>                     StringWeek = "星期一"<span style="color: #000000;">;
</span><span style="color: #008080;">216</span>                     <span style="color: #0000ff;">break</span><span style="color: #000000;">;
</span><span style="color: #008080;">217</span>             <span style="color: #0000ff;">case</span> 3<span style="color: #000000;">:
</span><span style="color: #008080;">218</span>                     StringWeek = "星期二"<span style="color: #000000;">;
</span><span style="color: #008080;">219</span>                     <span style="color: #0000ff;">break</span><span style="color: #000000;">;
</span><span style="color: #008080;">220</span>             <span style="color: #0000ff;">case</span> 4<span style="color: #000000;">:
</span><span style="color: #008080;">221</span>                     StringWeek = "星期三"<span style="color: #000000;">;
</span><span style="color: #008080;">222</span>                     <span style="color: #0000ff;">break</span><span style="color: #000000;">;
</span><span style="color: #008080;">223</span>             <span style="color: #0000ff;">case</span> 5<span style="color: #000000;">:
</span><span style="color: #008080;">224</span>                     StringWeek = "星期四"<span style="color: #000000;">;
</span><span style="color: #008080;">225</span>                     <span style="color: #0000ff;">break</span><span style="color: #000000;">;
</span><span style="color: #008080;">226</span>             <span style="color: #0000ff;">case</span> 6<span style="color: #000000;">:
</span><span style="color: #008080;">227</span>                     StringWeek = "星期五"<span style="color: #000000;">;
</span><span style="color: #008080;">228</span>                     <span style="color: #0000ff;">break</span><span style="color: #000000;">;
</span><span style="color: #008080;">229</span>             <span style="color: #0000ff;">case</span> 7<span style="color: #000000;">:
</span><span style="color: #008080;">230</span>                     StringWeek = "星期六"<span style="color: #000000;">;
</span><span style="color: #008080;">231</span>                     <span style="color: #0000ff;">break</span><span style="color: #000000;">;
</span><span style="color: #008080;">232</span> <span style="color: #000000;">        }
</span><span style="color: #008080;">233</span>         <span style="color: #008000;">//</span><span style="color: #008000;">并接成字符串</span>
<span style="color: #008080;">234</span>         String str = ""+year+"-"+(month+1)+"-"+day+"-"+week+"-"+hour+"-"+<span style="color: #000000;">minute;
</span><span style="color: #008080;">235</span> <span style="color: #000000;">        System.out.println(str);
</span><span style="color: #008080;">236</span> <span style="color: #000000;">    }
</span><span style="color: #008080;">237</span> 
<span style="color: #008080;">238</span> 
<span style="color: #008080;">239</span> }</pre>
</div><img src ="http://www.blogjava.net/kudy/aggbug/385832.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kudy/" target="_blank">、小细</a> 2012-08-07 01:10 <a href="http://www.blogjava.net/kudy/archive/2012/08/07/385832.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>javase_11(集合的理解)</title><link>http://www.blogjava.net/kudy/archive/2012/08/07/385833.html</link><dc:creator>、小细</dc:creator><author>、小细</author><pubDate>Mon, 06 Aug 2012 17:09:00 GMT</pubDate><guid>http://www.blogjava.net/kudy/archive/2012/08/07/385833.html</guid><wfw:comment>http://www.blogjava.net/kudy/comments/385833.html</wfw:comment><comments>http://www.blogjava.net/kudy/archive/2012/08/07/385833.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kudy/comments/commentRss/385833.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kudy/services/trackbacks/385833.html</trackback:ping><description><![CDATA[<p><br /><strong>集合类：</strong></p>
<p>为什么使用集合类?</p>
<p>在面向对象的编程思想中，都是以对象的形式对事物进行描述的,为了保证对象的生命周期，我们需要持有对象<br />（什么叫做持有对象呢?Person p = new Person()）</p>
<p>数组和集合类的区别?</p>
<p>1.数组和集合类都是容器，都能存储对象<br />2.集合类优点就是长度可变,而数组一旦定义.长度是不能修改的.</p>
<p><br /><strong>集合的特点：</strong></p>
<p>集合类可用于存储对象.<br />集合类的长度可变<br />一个集合可以存储多种类型的对象..</p>
<p><span style="color: #ff0000;">Collection 接口：</span><br />1.一个独立的元素的序列，这些元素从一条或多条规则<br />2.collection接口下分为list集合和Set集合<br />3.list集合的特点是元素有序，可以允许有重复的元素<br />4.set集合的特点是元素无序，不允许有重复的元素<br />&darr;&darr;<br /><span style="color: #ff0000;">List（子接口）</span><br />&darr;&darr;<br /><span style="color: #ff0000;">ArrayList(实现类)</span><br />1.底层数组实现，查找快，增删慢<br />2.线程不安全<br />----------------------------------<br /><span style="color: #ff0000;">Vector（实现类）</span><br />1.与ArrayList基本一样<br />2.线程安全<br />----------------------------------<br /><span style="color: #ff0000;">LinkedList(实现类)</span><br />1.底层是链表的实现<br />2.增删快，查找慢</p>
<p><br />{<br />List集合元素存取方法一致<br />使用add()方法增加元素<br />由于List集合有序，可以使用get()方法获取元素<br />元素的迭代(Iterator)<br />通过集合对象的iterator()方法获得迭代器Iterator<br />通过Iterator迭代器的hasNext()方法判断是否存在下一个元素<br />通过Iterator迭代器的next()方法获取下一个元素<br />元素的迭代(Enumeration)<br />迭代Vector集合中的元素可以使用Enumeration<br />通过Enumeration的hasNextElements()方法判断是否还有元素<br />通过Enumeration的nextElement()方法返回下一个元素<br />}</p>
<p><br />&darr;&darr;<br /><span style="color: #ff0000;">Set（子接口）</span><br />&darr;&darr;<br />Set集合无须，不允许有重复的元素<br />1.set集合通过存入对象的equals方法来保证集合中没有重复的元素</p>
<p>HashSet（实现类）<br />HashSet是set的子类，因而没有重复元素<br />底层使用了哈希算法保证没有重复元素<br />存储对象时，先调用对象的HashSet（）方法，找到存储位置，再和当前的存储位置上已经存在的元素通过equals()方法进行比较，如果返回false，才能进行存储<br />往HashSet集合里存储的对象必须是重写HahCode 和equals()方法。</p>
<p>TreeSet（实现类）<br />TreeSet集合通过二叉树算法保证无重复元素，并对元素进行排序<br />第一种方式: 如果对象实现了Comparable接口，就可以存入TreeSet集合    因为它会自动的去调用里面的一个比较方法.所以在Person里面重写<br />第二种方式: 如果对象没有实现Comparable接口，在创建TreeSet对象时，需要给构造函数扔进一个比较器，实现Comparator接口  .(必须要在匿名内部类重写.或者继承一个类来重写)</p>
<p>----------------------------------</p>
<p><span style="color: #ff0000;">Map接口：</span><br />1.一组成对的&ldquo;键值对&rdquo;对象，允许根据键来查找值<br />2.Map集合的健值不允许有重复的，所以Map所有的键都构成了一个Set集合</p>
<p>Iterable接口：<br />1.JDK1.5新定义的接口作为Collection的父接口<br />2.主要就是实现了增强for循环</p>
<p>&nbsp;</p>
<p><span style="color: #ff0000;">jdk1.5的新特征：</span></p>
<p><span style="color: #ff0000;">泛型:</span><br />由于集合可以存储不同数据类型的对象，所以取元素(地址)时会导致类型转换错误<br />jdk1.5新增加了泛型，为了减少操作集合的出错里<br />例如： ArrayList&lt;Person&gt; arraylist = new ArrayList&lt;Person&gt;(); <br />比喻： 我在每一个挂了一个牌子.只能是Person 使用.做了一个限制..</p>
<p><span style="color: #ff0000;">使用泛型的好处：</span><br />		1.提高的代码的安全性<br />		2.讲运行期间的问题转到了编译期间的问题（你懂的~~）<br />		3.省起了类型转换的麻烦<br />		4.泛型类的出现优化了程序设计</p>
<p><span style="color: #ff0000;">增强for循环：</span><br />		新接口Iterable中定义了增强for循环<br />		可以通过增强for循环对数组和集合进行遍历<br />		在迭代集合元素时，需要定义了泛型才能使用for循环<br />		</p>
<p><span style="color: #ff0000;">可变参数：</span></p>
<p>		有的时候在设计方法时无法确定将来别人会传入的参数个数<br />		JDK1.5增加了新特性可变参数，在函数中只声明参数类型，不规定个数<br />		方法接受的参数实际上是一个数组，可以在方法中遍历数组<br />		可变参数只能被定义为函数的最后一个形参<br />		语法格式： 返回值 函数名(参数类型&hellip; 形参)</p>
<p>&nbsp;</p>
<div class="cnblogs_code">
<pre><span style="color: #008080;"> 1</span> <span style="color: #0000ff;">package</span><span style="color: #000000;"> com.javami.kudy.javaapin.StringStudy;
</span><span style="color: #008080;"> 2</span> 
<span style="color: #008080;"> 3</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">class</span><span style="color: #000000;"> Test {
</span><span style="color: #008080;"> 4</span>         <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> main(String[]args)
</span><span style="color: #008080;"> 5</span> <span style="color: #000000;">        {
</span><span style="color: #008080;"> 6</span>             show(33,45,7657,332,11,5465<span style="color: #000000;">);
</span><span style="color: #008080;"> 7</span> <span style="color: #000000;">        }
</span><span style="color: #008080;"> 8</span>         
<span style="color: #008080;"> 9</span>         <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">void</span> show(<span style="color: #0000ff;">int</span><span style="color: #000000;"> ... i)
</span><span style="color: #008080;">10</span> <span style="color: #000000;">        {
</span><span style="color: #008080;">11</span>             <span style="color: #0000ff;">for</span>(<span style="color: #0000ff;">int</span><span style="color: #000000;"> num : i)
</span><span style="color: #008080;">12</span> <span style="color: #000000;">                System.out.println(num);
</span><span style="color: #008080;">13</span> <span style="color: #000000;">        }
</span><span style="color: #008080;">14</span> }</pre>
</div><img src ="http://www.blogjava.net/kudy/aggbug/385833.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kudy/" target="_blank">、小细</a> 2012-08-07 01:09 <a href="http://www.blogjava.net/kudy/archive/2012/08/07/385833.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>javase_10(String类日常操作)</title><link>http://www.blogjava.net/kudy/archive/2012/08/07/385834.html</link><dc:creator>、小细</dc:creator><author>、小细</author><pubDate>Mon, 06 Aug 2012 17:07:00 GMT</pubDate><guid>http://www.blogjava.net/kudy/archive/2012/08/07/385834.html</guid><wfw:comment>http://www.blogjava.net/kudy/comments/385834.html</wfw:comment><comments>http://www.blogjava.net/kudy/archive/2012/08/07/385834.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kudy/comments/commentRss/385834.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kudy/services/trackbacks/385834.html</trackback:ping><description><![CDATA[<p>第一:</p>
<div class="cnblogs_code">
<pre><span style="color: #0000ff;">package</span><span style="color: #000000;"> com.javami.kudy.javaapi1.StringStudy;

</span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">class</span><span style="color: #000000;"> StringDemo {
    </span><span style="color: #008000;">/*</span><span style="color: #008000;">面试题：
     * 1.Stirng s = "abc" String s = new String("abc"); //有什么区别?
     * 2.String s = new String("abc"); 创建了几个对象 2个(池里没有)或1个(池里有了)，
     * 3.String s = "a" + "b" + "c" + "d"; 创建了几个对象？ 创建了1个对象
     * 4.String s1 = "a"; String s2 = "b"; String s3 = s1 + s2;  s3=="ab"?
     </span><span style="color: #008000;">*/</span>
    
    <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> main(String[]args)
    {
        </span><span style="color: #008000;">/*</span><span style="color: #008000;">
         * 1.String池,由于字符串操作很频繁.java针对String对象提供了缓冲池
         * s1首先会在缓冲池里面看一下有没有"abc" 如果没有的.那么把对象创建的引用返回给s1
         * 当s2开始执行.会检查缓冲池里面有没有.如果有的.直接把对象的地址返回给s2 .所以是相等的.。
        String s1 = "abc";
        String s2 = "abc";
        System.out.println(s1 == s2);
        </span><span style="color: #008000;">*/</span>
        
        <span style="color: #008000;">/*</span><span style="color: #008000;">
        String s1 = "abc";
        String s2 = new String(s1); 
        outcome ： false
        s2在堆内存中创建了一个对象(把地址返回来~),并且在堆内存里面的缓冲池里面创建一个"abc"(这个是对象里面的一个拷贝副本)
        做java的日常维护.所以那么这两个地址一比较.就会不相等..
        </span><span style="color: #008000;">*/</span>
        
        <span style="color: #008000;">/*</span><span style="color: #008000;">
        String s1 = "a"+"b"+"c";
        String s2 ="abc";
        outCome = "true";
        因为java编译器有个合并已知量的功能,在编译阶段"a"+"b"+"c" 合并为"abc"并且保存在缓冲池里面
        所以s2在检测缓冲池里面.检测到已经有了.直接把对象的引用所返回来.那么证明了s1  s2 是同一个地址/所以比较出来为true
        </span><span style="color: #008000;">*/</span>
        
        <span style="color: #008000;">/*</span><span style="color: #008000;">
        String s1 = new String("abc");
        String s2 = new String("abc");
        这两个里面创建了多少个对象呢?
        解答：  首先会在堆内存中创建一个对象.在检测池里面有没有,没有也在了缓冲池里面创建了一个.做日常的维护
        s2也会在堆内存中创建一个对象.这时候检测到池里面已经有了.所以就不再创建/
        说百了也就是3个..
        一般面试简单的就直接说：2个就可以.
        </span><span style="color: #008000;">*/</span>
        
        <span style="color: #008000;">/*</span><span style="color: #008000;">
         * String 是一个常量,是不能改变的量
         * 内部实现：
         * StringBuilder sb = new StringBuilder(s1);
         * sb.append(s2);
         * s3 = sb.toString(); //转换回字符串
         * 返回调用方法的都是创建一个对象的
         * 
         </span><span style="color: #008000;">*/</span><span style="color: #000000;">
        String s1 </span>= "a"<span style="color: #000000;">;
        String s2 </span>= "b"<span style="color: #000000;">;
        String s3 </span>= s1 +<span style="color: #000000;"> s2;
        System.out.println(s3</span>=="ab"); <span style="color: #008000;">//</span><span style="color: #008000;">直接返回一个flase</span>
<span style="color: #000000;">        
    }

}</span></pre>
</div>
<p>第二:</p>
<div class="cnblogs_code">
<pre><span style="color: #0000ff;">package</span><span style="color: #000000;"> com.javami.kudy.javaapi1.StringStudy;

</span><span style="color: #0000ff;">import</span><span style="color: #000000;"> java.io.UnsupportedEncodingException;

</span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">class</span><span style="color: #000000;"> DecodeTest {
    
    </span><span style="color: #008000;">/*</span><span style="color: #008000;">
     * 解码： 用错误的码再变回来.然后用正确的编码方式就可以
     * 编码错误： 没办法,神仙也救不了
     </span><span style="color: #008000;">*/</span>
    <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">void</span> main(String[]args) <span style="color: #0000ff;">throws</span><span style="color: #000000;"> UnsupportedEncodingException
    {
        String str1 </span>= "中国人";  <span style="color: #008000;">//</span><span style="color: #008000;">使用gb2312编码
        </span><span style="color: #008000;">//</span><span style="color: #008000;"> 使用平台的默认字符集将此 String 编码为 byte 序列，并将结果存储到一个新的 byte 数组中。</span>
        <span style="color: #0000ff;">byte</span>[] newbyte =<span style="color: #000000;"> str1.getBytes();
        
        String str2 </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> String(newbyte);
        System.out.println(str2);
        
        
        String str3 </span>= <span style="color: #0000ff;">new</span> String(newbyte,"iso-8859-1"<span style="color: #000000;">);
        </span><span style="color: #008000;">//</span><span style="color: #008000;">System.out.println(str3);编码的信息出错</span>
        newbyte = str3.getBytes("iso-8859-1"<span style="color: #000000;">);    
        String str4 </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> String(newbyte);
        System.out.println(str4);
        
        </span><span style="color: #0000ff;">byte</span>[]new1 = str1.getBytes("iso-8859-1"<span style="color: #000000;">);
        </span><span style="color: #008000;">//</span><span style="color: #008000;">一开始编码的信息就出错!因为我的计算机根本就没有这个编码</span>
        String s6 = <span style="color: #0000ff;">new</span><span style="color: #000000;"> String(new1);
        new1 </span>= s6.getBytes("iso-8859-1"<span style="color: #000000;">);
        String st7 </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> String(new1);
        System.out.println(st7);
    }
}</span></pre>
</div>
<p>第三:</p>
<div class="cnblogs_code">
<pre><span style="color: #0000ff;">package</span><span style="color: #000000;"> com.javami.kudy.javaapi1.StringStudy;

</span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">class</span><span style="color: #000000;"> StringTest {
    </span><span style="color: #008000;">/*</span><span style="color: #008000;">String 为什么要重写toString()方法呢?
        解答：因为在String如果不重写Object的toString方法.那么直接复用父类的方法.打印出的是对象.
        这显然不是String想要得到的结果
     </span><span style="color: #008000;">*/</span>
        <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> main(String[]args) 
        {
            String s1 </span>= "kudy"<span style="color: #000000;">;
            System.out.println(s1.charAt(</span>3)); <span style="color: #008000;">//</span><span style="color: #008000;">索引是从零开始\</span>
            String s2 ="abcde"<span style="color: #000000;">;
            String s3 </span>= "aBcddddd"<span style="color: #000000;">;
            System.out.println(s2.compareToIgnoreCase(s3));
            
            String s4 </span>= "abc"<span style="color: #000000;">;
            String s5 </span>= "def"<span style="color: #000000;">;
            System.out.println((s4.concat(s5)).toString());
            
            </span><span style="color: #0000ff;">boolean</span> is =<span style="color: #000000;"> s4.contains(s5);
            System.out.println(is);
            
            String fileName </span>= "Demo.jdk"<span style="color: #000000;">;
            </span><span style="color: #0000ff;">if</span>(fileName.endsWith(".java"<span style="color: #000000;">))
                    System.out.println(</span>"您是java文件"<span style="color: #000000;">);
            
            String s6 </span>= "cnabcdbvklabcjdhfabcdhla"<span style="color: #000000;">;
            </span><span style="color: #0000ff;">int</span> newint = s6.indexOf("abc",0);  <span style="color: #008000;">//</span><span style="color: #008000;">注意：索引是从零开始</span>
<span style="color: #000000;">            System.out.println(newint);
            
            String s7 </span>= "abc"<span style="color: #000000;">;
            String s8 </span>= <span style="color: #0000ff;">new</span> String("abc"<span style="color: #000000;">);
            s8.intern();
            System.out.println(s7 </span>==<span style="color: #000000;"> s8);
            
            String s9 </span>= "cascascacvdfdjkgksd"<span style="color: #000000;">;
            </span><span style="color: #0000ff;">int</span> num = s9.lastIndexOf("k",s9.length()-1<span style="color: #000000;">);
            System.out.println(num);
            
            String s10 </span>= "abc"<span style="color: #000000;">;
            String s11 </span>= s10.replace("abc","***"<span style="color: #000000;">);
            System.out.println(s11);
            
            String s12 </span>= "hello.java"<span style="color: #000000;">;
            String s13 </span>= s12.replace("java","jdk"<span style="color: #000000;"> );
            System.out.println(s13);
            
            
            </span><span style="color: #008000;">/*</span><span style="color: #008000;">
             * 把有逗号的内容去掉。
             </span><span style="color: #008000;">*/</span><span style="color: #000000;">
            String s14 </span>= "ab,cd,ef"<span style="color: #000000;">;
            String [] s15 </span>= s14.split(","<span style="color: #000000;">);
            </span><span style="color: #0000ff;">for</span><span style="color: #000000;">(String num1 : s15)
                    System.out.print(num1);
            
            String s16 </span>= "abcbsbdasdas"<span style="color: #000000;">;
            </span><span style="color: #0000ff;">char</span>[] newchar =<span style="color: #000000;"> s16.toCharArray();
            </span><span style="color: #0000ff;">for</span>(<span style="color: #0000ff;">char</span><span style="color: #000000;"> num2 : newchar)
                    System.out.print(num2);
            System.out.println();
            
            </span><span style="color: #008000;">/*</span><span style="color: #008000;">
             * 但注意中间的是不能去掉的~~
             </span><span style="color: #008000;">*/</span><span style="color: #000000;">
            String s17 </span>= "   abc      def     "<span style="color: #000000;">;
            String s18 </span>=<span style="color: #000000;"> s17.trim();
            System.out.println(s18);
        }
}</span></pre>
</div>
<p>第四:</p>
<div class="cnblogs_code">
<pre><span style="color: #008080;">  1</span> <span style="color: #0000ff;">package</span><span style="color: #000000;"> com.javami.kudy.javaapi1.StringStudy;
</span><span style="color: #008080;">  2</span> 
<span style="color: #008080;">  3</span> <span style="color: #0000ff;">import</span><span style="color: #000000;"> java.io.IOException;
</span><span style="color: #008080;">  4</span> 
<span style="color: #008080;">  5</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">class</span><span style="color: #000000;"> StringUtil {
</span><span style="color: #008080;">  6</span>     <span style="color: #0000ff;">private</span> StringUtil(){} <span style="color: #008000;">//</span><span style="color: #008000;">私有化</span>
<span style="color: #008080;">  7</span>     
<span style="color: #008080;">  8</span>     <span style="color: #008000;">/*</span><span style="color: #008000;"> 查找子字符串在字符串中出现的位置 例：&ldquo;ab&rdquo;在"habjklabljhlabhjdjfla"出现的位置为：1 6  12 
</span><span style="color: #008080;">  9</span> <span style="color: #008000;">     * 思路：
</span><span style="color: #008080;"> 10</span> <span style="color: #008000;">     * 1.定义一个StringBuilder容器，用于存储位置，定义一个pos变量记住出现的位置，初始值为0
</span><span style="color: #008080;"> 11</span> <span style="color: #008000;">     * 2.定义一个while循环，查找子串出现的位置
</span><span style="color: #008080;"> 12</span> <span style="color: #008000;">     * 3.调用indexOf方法，从起始位置开始查找出子串首次出现的位置
</span><span style="color: #008080;"> 13</span> <span style="color: #008000;">     * 4.如果pos为-1，说明没找到，应该结束循环
</span><span style="color: #008080;"> 14</span> <span style="color: #008000;">     * 5.将位置存入StringBuilder容器，再加一个逗号分隔
</span><span style="color: #008080;"> 15</span> <span style="color: #008000;">     * 6.从找到的位置加上子串的长度作为新的起始位置，
</span><span style="color: #008080;"> 16</span> <span style="color: #008000;">     * 7.循环结束，将StringBuffer转为String字符串，调用split方法以逗号进行分隔，获得了String数组
</span><span style="color: #008080;"> 17</span> <span style="color: #008000;">     * 8.准备一个新的int数组，长度和String数组一样，遍历String数组，将每个元素转为int存入int数组
</span><span style="color: #008080;"> 18</span>      <span style="color: #008000;">*/</span>
<span style="color: #008080;"> 19</span>     <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">int</span><span style="color: #000000;">[]findIndexOfSubstr(String str, String substr)
</span><span style="color: #008080;"> 20</span> <span style="color: #000000;">    {
</span><span style="color: #008080;"> 21</span>         StringBuilder sb = <span style="color: #0000ff;">new</span><span style="color: #000000;"> StringBuilder();
</span><span style="color: #008080;"> 22</span>         <span style="color: #0000ff;">int</span> pos = 0<span style="color: #000000;">;
</span><span style="color: #008080;"> 23</span>         <span style="color: #0000ff;">while</span>(<span style="color: #0000ff;">true</span><span style="color: #000000;">)
</span><span style="color: #008080;"> 24</span> <span style="color: #000000;">        {
</span><span style="color: #008080;"> 25</span>              pos =<span style="color: #000000;"> str.indexOf(substr,pos);
</span><span style="color: #008080;"> 26</span>              <span style="color: #0000ff;">if</span>(pos ==-1<span style="color: #000000;">)
</span><span style="color: #008080;"> 27</span>                  <span style="color: #0000ff;">break</span><span style="color: #000000;">;
</span><span style="color: #008080;"> 28</span>              sb.append(pos+","<span style="color: #000000;">);
</span><span style="color: #008080;"> 29</span>              pos+=substr.length(); <span style="color: #008000;">//</span><span style="color: #008000;">pos假设找ab 找到1 + 2 等于三.刚好从第三个开始找~</span>
<span style="color: #008080;"> 30</span> <span style="color: #000000;">        }
</span><span style="color: #008080;"> 31</span>         <span style="color: #0000ff;">if</span>(sb.length() == 0) <span style="color: #008000;">//</span><span style="color: #008000;">容器什么都没有！</span>
<span style="color: #008080;"> 32</span>             <span style="color: #0000ff;">return</span> <span style="color: #0000ff;">null</span>;  <span style="color: #008000;">//</span><span style="color: #008000;">一个都找不到</span>
<span style="color: #008080;"> 33</span>         String s = sb.toString(); <span style="color: #008000;">//</span><span style="color: #008000;">转换成字符串形式</span>
<span style="color: #008080;"> 34</span>         String[] parts = s.split(","<span style="color: #000000;">);
</span><span style="color: #008080;"> 35</span>         <span style="color: #0000ff;">int</span>[] arr = <span style="color: #0000ff;">new</span> <span style="color: #0000ff;">int</span><span style="color: #000000;">[parts.length];
</span><span style="color: #008080;"> 36</span>         <span style="color: #0000ff;">for</span>(<span style="color: #0000ff;">int</span> i=0; i&lt;parts.length; i++<span style="color: #000000;">)
</span><span style="color: #008080;"> 37</span> <span style="color: #000000;">        {
</span><span style="color: #008080;"> 38</span>             arr[i] =<span style="color: #000000;"> Integer.parseInt(parts[i]);
</span><span style="color: #008080;"> 39</span> <span style="color: #000000;">        }
</span><span style="color: #008080;"> 40</span>         <span style="color: #0000ff;">return</span><span style="color: #000000;"> arr;
</span><span style="color: #008080;"> 41</span> <span style="color: #000000;">    }
</span><span style="color: #008080;"> 42</span>     
<span style="color: #008080;"> 43</span>     <span style="color: #008000;">/*</span>
<span style="color: #008080;"> 44</span> <span style="color: #008000;">     * 设计一个方法，读取键盘输入的一行（只支持英文字母）
</span><span style="color: #008080;"> 45</span> <span style="color: #008000;">     * 提示：System.in.read()读取键盘上的一个字符
</span><span style="color: #008080;"> 46</span> <span style="color: #008000;">     * 思路： 
</span><span style="color: #008080;"> 47</span> <span style="color: #008000;">     * 1.定义一个容器StringBuilder容器
</span><span style="color: #008080;"> 48</span> <span style="color: #008000;">     * 2.定义一个while循环,循环读取键盘.
</span><span style="color: #008080;"> 49</span> <span style="color: #008000;">     * 3.如果读到回车或者\n 就跳出循环
</span><span style="color: #008080;"> 50</span> <span style="color: #008000;">     * 4.存入StringBuilfer容器中
</span><span style="color: #008080;"> 51</span> <span style="color: #008000;">     * 5.循环结束,返回一个toString转换为字符串
</span><span style="color: #008080;"> 52</span>      <span style="color: #008000;">*/</span>
<span style="color: #008080;"> 53</span>         <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> String readLine() <span style="color: #0000ff;">throws</span><span style="color: #000000;"> IOException
</span><span style="color: #008080;"> 54</span> <span style="color: #000000;">        {
</span><span style="color: #008080;"> 55</span>             StringBuilder sb = <span style="color: #0000ff;">new</span><span style="color: #000000;"> StringBuilder();
</span><span style="color: #008080;"> 56</span>             <span style="color: #0000ff;">while</span>(<span style="color: #0000ff;">true</span><span style="color: #000000;">)
</span><span style="color: #008080;"> 57</span> <span style="color: #000000;">            {
</span><span style="color: #008080;"> 58</span>                 <span style="color: #0000ff;">int</span> ch =<span style="color: #000000;"> System.in.read();
</span><span style="color: #008080;"> 59</span>                 <span style="color: #0000ff;">if</span>(ch == '\r')  <span style="color: #008000;">//</span><span style="color: #008000;">如果回车 跳出去</span>
<span style="color: #008080;"> 60</span>                     <span style="color: #0000ff;">continue</span><span style="color: #000000;">;
</span><span style="color: #008080;"> 61</span>                 <span style="color: #0000ff;">if</span>(ch == '\n')  <span style="color: #008000;">//</span><span style="color: #008000;">等上面的执行完毕.再来</span>
<span style="color: #008080;"> 62</span>                     <span style="color: #0000ff;">break</span><span style="color: #000000;">;
</span><span style="color: #008080;"> 63</span>                 sb.append((<span style="color: #0000ff;">char</span><span style="color: #000000;">)ch);
</span><span style="color: #008080;"> 64</span> <span style="color: #000000;">            }
</span><span style="color: #008080;"> 65</span>             <span style="color: #0000ff;">return</span> sb.toString(); <span style="color: #008000;">//</span><span style="color: #008000;">转换成字符串</span>
<span style="color: #008080;"> 66</span> <span style="color: #000000;">        }
</span><span style="color: #008080;"> 67</span>         
<span style="color: #008080;"> 68</span>         <span style="color: #008000;">/*</span>
<span style="color: #008080;"> 69</span> <span style="color: #008000;">         * *将给定的字节数组截取一部分，进行解码，要求输出完整的汉字，例如："abc中国人"截取6个 输出的是abc中
</span><span style="color: #008080;"> 70</span> <span style="color: #008000;">         * 思路：
</span><span style="color: #008080;"> 71</span> <span style="color: #008000;">         *     1.遍历数组被截取的部分,
</span><span style="color: #008080;"> 72</span> <span style="color: #008000;">         * 2.判断正负数，统计负数个数为count
</span><span style="color: #008080;"> 73</span> <span style="color: #008000;">         * 3.判断count的奇偶，奇数减去1，偶数不变
</span><span style="color: #008080;"> 74</span> <span style="color: #008000;">         * 4.解码
</span><span style="color: #008080;"> 75</span> <span style="color: #008000;">         * 汉字是占了2个字节?我们怎么判断它是汉字呢?
</span><span style="color: #008080;"> 76</span> <span style="color: #008000;">         * 汉字的第一位字节保证是负数!第二个是正数
</span><span style="color: #008080;"> 77</span> <span style="color: #008000;">         * 
</span><span style="color: #008080;"> 78</span>          <span style="color: #008000;">*/</span>
<span style="color: #008080;"> 79</span>         <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> String decode(<span style="color: #0000ff;">byte</span>[]buf, <span style="color: #0000ff;">int</span><span style="color: #000000;"> len)
</span><span style="color: #008080;"> 80</span> <span style="color: #000000;">        {
</span><span style="color: #008080;"> 81</span>             <span style="color: #0000ff;">int</span> count = 0<span style="color: #000000;">;
</span><span style="color: #008080;"> 82</span>             <span style="color: #0000ff;">for</span>(<span style="color: #0000ff;">int</span> i=0; i&lt;buf.length;i++<span style="color: #000000;">)
</span><span style="color: #008080;"> 83</span>                 <span style="color: #0000ff;">if</span>(buf[i]&lt;0<span style="color: #000000;">)
</span><span style="color: #008080;"> 84</span>                         count++; <span style="color: #008000;">//</span><span style="color: #008000;">如果第一个字节是负数的.是代表汉字马上来到.咱们+1</span>
<span style="color: #008080;"> 85</span>             <span style="color: #0000ff;">if</span>(count % 2 == 1<span style="color: #000000;">)
</span><span style="color: #008080;"> 86</span>                 len--<span style="color: #000000;">;
</span><span style="color: #008080;"> 87</span>             <span style="color: #0000ff;">return</span> <span style="color: #0000ff;">new</span> String(buf,0<span style="color: #000000;">,len);
</span><span style="color: #008080;"> 88</span>             <span style="color: #008000;">/*</span><span style="color: #008000;">程序流程图： 咱们输入一个buf   len = 5
</span><span style="color: #008080;"> 89</span> <span style="color: #008000;">             * for 执行5次
</span><span style="color: #008080;"> 90</span> <span style="color: #008000;">             * 因为一个汉字是占了2个字节.而第一个字节保证是负数
</span><span style="color: #008080;"> 91</span> <span style="color: #008000;">             * 如果 buf[i]里面的是负数的 count +1 = 1
</span><span style="color: #008080;"> 92</span> <span style="color: #008000;">             * 如果   % 2  等于1代表的是：   咱们len 传递进来的就减去一个字节.
</span><span style="color: #008080;"> 93</span> <span style="color: #008000;">             * 
</span><span style="color: #008080;"> 94</span>              <span style="color: #008000;">*/</span>
<span style="color: #008080;"> 95</span> <span style="color: #000000;">        }
</span><span style="color: #008080;"> 96</span>         
<span style="color: #008080;"> 97</span>         <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> String decodeBYGBK(<span style="color: #0000ff;">byte</span>[]buf,<span style="color: #0000ff;">int</span><span style="color: #000000;"> len)
</span><span style="color: #008080;"> 98</span> <span style="color: #000000;">        {
</span><span style="color: #008080;"> 99</span>             <span style="color: #0000ff;">boolean</span> b = <span style="color: #0000ff;">false</span><span style="color: #000000;">; 
</span><span style="color: #008080;">100</span>             <span style="color: #0000ff;">for</span>(<span style="color: #0000ff;">int</span> i=0; i&lt;buf.length; i++<span style="color: #000000;">)
</span><span style="color: #008080;">101</span>                 <span style="color: #0000ff;">if</span><span style="color: #000000;">(b)
</span><span style="color: #008080;">102</span>                     b = <span style="color: #0000ff;">false</span><span style="color: #000000;">;
</span><span style="color: #008080;">103</span>                 <span style="color: #0000ff;">else</span> <span style="color: #0000ff;">if</span>(buf[i]&lt;0<span style="color: #000000;">)
</span><span style="color: #008080;">104</span>                     b = <span style="color: #0000ff;">true</span><span style="color: #000000;">;
</span><span style="color: #008080;">105</span>             <span style="color: #0000ff;">if</span><span style="color: #000000;">(b)
</span><span style="color: #008080;">106</span>                 len --<span style="color: #000000;">;
</span><span style="color: #008080;">107</span>             <span style="color: #0000ff;">return</span> <span style="color: #0000ff;">new</span> String(buf,0<span style="color: #000000;">,len);
</span><span style="color: #008080;">108</span>             
<span style="color: #008080;">109</span> <span style="color: #000000;">        }
</span><span style="color: #008080;">110</span>         
<span style="color: #008080;">111</span>         <span style="color: #008000;">/*</span>
<span style="color: #008080;">112</span> <span style="color: #008000;">         * 查找一个字符串出现次数最多的字符     abvjdabahabballfja   出现次数最多的为:a  6
</span><span style="color: #008080;">113</span> <span style="color: #008000;">         * 思路：
</span><span style="color: #008080;">114</span> <span style="color: #008000;">         * 1.调用toCharArray字符串把字符串转换成字符数组
</span><span style="color: #008080;">115</span> <span style="color: #008000;">         * 2.定义max，用于记住出现最多字符的次数，定义一个maxChar记住出现最多的字符
</span><span style="color: #008080;">116</span> <span style="color: #008000;">         * 3.定义一个循环，每次循环都统计一个字符出现最多的次数，每次让次数和max比.谁最大就换,结束条件。当长度的数组
</span><span style="color: #008080;">117</span> <span style="color: #008000;">         * 为零
</span><span style="color: #008080;">118</span> <span style="color: #008000;">         * 4.定义一个count，记住本次统计字符的次数
</span><span style="color: #008080;">119</span> <span style="color: #008000;">         * 5.循环遍历数组，统计第一个字符出现的次数
</span><span style="color: #008080;">120</span> <span style="color: #008000;">         * 6.让次数和max比，如果max大，让max记住它的次数，让maxchar记住当前的字符
</span><span style="color: #008080;">121</span> <span style="color: #008000;">         * 7.将当前的字符从数组中删除
</span><span style="color: #008080;">122</span> <span style="color: #008000;">         * ------
</span><span style="color: #008080;">123</span> <span style="color: #008000;">         * 将此字符串转换为一个新的字符数组。
</span><span style="color: #008080;">124</span>          <span style="color: #008000;">*/</span>
<span style="color: #008080;">125</span> 
<span style="color: #008080;">126</span>         <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">char</span><span style="color: #000000;"> searchMaxChar(String str)
</span><span style="color: #008080;">127</span> <span style="color: #000000;">        {
</span><span style="color: #008080;">128</span>             <span style="color: #0000ff;">char</span>[] buf =<span style="color: #000000;"> str.toCharArray();
</span><span style="color: #008080;">129</span>             <span style="color: #0000ff;">int</span> max = 0<span style="color: #000000;">;
</span><span style="color: #008080;">130</span>             <span style="color: #0000ff;">char</span> maxChar = 0<span style="color: #000000;">;
</span><span style="color: #008080;">131</span>             <span style="color: #0000ff;">while</span>(buf.length&gt;0<span style="color: #000000;">)
</span><span style="color: #008080;">132</span> <span style="color: #000000;">            {
</span><span style="color: #008080;">133</span>                 <span style="color: #0000ff;">int</span> count = 0; <span style="color: #008000;">//</span><span style="color: #008000;">个数等于0</span>
<span style="color: #008080;">134</span>                 <span style="color: #0000ff;">char</span> firstChar = buf[0<span style="color: #000000;">];
</span><span style="color: #008080;">135</span>                 <span style="color: #0000ff;">for</span>(<span style="color: #0000ff;">char</span><span style="color: #000000;"> c : buf)
</span><span style="color: #008080;">136</span>                     <span style="color: #0000ff;">if</span>(c ==<span style="color: #000000;">firstChar)
</span><span style="color: #008080;">137</span>                         count++<span style="color: #000000;">;
</span><span style="color: #008080;">138</span>                 <span style="color: #0000ff;">if</span>(count&gt;max) <span style="color: #008000;">//</span><span style="color: #008000;">max 已经是默认记住上一个的值！</span>
<span style="color: #008080;">139</span> <span style="color: #000000;">                {
</span><span style="color: #008080;">140</span>                     max =<span style="color: #000000;"> count;
</span><span style="color: #008080;">141</span>                     maxChar = firstChar; <span style="color: #008000;">//</span><span style="color: #008000;">如果你是最多的就让给你~~</span>
<span style="color: #008080;">142</span> <span style="color: #000000;">                }
</span><span style="color: #008080;">143</span>                 <span style="color: #008000;">//</span><span style="color: #008000;">把当前的字符删除！</span>
<span style="color: #008080;">144</span>                 buf =<span style="color: #000000;"> deleteChar(buf,firstChar,count);
</span><span style="color: #008080;">145</span> <span style="color: #000000;">            }
</span><span style="color: #008080;">146</span>             <span style="color: #0000ff;">return</span><span style="color: #000000;"> maxChar;
</span><span style="color: #008080;">147</span> <span style="color: #000000;">        }
</span><span style="color: #008080;">148</span> 
<span style="color: #008080;">149</span>         <span style="color: #0000ff;">private</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">char</span>[] deleteChar(<span style="color: #0000ff;">char</span>[] buf, <span style="color: #0000ff;">char</span> firstChar, <span style="color: #0000ff;">int</span><span style="color: #000000;"> count)
</span><span style="color: #008080;">150</span> <span style="color: #000000;">        {
</span><span style="color: #008080;">151</span>             <span style="color: #0000ff;">char</span>[]arr = <span style="color: #0000ff;">new</span> <span style="color: #0000ff;">char</span>[buf.length-<span style="color: #000000;">count];
</span><span style="color: #008080;">152</span>             <span style="color: #0000ff;">int</span> pos = 0<span style="color: #000000;">;
</span><span style="color: #008080;">153</span>             <span style="color: #0000ff;">for</span>(<span style="color: #0000ff;">int</span> i=0; i&lt;buf.length; i++<span style="color: #000000;">)
</span><span style="color: #008080;">154</span> <span style="color: #000000;">            {
</span><span style="color: #008080;">155</span>                 <span style="color: #0000ff;">if</span>(buf[i]==<span style="color: #000000;">firstChar)
</span><span style="color: #008080;">156</span>                         <span style="color: #0000ff;">continue</span><span style="color: #000000;">;
</span><span style="color: #008080;">157</span>                 arr[pos++] =<span style="color: #000000;"> buf[i];
</span><span style="color: #008080;">158</span> <span style="color: #000000;">            }
</span><span style="color: #008080;">159</span>             <span style="color: #0000ff;">return</span><span style="color: #000000;"> arr;
</span><span style="color: #008080;">160</span> <span style="color: #000000;">        }
</span><span style="color: #008080;">161</span>         <span style="color: #008000;">/*</span><span style="color: #008000;"> 查找两个字符串中的最大子串  jflwertyakjfa;l    fjdlkwertyjf;ajf 最大子串：werty
</span><span style="color: #008080;">162</span> <span style="color: #008000;">         * 1.判断出两个字符串的长短，找出较长的和较短的
</span><span style="color: #008080;">163</span> <span style="color: #008000;">         * 2.循环遍历较短的字符串的所有子串，由长到短遍历
</span><span style="color: #008080;">164</span> <span style="color: #008000;">         *         定义一个循环，每次遍历一种长度的子串，将i作为长度，i的取值: length~1
</span><span style="color: #008080;">165</span> <span style="color: #008000;">         *         定义一个内层循环，具体遍历某一种长度的子串，j做为子串的开始位置， j取值：0~length-i
</span><span style="color: #008080;">166</span> <span style="color: #008000;">         *         截取子串，substring  起始位置:j  结束位置:j+i
</span><span style="color: #008080;">167</span> <span style="color: #008000;">         * 3.每次变量，都判断子串是否为较长的字符串的子串，如果是，直接返回
</span><span style="color: #008080;">168</span> <span style="color: #008000;">         * 4.循环结束，依然没有返回，说明没有相同子串，返回null
</span><span style="color: #008080;">169</span>          <span style="color: #008000;">*/</span>
<span style="color: #008080;">170</span>         <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span><span style="color: #000000;"> String searchMaxSubStr(String s1, String s2) 
</span><span style="color: #008080;">171</span> <span style="color: #000000;">        {
</span><span style="color: #008080;">172</span>             String longStr = s1.length() &gt; s2.length() ?<span style="color: #000000;"> s1 : s2;
</span><span style="color: #008080;">173</span>             String shortStr = s1.length() &gt; s2.length() ?<span style="color: #000000;"> s2 : s1; 
</span><span style="color: #008080;">174</span>             <span style="color: #0000ff;">for</span>(<span style="color: #0000ff;">int</span> i=shortStr.length(); i&gt;0; i--<span style="color: #000000;">)
</span><span style="color: #008080;">175</span> <span style="color: #000000;">            {
</span><span style="color: #008080;">176</span>                 <span style="color: #0000ff;">for</span>(<span style="color: #0000ff;">int</span> j=0;j&lt;shortStr.length()-i+1;j++<span style="color: #000000;">)
</span><span style="color: #008080;">177</span> <span style="color: #000000;">                {
</span><span style="color: #008080;">178</span>                     String sub = shortStr.substring(j, j+i); <span style="color: #008000;">//</span><span style="color: #008000;">例如： abcd 放到sub里面去
</span><span style="color: #008080;">179</span>                     <span style="color: #008000;">//</span><span style="color: #008000;">abcd abc ab  a 和它里面的做一个对比  
</span><span style="color: #008080;">180</span>                     <span style="color: #008000;">//</span><span style="color: #008000;">当且仅当此字符串包含指定的 char 值序列时，返回 true。 </span>
<span style="color: #008080;">181</span>                     <span style="color: #0000ff;">if</span><span style="color: #000000;">(longStr.contains(sub)) 
</span><span style="color: #008080;">182</span>                         <span style="color: #008000;">//</span><span style="color: #008000;">判断长的字符串里面是否包含这个</span>
<span style="color: #008080;">183</span>                         <span style="color: #0000ff;">return</span> sub; <span style="color: #008000;">//</span><span style="color: #008000;">如果包含直接返回.没有包含</span>
<span style="color: #008080;">184</span> <span style="color: #000000;">                }
</span><span style="color: #008080;">185</span> <span style="color: #000000;">            }
</span><span style="color: #008080;">186</span>             <span style="color: #0000ff;">return</span> <span style="color: #0000ff;">null</span><span style="color: #000000;">;
</span><span style="color: #008080;">187</span> <span style="color: #000000;">        }
</span><span style="color: #008080;">188</span> <span style="color: #000000;">}
</span><span style="color: #008080;">189</span> 
<span style="color: #008080;">190</span> 
<span style="color: #008080;">191</span> ----------------------
<span style="color: #008080;">192</span> 
<span style="color: #008080;">193</span> <span style="color: #0000ff;">package</span><span style="color: #000000;"> com.javami.kudy.javaapi1.StringStudy;
</span><span style="color: #008080;">194</span> 
<span style="color: #008080;">195</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">class</span><span style="color: #000000;"> StringUtilTest {
</span><span style="color: #008080;">196</span>         <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">void</span> main(String[]args) <span style="color: #0000ff;">throws</span><span style="color: #000000;"> Exception
</span><span style="color: #008080;">197</span> <span style="color: #000000;">        {
</span><span style="color: #008080;">198</span>             <span style="color: #008000;">/*</span>
<span style="color: #008080;">199</span> <span style="color: #008000;">            String str = "dsdcvcvxvczxbedfaacff";
</span><span style="color: #008080;">200</span> <span style="color: #008000;">            String substr = "y";
</span><span style="color: #008080;">201</span> <span style="color: #008000;">            //遍历a 出现的位置
</span><span style="color: #008080;">202</span> <span style="color: #008000;">            int[]arr =  StringUtil.findIndexOfSubstr(str, substr);
</span><span style="color: #008080;">203</span> <span style="color: #008000;">            if(arr ==null)
</span><span style="color: #008080;">204</span> <span style="color: #008000;">            {
</span><span style="color: #008080;">205</span> <span style="color: #008000;">                System.out.println("找不到！");
</span><span style="color: #008080;">206</span> <span style="color: #008000;">                return ;
</span><span style="color: #008080;">207</span> <span style="color: #008000;">            }
</span><span style="color: #008080;">208</span> <span style="color: #008000;">            for(int num : arr)
</span><span style="color: #008080;">209</span> <span style="color: #008000;">            {
</span><span style="color: #008080;">210</span> <span style="color: #008000;">                    System.out.print(num+" ");
</span><span style="color: #008080;">211</span> <span style="color: #008000;">            }
</span><span style="color: #008080;">212</span> <span style="color: #008000;">            System.out.println();
</span><span style="color: #008080;">213</span>             
<span style="color: #008080;">214</span>             <span style="color: #008000;">*/</span>
<span style="color: #008080;">215</span>             <span style="color: #008000;">/*</span>
<span style="color: #008080;">216</span> <span style="color: #008000;">             * 再输入byte的时候就结束,不断的去读
</span><span style="color: #008080;">217</span> 
<span style="color: #008080;">218</span> <span style="color: #008000;">            while(true)
</span><span style="color: #008080;">219</span> <span style="color: #008000;">            {
</span><span style="color: #008080;">220</span> <span style="color: #008000;">                String str2 = StringUtil.readLine();
</span><span style="color: #008080;">221</span> <span style="color: #008000;">                if("bye".equals(str2))
</span><span style="color: #008080;">222</span> <span style="color: #008000;">                    break;
</span><span style="color: #008080;">223</span> <span style="color: #008000;">                System.out.println(str2);
</span><span style="color: #008080;">224</span> <span style="color: #008000;">            }
</span><span style="color: #008080;">225</span> <span style="color: #008000;">            System.out.println("程序结束");    
</span><span style="color: #008080;">226</span>             <span style="color: #008000;">*/</span>
<span style="color: #008080;">227</span>             <span style="color: #0000ff;">byte</span>[] buf = "abc中国人"<span style="color: #000000;">.getBytes();
</span><span style="color: #008080;">228</span>             <span style="color: #008000;">//</span><span style="color: #008000;">String s3 = StringUtil.decode(buf, 3);</span>
<span style="color: #008080;">229</span>             String s3 = StringUtil.decodeBYGBK(buf, 5<span style="color: #000000;">);
</span><span style="color: #008080;">230</span> <span style="color: #000000;">            System.out.println(s3);
</span><span style="color: #008080;">231</span>             
<span style="color: #008080;">232</span>             <span style="color: #0000ff;">char</span> maxChar = StringUtil.searchMaxChar("dasfasdfaaaaaaaasfgdagfafgsad"<span style="color: #000000;">);
</span><span style="color: #008080;">233</span> <span style="color: #000000;">            System.out.println(maxChar);
</span><span style="color: #008080;">234</span>             
<span style="color: #008080;">235</span>             String s33 = "jflwertyakjfa;l"<span style="color: #000000;">;
</span><span style="color: #008080;">236</span>             String s44 = "fjdlkwertyjf;ajf"<span style="color: #000000;">;
</span><span style="color: #008080;">237</span>             String s55 =<span style="color: #000000;">StringUtil.searchMaxSubStr(s33,s44);
</span><span style="color: #008080;">238</span> <span style="color: #000000;">            System.out.print(s55);
</span><span style="color: #008080;">239</span> <span style="color: #000000;">        }
</span><span style="color: #008080;">240</span> 
<span style="color: #008080;">241</span> }</pre>
</div><img src ="http://www.blogjava.net/kudy/aggbug/385834.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kudy/" target="_blank">、小细</a> 2012-08-07 01:07 <a href="http://www.blogjava.net/kudy/archive/2012/08/07/385834.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>