文章目录
1.0 Java的简单介绍
Java 基础是学习 JavaEE 、大数据、 Android 开发 的基石!
举例:Spring – Rest(Spring MVC) 核心代码:
举例: Spark Spark Streaming
Java 基础知识图解
Java 基础课程 概述
Java 基础课程体系
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 :删除字符
1.2 计算机编程语言介绍
1. 什么是计算机语言
- **语言:**是人与人之间用于沟通的一种方式。例如:中国人与中国人用普通话沟通。而 中国人要和英国人交流,就要学习英语。
- **计算机语言:**人与计算机交流的方式。
如果人要与计算机交流,那么就要学习计算机语言。
计算机语言有 很多种 。 如: C ,C++ C++,Java ,PHP Kotlin Python Scala 等 。
- **第一代语言 :机器语言。**指令以二进制代码形式存在。
- **第二代语言 :汇编语言。**使用助记符表示一条机器指令。
-
第三代语言:高级语言
-
C 、 Pascal 、 Fortran 面向过程的语言
-
C++ 面向过程 面向对象
-
Java 跨平台的纯面向对象 的语言
-
.NET 跨语言的 平台
-
Python 、 Scala…
2.为什么选Java
理由一:如Google的Android系统结构
-
java开发效率更高(面向对象)
-
python开发周期短,但运行时间长,两者取其利处
-
社区大,人员多
-
如下图
理由二:从 java 语言的市场需求来看
查询网站:https://www.tiobe.com/tiobe index/
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
3.Java 技术体系平台
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 程序在该系统中的运行。
因为有了 JVM ,同一个 Java 程序在三个不同的操作系统中都可以执行。这 样就实现了 Java 程序的跨平台性。
2.Java 两种核心机制
- Java 虚拟机 (Java Virtal Machine
- 垃圾收集机制 (Garbage Collection
核心机制 垃圾回收
-
不再使用的内存空间应回收 垃圾回收。
-
在 C/C++ 等语言中,由程序员负责回收无用内存。
-
Java 语言消除了程序员回收无用内存空间的责任:它提供一种系统级线程跟踪存储空 间的分配情况。并在 JVM 空闲时,检查并释放那些可被释放的存储空间。
-
垃圾回收在 Java 程序运行过程中自动进行,程序员无法 精确控制 和 干预。
-
Java 程序还会出现内存泄漏和内存溢出问题吗? Yes!
1.5 Java 的环境搭建
下载 JDK
安装 JDK
配置环境变量
path:windows 系统执行命令时要搜寻的路径。
验证 是否成功: javac java
选择合适的文本编辑器或 IDE 开发
1.明确什么是 JDK, JRE
- 简单而言,使用 JDK 的开发工具完成的 java 程序,交给 JRE 去运行。
2.JDK 、 JRE 、 JVM关系(重点)
3.下载并安装 JDK
官方网址:
- www.oracle.com
- java.sun.com
安装 JDK
-
傻瓜式安装,下一步即可。
-
建议:安装路径不要有 中文或者空格等特殊符号。
-
如果操作系统是 64 位的,软件尽量选择支持 64 位的(除非软件本身不区分 。
-
当 提示安装 JRE 时,正常在 JDK 安装时已经装过了,但是为了后续使用 Eclipse 等开发 工具不报错,建议也根据提示安装 JRE 。
介绍jdk包内的各个文件内容
P31 1:48
4.配置环境变量 path
- 在 dos 命令行中敲入 javac ,出现错误提示
- **错误原因:**当前执行的程序在当前目录下如果不存在, windows 系统会在系
统中已有的一个名为 path 的环境变量指定的目录中查找。如果仍未找到,会
出现以上的错误提示。所以进入到 jdk 安装路径 bin 目录下,执行 javac ,会
看到 javac 参数提示信息。为了能在所有文件执行成功,需要配置环节变量。
- 额外:查看JDK版本
每次执行 java 的工具都要进入到 bin 目录下,是非常麻烦的。可不可以在任何目 录下都可以执行 java 的工具呢?
-
根据 windows 系统在查找可执行程序的原理,可以将 java 工具所在路径定义到 path 环境变量中,让系统帮我们去找运行执行的程序。
-
配置方法:
-
我的电脑 属性 高级系统设置 环境变量
-
编辑 path 环境变量,在变量值开始处加上 java 工具所在目录,后面用 ““; 和其他值分隔 开即可。
-
打开 DOS 命令行,任意目录下敲入 javac 。如果出现 javac 的参数信息,配置成功。
-
注: 具体操作流程, 参看 JDK8 下载 安装 配置 .doc
5.配置完 path 环境变量以后的验证
6.配置问题汇总解决
-
允许配置多个JDK版本,但是用的时候就一个
-
如果java或javac不能同时完成,则把JAVA_HOME放在最前面
-
如果用户变量不好使就直接放在环境变量
1.6 开发体验 HelloWorld
步骤:
\1. 将 Java 代码 编写 到扩展名为 .java 的文件中。
\2. 通过 javac 命令对该 java 文件进行 编译 。
\3. 通过 java 命令对生成的 class 文件进行 运行 。
步骤一:编写
- 选择最简单的编辑器:记 事本。
- 敲入代码 class Test{ } 将文件保存成 Test.java ,这个 文件是存放 java 代码的文件, 称为源文件。
步骤二 :编译
-
有了 java 源文件,通过编译器将其编译成 JVM 可以识别的字节码文件。
-
在该源文件目录下,通过 javac 编译工具对 Test.java 文件进行编译。
-
如果程序没有错误,没有任何提示,但在当前目录下会出现一个 Test.class 文 件,该文件称为字节码文件,也是可以执行的 java 的程序。
步骤三:运行
-
有了可执行的 java 程序 Test.class 字节码文件
-
通过运行工具 java.exe 对字节码文件进行执行。
-
出现提示:缺少一个名称为 main 的方法。
-
因为一个程序的执行需要一个起始点或者入口,所以在 Test 类中的加入 public static void main(String[] args
-
对修改后的 Test.java 源文件需要重新编译,生成新的 class 文件后,再进行执行。
-
发现没有编译失败,但也没有任何效果,因为并没有告诉 JVM 要帮我们做什么事情,也就是 没有可以具体执行的语句。
-
想要和 JVM 来个互动,只要在 main 方法中 加入 一句 System.out.println (“Hello 因为程 序进行改动,所以再重新编译,运行即可。
1.7 常见问题及解决方法
-
源文件名不存在或者 写 错
-
当前 路径 错误
-
后缀 名隐藏问题
- 类文件名 写 错,尤其文件名与类名不一致时,要小心
- 类 文件不在当前路径下,或者不在 classpath 指定 路径 下
- 声明为 public 的类 应与文件名一致,否知编译失败
- 编译失败,注意错误出现的行数,再到源代码中指定位置改错
总结:
学习编程最容易犯的错是 语法错误 。 Java 要求你必须按照语法规则编写代码。 如果你的程序违反了语法规则,例如:忘记了分号、大括号、引号,或者拼 错了单词, java 编译器都会报语法错误。 尝试着去看懂编译器会报告的错误 信息。
1.8 注释
1.注释的必要性
- 用于注解说明解释程序的文字就是注释。
- Java 中的注释类型:
单行注释
多 行注释
文档注释 (java 特有
-
提高了 代码的 阅读性;调试程序的重要方法 。
-
注释 是一个程序员必须要具有的良好编程习惯。
-
将自己的思想通过注释先整理出来,再用代码去体现
2.单行注释
格式: //注释文字
3.多行注释
格式: :/* 注释文字 */
注:
- 对于单行和多行注释,被注释的文字,不会被 JVM java 虚拟机)解释执行。
- 多行注释里面不允许有多行注释嵌套。
4.文档注释 (Java 特有)
- 格式:
@ author 指定 java 程序的作者
@ version 指定源文件的版本
- 注释内容可以被 JDK 提供的工具 javadoc 所解析,生成一套以网页文件形 式体现的该程序的说明文档。
- 操作方式
小结 第一个程序
-
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
2.学Java怎么看API(详细图解)+查看Java源码(IDEA)
1.10 良好的编程风格
1.正确的注释和注释风格
- 使用文档注释来注释整个类或整个方法。
- 如果注释方法中的某一个步骤,使用单行或多行注释。
2.正确的缩进和空白
- 使用一次 tab 操作,实现缩进
- 运算符两边习惯性各加一个空格。比如: 2 + 4 * 5 。
3.块的风格
- Java API 源代码选择了行尾风格
1.11 常用的 Java 开发工具
文本编辑工具:
-
记事本
-
UltraEdit
-
EditPlus
-
TextPad
-
NotePad
Java 集成开发环境( IDE)(Integrated Development Environment)
-
JBuilder
-
NetBeans
-
Eclipse
-
MyEclipse
-
IntelliJ IDEA
- 免费 IBM
- 集成度高,插件容易
- 收费
- 插件固有
每日一测:
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