C语言诞生于1972年,可以称之为现代高级语言的鼻祖,有注明的贝尔实验室发明。C语言是人们追求结构化,模块化、高效率的“语言之花”。在底层编程,比如嵌入式、病毒开发等应用,可以替代汇编语言来开发系统程序。在高层应用,也可以开发从操作系统(Unix/Linux/Wondows都基于C语言开发)到各种软件应用。
老鸟建议:
大学生朋友如果大学开这门课请一定认真学习,而不要觉得老套,那是经典;C语言在现代社会流行程度仍然排名前三。
作为C语言的扩展,C++ 是贝尔实验室于80年代推出的。C++ 是一种混合语言,既可以实现面向对象编程,也可以开发C语言面向过程风格的程序。
C语言让程序员第一次可以通过结构化的理念编写出易于理解的复杂程序;尽管C语言是一个伟大的语言,但是程序员的代码量达到30000行以上时,程序员就不能很好的从总体上把握和控制这个程序。因此,在80年代初期,很多软件项目都面临无法解决的问题而不能顺利进行。1979 年,贝尔实验室发明了 C++。C++ 最初的名字叫做 “带类的C”,后来才改名叫 C++。国内通用的叫法:C加加,国际通用叫法 C plus plus
C++ 语言在科学计算、操作系统、网络通信、系统开发、引擎开发中仍然被大量使用。
由美国 SUN 公司发明于 1995年,是目前业界应用最广泛、使用人数最多的语言,连续多年排名世界第一,可以称之为 “计算机语言界的英语”。
Java 广泛应用于企业级软件开发、安卓移动开发、大数据云计算等领域,几乎涉及IT所有行业。关于Java 的发展历史和特性,将在后面专门介绍。
PHP原始为 Personal Home Page 的缩写,已经正式更名为 PHP:Hypertext Preprocessor 。PHP语言,一般用于 WEB 开发领域;大量的中小网站以及某些大型网站使用PHP开发。
Object-C 通常写作 Objective-C 或者 Obj-C 或者 OC,是根据C语言所衍生出来的语言,继承了C语言的特性,是扩充C的面向对象编程语言。OC主要用于苹果软件的开发。
Swift,苹果于2014年 WWDC (苹果开发者大会)发布的新开发语言,可与OC共同运行于 Mac OS 和 iOS平台,用于搭建基于苹果的应用程序。
JavaScript 是一种脚本语言,已经被广泛用于 Web 应用开发;应用范围越来越大,重要性越来越高。目前,流行的H5开发的核心其实就是 JavaScript 语言。
Python 发明于1989 年,语法结构简单,易学易懂;Python 具有丰富和强大的库。它常被昵称为胶水语言,能够把其他语言制作的各种模块(尤其是C/C++) 二婚轻松地联结在一起。Python 广泛应用于:图形处理、科学计算、web编程、多媒体应用、引擎开发;尤其是在未来大热方向机器学习和人工智能上有非常大的潜力。
C# 是微软公司发布的一种面向对象的、运行于.NET Framework 之上的高级程序设计语言。C# 在基于 windows 操作系统的应用开发这一领域在 取代C++,占据主导地位。“成也萧何败也萧何”,C# 的微软身份,也成为了发展的阻力,在其他IT领域应用较少。
世界上第一种高级语言,IBM 公司在1954年提出的,主要用在需要复杂数学计算的科学和工程领域。现在仍然被广泛使用,尤其是工程领域。Fortran 虽然适合编写科学计算方面的程序,但是不适于编写系统程序。
虽然易学,但功能不够强大,应用到大程序的有效性令人怀疑。已经逐步退出历史舞台。
于1959年提出。主要用于大量精确处理数据的商业领域中,比如金融、银行。今天,仍然有超过一半的商业软件使用 COBOL 编写。有将近100万人使用 COBOL 编程。
Pascal的名称是为了纪念十七世纪法国著名哲学家和数学家 Blaise Pascal 而来的 ,它由瑞士 Niklaus Wirth 教授于六十年代末设计并创立的。Pasical 语言语法严谨,层次分明,程序易写,可读性强,是第一个结构化编程语言。由于没有大厂商和政府的支持,只是限于大学教育这一块。
1991年,James Gosling 在SUN公司的工程师小组想要设计这样一种小型计算机语言。该语言只要用于像电视盒这样的消费类电子产品。另外,由于不同的厂商选择不同的CPU 和操作系统,因此,要求该语言不能和特定的体系结构绑在一起,要求语言本身是中立的,也就是跨平台的。所以,将这个语言命名为 “Green”,类似于绿色软件的意思。后来,改名为Oak,橡树的意思。改名后发现已经有一种语言叫这个名字了,再改名叫 Java。Java 语言发展到今天经历了一系列的过程:
1991年,SUN公司的Green 项目,Oak
1995年,推出Java测试版
1996年,JDK1.0
1997年,JDK1.1
1998年,JDK1.2,大大改进了早期版本缺陷,是一个革命性的版本,更名为Java2
2004年,J2SE 5.0(1.5.0)Tiger 老虎
2006年,J2SE 6.0(1.6.0)Mustang 斑马
2011年,JavaSE 7.0 Dolphin 海豚
2014年,JavaSE 8.0
跨平台是Java语言的核心优势,赶上最初互联网的发展,并随着互联网的发展而发展,建立了强大的生态体系,目前已经覆盖IT各行业的“第一大语言”,是计算机界 的 “英语”。
虽然,目前也有很多跨平台的语言,但是已经失去先机,无法和Java强大的生态体系抗衡。Java 仍将在未来几十年成为编程语言的主流语言。
Java 虚拟机是Java 实现跨平台的核心。事实上,基于Java 虚拟机(JVM)的编程语言还有很多种:
JavaSE (Java Standard Edition):标准版,定位在个人计算机上的应用。这个版本是Java 平台的核心,它提供了非常丰富的API 来开发一般个人计算机上的应用程序,包括用户界面接口AWT及Swing,网络功能和国际化、图像处理能力以及输入输出支持等。在上世纪90年代末互联网上大放异彩的 Applet 也属于这个版本。Applet 后来为Flash取代,Flash即将被HTML5取代。
JavaEE(Java Enterprise Edition):企业版,定位在服务器端的应用。
JavaEE 是JavaSE的扩展,增加了用于服务器 开发的类库。如:JDBC是让程序员能直接在Java 内使用的SQL的语法来访问数据库内的数据;Servlet 能够延伸服务器的功能,通过请求-响应的模式来处理客户端的请求;JSP是一种可以将Java程序代码内嵌在网页内的技术;
JavaME(Java Micro Edition):微型版,定位在消费性电子产品的应用上
JavaME是JavaSE的内伸,包含J2SE 的一部分核心类,也有自己的核心类,也有自己的扩展类,增加了适合微小装置的类库:javax.microedition.io.*等。该版本针对资源有限的电子消费类产品的需求精简核心类库,并提供了模块化的架构让不同类型产品能够随时增加支持的能力。
这是Java的核心优势。Java在设计时就很注重移植和跨平台性。比如:Java 的 int 永远都是 32位。不像C++ 可能是16,,3,可能是根据编译器厂商规定的变化。这样的话程序的移植就会非常麻烦。
Java适合网络/分布式环境,为了达到这个目标,在安全性方面投入了很大的精力,使Java可以很容易构建防病毒,防篡改的系统。
面向对象是一种程序设计技术,非常适合大型软件的设计和开发。由于C++为了照顾大量C语言使用者而兼容了C,使得自身仅仅成为了带类的C语言,多少影响了其面向对象的彻底性!Java则是完全的面向对象语言。
Java 是 C++ 语法的简化版,我们也可以将Java 称之为 “C+±”。就是指将C++的一些内容去掉;比如:头文件,指针运算,结构,联合,操作符重载,虚基类等等。同时,由于语法基于C语言,因袭学习起来完全不费力。
Java最初开发阶段,总是被人诟病“性能低”;客观上,高级语言运行效率总是低于低级语言的,这个无法避免。Java 语言本身发展中通过虚拟机的优化提升了几十倍运行效率。不如,通过JIT(Just In Time)即时编译技术提高运行效率。将一些“热点”字节码编译成本地机器码,并将结果缓存起来,在需要的时候重新调用。这样的话,使Java 程序的执行效率大大提高,某些代码甚至接近C++ 的效率。因此,Java低性能的短腿,已经被完全解决了。业界发展上,我们也看到很多 C++ 应用转到Java 开发,很多C++程序员转型为 Java 程序员。
Java是为 Internet 的分布式环境设计的,因为它能够处理TCP/IP协议。事实上,通过URL访问一个网络资源和访问本地文件是一样的简单的。Java 还支持远程方法调用(RMI,Remote Method Invocation),使程序能够通过网络调用方法。
多线程的使用可以带来更好的交互响应和实时行为。Java 多线程的简单性是Java 成为主流服务器端开发语言的主要原因之一。
Java 是一种健壮的语言,吸收了C/C++ 语言的优点,但去掉了其影响程序健壮性的部分(如:指针、内存的申请与释放等)。Java程序不可能造成计算机崩溃。即使Java程序也可能有错误。如果出现某种出乎意料之事,程序也不会崩溃,而是把该异常抛出,在通过异常处理机制加以处理。
计算机高级语言的类型主要有编译型和解释型两种,而Java 语言是两种类型的结合。
Java 首先利用文本编辑器编写 Java 源程序,源文件的后缀名为.java;再利用编译器(javac)将源程序编译成字节码文件,字节码文件的后缀为.class;最后利用虚拟机(解释器,java)解释及执行。
JVM(Java Virtual Machine)就是一个虚拟的用于执行bytecode字节码的“虚拟计算机”。他也定义了指令集、寄存器集、结构栈、垃圾收集堆、内存区域。JVM负责将Java字节码解释运行,边解释边运行,这样,速度就会受到一定的影响。
不同的操作系统有不同的虚拟机。Java 虚拟机机制屏蔽了底层运行平台的差别,实现了“一次编译,随处运行”。Java 虚拟机是实现跨平台的核心机制。
Java Runtime Environment(JRE)包含:Java虚拟机、库函数、运行Java应用程序所必须的文件。
Java Development Kit(JDK)包含:JRE,以及增加编译器和调试器等用于程序开发的文件。
老鸟建议:
下载地址 点击进入:
www.oracle.com/technetwork/java/javase/downloads/index.html
点击下载JDK,首先,点击 “Accept License Agreement” ,然后选择对应的版本,下载即可。
注意:如果你无法确定你的windows 版本,可以右键点击 “计算机属性”,即可查看系统信息:
菜鸟雷区
安装过程和普通软件安装没什么区别,霍城中会让你选择JDK和JRE安装目录,采用默认即可。也就是说,通通点击“下一步”就能完成安装。
出现如上画面代表,JDK安装成功。
我们再进入JDK的安装目录C:\Program Files\Java\jdk1.8.0_131,可以看到如下的结构:
其中:
环境变量是在操作系统中一个具有特定名字的对象,它包含了一个或者多个应用程序所将使用到的信息。
Path 是一个常见的环境变量,他告诉操作系统,当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下寻找此程序外,还应到哪些目录下寻找。
菜鸟雷区
注意:classpath 配置问题:如果使用 JDK1.5 以上就不需要配置这个环境变量!JRE会自动搜索当前路径下的类文件及相关jar文件。
进入命令行,开始菜单搜索输入 “cmd” 即可,在窗口中输入命令 “java -version”,回车。出现如下结果,则说明JDK安装成功。
【示例1-1】 使用记事本开发第一个Java 程序
public class Welcome{
public static void main(String[] args){
System.out.println("Hello Java!我是尚学堂学员,程许愿");
}
}
可在 d 盘下建立文件夹mycode,用于保存学习的代码。保存路径建议为:“d:/mycode”。保存为:Welcome.java (文件名必须为 Welcome,大小写也必须一致)。
打开命令行窗口,进入Java文件所在目录;执行命令:javac Welcome.java,生成class 文件。
执行:“java Welcome”(就是运行编译生成的Welcome.class 文件),输出执行 结果。
菜鸟雷区
出错原因: Path变量配置错误导致到没有找到 javac 命令
解决方案: 参考1.4.2 <环境变量Path 的配置>,细心重新设置Path,配置完成后需要重新输入 cmd 打开命令 行窗口。
出错原因: 可能是操作系统显示设置的问题,隐藏了文件的扩展名。
解决方案: 打来我的电脑窗口,选择【组织】【文件夹和搜索选项】【查看】,如图所示,去掉 “隐藏已知文件类型的扩展名” 复选框中的对勾,看到文件的实际名为 Welcome.java.txt,将后缀后 .txt 去掉。
出错原因: 找不到 main 方法,应该是 main 方法书写错误。
解决方案: 检查 public static void main(String [] args){} 是否有误。
老鸟建议:
DOS命令已经基本退出普通使用者的历史舞台了,但是仍然有必要掌握几个常用的命令,便于在某些情况下更顺畅的操作程序。
命令 | 说明 |
---|---|
cd 目录路径 | 进入一个目录 |
cd . . | 进入父目录 |
dir | 查看目录下的文件和子目录列表 |
cls | 清楚屏幕命令 |
上下键 | 查找敲过的命令 |
Tab 键 | 自动补齐命令 |
入门学习时,进行简单的Java程序编写,我们可以使用文本编辑器,比如:记事本。但是,记事本功能不够强大,我们可以考虑使用“更加强大的记事本”,常见的有如下三种软件:
在我们真正学习开发中,包括以后在企业总从事挼金开发时,一般使用集成开发环境(IDE),如下三种软件的做常见的,尤其是eclipse。我们只选一个作为入门使用,其他两种大家自行举一反三,使用很简单。
eclipse官方网址:http://www.eclipse.org
IntelliJ IDE官方网址: http://www.jetbrains.com/idea/
NetBeans 官方网址:https://netbeans.org/
在开发工具匮乏的年代,第一代Java 程序员都是从文本编辑器开始训练自己的代码,从而一步步成为高手,这是一种无奈,而不是一种必须。
我们认为,现在横在入门初学者最大的障碍在于 “是否能激发兴趣,解决问题,体验到编程的快乐”,而不是讨论是该用记事本还是eclipse集成开发环境。
是否使用或坚持记事本编程不是成为高手的必要条件,而“激发兴趣,保持兴趣”确是成为高手的必要条件。也基于我们的理念 “快速入门,快速实战”,我们一开始就引入 eclipse ,让初学者更容易的激发兴趣,体验学习的快乐。
下载地址:http://www.eclipse.org/downloads/eclipse-packages/
出现下载界面。选择Eclipse IDE for Java Developers,根据自己安装的JDK,决定是下载32位还是 64位。下载完成后,直接解压。进入目录,双击 eclipse.exe 即可使用。
启动时会先出现设置工作空间界面,如图所示。工作空间指Java项目存储的目录,一般代用默认工作空间目录即可。
关闭欢迎界面,即可进入开发主界面,如图所示。
在界面左侧的“Package Explorer” 视图中右键单击,在快捷菜单找那个依次选择 new——Java Project,开始新建Java 项目。如图所示。
输入项目名称 MyPro01,点击Finish 完成即可。如图所示。
新建项目完成,项目结构如图所示。其中 src 文件夹用于存源代码。显示JDK版本是 JavaSE-1.8
我们在上一节建好的Java 项目中,开始开发Java程序。首先,新建一个Java 类。在 src目录下右键单击,建立一个Java 类。如图所示。
出现新建类的开始界面,如图所示。我们只需要输入类名即可,其他不需要做任何设置:
点击 Finish 后,新建Java 类成功,出现如图所示。
在src下面出现了Welcome.java 文件。点击该文件后,出现该文件的代码变基,我们在开发 eclipse 下的第一个 Java 程序。
【示例1-2】使用eclipse 开发Java 程序
public class Welcome {
public static void main(String[] args) {
System.out.println("我是尚学堂的高淇!");
}
}
运行该程序:在代码上单击右键后,点击 Run as Java Application。如图所示。也可以使用快捷键 “Ctrl+F11”,直接实现运行。或者直接点击工具栏中的运行按钮。
至此,我们成功在eclipse 中开发完了我们的第一个Java 程序!
eclipse 会自动执行javac进行编译,并且会将编译错误直接给出提示,一目了然,非常便于我们调试。
src 用于存放源代码,bin用于存放生成的class 文件。
在eclipse 视图里我们只看到了src目录,eclipse隐藏了bin目录。进入我的电脑,打开Java 项目目录,我们可以看到src 和 bin目录: