2.1、分支结构(if、switch)

2.1.1、if语句

格式一:

if (关系表达式) {
语句体;
}

流程一:

①首先计算关系表达式的值

②如果关系表达式的值为true就执行语句体

③如果关系表达式的值为false就不执行语句体

④继续执行后面的语句内容


格式二:

if (关系表达式) {
语句体1;
} else {
语句体2;
}

流程二:

①首先计算关系表达式的值

②如果关系表达式的值为true就执行语句体1

③如果关系表达式的值为false就执行语句体2

④继续执行后面的语句内


格式三:

if (关系表达式1) {
语句体1;
} else if (关系表达式2) {
语句体2;
}
...
else {
语句体n+1;
}

流程三:

①首先计算关系表达式1的值

②如果值为true就执行语句体1;如果值为false就计算关系表达式2的值

③如果值为true就执行语句体2;如果值为false就计算关系表达式3的值

④...

⑤如果没有任何关系表达式为true,就执行语句体n+1。

2.1.2、switch语句

格式:

switch (关系表达式) {
case 1:
语句体1;
break;
case 2:
语句体2;
break;
...
default:
语句体n+1;
[break;]
}

流程:首先计算出关系表达式的值,其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束。最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉,注意default中的break可以省略。

注意:

  1. 关系表达式的取值可以是byte、short、int、char
  2. JDK5以后可以是枚举
  3. JDK7以后可以是String

2.2、循环结构(for、while、do...while)

2.2.1、for语句

格式:

for (初始化语句;条件判断语句;条件控制语句) {
循环体语句;
}

流程:

①执行初始化语句

②执行条件判断语句,看其结果是true还是false,如果是false,循环结束,如果是true,继续执行

③执行循环体语句

④执行条件控制语句

⑤回到②继续

2.2.2、while语句

格式:

初始化语句;
while (条件判断语句) {
循环体语句;
条件控制语句;
}

流程:

①执行初始化语句

②执行条件判断语句,看其结果是true还是false,如果是false,循环结束,如果是true,继续执行

③执行循环体语句

④执行条件控制语句

⑤回到②继续

2.2.3、do...while语句

格式:

初始化语句;
do {
循环体语句;
条件控制语句;
}while(条件判断语句);

流程:

① 执行初始化语句

② 执行循环体语句

③ 执行条件控制语句

④ 执行条件判断语句,看其结果是true还是false,如果是false,循环结束,如果是true,继续执行

⑤ 回到②继续

2.2.4、死循环语句

第一种:
for(;;){ }
第二种:
while(true){ }
第三种:
do{ }while(true);

2.3、跳转控制(break、continue)

break:跳出最近循环,循环语句结束
continue:跳过本次循环,继续下次循环

2.4、数组

定义:数组是用于储存多个相同类型数据的有序集合。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。用于区分数组的各个元素的数字编号称为下标。

格式:

第一种:数据类型[] 数组名;
第二种:数据类型 数组名[];

初始化:

动态初始化
含义:数组动态初始化就是只给定数组的长度,由系统给出默认初始化值
格式:数据类型[] 数组名 = new 数据类型[数组长度];
举例:int[] arr = new int[3]; 静态初始化
含义:在创建数组时,直接将元素确定,由系统给出数组长度
格式:数据类型[] 数组名 = new 数据类型[]{元素1,元素2,...};
简化:数据类型[] 数组名 = {元素1,元素2,...};
举例:int[] arr = {1, 2, 3};

数组遍历:

public class Main {
public static void main(String[] args) {
//定义数组
int[] arr = {11, 22, 33, 44, 55};
//数组遍历 arr.length:代表数组个数
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
}

常见异常:

  1. ArrayIndexOutOfBoundsException:数组下标越界异常
  2. NullPointerException:空指针异常

2.5、内存区域

区域名称 区域作用 区域特点
栈内存 储存局部变量 1.栈内存的数据用完就释放
堆内存 储存 new 出来的东西 1.每一个 new 出来的东西都有地址值
2.每个变量都有默认值
(byte, short, int, long 的默认值为 0;)
(float, double 的默认值为 0.0;)
(char 的默认值为 “\u0000”;boolean 的默认值为 false;)
(引用类型为 null)
3.使用完毕就变成垃圾,但是并没有立即回收,垃圾回收器空闲的时候回收。
方法区 存储可以运行的class文件

2.6、方法

定义:是将具有独立功能的代码块组织成为一个整体,使其具有特殊功能的代码集

格式:

public static 返回值类型 方法名(参数列表) {
方法体;
return 数据;
}

注意:

  1. 方法不能嵌套定义,但是方法可以嵌套调用
  2. 方法必须先定义,后调用,否则程序将报错
  3. 方法定义时,多个参数之间使用逗号(,)分隔
  4. void表示无返回值,return可省略也可不省

形参实参:

形参:方法定义中的参数
实参:方法调用中的参数

方法重载:指同一个类中定义的多个方法之间的关系,满足下列条件的多个方法相互构成重载

  1. 多个方法在同一个类中
  2. 多个方法具有相同的方法名
  3. 多个方法的参数不相同:参数类型或者数量不同

参数传递:

方法参数传递基本类型:基本数据类型的参数,形式参数的改变,不会影响实际参数
方法参数传递引用类型:对于引用类型的参数,形式参数的改变,影响实际参数的值

第二章 Java基础知识(下)的更多相关文章

  1. 第二章 Java基础知识(上)

    2.1.注释 单行注释 // 注释内容 多行注释 /* 注释内容 */ 文档注释 /**注释内容 */ 2.2.关键字 定义:在Java语言中被赋予特殊含义的小写单词 分类: 2.3.标识符 定义:标 ...

  2. java面向对象编程——第二章 java基础语法

    第二章 java基础语法 1. java关键字 abstract boolean break byte case catch char class const continue default do ...

  3. RxJava2实战--第二章 RxJava基础知识

    第二章 RxJava基础知识 1. Observable 1.1 RxJava的使用三步骤 创建Observable 创建Observer 使用subscribe()进行订阅 Observable.j ...

  4. (转)JAVA AJAX教程第二章-JAVASCRIPT基础知识

    开篇:JAVASCRIPT是AJAX技术中不可或缺的一部分,所以想学好AJAX以及现在流行的AJAX框架,学好JAVASCRIPT是最重要的.这章我给大家整理了一些JAVASCRIPT的基础知识.常用 ...

  5. 第二章Java基础之标识符

  6. JAVA基础第二章-java三大特性:封装、继承、多态

    业内经常说的一句话是不要重复造轮子,但是有时候,只有自己造一个轮子了,才会深刻明白什么样的轮子适合山路,什么样的轮子适合平地! 我将会持续更新java基础知识,欢迎关注. 往期章节: JAVA基础第一 ...

  7. 第二十九节:Java基础知识-类,多态,Object,数组和字符串

    前言 Java基础知识-类,多态,Object,数组和字符串,回顾,继承,类的多态性,多态,向上转型和向下转型,Object,数组,多维数组,字符串,字符串比较. 回顾 类的定义格式: [类的修饰符] ...

  8. Java基础知识了解

    第一章 开发前言 一.java语言概述 Java是当下最流行的一种编程语言,至今有20年历史了.Java语言之父是James Gosling. Java是Sun公司(Stanford Universi ...

  9. 学习android学习必备的java基础知识--四大内部类

    学习android必备的java基础知识--四大内部类 今天学习android课程,因为我的主专业是JAVA,但是兴趣班却有这其他专业的同学,学习android 需要具备一些java的基础知识,因此就 ...

随机推荐

  1. win中mysql安装

    mysql安装: https://www.mysql.com/>官网 下载 [DOWNLOADS]----[MySQL Community Server]社区版---5.6---No thank ...

  2. eIQ WSL下工具及环境配置

    1. 配置WSL 参考[https://www.cnblogs.com/hayley111/p/12844337.html] 2. 配置VScode 参考[https://zhuanlan.zhihu ...

  3. python基础知识练习2

    1.请写出如下代码的结果: import copy list1 = [1,2,['a','b'],('c','d')] list2 = list1 list3 = copy.copy(list1) l ...

  4. Solaris 10上Oracle 10g安装步骤图解

    文章目录 1. 说明 2. 查看相关包 3. 添加用户和组 4. 设置oracle环境变量 5. 创建Oracle软件目录 6. 修改OS参数 7. 上传Oracle软件包并解压 8. 开始安装 9. ...

  5. Java编程资料

    Java相关免费编程书籍推荐(都是PDF版) 编程进阶 2017年9月11日 IDE IntelliJ IDEA 简体中文专题教程 https://github.com/judasn/IntelliJ ...

  6. java语言基础(九)_final_权限_内部类

    final关键字 final关键字代表最终.不可改变的. 常见四种用法: 可以用来修饰一个类 可以用来修饰一个方法 还可以用来修饰一个局部变量 还可以用来修饰一个成员变量 1)修饰一个类 public ...

  7. LeetCode 第 196 场周赛 (题目:5452-5455,这是参加过最坑的周赛,暴力n^2居然可以过)

    5452. 判断能否形成等差数列   给你一个数字数组 arr . 如果一个数列中,任意相邻两项的差总等于同一个常数,那么这个数列就称为 等差数列 . 如果可以重新排列数组形成等差数列,请返回 tru ...

  8. Prince and princess——需要优化的DP

    一个时间效率为o(nlogn)的算法求公共子序列的应用 Prince and princess 题目大意(已翻译 ) 在nxn的棋盘上,王子和公主玩游戏.棋盘上的正方形编号为1.2.3 ... n * ...

  9. 理解并使用CSS3中的单位rem vh vw vmin vmax

    rem vh vw vmin vmax做为CSS3中的新单位,其实都出来挺久的了,这篇文章将总结并理解下它们. rem 如果你给body设置了font-size字体大小,那么body的任何子元素的1e ...

  10. C++中复杂声明和定义的辨析

    0x00 前言 c++中的复杂声明往往令人无法下手,经常使人搞错这到底声明的是一个指针还是指针函数.但其实c++对于复杂声明是遵循一定的规则的,叫做变量名—>右--左-右规则. 0x01 规则解 ...