From:http://bbs.byr.cn/article/Java/9631
初学者指南
http://www.javaeye.com/wiki/Java_Newbie/1292-java-learning-path
这篇是为初学者写的东西,大概讲讲怎么从Eclipse写Hello World。最后介绍一下常用快捷键。
FAQ
请推荐Java的编辑器
“首选Eclipse”
“Eclipse、Netbeans、JBuilder
主要是这么几个吧……做图形界面的话必然要用到啊,记事本写还不写死人……
初学者也未必要一直记事本+命令行,但最好是从这个学起,主要是为了知道环境变量的配置方法(有些公司面试会问的),还有javac编译生成class、java运行class的步骤
话说win自带的记事本实在不好太使,UE或者EditPlus有语法着色和自动缩进外加生成bak的比较方便”
“JCreator,面向初学者的。很简洁。”
请推荐Java书籍
初学者首选《Core Java》 http://www.china-pub.com/208978&ref=ps http://www.china-pub.com/508881&ref=ps
更多请看:
http://forum.byr.edu.cn/wForum/disparticle.php?boardName=Java&ID=7942&pos=5
如何设置环境变量
如果是winXP,使用鼠标右击“我的电脑”->属性->高级->环境变量
系统变量->新建->变量名:JAVA_HOME 变量值:C:\Program Files\Java\jdk1.6.0_02(此处改成你Java的安装目录)
系统变量->新建->变量名:CLASSPATH 变量值:.;%JAVA_HOME%\lib
系统变量->编辑->变量名:Path 在变量值的最前面加上:%JAVA_HOME%\bin;
(CLASSPATH中有一英文句号“.”后跟一个分号,表示当前路径的意思)
在Classpath里面你可以直接指定一个包名,比如你用到的第三方的包。多个包之间用分号隔开。
在什么情况下会发生java.lang.NoClassDefFoundError ,以及如何避免这种情况发生?
Java.lang.NoClassDefFoundError是Java无法在所给予的classpath中找到提及的类别或接口的定义,因而抛出的执行时期异常。这个错误通常是因为classpath的设定错误而抛出的。
如果出现这个错误,请确定你的classpath设置正确(不要忘记有包含当前的目录(以句点.表示))。
如果你使用java Test.java命令来执行命令,也会抛出这个错误。这个应该是使用java Test,因为类别名称是Test而不是Test.java。
下面的代码可以检查你的JVM使用什么classpath:
public void displayClassPath()
{
try
{
System.out.println(System.getProperty("java.class.path"));
}
catch(Throwable t)
{
t.printStackTrace();
}
}
Eclipse最重要的快捷键
Ctrl+Shift+L 有了它就知道其他快捷键了
我们学校都有哪些院有Java的课啊?
“计算机学院,王小茹老师,本学期,全校选修;
电信院,唐晓晟老师,下学期,院内选修。
建议先上王老师的课,讲得非常好,很快能入门;
再旁听唐Sir的课,内容不少,讲得也快,对提高很有帮助。
个人观点,仅供参考。”
数组跟ArrayList有什么区别
可以将 ArrayList想象成一种“会自动扩增容量的Array”。数组不能改变长度,ArrayList可以。数组可以用基本数据类型,ArrayList只接收对象。
更多请看:
http://linweihan.javaeye.com/blog/144829
怎么从键盘输入一个int/double/字符串?
分两种方式,一是作为运行的入口参数,用main的args参数获得;二是在运行时从键盘输入获得。
Java的I/O操作比C++要复杂一点。如果要运行时从键盘输入,样例代码如下:
BufferedReadercin=newBufferedReader(newInputStreamReader(System.in));
Strings=cin.readLine();
这样你就获得了一个字符串,如果你需要数字的话再加上:
intn=Integer.parseInt(s);或者doubled=Double.parseDouble(s);
另一种方法:
Scanner xx=new Scanner(System.in)
String yy=in.nextline(.nextword .nextint .....)
怎么把Java编译成exe文件?
总的来说,JDK只能将Java源文件编译为Class文件,以此来实现跨平台性。
有些开发工具可以将Java文件编译为exe文件(事实上没有成熟稳定的,特别随着Java版本的提高)。而且本人反对这种做法,因为这样就取消了跨平台性。
如果你确信你的软件只在Windows平台上运行,你可以考虑使用C++/C#来编程。
如果你想使Java编写出Windows样子的界面,可以使用Eclipse的SWT。或者,干脆使用C#。
哪里下载Java API帮助文档
建议用英文版的,不难。这种程度的英文文档适合程序员看。下载可以尝试迅雷
http://www.gougou.com/search?search=jdk%20chm&id=1
另外,在Sun的网站上http://java.sun.com/javase/downloads/index.jsp
找到Java SE Documentation点download就可以下载了
如何测试程序执行时间
long start = System.currentTimeMillis();
// 要计时的运算代码放在这儿
long time = System.currentTimeMillis() - start;
System.out.println(time);
如何在Java中执行其它可执行程序
Runtime.getRuntime().exec("notepad.exe")
deprecated是什么意思?
有时在编译完java的原始码后会出现Deprecation warings。
Deprecation表示你使用了一些旧的API,这些API在新版的JDK都有其他可用的API可以取代他们。
你应该使用新的API来确定这个程式可以和未来的JDK版本维持相容。
在编译时使用-deprecate来列出所有你所用的deprecated methods和相对应的新的methods.
如何在基本类型和java.lang.String之间转换?
所有的基本类型都可以使用在java.lang底下的包装类别转换成字串。
例如java.lang.Integer,java.lang.Byte,等等。
Byte myByte = new Byte(289);
int myInt = myByte.intValue();
String myHexString = Integer.toHexString(myInt);
所有除了byte之外的基本类型都可以用重载的String.valueOf()方法来转换成字串。
String intStr = String.valueOf(1);
String doubleStr = String.valueOf(Math.PI);
String boolStr = String.valueOf(true);
更简单的方法 String intStr = "" + 1; ("" + Math.PI; "" + true)
Eclipse的在线文档很好用,但有时候网不通的时候很烦,怎么才能让Eclipse用本地的JavaDoc?
window-->preference-->java-->installed jres
找到jre配置,edit
点击里面的每一个jar包,配置javadoc location
选用sun的那个zip包就可以了
【安装JDK和Eclipse】
1.download JDK
地址:http://java.sun.com/javase/downloads/index.jsp
也可使用迅雷下载,注意下载JDK安装,而不是JRE。
我下载的是Java SE Development Kit (JDK) 6 Update 11。如果只使用Eclipse编译和开发的话,不用设置环境变量。
2. download Eclipse
http://www.eclipse.org/downloads/
选择Eclipse Classic或 Eclipse IDE for Java Developers(推荐前者,包含了SWT等eclipse插件相关的东西以及其他有用的工具。)
下载完毕,无需安装,直接解压到一个目录即可。
【Hello World with Eclipse】
打开时Eclipse时,会要求选择workspace,可以先使用默认的workspace。
打开后,会出来Welcome界面,其中的Tutorials和Samples是很好的学习材料。
For now,你可以点击打开Workbench直接来写Hello World。
File->New->Java Project,会弹出来一个窗口。
在Project Name域中,填入HelloWorld,然后点击Finish。
然后,右键点击HelloWorld工程,选择New->Class(注意是Class,Java是面向对象的,一切都从类开始),在弹出来的窗口中Name写上HelloWorld,然后点击Finish。
在编辑器里面敲入以下代码。
public class HelloWorld {
public static void main(String args[]){
System.out.println("Hello, world!");
}
}
然后右键点击Run As->Java Application。就能在下面的Console窗口中看到打印出来的Hello,World。
我们这里没有编译的过程,因为Eclipse默认是及时编译的,如果代码有编译错误,会在下面有红线提示。
自动编译的选项在Project->Build Automaticlly设置。
【常用小技巧】
1.按住Ctrl,把鼠标放到类名上,可以看到类名处有下划线,点击即可跳转到代码处。同样作用的快捷键是F3。
2.刚开始跳转到JDK的类库代码时会需要Attach Source一下,比如跳转到String类。点击Attach Source,再点击弹出窗口中的External File。然后选择路径“C:/Program Files/Java/jdk1.6.0_11/src.zip”(假设安装在C盘),确定后就能见到代码了。JDK类库的代码是非常棒的,值得钻研。
3.很实用的快捷键介绍:
F4:打开类型层次结构
Alt + / : 补全代码,本来Ctrl + Space也可以的,但和输入法切换冲突了。
Ctrl + 1 : 快速修正。
Ctrl + Shift + O : 整理你的import部分的内容,会把多余的import项清理掉,也可以自动引入所需要得包。
Ctrl + Shift + T : 打开类型,输入类名能够快速转到那个文件,我很喜欢的快捷键。
Ctrl +Shift + F : 代码排版, 为了是你写的程序代码版面更清晰,你可以尝试使用该热键
Ctrl + O : 快速大纲:打开当前所选类型的轻量级大纲图。在一个文件中直接打开一个成员变量(如字段、方法),尤其是有许多类似的方法名的时候这个快捷键将变得非常有用。
Ctrl + / : 添加或去除注释。
4.有时候需要查看某个方法被哪些地方调用了,我们可以在这个方法上点击右键,选择“Open Call Hierarchy”,这时在开发环境的下方,会出现Call Hierarchy窗口,显示该方法被调用的情况。
另外一些常用的快捷键(Thanks to Aaron12)
ctrl + D 删除选择行
ctrl + F 查找/替换
ctrl + <- 返回上一次光标所在,在不同的Java文件来回切换很方便(very 有用的),尤其是debug的时候。
ctrl + alt + Z : 某行代码调用生命抛出异常的方法时,选择该行代码,使用本组合快捷键,很方便的补全try{}catch(){}
alt+shift+R: 重构。 选择变量名称或者方法名称后,按该键进行重构。
shift+home : 选择光标所在行行首 至 光标的内容
shift+end : 选择 光标至光标所在行行尾处的内容
另外f1 - f8 都需要熟悉。
f5-f8 在debug的时候很方便。
F5: Step into 跟踪进入下一个要执行的方法,跟踪进入一个方法会增加一个栈帧。
F6: Step over 结束当前行的执行,在下一个可执行的行处挂起。
F7: Step Return 从当前方法中跳出。执行将继续,知道执行了当前方法中的return语句为止。
F8: Resume 继续执行线程,直到它结束或遇到断点为止。
ctrl + page up / page down : 切换java文件 或者 切换同一个文件中的不同视图(比如:一个文件有xml 和 ui 视图)
ctrl + p : 打印
ctrl + s 保存
ctrl + shift + s 全部保存
ctrl + w 关闭当前文件
ctrl + shift + w 关闭所有文件
ctrl + D 删除选择行
ctrl + F 查找/替换
ctrl + <- 返回上一次光标所在,在不同的Java文件来回切换很方便(very 有用的),尤其是debug的时候。
ctrl + alt + Z : 某行代码调用生命抛出异常的方法时,选择该行代码,使用本组合快捷键,很方便的补全try{}catch(){}
alt+shift+R: 重构。 选择变量名称或者方法名称后,按该键进行重构。
shift+home : 选择光标所在行行首 至 光标的内容
shift+end : 选择 光标至光标所在行行尾处的内容
另外别忘了 ESC 键也是很常用的,当打开的窗口没用需要的内容的时候(比如:使用ctrl+o,ctrl+shift+t查找不到内容时),使用esc键比用鼠标关闭窗口可会快多了
更多的热键可以在window->preferences->general->keys查看
这里有个不错的常用技巧介绍:http://hi.baidu.com/xyue13/blog/item/adad8f23633ae8f5d6cae25f.html
网站
http://forum.byr.edu.cn/wForum/board.php?name=Java
首先先推荐一下本版...毕竟自己学校的兄弟姐妹们交流会方便一点,热心一点,除了解答问题,交流技术,也能认识更多的人。
http://www.newsmth.net/bbsdoc.php?board=Java
水木的BBS,有问题时,来这里问也不错,速度可以。
http://www.javaeye.com/
由Robbin创建发起的技术网站,人气相当旺,有不少牛人。最初是以讨论Java技术和Hibernate技术开始的技术论坛,现在已经成为一个涵盖整个软件开发领域的综合性网站,2005年被选为中国十佳技术网站之一。
http://www.ibm.com/developerworks/cn/java/
http://dev2dev.bea.com.cn/
IBM和BEA都在主推Java应用。它们的技术网站中有不少关于Java的好文章。IBM那个要代理才能访问。
http://java.csdn.net/
CSDN,名气大到不需介绍。不过个人认为在此求助得到答案较慢,速度也一般。
http://www.blogjava.net/
这个地方集聚了不少好的Java博客。
http://www.j2medev.com/
这个网站主要关注J2ME,它可是我们的学长mingjava创建的哦。
http://www.javaresearch.org/
这个网站我以前经常上,有些不错的文章和资源。
http://www.matrix.org.cn
还挺不错的,大而全,就是速度慢。
http://www.javaworld.com.tw/jute/
这个差不多是台湾最好的Java网站,刚学Java的时候我觉得它比大陆的都好。现在JavaEye应该超过它了。
http://www.zzgps.cn/
这个网站有个论坛,里面有很多视频可供下载,速度不错,内容丰富
http://www.aidiji.com
一个关于Android开发与应用的网站,因为是基于java开发的,所以推荐一下