??xml version="1.0" encoding="utf-8" standalone="yes"?>
]]>
在Java的世界里面摸爬滚打也有一q多?相比Java诞生十年?一q真的算不了什?Java的前五年像一个初生的婴儿,g在Y件开发领域找不到它应有的位置,除了在netscape览器中嵌入一些小的applet之外,桌面应用基本上没有它的位|?虽然它是Z桌面应用的跨q_而设计的,但是没有设计得很完美,无法与C/C++,dephi相比,性能上来说它也不是一U很好的语言,因ؓ与操作系l中夹了一层虚拟层,它的~慢让很多h望而却?但是,它的语言机制对程序语a设计来说是一U革?而不仅仅是一U新的语a,除了语言的健壮性和安全性之?使得我们E序员也从那些烦人的语言l节上面得以解放.直到99qJ2EE的出?才彻底改变了q种语言,jAVA也找C它在应用开发中应有的位|?后面五年Java的发?对Y件开发领域来说是一陈风?席卷了整个Y件业的开?也成了高端企业开发的代表?..
很庆q?我选择了Java,从短旉上面?它解决了我的׃问题,常常自己?如果我没有接触到Java,也许我还在苦苦的学MFC,我对此ƈ不感兴趣,那种ZC/S的开?Ҏ没有多大的吸引力.有时觉得真的很神?一U那么简单的无状态的http协议竞争能构么大一个复杂的企业U的B/S pȝ,有时我真的是被深q折服.也许q就是带领我来到q个Java世界的一个很重要的原?因ؓ实现q样一个复杂的pȝ一直是我梦寐以求的事情,能做L一个庞大的pȝ的时候也是我最有成q时?.
Java现在很火,学Java的h很多,软g公司需要会Java的h也很?但是q不是说会Javap扑ֈ好工?.l过大学几年的学?l合自己的亲w体?和自己做E序员的日子,L觉自己L被一些东西牵着d在走,q些东西q不只是高的新的技?q有很多很多......大学里学的计机只是一些基的基,我ƈ没有把这些基学得有多?现在也一直很后悔..其实大学里面计算Z业有两种?一U是d阵地,把大学里面的那计机评学得L?考试成W很好,证书也拿了几?但是没有开发过目,使用的开发技术也很古?开发效率极?q种人出来找工作没有多大的优势可a,当然除了再回到学校里面去教书之外.q有一Uh,Ҏ技术盲目的崇拜,L很Qw?认ؓ大学里面学的东西都没有用,q时?今天惛_Java,明天又想?net,当听?一U新的技?又在怀疑以前学的东西是不是以后有用,是不是会淘汰,l果,什么都没有,q种?永远 只有在IT业中被拖着?开技术根本不?做技术咨询到不错,反正他们都是一知半?..
不知道ؓ什?大学里面女生的计机成W都很?但是在IT公司很少很少看到女生,我们公司׃?呵呵,看她的样?写代码很扎实,但是q不擅长做设?...
谈了q么一?感觉危机感又来了,strutsq未完全_N?hibernate才用q几?感受C它的强大,spring{AOP又出来了,我又要去学了... 其实我认q不像一些h说的q样很篏很辛?正是因ؓ我们q轻,我们才有q样的激情在q种世界前沿U技领域d献我们的青春....我觉得很?..?Java十周q生日快?.
本文引用通告地址Q?http://blog.csdn.net/kerry365/services/trackbacks/435488.aspx
Q1.2 什么是JRE/J2REQ?BR>{:J2RE是Java2 Runtime EnvironmentQ即Javaq行环境Q有时简UJRE?BR>如果你只需要运行JavaE序或AppletQ下载ƈ安装它即可?BR>如果你要自行开发Java软gQ请下蝲JDK。在JDK中附带有JRE?BR>注意׃Microsoft对Java的支持不完全Q请不要使用IE自带的虚拟机来运行AppletQ务?BR>安装一个JRE或JDK?/FONT>
Q1.3 学习Java用什么工h较好Q?BR>{:作者徏议首先用JDK+文本~辑器,q有助你理解下列几个基础概念QpathQclassp
athQpackage
q熟悉基本命令:javac和java。ƈ且下载和你的JDK版本一致的API帮助?BR>如果你不定cL函数的用法,请先查阅API而不是发贴求助?BR>当你熟悉Java之后Q你可以考虑开始用一个IDE?BR>作者推荐eclipseQ下载网址http://www.eclipse.org。因为eclispe是免费的Q插件化?BR>?BR>eclispe的主要缺Ҏ~Z一个可视化的桌面程序开发工P
q运的是IBM?003q?1月已l将部分代码捐给eclipsel织Q可以预计这个缺点很快就?BR>得到弥补?BR>无论如何Q请不要使用Microsoft的VJ++Q众所周知Microsoft从来没有认真支持过Java
?BR>最后但q最不重要,要有一本好的参考书Qƈ且英文要q关?/FONT>
Q1.4 学习Java有哪些好的参考书Q?BR>{:作者首先推荐Thinking in JavaQ中文名《Java~程思想》,有中文版?BR>目前的最新版本是W三版?BR>?/FONT>http://64.78.49.204可以免费下蝲英文版?BR>该书W一章介l了很多面向对象的编E思想Q作为新手应当认真阅诅R?BR>除此以外QO'relly出版C֒Wrox出版C书也不错。作者本Z喜欢大陆作者的书?BR>也许你觉得英文太难,但是|上大多数资料都是英文的。另外,你需要经常查阅APIQ而那
也是英文的?/FONT>
Q1.5 Java和C++哪个更好Q?BR>{:q个问题是一个很不恰当的问题。你应该问:Java和C++哪个更适用于我的项目?
Java的优点和~点一h显?BR>跨^台是Java的主要优点,但代hq行速度的下降?BR>VC和Windowsq_有良好的集成和够快的速度Q但是也只能局限在Windowsq_上?BR>和C++相比QJava学v来更快,开发h员不会碰到很多容易出错的Ҏ?BR>但是VBE序员甚臛_需要拼装模块就可以了?/FONT>
Q1.6 什么是J2SE/J2EE/J2MEQ?BR>{:J2SE是一般的Java?BR>J2ME是针对嵌入式讑֤的,比如支持Java的手机,它有自己的JRE和SDK?BR>J2EE是一l用于企业E序开发的规范和类库,它用J2SE的JRE?BR>Q2.1 我写了第一个JavaE序Q应该如何编?q行Q?BR>{:首先请将E序保存为xxx.java文gQ注意你可能需要修Ҏ件后~名?BR>然后在dosH口下用javac xxx.java命oQ你会发现该目录下多了一个xxx.class文gQ?/FONT>
再用java xxx命oQ你的javaE序开始运行了?/FONT>
Q2.2 我照你说的做了,但是出现什么?javac' 不是内部或外部命令,也不是可q行?BR>E序或批处理文g。”?BR>{:你遇Cpath问题。操作系l在一定的范围(path)内搜索javac.exeQ但是没能找到?/FONT>
L辑你的操作系l环境变量,新增一个JAVA_HOME变量Q设ZJDK的安装目录,
再编辑Path变量Q加上一?%JAVA_HOME%\bin?BR>然后保存q新开一个dosH口Q你可以用javac和java命o了?/FONT>
Q2.3 环境变量怎么讄Q?BR>{:请向w边会设的h咨询?/FONT>
Q2.4 我在javac xxx.java的时候显CZ么“unreported exception java.io.IOExcepti
on;”?BR>{:参见Q4.8以了解java中的异常机制?/FONT>
Q2.5 javac xxx.java利通过了,但是java xxx的时候显CZ么“NoClassDefFoundErr
or”?BR>{:1. 你遇Cclasspath问题。java命o在一定的范围(classpath)内搜索你直接或间?BR>使用的class文gQ但是未能找到?BR>首先L认你没有错敲成java xxx.classQ?BR>其次Q检查你的CLASSPATH环境变量Q其实你q不需要设|该变量Q?BR>但如果你讄了该变量又没有包?Q代表当前目录)的项Q?BR>你就会遇到这个问题。请在你的CLASSPATH环境变量中加入一? 或干脆删掉这个变量?/FONT>
2. 如果你用了qJDK自带的标准包Q比如javax.servlet.*包,也会遇到q个问题Q请
相应的jar文g加入classpath?BR>3. 如果你在java源文件中定义了packageQ请参见Q2.11?/FONT>
Q2.6 我在java xxx的时候显C“Exception in thread "main" java.lang.NoSuchMetho
dError: main”?BR>{:首先Q在你的E序中每个java文g有且只能有一个publicc,
q个cȝcd必须和文件名的大写完全一栗?BR>其次Q在你要q行的类中有且只能有一个public static void main(String[] args)Ҏ
Q?BR>q个Ҏ是你的ȝ序?/FONT>
Q2.7 在java xxx的时候显C“Exception in thread "main" java.lang.NullPointerEx
ception”?BR>{:在程序中你试囑֜gؓnull的对象变量上调用ҎQ请查你的程序确保你的对象被恰当的初始化?BR>参见Q4.8以了解java中的异常机制?/FONT>
Q2.8 package是什么意思?怎么用?
{:Z唯一标识每个cdƈ分组Qjava使用了package的概c?BR>每个c都有一个全名,例如String的全名是java.lang.StringQ其中java.lang是包名,S
tring是短名。按照java命名惯例Q包名是全部写的,而类名的W一个字母是大写的?BR>q样Q如果你自行定义了同样名字的cStringQ你可以把它攑֜mypackage中,
通过使用全名mypackage.String和java.lang.String来区分这两个cR?BR>同时Q将逻辑上相关的cL在同一个包中,可以使程序结构更为清楚?BR>Z定义包,你要做的是在java文g开头加一行“package mypackage;”?BR>注意包没有嵌套或包含关系Qmypackage包和mypackage.mysubpackage包对JRE来说是ƈ列的两个包(虽然开发者可
能暗C包含关p)?/FONT>
Q2.9 我没有声明Q何package会怎么P
{:你的c被认ؓ攑֜默认包中。这时全名和短名是一致的?/FONT>
Q2.10 在一个类中怎么使用其他c?
{:如果你用java.lang包或者默认包中的c,不用做Q何事?BR>如果你的cM于mypackage包中Qƈ且要调用同一包中的其他类Q也不用做Q何事?BR>如果你用其他包中的c,在package声明之后Q类声明之前使用import otherpackage1.Class
1; ?import otherpackage2.*;
q里.*表示引入q个包中的所有类。然后在E序中你可以使用其他cȝ短名?BR>如果短名间有重名冲突Q必M用全名来区分?BR>注意在用其他包中的cLQ你只能使用public的类和接口,参见Q5.4?/FONT>
Q2.11 我用了package的时候显C?NoClassDefFoundError"Q但是我把所有packageL?BR>时候能正常q行?BR>{:你的java文g按包名组l存放?BR>比如你的工作目录?workQ你的类是package1.Class1Q那么将它存放ؓ/work/package1
/Class1.java?BR>如果没有声明包,那么直接攑֜/work下?BR>?work下执行javac package1/class1.javaQ再执行java package1.class1Q你会发C
切正常?BR>另外Q如果你的类的个数已l多C你需要用包来组l的话,你可以考虑开始用IDE?/FONT>
Q2.12 我想把java~译成exe文gQ该怎么做?
{:JDK只能java源文件编译ؓclass文g?BR>class文g是一U跨q_的字节码Q必M赖^台相关的JRE来运行。Java以此来实现跨q?BR>台性?BR>有些开发工具可以将java文g~译为exe文g。作者反对这U做法,因ؓq样取消了跨^
台性?BR>如果你确信你的Y件只在Windowsq_上运行,你可以考虑使用C++/C#来编E?/FONT>
Q2.13 我在~译的时候遇C?deprecated API"Q是什么意思?
{:所谓deprecated是指已经q时Q但是ؓ了向前兼容v见仍然保留的Ҏ?BR>q些Ҏ可能会在以后取消支持。你应当改用较新的方法?BR>在API里面会说明你应当用什么方法来代替之?BR>
Q3.1 我怎么ljavaE序加启动参敎ͼ像dir /p/w那样Q?BR>{:q记得public static void main(String[] args)吗?q里的args是你的启动参数
?BR>在运行时你输入java package1.class1 arg1 arg2Qargs中就会有两个StringQ第一个是
arg1Q第二个是arg2?/FONT>
Q3.2 我怎么从键盘输入一个int/double/字符Ԍ
{:java的I/O操作比C++要复杂一炏V如果要从键盘输入,样例代码如下Q?BR>BufferedReader cin = new BufferedReader( new InputStreamReader( System.in ) );
String s = cin.readLine();
q样你就获得了一个字W串Q如果你需要数字的话再使用Q?BR>int n = Integer.parseInt( s ); 或?double d = Double.parseDouble( s );
来将字符?534"转换成int或double?/FONT>
Q3.3 我怎么输出一个int/double/字符Ԍ
{:使用System.out.println(n)或者System.out.println("Hello"){等?/FONT>
Q3.4 我发现有些书上直接用System.in输入Q比你要单得多?BR>{:java使用unicodeQ是双字节。而System.in是单字节的stream?BR>如果你要输入双字节文字比如中文,请用作者的做法?/FONT>
Q3.5 我怎么从文件输?输出一个int/double/字符Ԍ
{:cM于从键盘输入Q只不过换成
BufferedReader fin = new BufferedReader( new FileReader(" myFileName " ) );
PrintWriter fout = new PrintWriter( new FileWriter(" myFileName " ) );
另外如果你还没下载APIQ请开始下载ƈ阅读java.io包中的内宏V?/FONT>
Q3.6 我想d文g的指定位|,该怎么办?
{:java.io.RandomAccessFile可以满你的需要?/FONT>
Q3.7 怎么判断要读的文件已l到了尽_
{:在Reader的readҎ中明说明返?1表示的l尾?/FONT>
四?关键字篇
Q4.1 java里面怎么定义宏?
{:java不支持宏Q因为宏代换不能保证cd安全?BR>如果你需要定义常量,可以它定义为某个类的static final成员。参见Q4.2和Q4.6?/FONT>
Q4.2 java里面没法用const?BR>{:你可以用final关键字。例?final int m = 9。被声明为final的变量不能被再次?BR>倹{唯一的例外是所谓blank finalQ如下例所C:
public class MyClass1 {
private final int a = 3;
private final int b; // blank final
public MyClass1() {
a = 5; // 不合法,final变量不能被再ơ赋倹{?BR> b = 4; // 合法Q这是bW一ơ被赋倹{?BR> b = 6; // 不合法,b不能被再ơ赋倹{?BR> }
}
final也可以用于声明方法或c,被声明ؓfinal的方法或cM能被l承?BR>注意const是java的保留字以备扩充?/FONT>
Q4.3 java里面也不能用goto?BR>{:甚至在面向过E的语言中你也可以完全不用goto。请查你的程序流E是否合理?/FONT>
如果你需要从多层循环中迅速蟩出,java增强了(和C++相比Qbreak和continue的功能,
支持label?BR>例如Q?BR>outer :
while( ... )
{
inner :
for( ... )
{
... break inner; ...
... continue outer; ...
}
}
和const一Pgoto也是java的保留字以备扩充?/FONT>
Q4.4 java里面能不能重载操作符Q?BR>{:不能。String?h唯一一个内|的重蝲操作W。你可以通过定义接口和方法来实现
cM功能?/FONT>
Q4.5 我new了一个对象,但是没法delete掉它?BR>{:java有自动内存回收机Ӟx谓Garbarge Collection。你不需要删除对象。你再也
不用担心指针错误Q内存溢Z?/FONT>
Q4.6 我想知道Z么mainҎ必须被声明ؓpublic staticQؓ什么在mainҎ中不能调
用非static成员Q?BR>{:声明为public是ؓ了这个方法可以被外部调用Q详情见Q5.4?BR>static是ؓ了将某个成员变量/Ҏ兌到类QclassQ而非实例QinstanceQ?BR>你不需要创Z个对象就可以直接使用q个cȝstatic成员Q因而在static成员中不能调
用非static成员Q因为后者是兌到对象实例(instanceQ的?BR>在AcM调用Bcȝstatic成员可以使用B.staticMember的写法?BR>注意一个类的static成员变量是唯一的,被所有该cd象所׃n的,在多U程E序设计中尤其要谨慎心?BR>cȝstatic成员是在cȝ一ơ被JRE装蝲的时候初始化的?BR>你可以用如下方法来使用非static成员Q?BR>public class A
{
private void someMethod() //非static成员
{}
public static void main(String args)
{
A a = new A(); //创徏一个对象实?BR> a.someMethod(); //现在你可以用非staticҎ?BR> }
}
Q4.7 throw和throws有什么不同?
{:throws用于Ҏ声明中,声明一个方法会抛出哪些异常。而throw是在Ҏ体中实际执行抛出异常?BR>动作?BR>如果你在Ҏ中throw一个异常,却没有在Ҏ声明中声明之Q编译器会报错?BR>注意Error和RuntimeException的子cL例外Q无需特别声明?/FONT>
Q4.8 什么是异常Q?BR>{:异常最早在Ada语言中引入,用于在程序中动态处理错误ƈ恢复?BR>你可以在Ҏ中拦截底层异常ƈ处理之,也可以抛l更高层的模块去处理?BR>你也可以抛出自己的异常指C发生了某些不正常情c常见的拦截处理代码如下Q?BR>try
{
......//以下是可能发生异常的代码
...... //异常被你或低层API抛出Q执行流E中断ƈ转向拦截代码?BR> ......
}
catch(Exception1 e) //如果Exception1是Exception2的子cdƈ要做特别处理Q应排在?BR>?BR>{
//发生Exception1时被该段拦截
}
catch(Exception2 e)
{
//发生Exception2时被该段拦截
}
finally //q是可选的
{
//无论异常是否发生Q均执行此段代码
//即在catchD中又向外抛Z新的exceptionQfinallyD也会得到执行?BR>}
5.1 extends和implements有什么煌?BR>{:对于class而言Qextends用于Q单Q承一个类QclassQ,而implements用于实现一个接口(interf
aceQ?BR>interface的引入是Z部分地提供多l承的功能?BR>在interface中只需声明Ҏ_而将Ҏ体留l实现的class来做?BR>q些实现的class的实例完全可以当作interface的实例来对待?BR>在interface之间也可以声明ؓextendsQ多l承Q的关系?BR>注意一个interface可以extends多个其他interface?/FONT>
Q5.2 java怎么实现多承?
{:java不支持显式的多ѝ?BR>因ؓ在显式多l承的语a例如c++中,会出现子c被q声明祖先虚基类构造函数的问题Q?/FONT>
而这是违反面向对象的装性原则的?BR>java提供了interface和implements关键字来部分地实现多l承。参见Q5.1?/FONT>
Q5.3 abstract是什么?
{:被声明ؓabstract的方法无需l出Ҏ体,留给子类来实现?BR>而如果一个类中有abstractҎQ那么这个类也必d明ؓabstract?BR>被声明ؓabstract的类无法实例化,管它可以定义构造方法供子类使用?/FONT>
Q5.4 public,protected,private有什么不同?
{:q些关键字用于声明类和成员的可见性?BR>public成员可以被Q何类讉KQ?BR>protected成员限于自己和子c访问,
private成员限于自己讉K?BR>Javaq提供了W四U的默认可见性,一般称为package privateQ当没有Mpublic,protected,private修饰W时Q成?BR>是同一包内可见?BR>cd以用public或默认来修饰?/FONT>
Q5.5 Override和Overload有什么不同?
{:Override是指父类和子cM间方法的l承关系Q这些方法有着相同的名U和参数cd
?BR>Overload是指同一个类中不同方法(可以在子cM可以在父cM定义Q间的关p,
q些Ҏ有着相同的名U和不同的参数类型?/FONT>
Q5.6 我承了一个方法,但现在我惌用在父类中定义的Ҏ?BR>{:用super.xxx()可以在子cM调用父类Ҏ?/FONT>
Q5.7 我想在子cȝ构造方法中调用父类的构造方法,该怎么办?
{:在子cL造方法的W一行调用super(...)卛_?/FONT>
Q5.8 我在同一个类中定义了好几个构造方法ƈ且想在一个构造方法中调用另一个?BR>{:在构造方法第一行调用this(...)?/FONT>
Q5.9 我没有定义构造方法会怎么P
{:自动获得一个无参数的构造方法?/FONT>
Q5.10 我调用无参数的构造方法失败了?BR>{:如果你至定义了一个构造方法,׃再有自动提供的无参数的构造方法了?BR>你需要另外显式定义一个无参数的构造方法?BR>另外一U可能是你的构造方法或者类不是public的,参见Q5.4了解java中的可见性?/FONT>
Q5.11 我该怎么定义cM于C++中的析构ҎQdestructorQ?
{:提供一个void finalize()Ҏ。在Garbarge Collector回收该对象时会调用该Ҏ?/FONT>
注意实际上你很难判断一个对象会在什么时候被回收。作者从未感到需要用到该Ҏ?/FONT>
Q5.12 我想一个父cd象{换成一个子cd象该怎么做?
{:强制cd转换。如
public void meth(A a)
{
B b = (B)a;
}
如果a实际上ƈ不是B的实例,会抛出ClassCastException。所以请保a实是B的实例?/FONT>
Q5.13 其实我不定a是不是B的实例,能不能分情况处理Q?BR>{:可以使用instanceof操作W。例?BR>if( a instanceof B )
{
B b = (B)a;
}
else
{
...
}
Q5.14 我在Ҏ里修改了一个对象的|但是退出方法后我发现这个对象的值没变!
{:很可能你把传入参数重赋了一个新对象Q例如下列代码就会造成q种错误Q?BR>public void fun1(A a) //a是局部参敎ͼ指向了一个外在对象?BR>{
a = new A(); //a指向了一个新对象Q和外在对象脱钩了。如果你要让a作ؓ传出变量Q?BR>不要写这一句?BR> a.setAttr(attr);//修改了新对象的|外在对象没有被修攏V?BR>}
基本cd也会出现q种情况。例如:
public void fun2(int a)
{
a = 10;//只作用于本方法,外面的变量不会变化?BR>}
Q6.1 java能动态分配数l吗Q?BR>{:可以。例如int n = 3; Language[] myLanguages = new Language[n];
Q6.2 我怎么知道数组的长度?
{:用length属性。如上例中的 myLanguages.length ׃ؓ 3?/FONT>
Q6.3 我还惌数组的长度能自动改变Q能够增?删除元素?BR>{:用顺序表--java.util.List接口?BR>你可以选择用ArrayList或是LinkedListQ前者是数组实现Q后者是链表实现?BR>例如Q?nbsp; List list = new ArrayList(); 或是 List list = new LinkedList(); ?/FONT>
Q6.4 什么是链表Qؓ什么要有ArrayList和LinkedList两种ListQ?BR>{:误习数据结构?/FONT>
Q6.5 我想用队?栈?BR>{:用java.util.LinkedList?/FONT>
Q6.6 我希望不要有重复的元素?BR>{:用集?-java.util.Set接口。例如:Set set = new HashSet()?/FONT>
Q6.7 我想遍历集合/Map?BR>{:用java.util.Iterator。参见API?/FONT>
Q6.8 我还要能够排序?BR>{:用java.util.TreeSet。例如:Set set = new TreeSet()。放q去的元素会自动排序
?BR>你需要ؓ元素实现Comparable接口Q还可能需要提供equals()ҎQcompareTo()ҎQh
ashCode()Ҏ?/FONT>
Q6.9 但是我想l数l排序?BR>{:java.util.Arrayscd含了sort{实用方法?/FONT>
Q6.10 我想按不同方式排序?BR>{:为每U方式定义一个实C接口Comparator的排序类q和Arrays或TreeSetl合q用?/FONT>
Q6.11 Map有什么用Q?BR>{:存储key-value的关键字-值对Q你可以通过关键字来快速存取相应的倹{?/FONT>
Q6.12 setҎ没问题,但是getҎq回的是Object?BR>{:强制cd转换成你需要的cd。参见Q5.12?/FONT>
Q6.13 ArrayList和Vector有什么不同?HashMap和Hashtable有什么不同?
{:ArrayList和HashMap是多U程不安全的Q在多个U程中访问同一个ArrayList对象可能
会引起冲HƈD错误?BR>而Vector和Hashtable是多U程安全的,即在多个线E中同时讉K同一个Vector对象也不
会引起差错?BR>看v来我们更应该使用Vector和HashtableQ但是实际上Vector和Hashtable的性能太差Q?BR>所以如果你不在多线E中使用的话Q还是应该用ArrayList和HashMap?/FONT>
Q6.14 我要获得一个随机数?BR>{:使用java.util.RandomcR?/FONT>
Q6.15 我比较两个StringLfalseQ但是它们明明都?abc" Q?BR>{:比较String一定要使用equals或equalsIgnoreCaseҎQ不要?== Q?BR>==比较的是两个引用Q变量)是否指向了同一个对象,而不是比较其内容?/FONT>
Q6.16 我想修改一个String但是在StringcM没找到编辑方法?BR>{:使用StringBuffercR?BR>String str = "......."; //待处理的字符?BR>StringBuffer buffer = new StringBuffer(str); //使用该字W串初始化一个StringBuf
fer
buffer.append("..."); //调用StringBuffer的相关API来编辑字W串
String str2 = buffer.toString(); //获得~辑后的字符丌Ӏ?BR>另外Q如果你需要将多个字符串连接v来,请尽量避免?L接连接,而是使用Strin
gBuffer.append()Ҏ?/FONT>
Q6.17 我想处理日期/旉?BR>{:使用java.util.DatecR你可以使用java.text.SimpleDateFormatcL在String和Da
te间互相{换?BR>SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //?BR>定日期格?BR>Date date = formatter.parse("2003-07-26 18:30:35"); //符合格式的String转换?BR>Date
String s = formatter.format(date); //Date转换为符合格式的String
关于定义日期格式的详l信息请参见API?/FONT>