Java基础知识总结(44)

(1)分支结构——Switch···case 语法: switch(expression){ case 1: //代码 break; case 2: //代码 break; ... default: }

        Java7之前 expression的类型只支持byte、short、int、charJava7之后添加了String和枚举switch分支语句的执行是先对expression求值,然后依次匹配case后的值,遇到匹配的值即执行对应的执行体如果所有的case标签后的值都不与expression表达式的值相等,则执行default标签后的代码块。注意考点:case后语句满足条件时继续执行、直到遇到break语句时再输出int i=3;switch(i) {case 1:System.out.println(1);case 2:System.out.println(2);case 3:System.out.println(3);case 4:System.out.println(4);break;default:System.out.println("没有匹配的值");}
(2)循环结构
​循环结构是指在满足某个循环条件的情况下,反复执行同一段代码,直到不满足循环条件为止。初始化语句:一个或多个语句,这些语句用来完成一些初始化工作,在循环开始之前执行循环条件:循环条件是一个布尔表达式,该表达式决定是否执行循环体循环体:这部分是循环的主题,如果循环条件允许,该代码块将被反复执行,如果这个代码块只有一条语句,则代码块的花括号可以省略。迭代语句:这部分在一次循环体执行结束后执行,在循环条件求值前执行,通常用于控制循环条件中的变量,使得循环在合适的时候结束。for :for(循环变量;循环条件;修改循环变量){//循环体}
​for(::)是合法的
​while:while(循环条件){//循环体}
​do...while:
​do{//循环体}while(循环条件);注意:while和do while的区别:while语句中先执行判断语句,为真执行循环体;do while 中先执行一遍循环体再执行判断,判断为真执行循环体,为假时跳出循环。 (3)使用break结束循环使用break完全结束一个循环,跳出循环体,不管是哪种循环,一旦循环体中遇到break,系统将完全结束该循环,开始执行循环结构以后的代码。
•package cn.bytecollege;
​public class ForDemo {
​public static void main(String[] args) {// TODO Auto-generated method stub
​int i;for(i = 0;i<=5;i++) {if(i==3) {System.out.print("");break;}System.out.println(i);//0 1 2}   }}当变量i的值变为3的时候,满足if条件判断,此时进入if分支结构,进入以后遇到break,此时跳出循环。break可以视为中断循环,即使循环还没有结束,也再不循环,直接结束,当然break也可以跳出多层循环。
(4)使用continue跳过此次循环continue的功能和break有点类似,区别是continue只是跳出此次循环,继续执行剩下的循环,并不是完全终止循环。package cn.bytecollege;
​public class ForDemo {
​public static void main(String[] args) {// TODO Auto-generated method stub
​int i;for(i = 0;i<=5;i++) {if(i==3) {System.out.print("");continue;}System.out.println(i);//0 1 2 4 5}}}
(5)循环嵌套当程序遇到循环嵌套是,如果外层循环的循环条件允许,则开始执行外层循环的循环体,而内层循环将被外层循环的循环体来执行,只是内层循环需要反复执行自己的循环体而已。当内层循环执行结束,且完成循环的循环体执行结束时,在再次计算外层循环的循环条件,决定是否再次执行外层循环的循环体。如:package cn.bytecollege;
​import java.util.Scanner;
​public class TriangleDemo {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.println("请输入行数:");int number = scanner.nextInt();scanner.close();    System.out.println();for(int i = 1;i<=number;i++) {for(int k = 0;k<number-i;k++) {System.out.print(" ");}   for(int j = 1;j<=2*i-1;j++) {                   System.out.print("*");}System.out.println();}System.out.println();}}(6)数组概念:具有相同数据类型按照一定次序排练的一组数据的集合。
​1. 存放在一个数组的元素必须数据类型相同,不能把不同类型的元素放进同一个数组。2. 按照一定次序排列,数组中的元素是有序的,这句话包含两层含义,第一:元素是有顺序的。也可以理解为每个数组元素都有一个编号,这个编号是连续的(我们通常把这个编号叫做数组的下标或者索引);第二:元素存放的顺序和取出的顺序是一致的,也就是说存放元素的顺序是10,20,30,40。那么取出的顺序也是10,20,30,40。3. 一组数据,一组数据是指元素的个数可以是0个,也可以是1个,也可以是多个,Java中允许数组中有0个元素,也就是我们所说的空数组。
(7)数组的声明数据类型[] 数组名;数据类型 数组名[];//通常不使用,容易造成混淆(8)数组的初始化   int[] ary = new int[] {1,2,3};//静态初始化int[] ary2 = {2,2,3};//静态初始化    int[] ary3 = new int[3];//动态初始化int[3] ary4 = new int[] {1,2,3};//错误示例1:int[] ary5 = new int[3] {1,2,3};//错误示例2:
​初始化完成后数组在内存中所占的空间将固定下来,数组的大小将不会被改变数组完成初始化后会在栈内存中开辟空间,其中存储的是堆内存中数组的首地址。
(9)数组的默认值当数组动态初始化后,JVM会给数组的元素赋默认值,规则如下:1. 整型的数组,默认值为0;2. 浮点型的数组,默认值为0.0;3. char类型的数组,默认值为'\u0000';4. boolean类型的数组,默认值为false5. 引用类型的数组,默认值为null//null指没有引用指向堆里面的任何区域
(10)冒泡排序算法
package cn.bytecollege;
​
import java.util.Arrays;
​
public class BubbleSort {
​public static void main(String[] args) {// TODO Auto-generated method stub
​int [] sortArray = {3,8,5,7,2,1};for(int i = 0;i<sortArray.length-1;i++) {for(int j = 0;j<sortArray.length-1-i;j++) {if(sortArray[j]>sortArray[j+1]) {int temp = sortArray[j];sortArray[j] = sortArray[j+1];sortArray[j+1] = temp;}}}System.out.println(Arrays.toString(sortArray));//[1, 2, 3, 5, 7, 8]}
}

今天

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/799441.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【STL】链表(list)

链表是一种物理存储单元上非连续、非顺序的存储结构&#xff0c;数据元素的逻辑顺序是通过链表中的指针链接次序实现的。 链表由一系列结点&#xff08;链表中每一个元素称为结点&#xff09;组成&#xff0c;结点可以在运行时动态生成。每个结点包括两个部分&#xff1a;一个…

uniapp项目问题及解决(前后端互联)

1.路由跳转的问题 uni.navigateTo&#xff08;&#xff09; 保留当前页面&#xff0c;跳转到应用内的某个页面&#xff0c;使用uni.navigateBack可以返回到原页面 uni.redirectTo&#xff08;&#xff09; 关闭当前页面&#xff0c;跳转到应用内的某个页面。 uni.reLaunch&…

MySQL-复杂SQL语句编写:子查询分析与练习

子查询 1. 由一个具体的需求&#xff0c;引入子查询2. 称谓的规范&#xff1a;外查询&#xff08;或主查询&#xff09;、内查询&#xff08;或子查询&#xff09;3. 子查询的分类4. 单行子查询4.1 单行操作符&#xff1a; ! > > < <4.2 子查询中的空值问题4.3 非…

揭开Spring Bean生命周期的神秘面纱

目录 一、Spring IOC 1.1 Spring IOC 的加载过程 二、Spring Bean 生命周期 2.1 实例化前置 2.2 实例化后置 2.3 属性赋值 2.4 初始化前置 2.5 初始化 2.6 初始化后置 2.7 Bean 销毁 Spring 是一个开源的企业级Java应用程序框架&#xff0c;它简化了企业级应用程序开…

开源数据湖iceberg, hudi ,delta lake, paimon对比分析

Iceberg, Hudi, Delta Lake和Paimon都是用于大数据湖(Data Lake)或数据仓库(Data Warehouse)中数据管理和处理的工具或框架,但它们在设计、功能和适用场景上有所不同。 Iceberg: Iceberg是用于大型分析表的高性能格式。Iceberg将SQL表的可靠性和简易性带入到大数据领域,同…

【java的本地锁到分布式锁介绍】

文章目录 1.java本地自带锁介绍及应用synchronized&#xff08;1&#xff09;synchronized原理和优化&#xff08;2&#xff09;synchronized作用&#xff08;3&#xff09;synchronized的使用 CAS(1) CAS原理&#xff08;2&#xff09;CAS和synchronized优缺点 lock 2.分布式锁…

idea常用配置

IDEA设置全局配置 参考&#xff1a;IDEA设置全局配置_idea如何打开一个项目,全局设置-CSDN博客 idea提交代码到git或svn上时&#xff0c;怎么忽略.class、.iml文件和文件夹等不必要的文件 参考&#xff1a;idea提交代码到git或svn上时&#xff0c;怎么忽略.class、.iml文件和文…

LeetCode-74. 搜索二维矩阵【数组 二分查找 矩阵】

LeetCode-74. 搜索二维矩阵【数组 二分查找 矩阵】 题目描述&#xff1a;解题思路一&#xff1a;先二分查找行&#xff0c;再二分查找列。解题思路二&#xff1a;暴力遍历&#xff0c;也能过。解题思路三&#xff1a;用python的in。 题目描述&#xff1a; 给你一个满足下述两条…

VSCODE目录树缩进调整

VSCode默认的缩进太小了&#xff0c;简直看不出来&#xff0c;很容易弄混目录。在设置里修改就行了。 修改后效果&#xff1a;

何为网络协议?一图知晓网络过程。

网络协议就是计算机之间沟通的语言 为了有效地交流&#xff0c;计算机之间需要一种共同的规则或协议&#xff0c; 就像我们和老外沟通之前&#xff0c;要先商量好用哪种语言&#xff0c; 要么大家都说中文&#xff0c;要么大家都说英语&#xff0c;这才能有效地沟通。 网络协…

04-springmvc-RequestContextHolder

一、获取request对象的四种方法 方法1、Controller中加参数来获取request 注意&#xff1a;只能在Controller中加入request参数。 一般&#xff0c;我们在Controller中加参数获取HttpServletRequest&#xff0c;如下所示&#xff1a; RestController RequestMapping("…

OSPF中配置静态路由负载分担实验简述

OSPF中配置静态路由负载分担 实验简述 在静态路由负载分担中&#xff0c;多个路由器被配置为共享负载的目标&#xff0c;以实现流量的均衡分配。 到达目的地有N条相同度量值的路径&#xff0c;默认值60&#xff0c;N条路由是等价路由&#xff0c;数据报文在N条链路上轮流发送。…

速盾:cdn原服务器地理位置

CDN&#xff08;Content Delivery Network&#xff09;是一种通过在不同地理位置部署服务器的技术&#xff0c;旨在提高网站的访问速度和稳定性。它将原始服务器内容复制到多个节点服务器中&#xff0c;这些节点服务器分布在全球各个地理位置&#xff0c;并根据用户的地理位置和…

使用iPhone/安卓手机代替门禁卡

文章目录 基础知识ID卡和IC卡ID卡技术IC卡技术IC卡加密方式手机NFC只能模拟IC卡&#xff0c;而不支持ID卡电梯卡可能使用滚动码验证方式&#xff0c;不支持使用手机模拟 &#xff08;IC类型&#xff09;门禁卡验证方式仅验证ID&#xff08;卡号&#xff09;验证ID分区信息 iPho…

【云开发笔记NO.28】数据中台的概述

数据中台的定义 在云开发中&#xff0c;数据中台是一个综合性的数据管理和服务平台&#xff0c;它集成了数据管理、数据治理、数据服务等多个功能&#xff0c;并基于云计算技术架构而建立。数据中台的核心目标是为企业提供稳定、高效、安全的数据支持和服务&#xff0c;进而推…

探索基于WebRTC的有感录屏技术开发流程

title: 探索基于WebRTC的有感录屏技术开发流程 date: 2024/4/7 18:21:56 updated: 2024/4/7 18:21:56 tags: WebRTC录屏技术屏幕捕获有感录屏MediaStream实时传输音频录制 第一章&#xff1a;技术原理 WebRTC&#xff08;Web Real-Time Communication&#xff09;是一种开放源…

Python中的 if __name__ == ‘__main__‘

一、if name ‘main’ 在Python的世界里&#xff0c;if name ‘main’:这行代码就像是派对的入口&#xff0c;它决定了哪些部分是只在当前这个“派对”&#xff08;或者说脚本&#xff09;中直接执行的&#xff0c;哪些部分是可以被其他“派对”&#xff08;或脚本&#xff…

【Vue】 Vue项目中的跨域配置指南

她坐红帐 面带浓妆 唢呐一声唱 明月光 这女子泪眼拜高堂 一拜天地日月 二拜就遗忘这一生 跪三拜红尘凉 庭院 大门锁上 杂乱的眼光 多喧嚷 这女子笑颜几惆怅 余生喜乐悲欢都无关 她眼中已无光 &#x1f3b5; 倪莫问《三拜红尘凉》 在前后端分离的项目开发中…

Java中的内存模型和例子

Java内存模型&#xff08;Java Memory Model, JMM&#xff09;是Java虚拟机&#xff08;JVM&#xff09;规范中定义的一种关于内存访问、共享变量在多线程之间的可见性、以及原子性、顺序性的规则。Java内存模型的目标是定义程序中各个共享变量的访问方式&#xff0c;以及如何在…

python实例1.2:创建一个简易的命令行地址簿程序,允许用户添加、删除、查找和编辑联系人(详解及其知识点拓展)

目录 一、基础&#xff1a;地址簿程序代码附带注释 二、基础&#xff1a;地址簿程序详细分析 三、拓展&#xff1a;地址簿程序拓展&#xff0c;如何实现在地址簿程序中持久化数据&#xff1f; 四、拓展&#xff1a;地址簿程序拓展代码详细分析 一、基础&#xff1a;地址簿程…