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. (私人收藏)古风PPT高级灰蓝传艺

    古风PPT高级灰蓝传艺 https://pan.baidu.com/s/1ADgTfif8i6JqKORLXhTHHgn05p

  2. 利用IDEA搭建JDK源码阅读环境

    利用IDEA搭建JDK源码阅读环境 首先新建一个java基础项目 基础目录 source 源码 test 测试源码和入口 准备JDK源码 下图框起来的路径就是jdk的储存位置 打开jdk目录,找到sr ...

  3. 原生开发、H5开发、混合移动开发的优缺点

    一.原生开发(Native App开发) 原生开发,是在Android.IOS等移动平台上利用官方提供的开发语言.开发类库.开发工具进行App开发.比如Android是利用Java.Eclipse.A ...

  4. TJOI2018 数学计算 题解

    题目 小豆现在有一个数 \(x\) ,初始值为 \(1\) . 小豆有 \(Q\) 次操作,操作有两种类型: \(m\): \(x=x×m\),输出 \(x\mod M\) : \(pos\): \( ...

  5. REST,RPC和GraphQL应用场景,WebHooks、WebSocket、HTTP Streaming应用场景。

    一.请求--响应API. 请求--响应类的API的典型做法是,通过基于HTTP的Web服务器暴露一个/套接口.API定义一些端点,客户端发送数据的请求到这些端点,Web服务器处理这些请求,然后返回响应 ...

  6. day50 前端入门

    目录 一.引子 1 前端学习的历程 2 浏览器与http协议 2.1 浏览器窗口输入网址回车后发生了几件事 2.2 http协议 二.html入门 1 标签的分类 2 head内常用的标签 3 bod ...

  7. python3利用cryptography 进行加密和解密

    我们的日常工作中,一定会遇到需要加密的数据,比如:密码.私密信息... ... 我们不仅要对他们进行加密,更需要对他们进行解密,因为毕竟我们的用户应该不会看得懂加密过后的字符串吧!!! 在python ...

  8. [斯坦福大学2014机器学习教程笔记]第六章-决策界限(decision boundary)

    这一节主要介绍的是决策界限(decision boundary)的概念,这个概念可以帮组我们更好地理解逻辑回归的假设函数在计算什么. 首先回忆一下上次写的公式. 现在让我们进一步了解这个假设函数在什么 ...

  9. ffplay源码编译

    ffplay是ffmpeg源码中一个自带的开源播放器组件,支持本地视频文件的播放以及在线流媒体播放,很多商业播放器都是基于ffplay定制而来的.ffplay中的代码充分利用了ffmpeg中的函数库, ...

  10. 009.Nginx缓存及配置

    一 浏览器缓存 1.1 缓存概述 缓存对于Web至关重要,尤其对于大型高负载Web站点.Nginx缓存可作为性能优化的一个重要手段,可以极大减轻后端服务器的负载.通常对于静态资源,即较少经常更新的资源 ...