Java 学习笔记:第一章 Java入门

1.1 计算机语言发展史以及未来方向

  • 计算机已经成为人电脑的延伸
  • 算法是计算机的灵魂,编程语言是塑造计算机灵魂的工具
  • 计算机语言经历了三代:第一代是机器语言,第二代是汇编语言,第三代是高级语言

1.2 常见编程语言介绍

C语言

C语言诞生于1972年,可以称之为现代高级语言的鼻祖,有注明的贝尔实验室发明。C语言是人们追求结构化,模块化、高效率的“语言之花”。在底层编程,比如嵌入式、病毒开发等应用,可以替代汇编语言来开发系统程序。在高层应用,也可以开发从操作系统(Unix/Linux/Wondows都基于C语言开发)到各种软件应用。

老鸟建议:

大学生朋友如果大学开这门课请一定认真学习,而不要觉得老套,那是经典;C语言在现代社会流行程度仍然排名前三。

C++ 语言

作为C语言的扩展,C++ 是贝尔实验室于80年代推出的。C++ 是一种混合语言,既可以实现面向对象编程,也可以开发C语言面向过程风格的程序。

C语言让程序员第一次可以通过结构化的理念编写出易于理解的复杂程序;尽管C语言是一个伟大的语言,但是程序员的代码量达到30000行以上时,程序员就不能很好的从总体上把握和控制这个程序。因此,在80年代初期,很多软件项目都面临无法解决的问题而不能顺利进行。1979 年,贝尔实验室发明了 C++。C++ 最初的名字叫做 “带类的C”,后来才改名叫 C++。国内通用的叫法:C加加,国际通用叫法 C plus plus

C++ 语言在科学计算、操作系统、网络通信、系统开发、引擎开发中仍然被大量使用。

Java语言

由美国 SUN 公司发明于 1995年,是目前业界应用最广泛、使用人数最多的语言,连续多年排名世界第一,可以称之为 “计算机语言界的英语”。

Java 广泛应用于企业级软件开发、安卓移动开发、大数据云计算等领域,几乎涉及IT所有行业。关于Java 的发展历史和特性,将在后面专门介绍。

PHP 语言

PHP原始为 Personal Home Page 的缩写,已经正式更名为 PHP:Hypertext Preprocessor 。PHP语言,一般用于 WEB 开发领域;大量的中小网站以及某些大型网站使用PHP开发。

Object-C和Swift 语言

Object-C 通常写作 Objective-C 或者 Obj-C 或者 OC,是根据C语言所衍生出来的语言,继承了C语言的特性,是扩充C的面向对象编程语言。OC主要用于苹果软件的开发。

Swift,苹果于2014年 WWDC (苹果开发者大会)发布的新开发语言,可与OC共同运行于 Mac OS 和 iOS平台,用于搭建基于苹果的应用程序。

JavaScript

JavaScript 是一种脚本语言,已经被广泛用于 Web 应用开发;应用范围越来越大,重要性越来越高。目前,流行的H5开发的核心其实就是 JavaScript 语言。

Python

Python 发明于1989 年,语法结构简单,易学易懂;Python 具有丰富和强大的库。它常被昵称为胶水语言,能够把其他语言制作的各种模块(尤其是C/C++) 二婚轻松地联结在一起。Python 广泛应用于:图形处理、科学计算、web编程、多媒体应用、引擎开发;尤其是在未来大热方向机器学习和人工智能上有非常大的潜力。

C# 语言

C# 是微软公司发布的一种面向对象的、运行于.NET Framework 之上的高级程序设计语言。C# 在基于 windows 操作系统的应用开发这一领域在 取代C++,占据主导地位。“成也萧何败也萧何”,C# 的微软身份,也成为了发展的阻力,在其他IT领域应用较少。

Fortran 语言

世界上第一种高级语言,IBM 公司在1954年提出的,主要用在需要复杂数学计算的科学和工程领域。现在仍然被广泛使用,尤其是工程领域。Fortran 虽然适合编写科学计算方面的程序,但是不适于编写系统程序。

Basic语言

虽然易学,但功能不够强大,应用到大程序的有效性令人怀疑。已经逐步退出历史舞台。

COBOL语言

于1959年提出。主要用于大量精确处理数据的商业领域中,比如金融、银行。今天,仍然有超过一半的商业软件使用 COBOL 编写。有将近100万人使用 COBOL 编程。

Pascal语言

Pascal的名称是为了纪念十七世纪法国著名哲学家和数学家 Blaise Pascal 而来的 ,它由瑞士 Niklaus Wirth 教授于六十年代末设计并创立的。Pasical 语言语法严谨,层次分明,程序易写,可读性强,是第一个结构化编程语言。由于没有大厂商和政府的支持,只是限于大学教育这一块。

1.3.1 Java 发展简史

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

1.3.2 Java的核心优势

跨平台是Java语言的核心优势,赶上最初互联网的发展,并随着互联网的发展而发展,建立了强大的生态体系,目前已经覆盖IT各行业的“第一大语言”,是计算机界 的 “英语”。

虽然,目前也有很多跨平台的语言,但是已经失去先机,无法和Java强大的生态体系抗衡。Java 仍将在未来几十年成为编程语言的主流语言。

Java 虚拟机是Java 实现跨平台的核心。事实上,基于Java 虚拟机(JVM)的编程语言还有很多种:

在这里插入图片描述

1.3.3 Java 各版本的含义

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.*等。该版本针对资源有限的电子消费类产品的需求精简核心类库,并提供了模块化的架构让不同类型产品能够随时增加支持的能力。

在这里插入图片描述
雷区:

  1. 很多人开始会误解为安卓开发就是JavaME,这两个是完全不同的内容。

1.3.4 Java 的特性和优势

  • 跨平台/可移植性

这是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程序也可能有错误。如果出现某种出乎意料之事,程序也不会崩溃,而是把该异常抛出,在通过异常处理机制加以处理。

1.3.5 Java应用程序的运行机制

计算机高级语言的类型主要有编译型和解释型两种,而Java 语言是两种类型的结合。

Java 首先利用文本编辑器编写 Java 源程序,源文件的后缀名为.java;再利用编译器(javac)将源程序编译成字节码文件,字节码文件的后缀为.class;最后利用虚拟机(解释器,java)解释及执行。

在这里插入图片描述

1.3.6 JVM、JRE 和JDK

JVM(Java Virtual Machine)就是一个虚拟的用于执行bytecode字节码的“虚拟计算机”。他也定义了指令集、寄存器集、结构栈、垃圾收集堆、内存区域。JVM负责将Java字节码解释运行,边解释边运行,这样,速度就会受到一定的影响。

不同的操作系统有不同的虚拟机。Java 虚拟机机制屏蔽了底层运行平台的差别,实现了“一次编译,随处运行”。Java 虚拟机是实现跨平台的核心机制。

在这里插入图片描述

Java Runtime Environment(JRE)包含:Java虚拟机、库函数、运行Java应用程序所必须的文件。

Java Development Kit(JDK)包含:JRE,以及增加编译器和调试器等用于程序开发的文件。

JDK、JRE 和 JVM 的关系:
在这里插入图片描述

老鸟建议:

  • 如果只是要运行Java程序,只需要JRE就可以。JRE通常非常小,其中包含了JVM。
  • 如果要开发Java程序,就需要安装JDK

1.4.1 JDK 下载和安装

下载JDK

下载地址 点击进入:

www.oracle.com/technetwork/java/javase/downloads/index.html

在这里插入图片描述

点击下载JDK,首先,点击 “Accept License Agreement” ,然后选择对应的版本,下载即可。

在这里插入图片描述

注意:如果你无法确定你的windows 版本,可以右键点击 “计算机属性”,即可查看系统信息:

在这里插入图片描述

菜鸟雷区

  1. 32位操作系统只能安装32位 JDK;
  2. 64位操作系统可以安装32位JDK,也可以安装64位JDK。

安装JDK

安装过程和普通软件安装没什么区别,霍城中会让你选择JDK和JRE安装目录,采用默认即可。也就是说,通通点击“下一步”就能完成安装。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

出现如上画面代表,JDK安装成功。

我们再进入JDK的安装目录C:\Program Files\Java\jdk1.8.0_131,可以看到如下的结构:

其中:

  • bin目录是存储一些可执行的二进制文件;
  • lib存储相关jar包;
  • src.zip 是 JDK相关 JAVA类的源代码。

在这里插入图片描述

1.4.2 环境变量 Path 的配置

环境变量是在操作系统中一个具有特定名字的对象,它包含了一个或者多个应用程序所将使用到的信息。

Path 是一个常见的环境变量,他告诉操作系统,当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下寻找此程序外,还应到哪些目录下寻找。

设置Path 环境变量的步骤

  1. 右键计算机——属性——高级系统设置,
    在这里插入图片描述
  2. 单击环境变量按钮,进入环境变量操作界面:

在这里插入图片描述

  1. 单击新建按钮,新建JAVA_HOME变量(用于说明JDK的安装目录)如图所示:

在这里插入图片描述

  1. 修改系统环境变量Path,在最前面追加 %JAVA_HOME%\bin 并以; 和原路径分隔。在增加 :“.;”。这是表示当前目录的意思。

在这里插入图片描述

菜鸟雷区

  1. 此处一定是英文分号而不是中文分号!大家以后设置相关配置时也要注意中英文符号的区别。

注意:classpath 配置问题:如果使用 JDK1.5 以上就不需要配置这个环境变量!JRE会自动搜索当前路径下的类文件及相关jar文件。

1.4.3 测试JDK 安装成功

进入命令行,开始菜单搜索输入 “cmd” 即可,在窗口中输入命令 “java -version”,回车。出现如下结果,则说明JDK安装成功。
在这里插入图片描述

1.5.1 开发第一个Java程序

使用记事本,编写代码

【示例1-1】 使用记事本开发第一个Java 程序

public  class  Welcome{
    public static void main(String[] args){
        System.out.println("Hello Java!我是尚学堂学员,程许愿");
    }
}

可在 d 盘下建立文件夹mycode,用于保存学习的代码。保存路径建议为:“d:/mycode”。保存为:Welcome.java (文件名必须为 Welcome,大小写也必须一致)。

在这里插入图片描述
菜鸟雷区

  1. 代码中的引号、分号必须为英文引号和分号,不能是中文全角的引号和分号
  2. 注意大小写

编译(编译器创建 class 字节码文件)

打开命令行窗口,进入Java文件所在目录;执行命令:javac Welcome.java,生成class 文件。

在这里插入图片描述

解释并运行阶段

执行:“java Welcome”(就是运行编译生成的Welcome.class 文件),输出执行 结果。

在这里插入图片描述

菜鸟雷区

  1. 修改完 java 源文件,一定要重新编译才能生效;

1.5.2 第一个程序常见错误

  • 常见问题-1:提示“javac不是内部或外部命令…”

在这里插入图片描述

出错原因: Path变量配置错误导致到没有找到 javac 命令
解决方案: 参考1.4.2 <环境变量Path 的配置>,细心重新设置Path,配置完成后需要重新输入 cmd 打开命令 行窗口。

  • 常见问题-2: 文件夹中可以看到 Welcome.java 文件,在编译时出现 ‘javac 找不到文件…’

在这里插入图片描述
出错原因: 可能是操作系统显示设置的问题,隐藏了文件的扩展名。
解决方案: 打来我的电脑窗口,选择【组织】【文件夹和搜索选项】【查看】,如图所示,去掉 “隐藏已知文件类型的扩展名” 复选框中的对勾,看到文件的实际名为 Welcome.java.txt,将后缀后 .txt 去掉。
在这里插入图片描述

  • 常见问题-3:NoSuchMethodError:main

出错原因: 找不到 main 方法,应该是 main 方法书写错误。
解决方案: 检查 public static void main(String [] args){} 是否有误。

1.5.3 第一个文件Java程序的总结和提升

  1. Java 对大小写敏感,如果出现了大小写拼写错误,程序无法运行。
  2. 关键字 public 被称作访问修饰符(access modifier),用于控制程序的其它部分对这段代码的访问级别。
  3. 关键字class 的意思是类。Java 是面向对象的语言,所有代码必须位于类里面。
  4. 一个源文件中至多只能声明一个public 的类,其它类的个数不限,如果源文件中包含一个public类,源文件必须和其中定义的public 的类名相同,且以“.java” 为扩展名。
  5. 一个源文件可以包含多个类class。
  6. 正确编译后的源文件,会得到相应的字节码文件,编译器为每个类生成独立的字节码文件,且将字节码文件自动命名为类的名字且“.class”为扩展名。
  7. main 方法是Java 应用程序的入口方法,它有固定的书写格式: public static void main(String[] args){…}
  8. 在 Java 中,用花括号划分程序的各个部分,任何方法的代码都必须以 “{” 开始,以“}” 结束,由于编译器忽略空格,所以花括号风格不受限制。
  9. Java 中每个语句必须以分号结束,回车不是语句的结束标志,所以一个语句可以跨多行。

老鸟建议:

  • 编程时,一定要注意缩进规范;
  • 在写括号、引号时,一定是成对编写,然后再往里插入内容。

1.5.4 最常用的DOS命令

DOS命令已经基本退出普通使用者的历史舞台了,但是仍然有必要掌握几个常用的命令,便于在某些情况下更顺畅的操作程序。

命令 说明
cd 目录路径 进入一个目录
cd . . 进入父目录
dir 查看目录下的文件和子目录列表
cls 清楚屏幕命令
上下键 查找敲过的命令
Tab 键 自动补齐命令

1.6 常用Java开发工具

入门学习时,进行简单的Java程序编写,我们可以使用文本编辑器,比如:记事本。但是,记事本功能不够强大,我们可以考虑使用“更加强大的记事本”,常见的有如下三种软件:

  1. Notepad++
  2. UltraEdit
  3. EditPlus

在我们真正学习开发中,包括以后在企业总从事挼金开发时,一般使用集成开发环境(IDE),如下三种软件的做常见的,尤其是eclipse。我们只选一个作为入门使用,其他两种大家自行举一反三,使用很简单。

eclipse官方网址:http://www.eclipse.org

IntelliJ IDE官方网址: http://www.jetbrains.com/idea/

NetBeans 官方网址:https://netbeans.org/

1.7 eclipse 使用10分钟入门

在开发工具匮乏的年代,第一代Java 程序员都是从文本编辑器开始训练自己的代码,从而一步步成为高手,这是一种无奈,而不是一种必须。

我们认为,现在横在入门初学者最大的障碍在于 “是否能激发兴趣,解决问题,体验到编程的快乐”,而不是讨论是该用记事本还是eclipse集成开发环境。

是否使用或坚持记事本编程不是成为高手的必要条件,而“激发兴趣,保持兴趣”确是成为高手的必要条件。也基于我们的理念 “快速入门,快速实战”,我们一开始就引入 eclipse ,让初学者更容易的激发兴趣,体验学习的快乐。

1.7.1 下载和安装 eclipse

下载地址:http://www.eclipse.org/downloads/eclipse-packages/

出现下载界面。选择Eclipse IDE for Java Developers,根据自己安装的JDK,决定是下载32位还是 64位。下载完成后,直接解压。进入目录,双击 eclipse.exe 即可使用。

在这里插入图片描述

启动时会先出现设置工作空间界面,如图所示。工作空间指Java项目存储的目录,一般代用默认工作空间目录即可。

在这里插入图片描述
点击OK后,会进入欢迎界面,如图所示。

在这里插入图片描述

关闭欢迎界面,即可进入开发主界面,如图所示。

在这里插入图片描述

1.7.2 在eclipse 中创建Java项目

在界面左侧的“Package Explorer” 视图中右键单击,在快捷菜单找那个依次选择 new——Java Project,开始新建Java 项目。如图所示。

在这里插入图片描述

输入项目名称 MyPro01,点击Finish 完成即可。如图所示。

在这里插入图片描述
新建项目完成,项目结构如图所示。其中 src 文件夹用于存源代码。显示JDK版本是 JavaSE-1.8
在这里插入图片描述

1.7.3 使用eclipse开发和运行Java程序

使用 eclipse 开发第一个程序

我们在上一节建好的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”,直接实现运行。或者直接点击工具栏中的运行按钮。

在这里插入图片描述
界面下方的控制台(console)出现运行结果,如图所示。

在这里插入图片描述
至此,我们成功在eclipse 中开发完了我们的第一个Java 程序!

eclipse 自动编译

eclipse 会自动执行javac进行编译,并且会将编译错误直接给出提示,一目了然,非常便于我们调试。

在这里插入图片描述

Java项目的src目录和bin目录

src 用于存放源代码,bin用于存放生成的class 文件。
在eclipse 视图里我们只看到了src目录,eclipse隐藏了bin目录。进入我的电脑,打开Java 项目目录,我们可以看到src 和 bin目录:
在这里插入图片描述

第一章 总结

  1. 所有的编程语言的最终母的都是提供一种“抽象”方法。抽象的层次越高,越接近人的思维。越接近人的思维,越容易使用。
  2. 越高级的语言越容易学习;当然,这只意味着容易入门;不意味着成为高手越容易,高手仍然需要修炼。
  3. Java 的核心优势:跨平台。跨平台是靠 JVM(虚拟机)实现的。
  4. Java各版本的含义:
    JavaSE(Java Standard Edition)标准版,定位在个人计算机的应用
    JavaEE(Java Enterprise Edition)企业版,定位在服务器端的应用
    HavaME(Java Micro Edition)微型版,定位在消费电子产品的应用
  5. Java 程序在开发运行过程为:编写代码、编译、解释执行。
  6. JDK用于开发Java程序,JRE是Java运行环境;JVM是JRE的子集,JRE是JDK的子集。
  7. JDK配置,需要新建JAVA_HOME环境变量;需要修改Path环境变量。
  8. Java是面向对象的语言,所有代码必须位于类里面。main 方法是Java 应用程序的入口方法。
  9. 常见的Java集成开发环境有三个:eclipse、IntelliJ IDE、NetBeans。

猜你喜欢

转载自blog.csdn.net/weixin_44626569/article/details/88823703
今日推荐