JAVA已学部分梳理

什么是Java

Java可以理解为编程语言或者开发工具。

目的

Java 最终的目的是用于编写直接在机器上运行的程序。
与 HTML 运行与浏览器,SQL 运行与数据库系统对比,Java 能做的事情更多,更加的普遍。

对于跨平台的理解

为了让平台对编程人员透明,写出可以在不同平台运行的相同源代码,Java 开发出了 JVM (Java 虚拟机)。

一次编译,到处运行。

Java 的发展史
  • Java 创始人
  • Java 的演化步骤
  • SUN 公司
  • Oracle 公司 09 年收购 SUN 公司

JAVA的运行原理

JAVA的运行原理

在JAVA中引入了虚拟机的概念

即在机器和编译程序之间加入了一层抽象的虚拟的机器。这台虚拟的机器在任何平台上都提供给编译程序一个的共同的接口。

编译程序只需要面向虚拟机,生成虚拟机能够理解的代码,然后由解释器来将虚拟机代码转换为特定系统的机器码执行。在Java中,这种供虚拟机理解的代码叫做字节码(ByteCode)(class文件的内容),它不面向任何特定的处理器,只面向虚拟机。每一种平台的解释器是不同的,但是实现的虚拟机是相同的。

Java源程序经过编译器编译后变成字节码,字节码由虚拟机解释执行,虚拟机将每一条要执行的字节码送给解释器,解释器将其翻译成特定机器上的机器码,然后在特定的机器上运行。

JDK

Java开发工具包(Java Development Kit),是一套用户给 Java 编程人员的开发套件,其中包含了:

  • JRE (Java Runtime Envoirment):Java 运行时环境,其中最重要的部件是 JVM;
  • Java开发工具:编译工具 javac、API 生成工具 javadoc…;
  • 核心类库 (Java API)

下载 JDK 并安装

使用 JDK1.8 版本,Oracle 官方网站下载

安装完成后的目录说明

├─bin 存放一系列的命令和工具
├─db
├─include
├─jre Java运行时环境
└─lib 核心类库

通过配置方式部署 JDK
什么是环境变量

进入环境变量:「我的电脑-右键」-> 「属性」-> 「高级系统设置」-> 「环境变量」

定义变量:「新建」,键入变量名和值。

引用变量:使用 %变量名% 方式。

Path 变量的用途:系统的全局的路径,我们在任意位置可以访问在 Path 定义的文件夹(目录)中的可执行程序或者批处理文件,在Windows 系统中,可以直接执行的文件有 exe/bat。

在 Path 变量中,可以定义多个文件目录,之间用;号隔开

配置 JDK

前提条件:需要包含完整 JDK 文件的文件夹。

1、 JAVA-HOME = d:\xx\xx\jdk1.8

2、在 Path 中追加目录%JAVA_HOME%\bin

3、CLASSPATH = .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;

这样就完成了 JDK 的部署。

面向对象编程的初识

public class Hello {
public static void main(String[] args) {
System.out.println(“Hello, world!”);
}
}

  • 类是 Java 中最基础的组成单元
面向过程编程和面向对象编程

面向过程编程:通过一个函数去完成一件事情,而且这件事情完成之后,不会留下任何的遗产。或者理解为:一次性。

面向对象编程:在完成一件事情时,会将事情中的实体对象抽象出来,形成「类」的概念,事情的完成是通过类的对象之间发生关系去实现的。

实例 1:96 班同学今天到南通青鸟 IT 教育上课

面向过程实现:今天早上** 96 班同学** 到 南通青鸟 IT 教育 上课

面向对象实现:96 班同学(上课)、南通青鸟 IT 教育

实例 2:96 班同学今天到南通大学踢球

面向过程实现:今天早上** 96 班同学** 到 南通大学踢球

面向对象实现:96 班同学(踢球)、南通大学

在面向对象编程中,实体对象是可以被「复用」的。

类和对象概念

类是一群对象的特征母版,对象是类的实现。

特征(类)包含的内容有:基本属性(属性)、行为(方法)

基础语言要素

注释
代码注释是编程中非常重要的环节,往往优秀的程序员,注释写的比代码都多。

注释是不会被程序执行的。

注释可能出现的位置:

  • 类、方法、属性等上部(文档注释:通过 javadoc 命令生成 API 文档,方便使用的人阅读)
  • 方法体内负责业务逻辑处理过程中(一般性注释)
    文档注释

/**
* 相关的注释内容,甚至可以使用 HTML 标签
*
*/

在 javadoc 中也提供了丰富的标记

  • @author:指定程序的作者
  • @version:指定源代码的版本
  • @param:在方法中指定参数
  • @return:在方法中指定返回值

单行注释

// 单行注释

多行注释

/*
第一行注释
第二行注释
*/

变量

在 JS 中,通过 var i = 10; i = “abc”; 使用变量,因为没有在声明变量的时候给于数据类型的强制定义,可以给变量赋予任意类型的值。我们把 JavaScript 称为弱类型编程语言。

Java 在声明编程时候,必须准确定义变量的数据类型。
变量声明的语法:

数据类型 变量名;

例如:int a;

变量赋值的语法

变量名 = 值;

例如:a = 10;

两者可以写在一起:

数据类型 变量名 = 值;

例如:int a = 10;

变量的生命周期

先记住:变量的生命周期在 {} 定义的范围内。

直接量

直接量是指在程序中直接通过源代码的方式指定的值,有时也成为字面量。

在编译的时候,JVM 就定义到常量池中。

比如 int a = 5; 这里的 5 就是一个直接量。

在 Java 中可以定义的直接量包含:基本数据类型、字符串类型、null。

关于 String 类的特殊说明

String 类是一个不可改变类,意思就是在String 对象被创建出来后就不能被改变了。当程序第一次使用某个字符串直接量时,Java 会使用常量池来缓存该字符串直接量。如果后面程序用到了这个字符串直接量,Java 会直接引用常量池字符串。

在常量池中不会存在两个一样的字符串字面量值。

运算符

算术运算符

+ - * / % ++ –

+ 运算符除了进行数学运算的加法之外,还可以做字符串的拼接。
++ 自增
– 自减

赋值运算符

= += -= = *= %=

比较运算符
用于判断两个变量或者常量的大小,返回结果为 true/false。

> < <= >= == !=

左右两边的操作数只能是数值\

逻辑运算符
运算符两边必须是 boolean 类型的变量、常量、表达式
与 && 或者 || 非 !
与:只要有一个假就是假
或者:只要有一个真就是真

三目运算符
expression ? if-true-statement : if-false-statement

流程控制

  • 顺序结构
  • 判断(分支选择)结构
  • 循环结构

顺序结构
程序是一个自上而下运行的过程。

分支选择结构
Java 中的分支选择结构有 if 结构、switch 结构

if 结构
具备三种类型的结构表现形式

形式一:
if (logic expression) {
statement;
}
int age = 20;
if (age > 18) {
String name = “Tom”;
System.out.println(“我叫” + name + “,已经” + age + “岁了,我成年了!”);
}
形式二:
if (logic expression) {
statement;
} else {
statement;
}
int age = 16;
if (age > 18) {
String name = “Tom”;
System.out.println(“我叫” + name + “,已经” + age + “岁了,我成年了!”);
} else {
System.out.println(“我还未成年!”);
}
形式三:
if (logic expression) {
statement;
} else if (logic expression) {
statement;
} else {
statement;
}
if (age >= 0 && age <= 10) {
System.out.println(“少年”);
} else if (age <= 18) {
System.out.println(“青少年”);
} else if (age <= 30) {
System.out.println(“青年”);
} else if (age <= 50) {
System.out.println(“中年”);
} else {
System.out.println(“老年”);
}

switch 结构
swtich 语句是有控制表达式和多个 case 标签块组成。在控制表达式中,只允许出现 byte、short、int、char四种基础数据类型,在JDK1.7以后,支持 String 类型的控制表达式。

switch (expression) {
case condition1 : {
statement;
break;
}
case condition2 : {
statement;
break;
}
default : {
statement;
break;
}

}
String color = “red”;
switch (color) {
case “red”: {
System.out.println(“红色”);
break;
}
case “blue”: {
System.out.println(“蓝色”);
break;
}
case “green”: {
System.out.println(“绿色”);
break;
}
default: {
System.out.println(“没有找到”);
break;
}
}

在 case 中要加入 break 关键字跳出;

在实际的开发中,我们一般使用 if - else 结构替代 switch。swtich 结构应用的较少。

循环结构
循环语句可以在满足循环条件的情况下,反复执行某一段代码。

被重复执行的代码叫做循环体。

循环语句可能包含的部分有:

初始化语句(init_statement):一条或多条语句,这些语句用于完成一些初始化的工作。
循环条件(test_expression):是一个 boolean 类型的表达式,这个表达式决定是否继续执行循环体。
循环体(body_statement):如果条件允许,循环体会被反复执行。
迭代语句(iteration_statement):在一次循环体执行结束后,对循环体条件进行求值,通常用于控制循环条件中的变量,使得循环在合适的时候结束。

while 结构
(init_statement);
while (test_expression) {
body_statement;
[iteration_statement];
}
int sum = 0;
int i = 1;

while (i <= 10) {
sum = sum + i;
i++;
}

System.out.println(sum); // 55
do-while 结构
(init_statement);
do {
body_statement;
[iteration_statement];
} while (test_expression)
无论如何都会执行一次循环体内容

int i = 1;
int sum = 0;

do {
sum += i++;
// sum = sum + i;
// i = i + 1;
} while (i <= 10);

System.out.println(sum); // 11
for 循环
语法:

for ([init_statement]; test_expression; [iteration_statement]) {
body_statement;
}

在实际的开发中,对于已知循环次数的遍历,一般使用 for 循环。而且 for 循环的应用场景要比 while 循环多。

控制循环结构

break:在循环体中,使用 break 关键字跳出整个循环。

int flag = 6;
int sum = 0;
for (int i = 1; i <= 10; i++) {
sum = sum + i;
if (i == flag) {
break;
}
}
System.out.println(sum); // 21

continue:在循环体中,使用 continue 跳出本次循环,循环还会继续执行。

int sum = 0;
for (int i = 1; i <= 10; i++) {
if (i % 2 == 0) {
continue;
}
sum = sum + i;
}
System.out.println(sum); // 25

猜你喜欢

转载自blog.csdn.net/weixin_43805219/article/details/86492927