java基础体系

zc-study-xcu / 2024-02-13 / 原文

初衷

写这篇笔记的初衷是为了整理学到的知识,加深理解和记忆,同时监督自己的学习,会持续更新。

java 概述

java的重要特点

  1. java 语言是面向对象的(oop
  2. java 语言是健壮的。java 的强类型机制、异常处理、垃圾的自动收集等是 java 程序健壮性的重要保证。
  3. java 语言是跨平台性的。编译好的 .class文件可以在多个系统下运行。
  4. java 语言是解释型的。(解释性语言,编译后的代码,不能直接被机器执行,需要解释器)

java 核心机制-JVM

基本介绍

  1. JVM 是一个虚拟机,具有指令集并使用不同的存储区域。负责执行指令,管理数据、内存、寄存器,包含在 JDK 中。
  2. 对于不同的平台,有不同的虚拟机,同时 java 虚拟机屏蔽了底层运行平台的差别,实现了“一次编译,到处运行”。

什么是 JDK, JRE

JDK 基本介绍

  1. JDK = JRE + java 的开发工具(java,javac,javadoc,javap 等)
  2. JDK 是提供给 java 开发人员使用的,其中包含了 java 的开发工具,也包括了 JRE。

JRE 的基本介绍

  1. JRE = JVM + java 的核心类库。
  2. 如果只是运行 java 程序,只用安装 JRE 即可。

JDK、JRE 和 JVM 的包含关系

  1. JDK = JRE + 开发工具库
  2. JRE = JVM + java SE 标准类库

代码规范

  1. 源文件使用 UTF-8 编码。
  2. 行宽度不要超过 80 字符。
  3. 代码编写次行风格或行尾风格,推荐使用行尾风格

变量

变量介绍

变量相当于内存中的一个数据存储空间的表示,可以把变量看做一个房间的门牌号,我们可以通过变量名访问到变量值,就像通过门牌号我们可以找到房间那样。

变量的使用

  1. 声明变量
    int a;
  2. 赋值
    a = 6;
  3. 声明变量同时赋值
    int a = 6;

变量使用的注意事项

  1. 变量表示内存中的一个存储区域,不同变量,类型不同,占用的存储空间也不同。
  2. 变量必须先声明,后使用。
  3. 变量在同一个作用域内不能重名。
  4. 变量 = 变量名 + 值 + 数据类型
    案例:
public class VarDetail {`
//编写一个 main 方法
public static void main(String[] args) {
//变量必须先声明,后使用, 即有顺序
int a = 50;//int
System.out.println(a);//50
//该区域的数据/值可以在同一类型范围内不断变化
//a = "jack"; //×
a = 88; //对
System.out.println(a);//88
//变量在同一个作用域内不能重名
//int a = 77;//错误
}
}
class Dog {
public static void main(String[] args) {
int a = 666;//对
}
}

程序中 + 号的使用

  1. 当左右两边都是数值型时, 则做加法运算。
  2. 当左右有一边位字符串时,则做拼接运算。
  3. 运算顺序,从左到右。

数据类型

整数类型

基本介绍

Java 中的整数类型用于存放整数值,比如123等等。

案例

byte n = 10;//1字节
short n = 10;//2字节
int n = 10;//4字节
long n = 10;//8字节

整数的类型

整数的使用细节


浮点类型

基本介绍

java 的浮点类型可以表示一个小数,如3.14、6.66等等。

浮点数的分类

补充

  1. 关于浮点数在机器中存放形式的简单说明,浮点数 = 符号位 + 指数位 + 尾数位。
  2. 尾数部分可能丢失,造成精度损失。

浮点数的使用细节

字符类型

基本介绍

字符类型可以表示单个字符,字符类型是 char,char 是两个字节(可以存放汉字),多个字符我们用字符串 String(我们后面详细讲解 String)。

案例

char c = 'a';
char c = '我';

字符类型使用细节


布尔类型

基本介绍

基本数据转换

自动类型转换

自动类型转换的细节

强制转换类型

介绍

自动类型转换的逆过程,将容量大的数据类型转换为容量小的数据类型。使用时要加上强制转换符号(),但可能造成精度降低或溢出

样例

细节

基本数据类型和 String 类型的转换

介绍和使用

运算符

运算符介绍

运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等。

  1. 算术运算符
  2. 赋值运算符
  3. 关系运算符 [比较运算符]
  4. 逻辑运算符
  5. 位运算符 [需要二进制基础]
  6. 三元运算符

算术运算符

介绍

算术运算符是对数值类型的变量进行运算的,在 Java 程序中使用的非常多。

算术运算符一览

细节说明

一道面试题

关系运算符

介绍

  1. 关系运算符的结果都是 boolean 型,也就是要么是 true,要么是 false。
  2. 关系表达式 经常用在 if 结构的条件中或循环结构的条件中。

关系运算符一览

细节

  1. 关系运算符的结果都是 boolean 型,也就是要么是 true,要么是 false。
  2. 关系运算符组成的表达式,我们称为关系表达式。 a > b
  3. 比较运算符"=="不能误写成"=“。

逻辑运算符

介绍

用于连接多个条件(多个关系表达式),最终的结果也是一个 boolean 值。

逻辑运算符一览

  1. a&b : & 叫逻辑与:规则:当 a 和 b 同时为 true ,则结果为 true, 否则为 false
  2. a&&b : && 叫短路与:规则:当 a 和 b 同时为 true ,则结果为 true,否则为 false
  3. a|b : | 叫逻辑或,规则:当 a 和 b ,有一个为 true ,则结果为 true,否则为 false
  4. a||b : || 叫短路或,规则:当 a 和 b ,有一个为 true ,则结果为 true,否则为 false
  5. !a : 叫取反,或者非运算。当 a 为 true, 则结果为 false, 当 a 为 false 是,结果为 true
  6. a^b: 叫逻辑异或,当 a 和 b 不同时,则结果为 true, 否则为 false

&& 和 &

  1. &&短路与:如果第一个条件为 false,则第二个条件不会判断,最终结果为 false,效率高
  2. & 逻辑与:不管第一个条件是否为 false,第二个条件都要判断,效率低

|| 和 |

  1. ||短路或:如果第一个条件为 true,则第二个条件不会判断,最终结果为 true,效率高
  2. | 逻辑或:不管第一个条件是否为 true,第二个条件都要判断,效率低
  3. 开发中,我们基本使用 ||

赋值运算符

介绍

赋值运算符就是将某个运算后的值,赋给指定的变量。

分类

基本赋值运算符
= int a = 10;
复合赋值运算符
+= ,-= ,*= , /= ,%= 等 , 重点讲解一个 += ,其它的使用是一个道理
a += b; [等价 a = a + b; ]
a -= b; [等价 a = a - b; ]

特点

  1. 运算顺序从右往左 int num = a + b + c;
  2. 赋值运算符的左边 只能是变量,右边 可以是变量、表达式、常量值
    int num = 20; int num2= 78 * 34 - 10; int num3 = a;
  3. 复合赋值运算符等价于下面的效果
    比如:a+=3;等价于 a=a+3; 其他类推
  4. 复合赋值运算符会进行类型转换。

三元运算符

基本语法

条件表达式 ? 表达式 1: 表达式 2;
运算规则:

  1. 如果条件表达式为 true,运算后的结果是表达式 1;
  2. 如果条件表达式为 false,运算后的结果是表达式 2;

运算符优先级

标识符命名规范

  1. 包名:多单词组成时所有字母都小写:aaa.bbb.ccc
  2. 类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz [大驼峰]
    比如: TankShotGame
  3. 变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz [小
    驼峰, 简称 驼峰法]
    比如: tankShotGame
  4. 常量名:所有字母都大写。多单词时每个单词用下划线连接:XXX_YYY_ZZZ
    比如 :定义一个所得税率 TAX_RATE
  5. 后面我们学习到 类,包,接口,等时,我们的命名规范要这样遵守,更加详细的看文档。

关键字

关键字的定义和特点 (不用背)
定义:被 Java 语言赋予了特殊含义,用做专门用途的字符串(单词)
特点:关键字中所有字母都为小写。

保留字

Java 保留字:现有 Java 版本尚未使用,但以后版本可能会作为关键字使用。自己命名标识符时要避免使用这些保留
字 byValue、cast、future、 generic、 inner、 operator、 outer、rest、goto、const