java入门(1)--介绍

阵营

人们在认识事物的时候,很喜欢贴标签、归类、划阵营。越是阅历多就越会这样。java

这也不彻底是什么坏事,至少能够把事物间做个对比、概括。python

java究竟是一种什么样的语言呢?windows

首先,她是一门高级语言。这是与机器语言、汇编语言相比较而言的。数组

也就是说,她主要仍是为了方便人的理解与阅读,并非优先考虑机器的执行效率。eclipse

其次,咱们总喜欢把高级语言划分为“编译型”与“解释型”。好比,c是编译型的:编辑器

由于咱们须要先用编译器把源代码转换为机器能懂的可执行代码,而后去执行。函数

注意,这个可执行代码是与机器和操做系统密切相关的。windows下的可执行程序,拿到苹果电脑上,根本没法运行。工具

好比:python就是解释型的,也被称为“脚本语言”。学习

python源码不须要编译,而是在须要执行的时候,用解释器一边翻译一边执行,这固然会有点慢,但得到了强大的动态能力。开发工具

Java呢? 两者皆非。

Java采用了当时还比较新潮的思路(在今天固然不足为奇了):

她把源码不进行完全的编译,而是编译到半山腰,造成一种运行在理想的或说假想的机器上的代码。

由于这台机器是假想的,于是也就不会有windows, Linux,或是x86, power pc 等软硬件上区别。

这台假想的机器,在不一样的真实机器上,能够经过不一样的软件模拟出来。被称为“虚拟机”

 

这样大费周折所换来的好处是:跨平台。

具体地说,能够把java产生的这种中间产品(字节码)拷贝到任何主流的操做系统上都能执行。

这就是java提出的口号,所谓:一次编写,处处运行。

你有可能会不服气,说c语言的源码不也能够处处拷贝并编译运行吗?

python的源码不也能够处处运行的吗?

这可不同,别人传播的是源码,java传播的是字节码。开发者通常不肯意自已的源码直接给用户的。

另外,java这样作也提升了代码的运行效率。由于编译器可使用各类优化技术,程序规模越大越有优点。

固然,比起c语言的完全编译,执行效率上还不如c,但由此得到的其它优点足以弥补此不足。

加上其它方面的改进,使得java从诞生后就一路走红,连续霸占TIOBE开发语言流行度的榜首。

因此,不管你学过什么语言,都应该至少了解java。

安装方法

能够从网上下载java语言的对应操做系统的安装包。

若是是windows系统,能够选择那种可执行文件自动安装的,也能够只下载zip包,解开就能够了。

全自动安装过程很简单,网上资料铺天盖地,这里就不重复介绍。

须要强调的是,它与直接解压的那种安装方法比,多作了两件事:

1. 为path环境变量增长了java虚拟机的位置信息。

2. 注册了一个java update程序,能时不时提示你更新java包。

若是你对windows注册表深恶痛绝,最好直接解压文件。抛开这些不算,java是“纯绿色软件”,它并不依赖注册表就能很好地干活。

java安装虽然容易,还有一件值得一提:

当下,咱们的机器大都是64位的处理器,java能够选32位的,也能够选64位的。

这个你要想清楚,由于有的软件对java虚拟机版本有要求。

好比,eclipse32位版本的就只认32位java虚拟机,不对就会报错。

实际上,咱们安装的java是两套产品:JDK和JRE

JRE是java运行时环境,有了它就能够执行不管谁给你的 *.class文件。这个是给java最终用户用的。

JDK是包含了编译器等在内的一套开发工具包,是给java开发者用的。

JDK中包含了JRE。

问: 安装了JDK还要再安装JRE吗?

答:不用,由于包含了。

问:能够安装多个版本的JDK吗?

答:能够。用的时候指明用哪一个。若是不指明,path中认定哪一个就是哪一个。

问:jdk的路径是应该加在path前边仍是后边?

答:均可以,系统能找到就行。但为了防止夜长梦多,仍是加在前边更靠谱些。

 小试牛刀

安装好了JDK,会用记事本,会用cmd。我们能够开发java了。

首先用记事本写一个纯文本文件,名字可叫 MyA.java

其中的内容以下:

1 public class MyA
2 {
3     public static void main(String[] args){
4         System.out.println("hello....java");
5     }
6 }

而后,在cmd窗口,输入命令:

 javac MyA.java

若是一切顺利,会没有任何返回的信息(没有坏消息,就是好消息!)

但此时,你的目录下已经多了一个文件: MyA.class

它就是那个著名的 字节码 文件了。

而后,固然是用虚拟机去运行它了: java MyA 就能够了。

假如没有产生那个class文件,那有多是java没有安装好或者path环境变量配置的问题。

 源码解读

第1行,定义了一个类,名字是MyA。

从形式上看,java程序就是由若干的类组成的。

在每一个文件中,能够定义多个类,但只有一个主类。

这里的MyA就是一个主类,由于它以public修饰。

在类中,能够定义数据和方法。

main是主类中的一个方法。调用它的人会传入一个字符串数组。

该方法没有返回值。

这个方法是静态方法,由于以static修饰。至于什么是静态方法,咱们能够在面向对象一节中再去了解。这里,能够先把它想象为相似c语言中的函数就行了。

System是系统定义的类,out是它的一个成员,println是该成员的方法。

println相似于c语言的printf,它的任务是在标准输出设备(默认就是屏幕)上输出信息。

Java程序老是从主类的main方法开始执行,也就是说,main方法会自动执行。

由于咱们在控制台执行MyA.class的时候,并无提供更多的参数,因此那个传入参数,就是args字符串数组是空的。而且咱们也没有在程序中使用它。

 怎样编辑纯文本

若是不知道其它的软件,用记事本就能够顺利完成上面的任务。

但记事本太过简陋,有的时候不能知足咱们的要求。

你可使用本身更喜欢的文本编辑器,好比,许多人用的:notepad++,editplus,ultraEdit,sublimeText 等。

但毫不能使用word,由于它是富文本编辑器,要复杂得多,产生的文本是有格式的。

若是设置得当,上面介绍的那些纯文本编辑器均可以对java代码进行着色。这样看起来会更舒服一些。

固然,编译和运行程序仍是要去cmd窗口中执行。除非你使用了额外的所谓“插件”,扩展了编辑器的功能。

若是你很不喜欢在cmd窗口中干活,或者你但愿有代码提示或称为代码自动补全功能,可使用更为专业的所谓IDE工具。

IDE是集成开发环境的意思,就是把源码的编辑,编译,运行,调试,打包,部署等诸多功能都集成到一个软件中。

固然这会比较庞大,比较复杂,掌握起来更有难度。

比较经常使用的IDE是 eclipse,myEclipse,IntelliJ IDEA,NetBeans 等,能够百度安装。

若是你是初学者,建议使用 JCreator,这个IDE十分小巧,轻便,很适合学习与实验的场合。

推荐使用Jcreator的2.0 版本,新的版本功能更多,bug也就更多,但并不是咱们关心的。

 常见错误

运行javac 的时候出现的错误属于编译错误,通常都是语法问题,容易解决。

好比,这个:

这是因为把String 误写为string 形成的,java像c语言同样是大小写敏感的。

再看这个:

这是因为在句子的结束位置没有分号形成的。

java也像c语言同样,每一个句子都要用分号结尾,若是忘了写分号,就会被认为是与下一行同一个句子了。

再看:

此次有分号啊,怎么还错呢?

这是由于用了中文的分号的缘故。

除非是用在字符串中,其它位置的符号都应该是西文符号。

这个呢?类名是Mya,文件名倒是MyA,这是不行的。

主类的名字必须与文件名彻底一致。

命名的约定

虽说,起个什么样的名字只是我的爱好问题,但遵照一些约定仍是必要的。

java编码约定:

1 类名的首字母要大写。换单词的时候还要再次大写。

好比:MyGoodClass 就是合格的类名。写成mygoodclass 从语法上说也不错,但不符合约定。

2 方法的名字首字母小写。换单词的时候大写。

好比:myFirstFunc,不要写成 my_first_func,或MyFirstFunc

在前边看到的短短的源码中,有许多类名,有些是咱们本身定义的,有些是系统定义的。

String, System是系统定义的类名, MyA 是咱们本身定义的类。

args是变量名,main,println 是方法名。

相关文章
相关标签/搜索