本帖最后由 ufof 于 2016-7-25 13:35 编辑



1.1 Java的基本了解



1.1.1 Java的历史(参考了一些网上的资料)

Java的历史充满了戏剧性。他的诞生完全是一个巧合。
在1990年,Sun公司想要为智能家电制作一个通用的控制系统,例如微波炉、固话、电视等。起初使用的语言是C++语言,不过这个语言有一些问题,例如缺少垃圾回收机制,复杂的多继承、指针等。并不适合用来做一个控制系统。
后来,Sun公司决定在C++的基础之上,对C++进行一些修改,已达到设计控制系统的目的。后来因为一些原因没有成功。唯一行得通的办法是设计一个新的语言,起名Oak。
1994年,Sun公司的一个小组用Oak语言编写了一个叫做WebRunner的网页浏览器,该浏览器受到使用者的高度评价。Oak语言可算是真正的出名了。无奈,Oak商标已被注册,只好改名Java。
随着Java语言的成熟,越来越多的人开始访问Sun公司的网站;越来越多人开始学习Java语言;用Java做的程序、游戏越来越多,他成为了一个广为人知的编程语言!
1997年,JDK 1.1版本发布。对效率有很大的提升。
次年,JDK 1.2发布。Sun将Java分成了J2EE、J2SE、J2ME三个版本。
2004年,里程碑式的更新:JDK 1.5发布。公司将其改名为Java SE/ME/EE 5.0。
2006年,JDK 1.6发布。
2009年,Oracle宣布收购Sun公司,通过收购获得到了Java该项资产。虽然Sun公司倒下了,但是Java的前途猎猎作响,JDK 1.7/1.8相继发布!
这只是一个开始,Java的未来必定更加辉煌。

1.1.2   为什么我要选择Java?

目前来讲,Java是世界上最流行的语言之一。数年来,其在编程语言排名中名列前茅。2015年6月份,Java以第一名的成绩击败了其他的编程语言,可见选择Java语言是十分明智的。而且现在市场上对Java的程序员需求也十分地广。

当然了,我相信打开这个帖子的读者们也并不一定是想要以Java作为一个职业。要编写Bukkit的一些插件或mods需要很深的Java基础。所以说要先打好根基。

2015年6月排行榜:


1.1.3 Java的特点

  • 面向对象

面向对象是指将程序中的所有事物视为对象。这与我们平时生活中的思考方式完全相同。一个事物有两个部分:属性和行为。这两个事物都被封装在类当中。类是Java中的基本组成单元。与面向过程思想不同之处在于“注重于对象”还是“注重于过程”。

  • 跨平台性

跨平台性是Java中十分重要的一个特性。只要装有JRE的平台都可以运行Java应用程序。实现了“Write once, run anywhere”(一次编写,到处运行)。

  • 易学

Java中没有C++的多继承、指针。增加了自动的垃圾回收,大大减少了程序员的工作量。而且会C++的程序员很快可以掌握Java。

这里只列举三个最重要的。其他的可以自己去查一查资料。



本章小结:

  • Java的历史充满戏剧性
  • Java十分受欢迎,一直与C争第一
  • Java面向对象、跨平台、易学



1.2 如何学好Java语言



1.2.1 要有编程的兴趣

编程的兴趣对于学好一个编程语言有多大的影响我不需要多说。不仅仅是编程语言,学任何东西的前提就是要自己有兴趣。
许多人看着Java程序员能够领高额的工资就想要放弃自己的爱好,马上开始学编程,希望一展身手,马上找到工作。这种做法是完全不可取的。在你真正翻开教程之前,最好先问问自己:我是否真的喜欢编程?我能否坚持下去?我做了程序员会快乐吗?

兴趣是最好的老师。

1.2.2 要有良好的英文能力

Java是用英语编写的。如果英语实力好的话,更可以理解代码的本质,不需要死记硬背。Java中的关键字的词的意思往往都和它的作用有很大的关系。如果英语好,甚至看到这个词就能大概摸出来这个关键字的意义。例如if、while、void等。

不过其实英语不太好也不是说真的学不了了。这是要花费的功夫可能要多一点。

1.2.3 要会电脑的基本操作

这个我真的不用多说,连打字都不会编什么程。。

1.2.4 劳逸结合、充沛的精神

编写很大型的项目是需要投入进很多精力和时间的。所以说如果准备冲刺考试这类情况的话建议先把学习编程的任务放在一边,把自己的学业看的最重要。假期的时候再来学效率肯定更高。

编程时遇到困难千万不要在电脑面前唉声叹气。遇到问题倒不如出去散个步,听会歌。先放松一下自己的心情,然后再回来思考问题。如果不换换脑筋不仅不能解决问题,还会印象心情,产生厌恶感。

1.2.5 关于初学是否用IDE(有争议,请理智辩论

简单的来说IDE就像是你的小助手一样,可以帮你生成代码,补全拼写等。目前比较流行的IDE软件有Eclipse、NetBeans等。

这些软件很方便,但是本人认为,初学者不要使用。

虽然都说“工欲善其事,必先利其器”,但是是在你会做这个事情的情况下。就像是还没有会加法,就要用计算器了吗?要记住,你们学的不是怎么简化工作量,不是提高效率,而是Java语言。如果刚开始就直接用IDE,会产生依赖,最本质的事情却没有明白。

建议用一些比较简单的编写软件,例如notepad++、editplus、ultraedit等。

本章小结:
  • 需要有兴趣
  • 需要有良好的英文能力
  • 需要会电脑的基本操作
  • 需要有时间
  • 不需要用IDE



1.3 命令提示符




1.3.1  命令提示符概述

早期的电脑是通过命令提示符来操作磁盘或文件的。这种操作方式是通过繁琐的指令来实现的,与图形化界面相对。图形化界面就是我们现在用的操作方式。这种操作方式不需要记住繁琐的命令,只需要用鼠标点点,一目了然。

1.3.2  为什么要学习命令提示符呢?

虽说我们现在有了图形化界面,但是Java程序的编译和运行我们还是要通过命令提示符来实现。虽然说IDE具有自动编译和运行的功能,但是如上一章所讲的,不推荐使用。

1.3.3 如何打开命令提示符(Windows系统)?

  • 1、按住Windows键+R。此时会弹出“运行”窗口




  • 2、在“打开”中输入cmd,然后点击OK。命令提示符被打开了。
   


1.3.4 常见命令

命令
作用
盘符:
进入该盘根目录
cd <路径>
进入该路径
cd.. 进入上级路径
md <名称>
在该目录下建立文件夹
rd <名称>
在该目录下删除指定的文件夹
del <文件名>
删除文件
cls 清屏


示范:盘符:



在C盘下输入“d:”则切换到了D盘。后面同理。

示范:cd <路径> 和 cd..



在D盘根目录下输入“cd 资料”则进入了“D:\资料”该路径。

在D:\资料路径下,输入“cd..”则回到了D:根目录。

示范:md <名称> 和 rd <文件名>



输入“md demo”则在其路径下创建了一个文件夹:



输入“rd demo”则将其删除。

示范:del <文件名>

此时,我在D盘根目录下有一个叫做“demo.txt”的文件:



输入“del demo.txt”,该文件被删除。



示范:cls



此时,我的命令提示符中还记录着我之前写过的命令。
输入“cls”之后,其被清屏:



顺带一提,在命令提示符中可以通过↑或↓自动键入上次输入过得命令。


本章小结:


  • 介绍了打开cmd的方法
  • 介绍了一些命令



1.4
安装jdk,配置环境变量



1.4.1 JRE、JDK和JVM

JRE全称Java Runtime Environment,中文Java运行环境。如果要运行Java应用程序,必须安装JRE。
JRE下面包含JVM。JVM全称Java Virtual Machine,中文Java虚拟机。简单的来说,JVM是用来阅读你的.class字节码文件的虚拟的、抽象的机器。

学生提问:那么JRE就只包含JVM吗?运行Java程序还需要别的东西吗?

答:JRE不仅仅只包括JVM。要运行Java程序除了需要虚拟机之外,还需要其他的基础类库、效验器等其他组件。

JDK全称Java Development Kit,中文Java开发工具包。JDK包含编译器javac、jar、javadoc等组件。

简单来说:光要运行Java,装JRE就好了。如果要开发,两者都得安装。

1.4.2 安装JDK

  • 1、访问Oracle官网
  • 2、让鼠标悬浮在Downloads目录下,然后点击左侧的Java for Developers。
   


  • 3、点击Java Platform (JDK) 8u60


  • 4、稍微向下拉,点击Accept License Agreement,然后下载对应你的平台的JDK。



  • 5、开始下载
  • 6、根据提示,安装JDK。

1.4.3  配置环境变量(Windows 8系统)

  • 1、在“我的电脑”下右键“计算机”,点击“属性”菜单



  • 2、在弹出的窗口的左侧,有一个“高级系统设置”,单击它



  • 3、点击后会弹出“系统属性”窗口。单击“环境变量”



  • 4、弹出“环境变量”窗口之后,点击新建。



  • 5、输入变量名和变量值,然后单击OK。

  1. 变量名:JAVA_HOME
  2. 变量值:C:\Program Files (x86)\Java\jdk1.8.0_11(你的jdk安装路径,因人而异)
复制代码


  • 6、找到已存在的Path路径,单击后点击“编辑”。注意:要选择在系统变量中的Path,而非上边用户变量的PATH。



  • 7、在整个变量值最前端加入一下代码,然后点击OK。

  1. .;%JAVA_HOME%\bin;
复制代码


  • 8、打开命令提示符,输入javac。如果出现了以下提示,恭喜您配置成功。



本章小结:
  • JRE用于运行、JDK用于开发
  • 安装JDK
  • 在编程之前要配置环境变量
  • 通过输入javac命令检测是否配置成功



1.5 Hello, world程序



经过了前四章的讲(废)解(话),我们终于可以写一点代码了,是不是很激动呢?

1.5.1 Hello, world意义

Hello, world是世界上第一个程序。这个程序表示真正踏入了某一个编程语言的征途中。
该程序的要求:在命令提示符上打印“hello, world”。


1.5.2 开始编写!

这一章建议使用记事本来编写。
打开记事本,开始写代码吧!

首先我们要干的第一件事就是让计算机知道,这是一个Java的程序。Java中,“类”是一个基本组成单元。我们要干的第一件事是要声明这是一个类。

类需要有一个名字,也需要有一个区间。
请写下:
  1. class HelloWorld{

  2. }
复制代码

class是一个关键字。用于声明类。后面的HelloWorld不是关键字,是一个标识符,相当于类的名字,可以自己写。大括号表示类的区间。

接着,我们要干另一件事情,叫做声明主方法。
在一个项目中,里面有成千上万个类。但是其实有特殊一个类,他是程序的入口点,这种类被称为主类。在这个例子当中,我们刚才定义的类肯定是主类,毕竟我们要直接运行它。

加上一段代码:
  1. class HelloWorld{
  2.    public static void main(String[] args){
  3.    
  4.     }
  5. }
复制代码

我刚开始学的时候也蒙了。。这么长,究竟什么意思?这个我们只能先背下来,以后我们会一个一个解释。

定义了主方法之后,现在我们的类成为了主类,它具备独立运行的资格了。现在我们要加上一个语句,用于打印字符串。请写下:

  1. class HelloWorld{
  2.    public static void main(String[] args){
  3.        System.out.println("Hello, world");
  4.     }
  5. }
复制代码

println是一个方法,是指打印一段字符串之后换行。这段代码大家也都要记住。
注意:后面的分号不能忘掉。这是一个语句,语句通过分号来结束。
代码就是这么多,写下来我们来讲一下如何运行。


学生提问:print()方法和println()方法有什么区别?

回答:这两个方法的用法是完全相同的。但是区别在于print()方法在打印完之后不会换行,而println()方法会自动换行。具体使用哪种取决于需求。

1.5.3 设置classpath

在编译和运行之前,需要做一件事情。那就是告诉Java虚拟机到哪里去找程序的字节码文件。其是通过classpath环境变量来找到的。如果设置不当,虚拟机就会找不到字节码文件的位置,自然运行不了。classpath应当在命令行中修改。语法如下:

  1. set classpath=路径1;路径2;路径3.....路径n
复制代码
虚拟机会先在路径1找字节码文件,如果没有找到再去路径2,以此类推。
路径可以输入绝对路径,也可以用点“.”代表当前目录。所以说我们先暂时这样设置:

  1. set classpath=.
复制代码

这样就可以了。

1.5.4 编译与运行

首先我们把刚才写的记事本文件的后缀名改成.java,让计算机知道这是一个Java源文件。
但是计算机不能够直接认出来我们所写的代码,我们要把这个代码“翻译”成电脑读得懂的语言。

“翻译”这个过程叫做“编译”。编译之后会生成一个.class的文件,这个文件是计算机读得懂得,叫做字节码文件。

编译之后就可以运行了。那么具体怎么做呢?先上渣图:



编译和运行都是在命令提示符中通过命令的形式来实现的。编译用到的命令为javac <源文件名>,运行时java <字节码文件名>。


学生提问:我把源代码改了,再一次运行,为什么结果没有变?

回答:源文件更改之后,需要重新编译,不然看不到新的运行结果。比如说我有一本书已经翻译完了,我对书的内容进行了调整,如果不再次翻译,读译文的读者会读到不同吗?所以说如果代码改变了,一定要重新编译。

打开命令提示符,通过切换盘符和cd命令将路径改到.java文件所在的目录,在我的电脑里我的.java路径在d:\workspace\java下。


路径对好了之后,就可以用到javac命令了。

javac后面要跟上.java的文件名,需要声明后缀名。
请输入:
  1. javac HelloWorld.java
复制代码
输入之后回车。请看.java所在的目录,多了一个叫做.class的文件!



编译过程完成了,现在运行。
请输入(不需要.class):
  1. java HelloWorld
复制代码


回车之后,"hello, world"打印在了命令提示符上了!恭喜你,你的第一个Java程序完成了!

本章小结:
  • hello, world代表着正式开始学习一个计算机语言
  • 学习了定义类和方法
  • 学习了打印输出语句
  • 学会了编译和运行




1.6 注释




1.6.1 注释概述

在编写规模较大的程序时,有可能要对代码进行一些解释,以增强阅读性。如果是由一个团队一起开发的话留下注释也是很好的习惯,别人更容易理解你的代码。


注释部分被虚拟机忽略,不读。


在Java中,有三种注释:
  • 单行注释
  • 多行注释
  • 文档注释



文档注释暂时先不讲。


1.6.2 单行注释

在Java中,单行注释通过“//”标记。引用上一章Hello world的例子:


  1. class HelloWorld{                                 //定义类
  2.    public static void main(String[] args){  //定义主方法
  3.        System.out.println("Hello, world");  //该语句打印了Hello, world该字符串
  4.     }
  5. }
复制代码

在这个程序当中,一共有三个注释。从//开始所有字符直到行的结束都会变成注释,被虚拟机忽略。



1.6.3 多行注释


顾名思义,多行注释可以使其区间内的字符都变为注释。标记方法为/*开始,*/结束。例如:



  1. /*这是一个多行注释
  2. 该程序用于输出hello world
  3. */
  4. class HelloWorld{                                 //定义类
  5.    public static void main(String[] args){  //定义主方法
  6.        System.out.println("Hello, world");  //该语句打印了Hello, world该字符串
  7.     }
  8. }
复制代码

1.6.4 多行注释的嵌套


一定要注意:多行注释中可以嵌套单行注释,但是不能嵌套多行注释。
  1. /*
  2.   /*
  3.   */
  4. */
复制代码

该代码为非法。原因是一个注释开始标记被第一个注释关闭标记关闭,第二个注释开始标记因为在注释中,被忽略了,所以最后一个注释关闭标记没有其所对应的开始标记。



本章小结:
  • 注释可以提高阅读性
  • Java有单行注释、多行注释、文档注释三种注释。


[groupid=546]Command Block Logic[/groupid]