第二章 Java基础知识(下)
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可以省略。
注意:
- 关系表达式的取值可以是byte、short、int、char
- JDK5以后可以是枚举
- 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]);
}
}
}
常见异常:
- ArrayIndexOutOfBoundsException:数组下标越界异常
- 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 数据;
}
注意:
- 方法不能嵌套定义,但是方法可以嵌套调用
- 方法必须先定义,后调用,否则程序将报错
- 方法定义时,多个参数之间使用逗号(,)分隔
- void表示无返回值,return可省略也可不省
形参实参:
形参:方法定义中的参数
实参:方法调用中的参数
方法重载:指同一个类中定义的多个方法之间的关系,满足下列条件的多个方法相互构成重载
- 多个方法在同一个类中
- 多个方法具有相同的方法名
- 多个方法的参数不相同:参数类型或者数量不同
参数传递:
方法参数传递基本类型:基本数据类型的参数,形式参数的改变,不会影响实际参数
方法参数传递引用类型:对于引用类型的参数,形式参数的改变,影响实际参数的值
第二章 Java基础知识(下)的更多相关文章
- 第二章 Java基础知识(上)
2.1.注释 单行注释 // 注释内容 多行注释 /* 注释内容 */ 文档注释 /**注释内容 */ 2.2.关键字 定义:在Java语言中被赋予特殊含义的小写单词 分类: 2.3.标识符 定义:标 ...
- java面向对象编程——第二章 java基础语法
第二章 java基础语法 1. java关键字 abstract boolean break byte case catch char class const continue default do ...
- RxJava2实战--第二章 RxJava基础知识
第二章 RxJava基础知识 1. Observable 1.1 RxJava的使用三步骤 创建Observable 创建Observer 使用subscribe()进行订阅 Observable.j ...
- (转)JAVA AJAX教程第二章-JAVASCRIPT基础知识
开篇:JAVASCRIPT是AJAX技术中不可或缺的一部分,所以想学好AJAX以及现在流行的AJAX框架,学好JAVASCRIPT是最重要的.这章我给大家整理了一些JAVASCRIPT的基础知识.常用 ...
- 第二章Java基础之标识符
- JAVA基础第二章-java三大特性:封装、继承、多态
业内经常说的一句话是不要重复造轮子,但是有时候,只有自己造一个轮子了,才会深刻明白什么样的轮子适合山路,什么样的轮子适合平地! 我将会持续更新java基础知识,欢迎关注. 往期章节: JAVA基础第一 ...
- 第二十九节:Java基础知识-类,多态,Object,数组和字符串
前言 Java基础知识-类,多态,Object,数组和字符串,回顾,继承,类的多态性,多态,向上转型和向下转型,Object,数组,多维数组,字符串,字符串比较. 回顾 类的定义格式: [类的修饰符] ...
- Java基础知识了解
第一章 开发前言 一.java语言概述 Java是当下最流行的一种编程语言,至今有20年历史了.Java语言之父是James Gosling. Java是Sun公司(Stanford Universi ...
- 学习android学习必备的java基础知识--四大内部类
学习android必备的java基础知识--四大内部类 今天学习android课程,因为我的主专业是JAVA,但是兴趣班却有这其他专业的同学,学习android 需要具备一些java的基础知识,因此就 ...
随机推荐
- 老板急坏了,公司网站的 HTTPS 过期了
端午出去玩的时候,老板打电话说公司网站的 HTTPS 过期了,访问不了(见下图),要我立马升级一下.可惜我当时没带电脑,无能为力,可把老板急坏了. 没办法,急就先急着,只能等我有电脑了才能搞.点击高级 ...
- em(倍)与px的区别
在国内网站中,包括三大门户,以及“引领”中国网站设计潮流的蓝色理想,ChinaUI等都是使用了px作为字体单位.只有百度好歹做了个可调的表率.而 在大洋彼岸,几乎所有的主流站点都使用em作为字体单位, ...
- centos6.4 卸载 vim7.2 安装vim7.4
一.# rpm -qa|grep vim vim-minimal-7.2.-1.8.el6.x86_64 vim-enhanced-7.2.-1.8.el6.x86_64 vim-common-7.2 ...
- HTTPS 和 SSL/TLS 协议:密钥交换(密钥协商)算法及其原理
转自:https://blog.csdn.net/andylau00j/article/details/54583769 本系列的前一篇,咱们聊了“密钥交换的难点”以及“证书体系”的必要性.今天这篇来 ...
- Vue 项目推荐,Github 过万 Star
电鸭社区-远程工作-自由职业-兼职外包-自由从这开始 嗨,我是 Martin,也叫老王.不少小伙伴,说自己是转行.自学,没有项目,今天推荐一个 Vue 实战项目 还记得 Martin 仿写过在线 Ma ...
- Activity启动流程分析
我们来看一下 startActivity 过程的具体流程.在手机桌面应用中点击某一个 icon 之后,实际上最终就是通过 startActivity 去打开某一个 Activity 页面.我们知道 A ...
- MVC + EFCore 项目实战 - 数仓管理系统3 - 完成整体样式风格配置
上次课程我们新建了管理员的模板页. 本次我们就完善这个模板页,顺便加入样式和一些基本的组件,配置好整个项目的UI风格. 一.引入 共用的css和js文件 后端库用nuget, 前端库用libman ...
- Spring-Validation(数据校验) 你值得拥有
前言 最近看到很多童鞋在项目中的对请求参数的校验都用的if来判断各参数的属性,如: if(StringUtils.isBlank(username)){ return RR.exception(&qu ...
- day51 作业
用html搭建一个注册页面 <!DOCTYPE html> <html lang="en"> <head> <meta charset=& ...
- scrapy 基础组件专题(一):scrapy框架中各组件的工作流程
Scrapy 使用了 Twisted 异步非阻塞网络库来处理网络通讯,整体架构大致如下(绿线是数据流向): Scrapy主要包括了以下组件: 引擎(Scrapy)用来处理整个系统的数据流处理, 触发事 ...