JAVA学习day04

简介: 1、选择语句switch编写格式Switch( 表达式 ){Case 常量1: 要执行的语句;Break;Case 常量2: 要执行的语句;Break;Case 常量3: 要执行的语句;Break;Default: 要执行的语句;Break;...

1、选择语句switch
编写格式
Switch( 表达式 ){

Case 常量1:
    要执行的语句;
Break;

Case 常量2:
    要执行的语句;
Break;

Case 常量3:
    要执行的语句;
Break;

Default:
    要执行的语句;
Break;

}
执行流程:表达式,和case后面的常量进行比较
和哪个case后的常量相同,就执行哪个case后面的程序,遇到break,就全部结束;

2、case的穿透性
案例:星期1-5 工作日 星期6-7 输出休息日
case 1 case 2 case 3 case 4 case 5 输出结果相同

case后面的常量,和switch中数据相同,没有break,一直向下穿透
case后面没有break,程序就会一直向下穿透

3、数组
数据多了存数组(原因:数据太多,定义变量,容易造成代码重复)

定义数组容器

定义数组容器,要素,强制数据类型的语言
必须要有数据类型,大小,就是存储数据的个数
定义数组公式:
    数组类型 [] 变量名 = new 数据类型  [存储元素的个数]
    
    数据类型:数组中存储元素的数据类型
    []    表示数组的意思
    变量  自定义标识符
    
    New    创建容器关键字
    数据类型:数组中存储元素的数据类型
    []   表示数组的意思
    元素个数,就是数组中,可以存储多少个数据(恒定,数组是定长型)
    数组是一个容器:存储到数组中的每个元素,都有自己的额自动编号
    自动编号,最小值是0,最大值,长度-1
    自动编号专业名词,索引(index),下表,角标
    访问数组存储的元素,必须依赖于索引,公式  数组名[索引]
    
    JAVA提供了一个属性,操作索引的
    数组的一个属性,就是数组的长度,属性的名字  Length
    使用属性:   数组名.length   数据类型  Int
    
    数组的最小索引是0    最大索引是数组.length-1
     
    
    

4、JVM的内存划分

5、

其中:
arr引用类型,保存的数据,实质上是内存中的地址;

6、为数组的元素赋值
Arr[1]=5

7、数组的定义
数组的两个定义方式

数据类型[] 变量名 = new 数据类型[]{元素1,元素2,元素3} ;
Int[] arr =new int[] {1,2,3,4,5,6,7}

数据类型[] 变量名 ={匀速1,元素2,元素3};
//定义数组,直接大括号赋值这种方式推荐使用
int[]arr2={1,2,3,4,5,8};
System.out.println(arr2.length);//打印数组的长度
System.out.println(arr2[5]);//索引从0开始

8、数组的遍历

通过索引的方式将数组中的每个元素,分别获取出来
要依靠索引才能实现
//如下方式是遍历数组最常用的方式
for(inti=0;i<arr.length;i++){
System.out.println(arr[i]);
}

9、数组中常见的异常

数组的索引越界异常
空指针异常

10、数组获取最值得原理思想

1)定义变量,保存在数组中
Int max =arr[0];
2)max和数组中的其他元素进行比较
A 数组遍历
B max比其他索引上的元素小
   max记录下较大的数
3)数组遍历完成后
      max记录的就是数组的最大值
publicclassArrayDemo_5{
publicstaticvoidmain(String[]args){
//定义数组,Intleixing
int[]arr={5,2,3,5,8,9,0,4};

//定义变量,记录数组中0索引上的元素
intmax=arr[0];

//遍历数组,获取所有的元素,和变量max比较
for(inti=1;i<arr.length;i++){
//变量max,和数组中的每个元素进行比较
//如果Max小于了数组中的一个元素,将较大的元素赋值给max
if(arr[i]>max){
max=arr[i];

}

}
//遍历完成,变量max就是数组的最大值
System.out.println(max);
}
}


11、二维数组的定义





11、二维数组的定义和访问

12、二维数组的遍历

13、维数组的遍历求和
/*
二维数组的遍历求和
第一小组销售额为{11,12}万元
第二小组销售额为{21,22,23}万元
第三小组销售额为{31,32,33,34}万元。
每个小组就是一个数组,三个数组存储到一个数组中,形成二维数组
求和:
每个小组求和
所有元素求和
*/

publicclassArrayArrayDemo_3{
publicstaticvoidmain(String[]args){
int[][]arr={{11,12},{21,22,23},{31,32,33,34}};
//定义变量,保存2个求和的值
intsum=0;//所有元素的求和
intgroupSum=0;//每个一维数组的求和

for(inti=0;i<arr.length;i++){
for(intj=0;j<arr[i].length;j++){
//将一维数组的元素求和
groupSum+=arr[i][j];
}
System.out.println("每个小组总金额"+groupSum);

//将每个一维数组的总和在相加
sum+=groupSum;
//每个唯一数组求和,清空
groupSum=0;
}
System.out.println("本公司总金额"+sum);
}
}

14、随机点名器
packagecom.ghy.study;

/*
随机点名器:
1存储姓名
2.预览所有人的姓名
3.随机出一个人的姓名
*/
importjava.util.Random;
publicclassCallName{
publicstaticvoidmain(String[]args){
//存储姓名,姓名存储到数组中
//数组存储姓名,姓名的数据类型,String
String[]names={"张三","李四","王五","李蕾","韩梅梅","小名","老王","小华","约翰逊","爱丽丝"};

//预览:遍历数组,打印所有姓名
for(inti=0;i<names.length;i++){
System.out.println(names[i]);
}
System.out.println(names.length);
System.out.println("=============");

//随机出一个人的名
//利用随机数,生成一个整数,作为索引,到数组中找到对应的元素
Randomran=newRandom();
//随机数,范围必须是0-数组的最大索引
//nextInt是0-这个数,但不包含这个数
intindex=ran.nextInt(names.length);//index就是随机数,作为索引
System.out.println(names[index]);
}
}

image

目录
相关文章
|
3月前
|
编解码 Oracle Java
java9到java17的新特性学习--github新项目
本文宣布了一个名为"JavaLearnNote"的新GitHub项目,该项目旨在帮助Java开发者深入理解和掌握从Java 9到Java 17的每个版本的关键新特性,并通过实战演示、社区支持和持续更新来促进学习。
97 3
|
3月前
|
XML Java 编译器
Java学习十六—掌握注解:让编程更简单
Java 注解(Annotation)是一种特殊的语法结构,可以在代码中嵌入元数据。它们不直接影响代码的运行,但可以通过工具和框架提供额外的信息,帮助在编译、部署或运行时进行处理。
104 43
Java学习十六—掌握注解:让编程更简单
|
2月前
|
Java 大数据 API
14天Java基础学习——第1天:Java入门和环境搭建
本文介绍了Java的基础知识,包括Java的简介、历史和应用领域。详细讲解了如何安装JDK并配置环境变量,以及如何使用IntelliJ IDEA创建和运行Java项目。通过示例代码“HelloWorld.java”,展示了从编写到运行的全过程。适合初学者快速入门Java编程。
|
3月前
|
存储 SQL 小程序
JVM知识体系学习五:Java Runtime Data Area and JVM Instruction (java运行时数据区域和java指令(大约200多条,这里就将一些简单的指令和学习))
这篇文章详细介绍了Java虚拟机(JVM)的运行时数据区域和JVM指令集,包括程序计数器、虚拟机栈、本地方法栈、直接内存、方法区和堆,以及栈帧的组成部分和执行流程。
45 2
JVM知识体系学习五:Java Runtime Data Area and JVM Instruction (java运行时数据区域和java指令(大约200多条,这里就将一些简单的指令和学习))
|
2月前
|
JavaScript Java 项目管理
Java毕设学习 基于SpringBoot + Vue 的医院管理系统 持续给大家寻找Java毕设学习项目(附源码)
基于SpringBoot + Vue的医院管理系统,涵盖医院、患者、挂号、药物、检查、病床、排班管理和数据分析等功能。开发工具为IDEA和HBuilder X,环境需配置jdk8、Node.js14、MySQL8。文末提供源码下载链接。
|
3月前
|
小程序 Oracle Java
JVM知识体系学习一:JVM了解基础、java编译后class文件的类结构详解,class分析工具 javap 和 jclasslib 的使用
这篇文章是关于JVM基础知识的介绍,包括JVM的跨平台和跨语言特性、Class文件格式的详细解析,以及如何使用javap和jclasslib工具来分析Class文件。
60 0
JVM知识体系学习一:JVM了解基础、java编译后class文件的类结构详解,class分析工具 javap 和 jclasslib 的使用
|
3月前
|
前端开发 Java 应用服务中间件
Javaweb学习
【10月更文挑战第1天】Javaweb学习
39 2
|
3月前
|
存储 安全 Java
【用Java学习数据结构系列】探索顺序表和链表的无尽秘密(附带练习唔)pro
【用Java学习数据结构系列】探索顺序表和链表的无尽秘密(附带练习唔)pro
30 3
|
3月前
|
存储 安全 Java
【用Java学习数据结构系列】探索栈和队列的无尽秘密
【用Java学习数据结构系列】探索栈和队列的无尽秘密
37 2
|
3月前
|
存储 Java 编译器
【用Java学习数据结构系列】初识泛型
【用Java学习数据结构系列】初识泛型
25 2