Java基础知识复习大纲

2021/9/19 17:05:05

本文主要是介绍Java基础知识复习大纲,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

知识大纲整理

  • 一、Java常量变量
    • 1.常量
    • 2.变量
  • 二、Java运算符
    • 1. 算术运算符
    • 2. 赋值运算符
    • 3. 比较运算符
    • 4. 逻辑运算符
    • 5. 位运算符
    • 6. 三目运算符
  • 三、Java循环
    • 1. for循环语句
    • 2. while循环语句
    • 3. break、continue跳转语句
  • 四、Java数组
    • 1. 数组的概念及定义
    • 2. 数组的定义方式
    • 3. 二维数组
      • (1)什么是二维数组?
      • (2)二维数组的定义方式
  • 五、Java函数
    • 1. 函数的概念
    • 2. 函数的运行原理
    • 3. 函数重载
    • 4. 函数递归

一、Java常量变量

1.常量

    常量就是指在程序中直接出现的一些数据,也叫字面量。

常量都有哪些:

  • 整数常量:在计算机中二进制,八进制,十进制,十六进制都可以代表常量。
//整数常量  
System.out.println(10); //十进制整数 
System.out.println(0b1001); //二进制整数 打印出来是十进制 
System.out.println(0123); //八进制整数  
System.out.println(0xAF3); //十六进制整数
  • 小数常量
//小数常量 
System.out.println(3.14);
System.out.println(5.234e3);//5234.0
System.out.println(1.2e-3);//0.0012
  • 字符常量:由一个字母、数字、符号被单引号( ‘’ )标识的数据
//字符常量 
System.out.println('a');  
//System.out.println('ab');ERROR  
System.out.println('9');  
//System.out.println('12'); ERROR    
System.out.println('我');  
System.out.println(' '); 
//System.out.println(''); ERROR  
//System.out.println('''); ERROR 
System.out.println('\''); //打印 ' 
System.out.println('\n'); //打印 换行 
System.out.println('\t'); //打印 缩进  
  • 字符串常量:由若干个字母、数字、符号被双引号( “” )标识的数据
//字符串常量  
System.out.println("abcd");  
System.out.println("a");
System.out.println(""); //字符串空串 vs null真空  
System.out.println("\""); 
  • 布尔类型常量
//布尔常量   
System.out.println(true); 
System.out.println(false);
  • null常量

2.变量

    变量指的是变化的量,变量的本质就是在内存中程序所处的进程中的一个临时存储区域

  • 该区域的存储值有限制的;
  • 该区域值的变化必须是同类型的或向下兼容的;
  • 该区域有其自身的物理内存地址-指针。

该区域中 存储值的限制数据的变化类型数据类型 来决定。

在Java当中,数据类型主要分为两大类:

  • 基本数据类型:在变量的空间中存储数据,整型、浮点型、字符型、布尔型; (1)整数类型 在这里插入图片描述
    (2)浮点类型(小数)
    在这里插入图片描述
    (3)字符类型
    在这里插入图片描述
    (4)布尔类型
    在这里插入图片描述

在常量中,整型常量默认int类型,小数常量默认是double类型
boolean 只有两个值:true、false,可以使用 1 bit 来存储,但是具体大小没有明确规定。
JVM 会在编译时期将boolean 类型的数据转换为 int,使用 1 来表示 true,0 表示 false。JVM 支持 boolean 数组,但是是通过读写 byte数组来实现的。

  • 引用数据类型:数据是在堆内存中存储,变量仅仅存放的是数据在堆内存中的地址。
    (1) 字符串
    (2)数组
    (3)对象

在Java中,但凡存储在堆内存中的数据,统称为对象

该区域中 其空间的分配空间的物理内存地址计算机底层来决定

二、Java运算符

1. 算术运算符

在这里插入图片描述

2. 赋值运算符

在这里插入图片描述

3. 比较运算符

运算的结果为布尔类型

  • 大于 >
  • 小于 <
  • 大于等于 >=
  • 小于等于 <=
  • 不等于 !=

4. 逻辑运算符

  • 单与 &
  • 单或 |
  • 异或 ^
  • 非 !
  • 双与 &&
  • 双或 ||

5. 位运算符

  • 位与 &
  • 位或 |
  • 位异或 ^
  • 右移 >>
  • 左移 <<

6. 三目运算符

数据类型 变量名 = 布尔表达式 ? 值 1 : 值 2 ;
例如:int number = 10 % 2 == 0? 10 : 2;

三、Java循环

1. for循环语句

循环主要解决具有规律性的且具有重复性的代码问题,避免程序冗余

循环四要素
(1)循环的初始化:循环的第1次执行从哪里开始;
(2)循环的继续条件:循环从当前轮是否向后执行下一轮;
(3)循环体:需要被循环执行的部分;
(4)循环的步长、周期:当前循环到下一轮循环之间的变化。

我们常见的循环问题可以分为两大类:
已知循环次数的 一般用for语句做;
未知循环次数但是已知循环结束条件 一般用while语句做。

for (1循环的初始化;2.循环的继续条件;4.循环的步长) {  
    3.循环体 
}

1-2-3-4-2-3-4-2-3-4-2不满足则结束循环

2. while循环语句

while循环主要用于解决循环次数未知,但循环结束条件已知的情况。
while其实和for循环是可以相互转换的,是因为都逃不开循环四要素:

for (int i = 1; i <= 5; i++) {  
    System.out.println(i); 
}
//可以转换为while循环 
int i = 1; 
while (i <= 5) { 
    System.out.println(i); 
    i++; 
}

while的语法格式:

1.循环的初始化
while (2.循环继续条件) { 
    3.循环体 
    4.循环的步长、周期 
}

3. break、continue跳转语句

break在循环语句中叫做终止语句,终止的是break最近的一层循环
continue在循环语句中叫做跳过语句,跳过本次循环开启下一轮循环

public class Sample { 
    public static void main(String[] args) {
        for (int i = 1; i <= 5; i++) { 
            if (i == 3) { 
                break; 
            } else { 
            System.out.println(i); 
            } 
        }
        //结果 1 2
        for (int i = 1; i <= 5; i++) { 
            if (i == 3) { 
                continue; 
            } else { 
                System.out.println(i); 
            }    
        }
        //结果 1 2 4 5 
    } 
}

四、Java数组

1. 数组的概念及定义

    数组主要用于解决大量数据计算与存储的问题。
    比如:输入100个数字,统计其中的最大值和最小值并计算平均值,创建100个变量,会有一堆if- else语句,比较麻烦。
    数组是Java提供的一种最简单的数据结构,可以用来存储一个元素 个数固定类型相同有序集
在这里插入图片描述

    数组本质上就是在堆内存中一系列地址连续且空间大小相等存储空间(变量),每一个存储空间用来存储数据(基本,引用)。
    数组是在堆内存中存储,称之为是一个数组对象,并且在堆内存中存储的数据都有 默认初始化的流程。所以数组创建之初,每一个存储空间里面都会被JVM初始化该数据类型对应的零值
     数组的地址是连续的,所以通过公式:An=A1+(n-1)d 可以快速访问到其他的元素,所以对于数组而言查找元素比较快的。将元素的真实物理地址转换成对应的角标获取元素。
    如何来调用数组呢?通过一个变量 存储该数组在堆内存当中的首元素的地址。
    当数组一旦定义出来,其长度不可变,存储空间的内容是可变的
    所以我们在定义数组的时候,要么把长度固定,要么直接输入相关的元素。

2. 数组的定义方式

创建一个指定长度且指定数据类型的一维数组,名称为数组名,虽然没有指定元素,但是会有默认值 。

数据类型[] 数组名 = new 数据类型[长度]; 

创建一个指定元素且指定数据类型的一维数组,名称为数组名,虽然指定元素,但是还是有默认初始化这个步骤的。

数据类型[] 数组名 = new 数据类型[]{数据1,数据2,...,数据n}; 
数据类型[] 数组名 = {数据1,数据2,...,数据n};

3. 二维数组

(1)什么是二维数组?

    二维数组,在表现形式上就是一个表格,在操作表格的时候以行列来操作。
在这里插入图片描述
    所谓的二维数组,本质上就是一个一维数组,只不过该一维数组里面的元素是另一个一维数组而已。

    问:一个4×5的二位数组,一共有几个一维数组组成?
    5个:最外层一个+四个子数组。
在这里插入图片描述

(2)二维数组的定义方式

数据类型[][] 矩阵名 = new 数据类型[row][col];

int[][] matrix = new int[3][2];

数据类型[][] 矩阵名 = new 数据类型[][] {
{…},
{…},
{…}
};
数据类型[][] 矩阵名 = {
{…},
{…},
{…}
};

int[][] matrix2 = { 
	{1,2,3}, 
	{4,5,6}, 
	{7,8,9} 

五、Java函数

1. 函数的概念

     函数的定义就是指一段具有独立功能的代码,减少代码冗余,提高程序的利用率和效率。Java中,函数又被称为方法
     函数的主要作用是为了提高代码的复用性。

函数的语法格式

修饰符 函数类型 返回值类型 函数名(数据类型 数据1,数据类型 数据2,…) {
独立功能的代码片段;
return函数的计算结果;
}

  • 修饰符:指的是函数的访问权限,public private 默认 protected;
  • 函数类型:函数的分类,本地函数native,静态函数static,同步函数 synchronized;
  • 返回值类型:指的就是函数计算结果的数据类型 如果函数没有返回值 则为void;
  • 函数名:就是函数的名称;
  • 参数列表:指的是外界向函数传入的数据(实际参数,由这些参数变量进行接收(形式参数);
  • 函数体:具有独立功能的代码片段;
  • return:仅仅表示函数结束!如果函数有返回值,则return后跟返回值;如果没有返回值,则 return可以不写,但是是存在的(隐藏的 在最后一行);

函数的分类:

  • 有参数有返回值
  • 有参数没返回值
  • 没参数有返回值
  • 没参数没返回值

总结定义函数时需要考虑的有哪些?

  • 函数的运行有哪些未知的参数?
  • 函数的运行结果有是什么?
  • 明确参数和结果
  • 明确内容和返回
  • 函数到底要干什么?尽量将独立功能且重复性较高的代码片段提取出来

2. 函数的运行原理

函数的运行是基于栈运行的
     栈:是一种先进后出的容器,我们这里面所说的栈是指JVM中的栈内存空间。
     每一个函数,叫做栈帧 —— 栈帧中所包含的内容有函数的定义,参数列表,函数的执行内容代码每一个函数要运行,就相当于这个栈帧进入到栈内存中 ——入栈,如果一个函数即将结束,将这个栈帧从栈顶移出——出栈
     如果栈内存中有多个栈帧,运行的是最上面的栈帧,底下的栈帧暂停运行,直到该栈帧为栈顶元素。

比如:主函数先进栈,开始逐行运行,如果执行到第n行,调用另外一个函数A,则主函数在第n行暂停运行,将另一个函数A的栈帧入栈,再继续逐行运行,直到函数A的内容执行完毕,函数A出栈,主函数接着从第n行继续向下执行。以此类推。

函数运行进栈出栈图
在这里插入图片描述

3. 函数重载

    同一个类中可以出现多个同名函数,这个现象就叫做函数的重载(overload)。
    如何来区分同名函数是否是重载关系呢?

  • 前提必须是同名
  • 返回值类型无关(返回值类型只和函数的计算功能相关)
  • 权限也没有关系
  • 形式参数的名称也无关
  • 只和形式参数的数据类型有关(数量,排列组合)

下列哪些是该函数的重载:

  • int show(int x, float y, char z) :不算重载 数据类型都是int float char
  • void show(float b,int a,char c):算重载,顺序不一样float int char
  • void show(int a,int b,int c):算重载,顺序不一样int int int
  • double show():算重载,参数不一样

4. 函数递归

    函数的递归就是指函数自身调用自身。

  • 但凡迭代能够解决的问题,递归都可以解决;递归能够解决的问题,迭代就不一定了
  • 相对而言,从内存的角度而言,函数如果过多的自我调用,势必会对内存不友好,占用过多
  • 通常来讲,同样的问题用递归写要比用迭代写代码量较少

    写递归时,一定要先确定递归结束条件——递归边界



这篇关于Java基础知识复习大纲的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程