【JAVA基础速过】第 1 章 Java 语言概述

15 篇文章 0 订阅

文章目录

1.0 Java的简单介绍

Java 基础是学习 JavaEE 、大数据、 Android 开发 的基石!

举例:Spring – Rest(Spring MVC) 核心代码:

img

举例: Spark Spark Streaming

img

img

Java 基础知识图解

img

Java 基础课程 概述

img

Java 基础课程体系

img

1.1 软件开发介绍

  • 软件开发

软件,即一系列按照特定顺序组织的计算机数据 和指令的集合。有系统软 件应用软件之分。

  • 人机交互方式

图形化界面 Graphical User Interface GUI) 这种 方式 简单直观,使用 者易于接受,容易上手操作。

命令行方式 Command Line Interface CLI) 需要有 一个控制台,输 入特定的指令,让 计算机 完成一些 操作。较为麻烦,需要记录住一些 命令。

Pascal 之父 Nicklaus Wirth Algorithms+Data Structures=Programs”

常用的DOS命令
dir 列出当前目录下的文件以及文件夹
md 创建目录
rd 删除目录
cd 进入指定目录
cd .. : 退回到上一级目录
cd 退回到根目录
del 删除文件
exit : 退出 dos 命令行
	补充: echo javase>1.doc
常用快捷键
常用快捷键
←←→→:移动光标
↑↑↓↓:调阅历史操作命令
Delete 和 Backspace :删除字符

imgimg

1.2 计算机编程语言介绍

1. 什么是计算机语言
  • **语言:**是人与人之间用于沟通的一种方式。例如:中国人与中国人用普通话沟通。而 中国人要和英国人交流,就要学习英语。
  • **计算机语言:**人与计算机交流的方式。

如果人要与计算机交流,那么就要学习计算机语言。

计算机语言有 很多种 。 如: C ,C++ C++,Java ,PHP Kotlin Python Scala 等 。

  • **第一代语言 :机器语言。**指令以二进制代码形式存在。
  • **第二代语言 :汇编语言。**使用助记符表示一条机器指令。

img

  • 第三代语言:高级语言

  • C 、 Pascal 、 Fortran 面向过程的语言

  • C++ 面向过程 面向对象

  • Java 跨平台的纯面向对象 的语言

  • .NET 跨语言的 平台

  • Python 、 Scala…

img

2.为什么选Java
理由一:如Google的Android系统结构
  • java开发效率更高(面向对象)

  • python开发周期短,但运行时间长,两者取其利处

  • 社区大,人员多

  • 如下图

img

理由二:从 java 语言的市场需求来看

img

查询网站:https://www.tiobe.com/tiobe index/

img

1.3 Java 语言概述

1.基本概念
  • SUN( S tanford U niversity N etwork ,斯坦福大学网络公司 ) 1995 年推出的一 门高级 编程语言。

  • 是 一种面向 Internet 的 编程语言 。 Java 一开始富有吸引力是因为 Java 程序可以 在 Web 浏览器中运行。 这些 Java 程序被 称为 Java 小程序( applet )。 applet 使 用现代的图形用户界面与 Web 用户进行交互。 applet 内嵌在 HTML 代码中。

  • 随着 Java 技术在 web 方面的不断成熟,已经成为 Web 应用程序的首选开发语言。

  • 后台开发: Java 、 PHP 、 Python 、 Go 、 Node.js

2.Java 简史
  • 1991 年 Green 项目,开发语言最初命名为 Oak ( 橡树 

  • 1994 年,开发组意识到 Oak 非常适合于互联网

  • 1996 年,发布 JDK 1 0 ,约 8.3 万个网页应用 Java 技术来制作

  • 1997 年,发布 JDK 1.1 JavaOne 会议召开,创当时全球同类会议规模之最

  • 1998 年,发布 JDK 1. 2 ,同年发布企业平台 J2EE

  • 1999 年 Java 分成 J2SE 、 J2EE 和 J2ME JSP/Servlet 技术诞生

  • 2004 年, 发布里程碑式版本: JDK 1.5 为突出此 版本的重要性,更名为 JDK 5.0

  • 2005 年 J2SE --> JavaSE J2EE --> JavaEE J2ME --> JavaME

  • 2009 年, Oracle 公司收购 SUN ,交易价格 74 亿美元

  • 2011 年,发布 JDK 7.0

  • 2014 年,发布 JDK 8.0 ,是继 JDK 5.0 以来变化最大的版本

  • 2017 年,发布 JDK 9.0 ,最大限度实现模块化

  • 2018 年 3 月, 发布 JDK 10.0 ,版本号也称为 18.3

  • 2018 年 9 月,发布 JDK 11.0 ,版本号也称为 18.9

img

3.Java 技术体系平台
img
4.Java 在各领域的应用

从 Java 的应用领域来分, Java 语言的应用方向主要表现在以下几个方面:

  • 企业级应用 :主要指复杂的大企业的软件系统、各种类型的网站。 Java 的安全机制以及 它的跨平台的优势,使它在分布式系统领域开发中有广泛应用。应用领域包括金融、电 信、交通、电子商务等。

  • Android 平台应用 Android 应用程序使用 Java 语言编写。 Android 开发水平的高低 很大程度上取决于 Java 语言核心能力是否 扎实 。

  • 大数据平台开发 :各类框架有 Hadoop spark storm flink 等,就这类技术生态圈来讲,还有各种中间件如 flume kafka sqoop 等等 ,这些框架以及工具大多数 是用 Java 编写而成,但提供诸如 Java scala Python R 等各种语言 API 供编程。

  • 移动领域应用:主要表现在消费和嵌入式领域, 是 指在 各种小型设备上的应用,包括手 机、 PDA 、机顶盒、汽车通信设备等。

5.Java 语言的诞生

java 之 父 James Gosling 团队在开发 ” 项目时,发现 C 缺少垃圾回收系统,还有可移植的安 全性、 分布 程序设计和 多线程功能。最后,他们想要一种易于移植到各种设备上的平台。

Java 确实是从 C 语言和 C++ 语言继承了许多成份,甚至可以将 Java 看 成是 类 C 语言 发展和衍生的产物。比如 Java 语言的变量声明,操作符 形式,参数传递,流程控制等方面和 C 语言、 C++ 语言完全相同。但同 时, Java 是一个 纯粹的面向对象 的程序设计语言,它 继承 了 C 语言 面向对象技术的核心。 Java 舍弃了 C 语言中容易引起错误的指针 (以 引用取代)、运算符重载( operator overloading )、多重继承 (以接口取代)等特性 增加了垃圾回收器功能 用于回收不再被引用 的对象所占据的内存空间。 JDK1.5 又引入了泛型编程( Generic Programming )、类型安全的枚举、不定长参数和自动装拆箱.

6.主要特性
  • Java 语言是易学的 。 Java 语言的语法与 C 语言和 C++ 语言很接近,使得大多数程序员 很容易学习和使用 Java 。

  • Java 语言是强制面向对象的 。 Java 语言提供类、接口和继承等原语,为了简单起见, 只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制 (关键字为 implements )。

  • Java 语言是分布式的 。 Java 语言支持 Internet 应用的开发,在基本的 Java 应用编 程接口中有一个网络应用编程接口( java net ),它提供了用于网络应用编程的类 库,包括 URL 、 URLConnection 、 Socket 、 ServerSocket 等。 Java 的 RMI (远程方法激活)机制也是开发分布式应用的重要手段。

  • Java 语言是健壮的。 Java 的强类型机制、异常处理、垃圾的自动收集等是 Java 程序 健壮性的重要保证。对指针的丢弃是 Java 的明智选择。

  • Java 语言是安全的。 Java 通常被用在网络环境中,为此, Java 提供了一个安全机 制以防恶意代码的攻击。如:安全防范机制(类 ClassLoader ),如分配不同的 名字空间以防替代本地的同名类、字节代码检查。

  • Java 语言是体系结构中立的。 Java 程序(后缀为 java 的文件)在 Java 平台上被 编译为体系结构中立的字节码格式(后缀为 class 的文件),然后可以在实现这个 Java 平台的任何系统中运行。

  • Java 语言是解释型的。 如前所述, Java 程序在 Java 平台上被编译为字节码格式, 然后可以在实现这个 Java 平台的任何系统的解释器中运行。

  • Java 是性能略高的。 与那些解释型的高级脚本语言相比, Java 的性能还是较优的。

  • Java 语言是原生支持多线程的。 在 Java 语言中,线程是一种特殊的对象,它必须 由 Thread 类或其子(孙)类来创建。

1.4 运行机制及运行过程

1.Java 语言的特点

特点一: 面向对象
  • 两个基本概念:类、对象
  • 三大特性:封装、继承、多态
特点二: 健壮性
  • 吸收了 C/C++ 语言的优点,但去掉了其影响程序健壮性的部分(如指针、内存的申请与 释放等),提供了一个相对安全的内存管理和访问机制
特点三: 跨平台性
  • 跨平台性:通过 Java 语言编写的应用程序在不同的系统平台上都可以运行。 Write once , Run Anywhere
  • 原理:只要在需要运行 java 应用程序的操作系统上,先安装一个 Java 虚拟机 (JVM Java Virtual Machine) 即可。由 JVM 来负责 Java 程序在该系统中的运行。

img

因为有了 JVM ,同一个 Java 程序在三个不同的操作系统中都可以执行。这 样就实现了 Java 程序的跨平台性。

2.Java 两种核心机制

  • Java 虚拟机 (Java Virtal Machine
  • 垃圾收集机制 (Garbage Collection

img

核心机制 垃圾回收
  • 不再使用的内存空间应回收 垃圾回收。

  • 在 C/C++ 等语言中,由程序员负责回收无用内存。

  • Java 语言消除了程序员回收无用内存空间的责任:它提供一种系统级线程跟踪存储空 间的分配情况。并在 JVM 空闲时,检查并释放那些可被释放的存储空间。

  • 垃圾回收在 Java 程序运行过程中自动进行,程序员无法 精确控制 和 干预。

  • Java 程序还会出现内存泄漏和内存溢出问题吗? Yes!

1.5 Java 的环境搭建

img

下载 JDK

安装 JDK

配置环境变量

path:windows 系统执行命令时要搜寻的路径。

验证 是否成功: javac java

选择合适的文本编辑器或 IDE 开发

1.明确什么是 JDK, JRE

img

  • 简单而言,使用 JDK 的开发工具完成的 java 程序,交给 JRE 去运行。
2.JDK 、 JRE 、 JVM关系(重点)

img

img

3.下载并安装 JDK

官方网址:

  • www.oracle.com
  • java.sun.com

安装 JDK

  • 傻瓜式安装,下一步即可。

  • 建议:安装路径不要有 中文或者空格等特殊符号。

  • 如果操作系统是 64 位的,软件尽量选择支持 64 位的(除非软件本身不区分 。

  • 当 提示安装 JRE 时,正常在 JDK 安装时已经装过了,但是为了后续使用 Eclipse 等开发 工具不报错,建议也根据提示安装 JRE 。

介绍jdk包内的各个文件内容

P31 1:48

4.配置环境变量 path
  • 在 dos 命令行中敲入 javac ,出现错误提示

img

  • **错误原因:**当前执行的程序在当前目录下如果不存在, windows 系统会在系

统中已有的一个名为 path 的环境变量指定的目录中查找。如果仍未找到,会

出现以上的错误提示。所以进入到 jdk 安装路径 bin 目录下,执行 javac ,会

看到 javac 参数提示信息。为了能在所有文件执行成功,需要配置环节变量。

img

  • 额外:查看JDK版本

img

每次执行 java 的工具都要进入到 bin 目录下,是非常麻烦的。可不可以在任何目 录下都可以执行 java 的工具呢?

  • 根据 windows 系统在查找可执行程序的原理,可以将 java 工具所在路径定义到 path 环境变量中,让系统帮我们去找运行执行的程序。

  • 配置方法:

  • 我的电脑 属性 高级系统设置 环境变量

  • 编辑 path 环境变量,在变量值开始处加上 java 工具所在目录,后面用 ““; 和其他值分隔 开即可。

  • 打开 DOS 命令行,任意目录下敲入 javac 。如果出现 javac 的参数信息,配置成功。

  • 注: 具体操作流程, 参看 JDK8 下载 安装 配置 .doc

img

5.配置完 path 环境变量以后的验证

img

6.配置问题汇总解决
  • 允许配置多个JDK版本,但是用的时候就一个

  • 如果java或javac不能同时完成,则把JAVA_HOME放在最前面

  • 如果用户变量不好使就直接放在环境变量

1.6 开发体验 HelloWorld

步骤:

\1. 将 Java 代码 编写 到扩展名为 .java 的文件中。

\2. 通过 javac 命令对该 java 文件进行 编译 。

\3. 通过 java 命令对生成的 class 文件进行 运行 。

img

步骤一:编写
  • 选择最简单的编辑器:记 事本。
  • 敲入代码 class Test{ } 将文件保存成 Test.java ,这个 文件是存放 java 代码的文件, 称为源文件。

img

步骤二 :编译

img

  • 有了 java 源文件,通过编译器将其编译成 JVM 可以识别的字节码文件。

  • 在该源文件目录下,通过 javac 编译工具对 Test.java 文件进行编译。

  • 如果程序没有错误,没有任何提示,但在当前目录下会出现一个 Test.class 文 件,该文件称为字节码文件,也是可以执行的 java 的程序。

步骤三:运行
  • 有了可执行的 java 程序 Test.class 字节码文件

  • 通过运行工具 java.exe 对字节码文件进行执行。

  • 出现提示:缺少一个名称为 main 的方法。

img

  • 因为一个程序的执行需要一个起始点或者入口,所以在 Test 类中的加入 public static void main(String[] args

  • 对修改后的 Test.java 源文件需要重新编译,生成新的 class 文件后,再进行执行。

  • 发现没有编译失败,但也没有任何效果,因为并没有告诉 JVM 要帮我们做什么事情,也就是 没有可以具体执行的语句。

  • 想要和 JVM 来个互动,只要在 main 方法中 加入 一句 System.out.println (“Hello 因为程 序进行改动,所以再重新编译,运行即可。

1.7 常见问题及解决方法

img

  • 源文件名不存在或者 写 错

  • 当前 路径 错误

  • 后缀 名隐藏问题

img

  • 类文件名 写 错,尤其文件名与类名不一致时,要小心
  • 类 文件不在当前路径下,或者不在 classpath 指定 路径 下

img

  • 声明为 public 的类 应与文件名一致,否知编译失败

img

  • 编译失败,注意错误出现的行数,再到源代码中指定位置改错
总结:

学习编程最容易犯的错是 语法错误 。 Java 要求你必须按照语法规则编写代码。 如果你的程序违反了语法规则,例如:忘记了分号、大括号、引号,或者拼 错了单词, java 编译器都会报语法错误。 尝试着去看懂编译器会报告的错误 信息。

1.8 注释

1.注释的必要性
  •  用于注解说明解释程序的文字就是注释。
  • Java 中的注释类型:

单行注释

多 行注释

文档注释 (java 特有

  • 提高了 代码的 阅读性;调试程序的重要方法 。

  • 注释 是一个程序员必须要具有的良好编程习惯。

  • 将自己的思想通过注释先整理出来,再用代码去体现

2.单行注释

格式: //注释文字

3.多行注释

格式: :/* 注释文字 */

注:

  • 对于单行和多行注释,被注释的文字,不会被 JVM java 虚拟机)解释执行。
  • 多行注释里面不允许有多行注释嵌套。

img

4.文档注释 (Java 特有)
  • 格式:

@ author 指定 java 程序的作者

@ version 指定源文件的版本

  • 注释内容可以被 JDK 提供的工具 javadoc 所解析,生成一套以网页文件形 式体现的该程序的说明文档。
  • 操作方式

img

img

小结 第一个程序

  • Java 源文件以“ java ”为扩展名。源文件的基本组成部分是类 class 如 本 例 中 的 Hello World 类。

  • Java 应用程序的执行入口是 main() 方法。它有固定的书写 格式public static void main(String[] args )

  • Java 语言严格区分大小写。但window没有区分

  • Java 方法由一条条语句构成,每个语句以 “;”结束。

  • 大括号 都是成对出现的, 缺一不可。

  • 一个源文件中最多只能有一个 public 类。其它类的个数不限,如果源文件包含 一个 public 类,则文件名必须按该类名命名。

对第一个java程序进行总结
1.java程序编写-编译-运行的过程
编写:我们将编写的java代码保存在以“.java”结尾的源文件中I
编译:使用javac.exe命令编译我们的java源文件。格式:javac
运行:使用java。exe命令解释运行我们的字节码文件。格式:java类名

2.在一个java源文件中可以声明多个class。
但是,只能最多有一个类声明为public的。
而且要求声明为public的类的类名必须与源文件名相同。

3.程序的入口是main()方法。格式是固定的。

4.输出语句:
System.out.print1n():先输出数据,然后换行
System.out.print():只输出数据

5.Java 方法由一条条语句构成,每个语句以 “;”结束。
6.编译的过程:编译以后,会生成一个或多个字节码文件。字节码文件的文件名与java源文件的类名相同

1.9 API文档

  • API (Application Programming Interface, 应用程序编程接口)是 Java 提供 的基本编程接口。
  • Java 语言提供了大量的基础类,因此 Oracle 也为这些基础类提供了相应的 API 文档,用于告诉开发者如何使用这些类,以及这些类里包含的方法。
1.下载 API

​ 方法一:Java API、JDK 8 英文版+中文版.zip

方法二:官网下载 Additional Resources Java SE 8 Documentation 下载 。

  • 详见 JDK8 的 下载 安装 配置 .doc

img

2.学Java怎么看API(详细图解)+查看Java源码(IDEA)

img

1.10 良好的编程风格

1.正确的注释和注释风格 
  • 使用文档注释来注释整个类或整个方法。
  • 如果注释方法中的某一个步骤,使用单行或多行注释。
2.正确的缩进和空白
  • 使用一次 tab 操作,实现缩进
  • 运算符两边习惯性各加一个空格。比如: 2 + 4 * 5 。
3.块的风格
  • Java API 源代码选择了行尾风格

img

1.11 常用的 Java 开发工具

文本编辑工具:
  • 记事本

  • UltraEdit

  • EditPlus

  • TextPad

  • NotePad

Java 集成开发环境( IDE)(Integrated Development Environment)
  • JBuilder

  • NetBeans

  • Eclipse

  • MyEclipse

  • IntelliJ IDEA

imgimgimg

  • 免费 IBM
  • 集成度高,插件容易

img

  • 收费
  • 插件固有

img

每日一测:

1.JDK,JRE,JVM三者之间的关系,以及JDK、JRE包含的主要结构有哪些

JDK = JRE + Java的开发工具(javac.exe,java.exe,javadoc.exe)

JRD = JVM + Java核心类库

2.为什么要配置path****环境变量?如何配置?

希望在任何路径下都能正常运行

建立JAVA_HOME变量,JAVA_HOME=bin的上层目录

path=%JAVA_HOME%/bin

3.常用的几个命令行操作都有哪些?(至少4)

cd 前往目录

cd… 返回上级目录

cd/ 返回根目录

dir 显示目录

md 创建目录 makedirectory

rd 删除目录 rmdir

del 删除文件

exit 退出

4.创建如下的类,使得运行的话可以输出:

创建java文件:ChairMan.java

public  class ChairMan{
    public static  void main(String[] args){
		System.out.println("姓名:xdd\n");//
		//System.out.println();
		System.out.println("性别:男");
		System.out.println("家庭住址:北京znh");
	}
} 

5.编译和运行上述代码的指令

编译:javac ChairMan.java

运行:java ChairMan

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是我,Zack

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值