其中特别值得
![](/icons/94074yi.gif)
提
![](/icons/94074de.gif)
是JDK有
![](/icons/94074yi.gif)
个非常棒
![](/icons/94074de.gif)
调试功能
![](/icons/94074dou.gif)
-verbose
![](/icons/94074dou.gif)
javac –verbose 以及其它很多JDK工具都有这个选项
![](/icons/94074dou.gif)
-verbose 可以显示在命令执行
![](/icons/94074de.gif)
过程中
![](/icons/94074dou.gif)
JVM都依次加载哪里Class
![](/icons/94074dou.gif)
通过这些宝贵
![](/icons/94074de.gif)
调试信息
![](/icons/94074dou.gif)
可以帮助我们分析出JVM在执行
![](/icons/94074de.gif)
过程中都干了些什么
![](/icons/94074dou2.gif)
另外
![](/icons/94074dou.gif)
自己在学习过程中
![](/icons/94074dou.gif)
写
![](/icons/94074de.gif)
很多
![](/icons/94074de.gif)
这种破坏例程
![](/icons/94074dou.gif)
应该有意识
![](/icons/94074de.gif)
分门别类
![](/icons/94074de.gif)
保存下来
![](/icons/94074dou.gif)
在工作中积累
![](/icons/94074de.gif)
典型例程也应该定期整理
![](/icons/94074dou.gif)
日积月累
![](/icons/94074dou.gif)
自己就有了
![](/icons/94074yi.gif)
个代码库了
![](/icons/94074dou2.gif)
遇到类似
![](/icons/94074de.gif)
问题
![](/icons/94074dou.gif)
到代码库里面 Copy & Paste
![](/icons/94074dou.gif)
Search & Replace
![](/icons/94074dou.gif)
就好了
![](/icons/94074dou.gif)
极大提高了开发速度
![](/icons/94074dou2.gif)
最理想
![](/icons/94074de.gif)
情况是把
![](/icons/94074yi.gif)
些通用
![](/icons/94074de.gif)
例程自己再抽象
![](/icons/94074yi.gif)
层
![](/icons/94074dou.gif)
形成
![](/icons/94074yi.gif)
个通用
![](/icons/94074de.gif)
类库
![](/icons/94074dou.gif)
封装好
![](/icons/94074dou2.gif)
那么可复用性就更强了
![](/icons/94074dou2.gif)
所以我觉得其实不是特别需要例程
![](/icons/94074de.gif)
![](/icons/94074dou.gif)
自己写
![](/icons/94074de.gif)
破坏例程就是最好
![](/icons/94074de.gif)
例子
![](/icons/94074dou.gif)
如果你实在对自己写
![](/icons/94074de.gif)
代码不放心
![](/icons/94074de.gif)
话
![](/icons/94074dou.gif)
我强烈推荐你看看JDK基础类库
![](/icons/94074de.gif)
Java源代码
![](/icons/94074dou2.gif)
在JDK安装目录下面会有
![](/icons/94074yi.gif)
个src.zip
![](/icons/94074dou.gif)
解开来就可以完整
![](/icons/94074de.gif)
看到整个JDK基础类库
![](/icons/94074dou.gif)
也就是rt.jar
![](/icons/94074de.gif)
Java源代码
![](/icons/94074dou.gif)
你可以参考
![](/icons/94074yi.gif)
下Sun是如何写Java
![](/icons/94074chengxu.gif)
![](/icons/94074de.gif)
![](/icons/94074dou.gif)
规范标准是什么样子
![](/icons/94074de.gif)
![](/icons/94074dou2.gif)
我自己在学习Java
![](/icons/94074de.gif)
类库
![](/icons/94074de.gif)
时候
![](/icons/94074dou.gif)
当有些地方理解
![](/icons/94074de.gif)
不是很清楚
![](/icons/94074de.gif)
时候
![](/icons/94074dou.gif)
或者想更加清晰
![](/icons/94074de.gif)
理解运作
![](/icons/94074de.gif)
细节
![](/icons/94074de.gif)
时候
![](/icons/94074dou.gif)
往往会打开相应
![](/icons/94074de.gif)
类
![](/icons/94074de.gif)
源代码
![](/icons/94074dou.gif)
通过看源代码
![](/icons/94074dou.gif)
所有
![](/icons/94074de.gif)
问题都会
![](/icons/94074yi.gif)
扫而空
![](/icons/94074dou2.gif)
Java Learning Path( 5)资源篇 http://java.sun.com/ (英文) Sun
![](/icons/94074de.gif)
Java网站WebSite
![](/icons/94074dou.gif)
是
![](/icons/94074yi.gif)
个应该经常去看
![](/icons/94074de.gif)
地方
![](/icons/94074dou2.gif)
不用多说
![](/icons/94074dou2.gif)
http://www-900.ibm.com/developerWorks/cn/ IBM
![](/icons/94074de.gif)
developerWorks网站WebSite
![](/icons/94074dou.gif)
英语好
![](/icons/94074de.gif)
直接去英文主站点看
![](/icons/94074dou2.gif)
这里不但是
![](/icons/94074yi.gif)
个极好
![](/icons/94074de.gif)
面向对象
![](/icons/94074de.gif)
分析设计网站WebSite
![](/icons/94074dou.gif)
也是Web Services
![](/icons/94074dou.gif)
Java
![](/icons/94074dou.gif)
Linux极好
![](/icons/94074de.gif)
网站WebSite
![](/icons/94074dou2.gif)
强烈推荐!!! http://www.javaworld.com/ (英文) 有关Java很多新技术
![](/icons/94074de.gif)
讨论和新闻
![](/icons/94074dou2.gif)
想多了解Java
![](/icons/94074de.gif)
方方面面
![](/icons/94074de.gif)
应用
![](/icons/94074dou.gif)
这里比较好
![](/icons/94074dou2.gif)
http://dev2dev.bea.com.cn/index.jsp BEA
![](/icons/94074de.gif)
开发者园地
![](/icons/94074dou.gif)
BEA作为最重要
![](/icons/94074de.gif)
App Server厂商
![](/icons/94074dou.gif)
有很多独到
![](/icons/94074de.gif)
技术
![](/icons/94074dou.gif)
在Weblogic上做开发
![](/icons/94074de.gif)
朋友不容错过
![](/icons/94074dou2.gif)
http://www.theserverside.com/home/ (英文) TheServerSide是
![](/icons/94074yi.gif)
个著名
![](/icons/94074de.gif)
专门面向Java Server端应用
![](/icons/94074de.gif)
网站WebSite
![](/icons/94074dou2.gif)
http://www.cnjsp.org/ JSP技术网站WebSite
![](/icons/94074dou.gif)
有相当多
![](/icons/94074de.gif)
Java方面
![](/icons/94074de.gif)
文章和资源
![](/icons/94074dou2.gif)
http://sourceforge.net/ SourgeForge是
![](/icons/94074yi.gif)
个开放源代码软件Software
![](/icons/94074de.gif)
大本营
![](/icons/94074dou.gif)
其中也有非常非常丰富
![](/icons/94074de.gif)
Java
![](/icons/94074de.gif)
开放源代码
![](/icons/94074de.gif)
著名
![](/icons/94074de.gif)
软件Software
![](/icons/94074dou2.gif)
附:java入门和加深FAQ
![](/icons/94074yi.gif)
、准备篇 1 什么是Java、Java2、JDK?JDK后面
![](/icons/94074de.gif)
1.3、1.4.2版本号又是如何回事? 答:Java是
![](/icons/94074yi.gif)
种通用
![](/icons/94074de.gif)
![](/icons/94074dou.gif)
并发
![](/icons/94074de.gif)
![](/icons/94074dou.gif)
强类型
![](/icons/94074de.gif)
![](/icons/94074dou.gif)
面向对象
![](/icons/94074de.gif)
编程语言(摘自Java规范标准第 2版) JDK是Sun公司分发
![](/icons/94074de.gif)
免费Java开发工具
![](/icons/94074dou.gif)
正式名称为J2SDK(Java2 Software Develop Kit)
![](/icons/94074dou2.gif)
2 什么是JRE/J2RE? 答:J2RE是Java2 Runtime Environment
![](/icons/94074dou.gif)
即Java运行环境
![](/icons/94074dou.gif)
有时简称JRE
![](/icons/94074dou2.gif)
如果你只需要运行Java
![](/icons/94074chengxu.gif)
或Applet
![](/icons/94074dou.gif)
下载并安装它即可
![](/icons/94074dou2.gif)
如果你要自行开发Java软件Software
![](/icons/94074dou.gif)
请下载JDK
![](/icons/94074dou2.gif)
在JDK中附带有J2RE
![](/icons/94074dou2.gif)
注意:由于Microsoft对Java
![](/icons/94074de.gif)
支持不完全
![](/icons/94074dou.gif)
请不要使用IE自带
![](/icons/94074de.gif)
虚拟机来运行Applet
![](/icons/94074dou.gif)
务必安装
![](/icons/94074yi.gif)
个J2RE或JDK
![](/icons/94074dou2.gif)
3 学习Java用什么工具比较好? 答:作者建议首先使用JDK+文本编辑器
![](/icons/94074dou.gif)
这有助你理解下列几个基础概念:path
![](/icons/94074dou.gif)
![](/icons/94074class.gif)
path
![](/icons/94074dou.gif)
package并熟悉基本命令:javac和java
![](/icons/94074dou2.gif)
并且下载和你
![](/icons/94074de.gif)
JDK版本
![](/icons/94074yi.gif)
致
![](/icons/94074de.gif)
API帮助
![](/icons/94074dou2.gif)
如果你不确定类或
![](/icons/94074hanshu.gif)
![](/icons/94074de.gif)
使用方法
![](/icons/94074dou.gif)
请先查阅API而不是发贴求助
![](/icons/94074dou2.gif)
当你熟悉Java的后
![](/icons/94074dou.gif)
你可以考虑换
![](/icons/94074yi.gif)
个IDE
![](/icons/94074dou2.gif)
很多人推荐JCreator
![](/icons/94074dou.gif)
实际上JCreator
![](/icons/94074de.gif)
功能还 是很弱
![](/icons/94074de.gif)
![](/icons/94074dou2.gif)
作者推荐eclipse
![](/icons/94074dou.gif)
下载网http://www.eclipse.org因eclispe是免费
![](/icons/94074de.gif)
. 4 学习Java有哪些好
![](/icons/94074de.gif)
参考书? 答:作者首先推荐Thinking in Java
![](/icons/94074dou.gif)
中文名
![](/icons/94074smhl.gif)
Java编程思想
![](/icons/94074smhr.gif)
![](/icons/94074dou.gif)
有中文版
![](/icons/94074dou2.gif)
该书第
![](/icons/94074yi.gif)
章介绍了很多面向对象
![](/icons/94074de.gif)
编程思想
![](/icons/94074dou.gif)
作为新手应当认真阅读
![](/icons/94074dou2.gif)
除此以外
![](/icons/94074dou.gif)
O´relly出版社和Wrox出版社
![](/icons/94074de.gif)
书也不错
![](/icons/94074dou2.gif)
作者本人不喜欢大陆作者
![](/icons/94074de.gif)
书
![](/icons/94074dou2.gif)
也许你觉得英文太难
![](/icons/94074dou.gif)
但是网上大多数资料都是英文
![](/icons/94074de.gif)
![](/icons/94074dou2.gif)
另外
![](/icons/94074dou.gif)
你需要经常查阅API
![](/icons/94074dou.gif)
而那也是英文
![](/icons/94074de.gif)
![](/icons/94074dou2.gif)
5 Java和C
![](/icons/94074jiajia.gif)
哪个更好? 答:这个问题是
![](/icons/94074yi.gif)
个很不恰当
![](/icons/94074de.gif)
问题
![](/icons/94074dou2.gif)
你应该问:Java和C
![](/icons/94074jiajia.gif)
哪个更适用于我
![](/icons/94074de.gif)
项目?如果你不需要跨平台
![](/icons/94074dou.gif)
不需要分布式
![](/icons/94074dou.gif)
要强调
![](/icons/94074chengxu.gif)
![](/icons/94074de.gif)
运行速度
![](/icons/94074dou.gif)
C
![](/icons/94074jiajia.gif)
更为适用
![](/icons/94074dou2.gif)
反的?你应当考虑Java
![](/icons/94074dou2.gif)
6 什么是J2SE/J2EE/J2ME? 答:J2SE就是
![](/icons/94074yi.gif)
般
![](/icons/94074de.gif)
Java
![](/icons/94074dou2.gif)
J2ME是针对嵌入式设备
![](/icons/94074de.gif)
![](/icons/94074dou.gif)
比如Java手机
![](/icons/94074dou.gif)
它有自己
![](/icons/94074de.gif)
SDK
![](/icons/94074dou2.gif)
而J2EE使用J2SE
![](/icons/94074de.gif)
SDK
![](/icons/94074dou2.gif)
J2EE规范标准更多
![](/icons/94074de.gif)
是对J2EE服务器
![](/icons/94074de.gif)
要求和开发人员
![](/icons/94074de.gif)
约束
![](/icons/94074dou2.gif)
详情见后继"J2EE FAQ"
![](/icons/94074dou2.gif)
2、命令篇 7 我写了第
![](/icons/94074yi.gif)
个Java
![](/icons/94074chengxu.gif)
![](/icons/94074dou.gif)
应该如何编译/运行? 答:首先请将
![](/icons/94074chengxu.gif)
保存为xxx.java文件
![](/icons/94074dou.gif)
然后在dos窗口下使用javac xxx.java命令
![](/icons/94074dou.gif)
你会发现该目录下多了
![](/icons/94074yi.gif)
个xxx.
![](/icons/94074class.gif)
文件
![](/icons/94074dou.gif)
再使用java xxx命令
![](/icons/94074dou.gif)
你
![](/icons/94074de.gif)
java
![](/icons/94074chengxu.gif)
就开始运行了
![](/icons/94074dou2.gif)
8 我照你说
![](/icons/94074de.gif)
做了
![](/icons/94074dou.gif)
但是出现什么"´javac´ 不是内部或外部命令
![](/icons/94074dou.gif)
也不是可运行
![](/icons/94074de.gif)
![](/icons/94074chengxu.gif)
或批处理文件
![](/icons/94074dou2.gif)
"
![](/icons/94074dou2.gif)
答:你遇到了path问题
![](/icons/94074dou2.gif)
操作系统在
![](/icons/94074yi.gif)
定
![](/icons/94074de.gif)
范围(path)内搜索javac.exe
![](/icons/94074dou.gif)
但是没能找到
![](/icons/94074dou2.gif)
请编辑你
![](/icons/94074de.gif)
操作系统环境变量
![](/icons/94074dou.gif)
新增
![](/icons/94074yi.gif)
个JAVA_HOME变量
![](/icons/94074dou.gif)
设为你JDK
![](/icons/94074de.gif)
安装目录
![](/icons/94074dou.gif)
再编辑Path变量
![](/icons/94074dou.gif)
加上
![](/icons/94074yi.gif)
项 %JAVA_HOME%\bin
![](/icons/94074dou2.gif)
然后关掉并新开
![](/icons/94074yi.gif)
个dos窗口
![](/icons/94074dou.gif)
你就可以使用javac和java命令了
![](/icons/94074dou2.gif)
9 环境变量如何设置? 答:请向身边会设
![](/icons/94074de.gif)
人咨询
![](/icons/94074dou2.gif)
10 javac xxx.java顺利通过了
![](/icons/94074dou.gif)
但是java xxx
![](/icons/94074de.gif)
时候显示什么“NoClassDefFoundError”
![](/icons/94074dou2.gif)
答:你遇到了
![](/icons/94074class.gif)
path问题
![](/icons/94074dou2.gif)
java命令在
![](/icons/94074yi.gif)
定
![](/icons/94074de.gif)
范围(
![](/icons/94074class.gif)
path)内搜索你要用
![](/icons/94074de.gif)
![](/icons/94074class.gif)
文件
![](/icons/94074dou.gif)
但是未能找到
![](/icons/94074dou2.gif)
首先请确认你没有错敲成java xxx.
![](/icons/94074class.gif)
![](/icons/94074dou.gif)
其实你并不需要设置该变量
![](/icons/94074dou.gif)
但如果你设置了该变量又没有包含.(代表当前目录)
![](/icons/94074de.gif)
项
![](/icons/94074dou.gif)
你就会遇到这个问题
![](/icons/94074dou2.gif)
请在你
![](/icons/94074de.gif)
CLASSPATH环境变量中加入
![](/icons/94074yi.gif)
项. 或干脆删掉这个变量
![](/icons/94074dou2.gif)
如果你使用了并非JDK自带
![](/icons/94074de.gif)
标准包
![](/icons/94074dou.gif)
比如javax.servlet.*包
![](/icons/94074dou.gif)
也会遇到这个问题
![](/icons/94074dou.gif)
请将相应
![](/icons/94074de.gif)
jar文件加入
![](/icons/94074class.gif)
path
![](/icons/94074dou2.gif)
如果你在java源文件中定义了package
![](/icons/94074dou.gif)
请参见15
![](/icons/94074dou2.gif)
11 我在java xxx
![](/icons/94074de.gif)
时候显示"Exception in thread "
![](/icons/94074main.gif)
" java.lang.NoSuchMethodError:
![](/icons/94074main.gif)
"
![](/icons/94074dou2.gif)
答:首先
![](/icons/94074dou.gif)
在你
![](/icons/94074de.gif)
![](/icons/94074chengxu.gif)
中每个java文件有且只能有
![](/icons/94074yi.gif)
个public类
![](/icons/94074dou.gif)
这个类
![](/icons/94074de.gif)
类名必须和文件名
![](/icons/94074de.gif)
大小写完全
![](/icons/94074yi.gif)
样
![](/icons/94074dou2.gif)
其次
![](/icons/94074dou.gif)
在你要运行
![](/icons/94074de.gif)
类中有且只能有
![](/icons/94074yi.gif)
个public
![](/icons/94074static.gif)
void
![](/icons/94074main.gif)
(String
![](/icons/94074zhk2.gif)
args)思路方法
![](/icons/94074dou.gif)
这个思路方法就是你
![](/icons/94074de.gif)
主
![](/icons/94074chengxu.gif)
![](/icons/94074dou2.gif)
12 package是什么意思?如何用? 答:为了唯
![](/icons/94074yi.gif)
标识每个类并分组
![](/icons/94074dou.gif)
java使用了package
![](/icons/94074de.gif)
概念
![](/icons/94074dou2.gif)
每个类都有
![](/icons/94074yi.gif)
个全名
![](/icons/94074dou.gif)
例如String
![](/icons/94074de.gif)
全名是java.lang.String
![](/icons/94074dou.gif)
其中java.lang是包名
![](/icons/94074dou.gif)
String是短名
![](/icons/94074dou2.gif)
这样
![](/icons/94074dou.gif)
如果你也定义了String
![](/icons/94074dou.gif)
你可以把它放在mypackage中
![](/icons/94074dou.gif)
通过使用全名mypackage.String和java.lang.String来区分这两个类
![](/icons/94074dou2.gif)
同时
![](/icons/94074dou.gif)
将逻辑上相关
![](/icons/94074de.gif)
类放在同
![](/icons/94074yi.gif)
个包中
![](/icons/94074dou.gif)
可以使
![](/icons/94074chengxu.gif)
结构更为清楚
![](/icons/94074dou2.gif)
你要做
![](/icons/94074de.gif)
就是在java文件开头加
![](/icons/94074yi.gif)
行"package mypackage;"
![](/icons/94074dou2.gif)
注意包没有嵌套或包含关系
![](/icons/94074dou.gif)
A包和A.B包对java命令来说是并列
![](/icons/94074de.gif)
两个包
![](/icons/94074dou2.gif)
13 我没有声明任何package会如何样? 答:你
![](/icons/94074de.gif)
类被认为放在默认包中
![](/icons/94074dou2.gif)
这时全名和短名是
![](/icons/94074yi.gif)
致
![](/icons/94074de.gif)
![](/icons/94074dou2.gif)
14 在
![](/icons/94074yi.gif)
个类中如何使用其他类? 答:如果你使用java.lang包中
![](/icons/94074de.gif)
类
![](/icons/94074dou.gif)
不用做任何事
![](/icons/94074dou2.gif)
如果你使用其他包中
![](/icons/94074de.gif)
类
![](/icons/94074dou.gif)
使用import package1.
![](/icons/94074class.gif)
1; 或 import package2.*;这里.*表示引入这个包中
![](/icons/94074de.gif)
所有类
![](/icons/94074dou2.gif)
然后在
![](/icons/94074chengxu.gif)
中你可以使用其他类
![](/icons/94074de.gif)
短名
![](/icons/94074dou2.gif)
如果短名有冲突
![](/icons/94074dou.gif)
使用全名来区分
![](/icons/94074dou2.gif)
15 我用了package
![](/icons/94074de.gif)
时候显示"NoClassDefFoundError"
![](/icons/94074dou.gif)
但是我把所有package去掉
![](/icons/94074de.gif)
时候能正常运行
![](/icons/94074dou2.gif)
答:将你
![](/icons/94074de.gif)
java文件按包名存放
![](/icons/94074dou2.gif)
比如你
![](/icons/94074de.gif)
工作目录是/work
![](/icons/94074dou.gif)
你
![](/icons/94074de.gif)
类是package1.
![](/icons/94074class.gif)
1
![](/icons/94074dou.gif)
那么将它存放为/work/package1/
![](/icons/94074class.gif)
1.java
![](/icons/94074dou2.gif)
如果没有声明包
![](/icons/94074dou.gif)
那么直接放在/work下
![](/icons/94074dou2.gif)
在/work下执行javac package1/
![](/icons/94074class.gif)
1.java
![](/icons/94074dou.gif)
再执行java package1.
![](/icons/94074class.gif)
1
![](/icons/94074dou.gif)
你会发现
![](/icons/94074yi.gif)
切正常
![](/icons/94074dou2.gif)
另外
![](/icons/94074dou.gif)
你可以考虑开始使用IDE
![](/icons/94074dou2.gif)
16 我想把java编译成exe文件
![](/icons/94074dou.gif)
该如何做? 答:JDK只能将java源文件编译为
![](/icons/94074class.gif)
文件
![](/icons/94074dou2.gif)
![](/icons/94074class.gif)
文件是
![](/icons/94074yi.gif)
种跨平台
![](/icons/94074de.gif)
字节码
![](/icons/94074dou.gif)
必须依赖平台相关
![](/icons/94074de.gif)
JRE来运行
![](/icons/94074dou2.gif)
Java以此来实现跨平台
![](/icons/94074dou.gif)
有些开发工具可以将java文件编译为exe文件
![](/icons/94074dou2.gif)
作者反对这种做法
![](/icons/94074dou.gif)
![](/icons/94074yinwei.gif)
这样就取消了跨平台性
![](/icons/94074dou2.gif)
如果你确信你
![](/icons/94074de.gif)
软件Software只在Windows平台上运行
![](/icons/94074dou.gif)
你可以考虑使用C
![](/icons/94074jiajia.gif)
/C#来编程
![](/icons/94074dou2.gif)
17 我在编译
![](/icons/94074de.gif)
时候遇到什么"deprecated API"
![](/icons/94074dou.gif)
是什么意思? 答:所谓deprecated是指已经?时
![](/icons/94074dou.gif)
但是为了向前兼容起见仍然保留
![](/icons/94074de.gif)
思路方法
![](/icons/94074dou.gif)
这些思路方法可能会在以后取消支持
![](/icons/94074dou2.gif)
你应当改用较新
![](/icons/94074de.gif)
思路方法
![](/icons/94074dou2.gif)
![](/icons/94074yi.gif)
般在API里面会介绍说明你应当用什么思路方法来代替的
![](/icons/94074dou2.gif)
3、I/O篇 18 我如何给java
![](/icons/94074chengxu.gif)
加启动参数
![](/icons/94074dou.gif)
就像dir /p/w那样? 答:还记得public
![](/icons/94074static.gif)
void
![](/icons/94074main.gif)
(String
![](/icons/94074zhk2.gif)
args)吗?这里
![](/icons/94074de.gif)
args就是你
![](/icons/94074de.gif)
启动参数
![](/icons/94074dou2.gif)
在运行时你输入java package1.
![](/icons/94074class.gif)
1 -arg1 -arg2
![](/icons/94074dou.gif)
args中就会有两个String
![](/icons/94074dou.gif)
![](/icons/94074yi.gif)
个是arg1
![](/icons/94074dou.gif)
另
![](/icons/94074yi.gif)
个是arg2
![](/icons/94074dou2.gif)
19 我如何从键盘输入
![](/icons/94074yi.gif)
个
![](/icons/94074int.gif)
/double/
![](/icons/94074zifu.gif)
串? 答:java
![](/icons/94074de.gif)
I/O操作比C
![](/icons/94074jiajia.gif)
要复杂
![](/icons/94074yi.gif)
点
![](/icons/94074dou2.gif)
如果要从键盘输入
![](/icons/94074dou.gif)
样例代码如下: BufferedReader cin =
![](/icons/94074new.gif)
BufferedReader(
![](/icons/94074new.gif)
InputStreamReader(
![](/icons/94074System.gif)
.in ) ) ; String s = cin.readLine
![](/icons/94074kh.gif)
; 这样你就获得了
![](/icons/94074yi.gif)
个
![](/icons/94074zifu.gif)
串
![](/icons/94074dou.gif)
如果你需要数字
![](/icons/94074de.gif)
话再加上:
![](/icons/94074int.gif)
n = Integer.parseInt( s ); 或者 double d = Double.parseDouble( s ); 20 我如何输出
![](/icons/94074yi.gif)
个
![](/icons/94074int.gif)
/double/
![](/icons/94074zifu.gif)
串? 答:在
![](/icons/94074chengxu.gif)
开始写: Pr
![](/icons/94074int.gif)
Writer cout =
![](/icons/94074new.gif)
Pr
![](/icons/94074int.gif)
Writer(
![](/icons/94074System.gif)
.out ); 需要时写: cout.pr
![](/icons/94074int.gif)
(n); 或者 cout.pr
![](/icons/94074int.gif)
ln("hello") 等等
![](/icons/94074dou2.gif)
21 我发现有些书上直接用
![](/icons/94074System.gif)
.in和
![](/icons/94074System.gif)
.out输入输出
![](/icons/94074dou.gif)
比你要简单得多
![](/icons/94074dou2.gif)
答:java使用unicode
![](/icons/94074dou.gif)
是双字节
![](/icons/94074dou2.gif)
而
![](/icons/94074System.gif)
.in和
![](/icons/94074System.gif)
.out是单字节
![](/icons/94074de.gif)
stream
![](/icons/94074dou2.gif)
如果你要输入输出双字节文字比如中文
![](/icons/94074dou.gif)
请使用作者
![](/icons/94074de.gif)
做法
![](/icons/94074dou2.gif)
22 我如何从文件输入
![](/icons/94074yi.gif)
个
![](/icons/94074int.gif)
/double/
![](/icons/94074zifu.gif)
串? 答:类似于从键盘输入
![](/icons/94074dou.gif)
只不过换成 BufferedReader fin =
![](/icons/94074new.gif)
BufferedReader(
![](/icons/94074new.gif)
FileReader(" myFileName " ) ); Pr
![](/icons/94074int.gif)
Writer fout =
![](/icons/94074new.gif)
Pr
![](/icons/94074int.gif)
Writer(
![](/icons/94074new.gif)
FileWriter(" myFileName " ) ); 另外如果你还没下载API
![](/icons/94074dou.gif)
请开始下载并阅读java.io包中
![](/icons/94074de.gif)
内容
![](/icons/94074dou2.gif)
23 我想读写文件
![](/icons/94074de.gif)
指定位置
![](/icons/94074dou.gif)
该如何办? 答:你肯定没有认真看API
![](/icons/94074dou2.gif)
java.io.RandomAccessFile可以满足你
![](/icons/94074de.gif)
需要
![](/icons/94074dou2.gif)
24 如何判断要读
![](/icons/94074de.gif)
文件已经到了尽头? 答:你肯定没有认真看API
![](/icons/94074dou2.gif)
在Reaer
![](/icons/94074de.gif)
read思路方法中明确介绍说明返回-1表示流
![](/icons/94074de.gif)
结尾
![](/icons/94074dou2.gif)
4、 关键字篇 25 java里面如何定义宏? 答:java不支持宏
![](/icons/94074dou.gif)
![](/icons/94074yinwei.gif)
宏代换不能保证类型安全
![](/icons/94074dou2.gif)
如果你需要定义常量
![](/icons/94074dou.gif)
可以将它定义为某个类
![](/icons/94074de.gif)
![](/icons/94074static.gif)
final成员
![](/icons/94074dou2.gif)
参见26和30
![](/icons/94074dou2.gif)
26 java里面没法用const
![](/icons/94074dou2.gif)
答:你可以用final关键字
![](/icons/94074dou2.gif)
例如 final
![](/icons/94074int.gif)
m = 9
![](/icons/94074dou2.gif)
被声明为final
![](/icons/94074de.gif)
变量不能被再次赋值
![](/icons/94074dou2.gif)
也可以用于声明思路方法或类
![](/icons/94074dou.gif)
被声明为final
![](/icons/94074de.gif)
思路方法或类不能被继承
![](/icons/94074dou2.gif)
注意const是java
![](/icons/94074de.gif)
保留字以备扩充
![](/icons/94074dou2.gif)
27 java里面也不能用goto
![](/icons/94074dou2.gif)
答:甚至在面向过程
![](/icons/94074de.gif)
语言中你也可以完全不用goto
![](/icons/94074dou2.gif)
请检查你
![](/icons/94074de.gif)
![](/icons/94074chengxu.gif)
流程是否合理
![](/icons/94074dou2.gif)
如果你需要从多层循环中迅速跳出
![](/icons/94074dou.gif)
java增强了(和C
![](/icons/94074jiajia.gif)
相比)
![](/icons/94074break.gif)
和continue
![](/icons/94074de.gif)
功能
![](/icons/94074dou2.gif)
例如: outer : while( ... ) { inner : for( ... ) { ...
![](/icons/94074break.gif)
inner; ... ... continue outer; ... } } 和const
![](/icons/94074yi.gif)
样
![](/icons/94074dou.gif)
goto也是java
![](/icons/94074de.gif)
保留字以备扩充
![](/icons/94074dou2.gif)
28 java里面能不能重载操作符? 答:不能
![](/icons/94074dou2.gif)
String
![](/icons/94074de.gif)
+号是唯
![](/icons/94074yi.gif)
![](/icons/94074yi.gif)
个内置
![](/icons/94074de.gif)
重载操作符
![](/icons/94074dou2.gif)
你可以通过定义接口和思路方法来实现类似功能
![](/icons/94074dou2.gif)
29 我
![](/icons/94074new.gif)
了
![](/icons/94074yi.gif)
个对象
![](/icons/94074dou.gif)
但是没法delete掉它
![](/icons/94074dou2.gif)
答:java有自动内存回收机制
![](/icons/94074dou.gif)
即所谓Garbarge Collector
![](/icons/94074dou2.gif)
你再也不用担心指针
![](/icons/94074cuowu.gif)
![](/icons/94074dou2.gif)
30 我想知道为什么
![](/icons/94074main.gif)
思路方法必须被声明为public
![](/icons/94074static.gif)
? 答:声明为public是为了这个思路方法可以被外部
![](/icons/94074diaoyong.gif)
![](/icons/94074dou.gif)
详情见面向对象篇37
![](/icons/94074static.gif)
是为了将某个成员变量/思路方法关联到类(
![](/icons/94074class.gif)
)而非例子(instance)
![](/icons/94074dou2.gif)
你不需要创建
![](/icons/94074yi.gif)
个对象就可以直接使用这个类
![](/icons/94074de.gif)
![](/icons/94074static.gif)
成员
![](/icons/94074dou.gif)
在A类中
![](/icons/94074diaoyong.gif)
B类
![](/icons/94074de.gif)
![](/icons/94074static.gif)
成员可以使用B.
![](/icons/94074static.gif)
Member
![](/icons/94074de.gif)
写法
![](/icons/94074dou2.gif)
注意
![](/icons/94074yi.gif)
个类
![](/icons/94074de.gif)
![](/icons/94074static.gif)
成员变量是唯
![](/icons/94074yi.gif)
![](/icons/94074de.gif)
![](/icons/94074dou.gif)
被所有该类对象所共享
![](/icons/94074de.gif)
![](/icons/94074dou2.gif)
31 throw和throws有什么区别? 答:throws用于声明
![](/icons/94074yi.gif)
个思路方法会抛出哪些异常
![](/icons/94074dou2.gif)
而throw是在思路方法体中实际执行抛出异常
![](/icons/94074de.gif)
动作
![](/icons/94074dou2.gif)
如果你在思路方法中throw
![](/icons/94074yi.gif)
个异常
![](/icons/94074dou.gif)
却没有在思路方法声明中声明的
![](/icons/94074dou.gif)
编译器会报错
![](/icons/94074dou2.gif)
注意Error和RuntimeException
![](/icons/94074de.gif)
子类是例外
![](/icons/94074dou.gif)
无需特别声明
![](/icons/94074dou2.gif)
32 什么是异常? 答:异常最早在Ada语言中引入
![](/icons/94074dou.gif)
用于在
![](/icons/94074chengxu.gif)
中动态处理
![](/icons/94074cuowu.gif)
并恢复
![](/icons/94074dou2.gif)
你可以在思路方法中拦截底层异常并处理的
![](/icons/94074dou.gif)
也可以抛给更高层
![](/icons/94074de.gif)
模块去处理
![](/icons/94074dou2.gif)
你也可以抛出自己
![](/icons/94074de.gif)
异常指示发生了某些不正常情况
![](/icons/94074dou2.gif)
常见
![](/icons/94074de.gif)
拦截处理代码如下: try { ...... //以下是可能发生异常
![](/icons/94074de.gif)
代码 ...... //异常被抛出
![](/icons/94074dou.gif)
执行流程中断并转向拦截代码
![](/icons/94074dou2.gif)
...... } catch(Exception1 e) //如果Exception1是Exception2
![](/icons/94074de.gif)
子类并要做特别处理
![](/icons/94074dou.gif)
应排在前面 { //发生Exception1时被该段拦截 } catch(Exception2 e) { //发生Exception2时被该段拦截 } finally //这是可选
![](/icons/94074de.gif)
{ //无论异常是否发生
![](/icons/94074dou.gif)
均执行此段代码 } 33 final和finally有什么区别? 答:final请见26
![](/icons/94074dou2.gif)
finally用于异常机制
![](/icons/94074dou.gif)
参见32
![](/icons/94074dou2.gif)
5、 面向对象篇 34 extends和implements有什么区别? 答:extends用于(单)继承
![](/icons/94074yi.gif)
个类(
![](/icons/94074class.gif)
)
![](/icons/94074dou.gif)
而implements用于实现
![](/icons/94074yi.gif)
个接口(
![](/icons/94074int.gif)
erface)
![](/icons/94074dou2.gif)
![](/icons/94074int.gif)
erface
![](/icons/94074de.gif)
引入是为了部分地提供多继承
![](/icons/94074de.gif)
功能
![](/icons/94074dou2.gif)
在
![](/icons/94074int.gif)
erface中只需声明思路方法头
![](/icons/94074dou.gif)
而将思路方法体留给实现
![](/icons/94074de.gif)
![](/icons/94074class.gif)
来做
![](/icons/94074dou2.gif)
这些实现
![](/icons/94074de.gif)
![](/icons/94074class.gif)
![](/icons/94074de.gif)
例子完全可以当作
![](/icons/94074int.gif)
erface
![](/icons/94074de.gif)
例子来对待
![](/icons/94074dou2.gif)
有趣
![](/icons/94074de.gif)
是在
![](/icons/94074int.gif)
erface的间也可以声明为extends(单继承)
![](/icons/94074de.gif)
关系
![](/icons/94074dou2.gif)
35 java如何实现多继承? 答:java不支持显式
![](/icons/94074de.gif)
多继承
![](/icons/94074dou2.gif)
![](/icons/94074yinwei.gif)
在显式多继承
![](/icons/94074de.gif)
语言例如c
![](/icons/94074jiajia.gif)
中
![](/icons/94074dou.gif)
会出现子类被迫声明祖先虚基类构造
![](/icons/94074hanshu.gif)
![](/icons/94074de.gif)
问题
![](/icons/94074dou.gif)
而这是违反面向对象
![](/icons/94074de.gif)
封装性原则
![](/icons/94074de.gif)
![](/icons/94074dou2.gif)
java提供了
![](/icons/94074int.gif)
erface和implements关键字来部分地实现多继承
![](/icons/94074dou2.gif)
参见34
![](/icons/94074dou2.gif)
36 abstract是什么? 答:被声明为abstract
![](/icons/94074de.gif)
思路方法无需给出思路方法体
![](/icons/94074dou.gif)
留给子类来实现
![](/icons/94074dou2.gif)
而如果
![](/icons/94074yi.gif)
个类中有abstract思路方法
![](/icons/94074dou.gif)
那么这个类也必须声明为abstract
![](/icons/94074dou2.gif)
被声明为abstract
![](/icons/94074de.gif)
类无法例子化
![](/icons/94074dou.gif)
尽管它可以定义构造思路方法供子类使用
![](/icons/94074dou2.gif)
37 public,protected,private有什么区别? 答:这些关键字用于声明类和成员
![](/icons/94074de.gif)
可见性
![](/icons/94074dou2.gif)
public成员可以被任何类访问
![](/icons/94074dou.gif)
protected成员限于自己和子类访问
![](/icons/94074dou.gif)
private成员限于自己访问
![](/icons/94074dou2.gif)
Java还提供了第 4种
![](/icons/94074de.gif)
默认可见性
![](/icons/94074dou.gif)
![](/icons/94074yi.gif)
般称为package private
![](/icons/94074dou.gif)
当没有任何public,protected,private修饰符时
![](/icons/94074dou.gif)
成员是同
![](/icons/94074yi.gif)
包内可见
![](/icons/94074dou2.gif)
类可以用public或默认来修饰
![](/icons/94074dou2.gif)
38 Override和Overload有什么区别? 答:Override是指父类和子类的间思路方法
![](/icons/94074de.gif)
继承关系
![](/icons/94074dou.gif)
这些思路方法有着相同
![](/icons/94074de.gif)
名称和参数类型
![](/icons/94074dou2.gif)
Overload是指同
![](/icons/94074yi.gif)
个类中区别思路方法(可以在子类也可以在父类中定义)间
![](/icons/94074de.gif)
关系
![](/icons/94074dou.gif)
这些思路方法有着相同
![](/icons/94074de.gif)
名称和区别
![](/icons/94074de.gif)
参数类型
![](/icons/94074dou2.gif)
39 我继承了
![](/icons/94074yi.gif)
个思路方法
![](/icons/94074dou.gif)
但现在我想
![](/icons/94074diaoyong.gif)
在父类中定义
![](/icons/94074de.gif)
思路方法
![](/icons/94074dou2.gif)
答:用super.xxx
![](/icons/94074kh.gif)
可以在子类中
![](/icons/94074diaoyong.gif)
父类思路方法
![](/icons/94074dou2.gif)
40 我想在子类
![](/icons/94074de.gif)
构造思路方法中
![](/icons/94074diaoyong.gif)
父类
![](/icons/94074de.gif)
构造思路方法
![](/icons/94074dou.gif)
该如何办? 答:在子类构造思路方法
![](/icons/94074de.gif)
第
![](/icons/94074yi.gif)
行
![](/icons/94074diaoyong.gif)
super(...)即可
![](/icons/94074dou2.gif)
41 我在同
![](/icons/94074yi.gif)
个类中定义了好几个构造思路方法并且想在
![](/icons/94074yi.gif)
个构造思路方法中
![](/icons/94074diaoyong.gif)
另
![](/icons/94074yi.gif)
个
![](/icons/94074dou2.gif)
答:在构造思路方法第
![](/icons/94074yi.gif)
行
![](/icons/94074diaoyong.gif)
this(...)
![](/icons/94074dou2.gif)
42 我没有定义构造思路方法会如何样? 答:自动获得
![](/icons/94074yi.gif)
个无参数
![](/icons/94074de.gif)
构造思路方法
![](/icons/94074dou2.gif)
43 我
![](/icons/94074diaoyong.gif)
无参数
![](/icons/94074de.gif)
构造思路方法失败了
![](/icons/94074dou2.gif)
答:如果你至少定义了
![](/icons/94074yi.gif)
个构造思路方法
![](/icons/94074dou.gif)
就不再有自动提供
![](/icons/94074de.gif)
无参数
![](/icons/94074de.gif)
构造思路方法了
![](/icons/94074dou2.gif)
你需要显式定义
![](/icons/94074yi.gif)
个无参数
![](/icons/94074de.gif)
构造思路方法
![](/icons/94074dou2.gif)
44 我该如何定义类似于C
![](/icons/94074jiajia.gif)
中
![](/icons/94074de.gif)
析构思路方法(destructor)? 答:提供
![](/icons/94074yi.gif)
个void finalize
![](/icons/94074kh.gif)
思路方法
![](/icons/94074dou2.gif)
在Garbarge Collector回收该对象时会
![](/icons/94074diaoyong.gif)
该思路方法
![](/icons/94074dou2.gif)
注意实际上你很难判断
![](/icons/94074yi.gif)
个对象会在什么时候被回收
![](/icons/94074dou2.gif)
作者从未感到需要提供该思路方法
![](/icons/94074dou2.gif)
45 我想将
![](/icons/94074yi.gif)
个父类对象转换成
![](/icons/94074yi.gif)
个子类对象该如何做? 答:强制类型转换
![](/icons/94074dou2.gif)
如 public void meth(A a) { B b = (B)a; } 如果a实际上并不是B
![](/icons/94074de.gif)
例子
![](/icons/94074dou.gif)
会抛出ClassCastException
![](/icons/94074dou2.gif)
所以请确保a确实是B
![](/icons/94074de.gif)
例子
![](/icons/94074dou2.gif)
46 其实我不确定a是不是B
![](/icons/94074de.gif)
例子
![](/icons/94074dou.gif)
能不能分情况处理? 答:可以使用instanceof操作符
![](/icons/94074dou2.gif)
例如
![](/icons/94074if.gif)
( a instanceof B ) { B b = (B)a; }
![](/icons/94074else.gif)
{ ... } 47 我在思路方法里修改了
![](/icons/94074yi.gif)
个对象
![](/icons/94074de.gif)
值
![](/icons/94074dou.gif)
但是退出思路方法后我发现这个对象
![](/icons/94074de.gif)
值没变! 答:很可能你把传入参数重赋了
![](/icons/94074yi.gif)
个新对象
![](/icons/94074dou.gif)
例如下列代码就会造成这种
![](/icons/94074cuowu.gif)
: public void fun1(A a) //a是局部参数
![](/icons/94074dou.gif)
指向了
![](/icons/94074yi.gif)
个外在对象
![](/icons/94074dou2.gif)
{ a =
![](/icons/94074new.gif)
A
![](/icons/94074kh.gif)
; //a指向了
![](/icons/94074yi.gif)
个新对象
![](/icons/94074dou.gif)
和外在对象脱钩了
![](/icons/94074dou2.gif)
如果你要让a作为传出变量
![](/icons/94074dou.gif)
不要写这
![](/icons/94074yi.gif)
句
![](/icons/94074dou2.gif)
a.
![](/icons/94074set.gif)
Attr(attr);//修改了新对象
![](/icons/94074de.gif)
值
![](/icons/94074dou.gif)
外在对象没有被修改
![](/icons/94074dou2.gif)
} 基本类型也会出现这种情况
![](/icons/94074dou2.gif)
例如: public void fun2(
![](/icons/94074int.gif)
a) { a = 10;//只作用于本思路方法
![](/icons/94074dou.gif)
外面
![](/icons/94074de.gif)
变量不会变化
![](/icons/94074dou2.gif)
} 6、java.util篇 48 java能动态分配
![](/icons/94074shuzu.gif)
吗? 答:可以
![](/icons/94074dou2.gif)
例如
![](/icons/94074int.gif)
n = 3; Language
![](/icons/94074zhk2.gif)
myLanguages =
![](/icons/94074new.gif)
Language[n]; 49 我如何知道
![](/icons/94074shuzu.gif)
![](/icons/94074de.gif)
长度? 答:用length属性
![](/icons/94074dou2.gif)
如上例中
![](/icons/94074de.gif)
myLanguages.length 就为 3
![](/icons/94074dou2.gif)
50 我还想让
![](/icons/94074shuzu.gif)
![](/icons/94074de.gif)
长度能自动改变
![](/icons/94074dou.gif)
能够增加/删除元素
![](/icons/94074dou2.gif)
答:用顺序表--java.util.List接口
![](/icons/94074dou2.gif)
你可以选择用ArrayList或是LinkedList
![](/icons/94074dou.gif)
前者是
![](/icons/94074shuzu.gif)
实现
![](/icons/94074dou.gif)
后者是链表实现
![](/icons/94074dou2.gif)
例如: List list =
![](/icons/94074new.gif)
ArrayList
![](/icons/94074kh.gif)
; 或是 List list =
![](/icons/94074new.gif)
LinkedList
![](/icons/94074kh.gif)
; 51 什么是链表?为什么要有两种实现? 答:请补习数据结构
![](/icons/94074dou2.gif)
52 我想用队列/栈
![](/icons/94074dou2.gif)
答:用java.util.LinkedList
![](/icons/94074dou2.gif)
53 我希望不要有重复
![](/icons/94074de.gif)
元素
![](/icons/94074dou2.gif)
答:用集合--java.util.Set接口
![](/icons/94074dou2.gif)
例如:Set
![](/icons/94074set.gif)
=
![](/icons/94074new.gif)
HashSet
![](/icons/94074kh.gif)
![](/icons/94074dou2.gif)
54 我想遍历集合/Map
![](/icons/94074dou2.gif)
答:用java.util.Iterator
![](/icons/94074dou2.gif)
参见API
![](/icons/94074dou2.gif)
55 我还要能够排序
![](/icons/94074dou2.gif)
答:用java.util.TreeSet
![](/icons/94074dou2.gif)
例如:Set
![](/icons/94074set.gif)
=
![](/icons/94074new.gif)
TreeSet
![](/icons/94074kh.gif)
![](/icons/94074dou2.gif)
放进去
![](/icons/94074de.gif)
元素会自动排序
![](/icons/94074dou2.gif)
你需要为元素实现Comparable接口
![](/icons/94074dou.gif)
还可能需要提供equals
![](/icons/94074kh.gif)
思路方法
![](/icons/94074dou.gif)
compareTo
![](/icons/94074kh.gif)
思路方法
![](/icons/94074dou.gif)
hashCode
![](/icons/94074kh.gif)
思路方法
![](/icons/94074dou2.gif)
56 但是我想给
![](/icons/94074shuzu.gif)
排序
![](/icons/94074dou2.gif)
答:java.util.Arrays类包含了sort等实用思路方法
![](/icons/94074dou2.gif)
57 我想按区别思路方法排序
![](/icons/94074dou2.gif)
答:为每种思路方法定义
![](/icons/94074yi.gif)
个实现了接口Comparator
![](/icons/94074de.gif)
类并和Arrays综合运用
![](/icons/94074dou2.gif)
58 Map有什么用? 答:存储key-value
![](/icons/94074de.gif)
关键字-值对
![](/icons/94074dou.gif)
你可以通过关键字来快速存取相应
![](/icons/94074de.gif)
值
![](/icons/94074dou2.gif)
59
![](/icons/94074set.gif)
思路方法没问题
![](/icons/94074dou.gif)
但是get思路方法返回
![](/icons/94074de.gif)
是Object
![](/icons/94074dou2.gif)
答:强制类型转换成你需要
![](/icons/94074de.gif)
类型
![](/icons/94074dou2.gif)
参见45
![](/icons/94074dou2.gif)
60 我要获得
![](/icons/94074yi.gif)
个随机数
![](/icons/94074dou2.gif)
答:使用java.util.Random类
![](/icons/94074dou2.gif)
61 我比较两个String总是false
![](/icons/94074dou.gif)
但是它们明明都是"abc" ! 答:比较String
![](/icons/94074yi.gif)
定要使用equals或equalsIgnoreCase思路方法
![](/icons/94074dou.gif)
不要使用
![](/icons/94074dd.gif)
!
![](/icons/94074dd.gif)
比较
![](/icons/94074de.gif)
是两个引用(变量)是否指向了同
![](/icons/94074yi.gif)
个对象
![](/icons/94074dou.gif)
而不是比较其内容
![](/icons/94074dou2.gif)
62 我想修改
![](/icons/94074yi.gif)
个String但是在String类中没找到编辑思路方法
![](/icons/94074dou2.gif)
答:使用StringBuffer类
![](/icons/94074dou2.gif)
String str = "......."; //待处理
![](/icons/94074de.gif)
![](/icons/94074zifu.gif)
串 StringBuffer buffer =
![](/icons/94074new.gif)
StringBuffer(str); //使用该
![](/icons/94074zifu.gif)
串
![](/icons/94074chushi.gif)
化
![](/icons/94074yi.gif)
个 StringBuf fer buffer.append("..."); //
![](/icons/94074diaoyong.gif)
StringBuffer
![](/icons/94074de.gif)
相关API来编辑
![](/icons/94074zifu.gif)
串 String str2 = buffer.toString
![](/icons/94074kh.gif)
; //获得编辑后
![](/icons/94074de.gif)
![](/icons/94074zifu.gif)
串 另外
![](/icons/94074dou.gif)
如果你需要将多个
![](/icons/94074zifu.gif)
串连接起来
![](/icons/94074dou.gif)
请尽量避免使用+号直接连接
![](/icons/94074dou.gif)
而是使用StringBuffer.append
![](/icons/94074kh.gif)
思路方法
![](/icons/94074dou2.gif)
63 我想处理日期/时间
![](/icons/94074dou2.gif)
答:使用java.util.Date类
![](/icons/94074dou2.gif)
你可以使用java.text.SimpleDateFormat类来在String和Date间互相转换
![](/icons/94074dou2.gif)
SimpleDateFormat formatter =
![](/icons/94074new.gif)
SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //规定日期格式 Date date = formatter.parse("2003-07-26 18:30:35"); //将符合格式
![](/icons/94074de.gif)
String转换为Date String s = formatter.format(date); //将Date转换为符合格式
![](/icons/94074de.gif)
String 有关定义日期格式
![](/icons/94074de.gif)
详细信息请参见API
TAG:
FAQ
Java
JAVA
java
入门
学习