Java基础学习(3)

一 判断和循环语句

1.1 顺序结构

顺序结构是Java默认的执行流程,按照代码顺序,从上到小依次进行

1.2 分支结构

1.2.1 if语句

第一种语法格式:

在这里插入图片描述
执行流程:

  • 首先计算关系表达式的值
  • 如果关系表达式的值为true就执行语句体
  • 如果关系表达式的值为false就不执行语句体
  • 继续执行后面的其他语句

第二种语法结构:

在这里插入图片描述
执行流程:

  • 首先计算关系表达式的值
  • 如果关系表达式的值为true就执行语句体1
  • 如果关系表达式的值为false就执行语句体2
  • 继续执行后买你的代码

1.2.2 switch

在这里插入图片描述
执行流程:

  • 首先计算表达式的值
  • 依次和case后面的值进行比较,如果有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束
  • 如果所有的case后面的值和表达式的值都不匹配,就会执行default里面的语句体,然后结束整个switch语句

注意

  • 表达式:(将要匹配的值) 取值为byte、short、int、char。JDK5以后可以是枚举,JDK7以后可以是String。
  • case:后面跟的是要和表达式进行比较的值 (被匹配的值)
  • break:表示中断,结束的意思,用来结束switch语句
  • default:表示所有情况都不匹配的时候,就执行该处的内容和if语句的else相似。
  • case后面的值只能是字面量,不能是变量
  • case给出的值不允许重复

如果没有加上break,就会产生穿透,会继续向下依次进行表达式,直到遇到break

1.2.3 for循环

在这里插入图片描述
执行流程

    1. 执行初始化语句
    1. 执行条件判断语句,看其结果是true还是false
      如果是false,循环结束
      如果是true,执行循环体语句
    1. 执行条件控制语句
    1. 回到 2 继续执行条件判断语句

1.2.4 while循环语句

在这里插入图片描述
在这里插入图片描述

回文函数

  • 需求:给你一个整数X。
    如果x是一个回文整数,打印 true ,否则,返回 false
  • 解释:回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数
  • 例如,121 是回文,而123 不是
import java.util.Scanner;

public class exerciseXunhuan {
    /*需求:给你一个整数X。
如果x是一个回文整数,打印 true ,否则,返回 false
解释:回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数
例如,121 是回文,而123 不是
    * */
    public static void main(String[]args){
        System.out.println("请输入一个整数");
        //获取到输入的值
        Scanner sc = new Scanner(System.in);
        int num = sc.nextInt();
        //设置一个变量去保存num初始值,便于最后的比较
        int temp = num;
        //定义一个变量去接收返回的逆序数
        int x= 0;
        while (num != 0){
            int ge = num%10;
            //改变每一次进入当前循环的值,使得每次进入都获取到原来数的前一位的上一位数
            num /= 10;
            //逆序数
            x= x*10 + ge;
        }
        System.out.println(x);
        if(x==temp){
            System.out.println(true);
        }else{
            System.out.println(false);
        }
    }
}

1.2.5 do…while循环

在这里插入图片描述
先执行前面的代码,后判断,如果为假,就跳出循环,如果为真,就继续循环

二 数组

2.1 什么是数组

数组指的是一种容器,可以用来存储同种数据类型的多个值

注意:

建议:容器类型与存储类型一致
容器在存储的时候会进行隐式转换

2.2 数组的定义

在这里插入图片描述

2.3 数组的初始化

  1. 静态初始化:

就是在内存中,为数组开辟空间,并将数据存入容器中的过程

第一种:格式: 数据类型 数组名 = new 数据类型 [] {元素1,元素2,元素3......};

int arr = new int [] {1,2,6,3};

(建议)
第二种:格式: 数据类型 数组名 [] = {元素1 , 元素2,..........};

int arr [] = {1,2,56,2,5};
  1. 数组动态初始化
    格式: 数据类型 数组名 = new 数据类型 [数组长度]
int arr = new int [5];

动态初始化 与 静态初始化区别

动态初始化:手动指定数组长度,由系统给出默认初始化值
只明确元素个数,不明确具体数值,推荐使用动态初始化

静态初始化:手动指定数组元素,系统会根据元素个数,计算出数组的长度
需求中已经明确了要操作的具体数据,直接静态初始化即可。

2.4 数组的访问

格式: 数组名 [索引];

索引:也叫下标,角标,是从0开始逐渐递增的,连续不断的
在这里插入图片描述

数组遍历

public class busssss {
    public static  void  main(String[]args){
        int arr [] = {1,4,6,2,52,5,6};
        for(int i = 0 ; i<arr.length;i++){
            System.out.println(arr[i]);
        }
    }
}

三 Java内存分配

在这里插入图片描述
注意:
从JDK8开始,取消方法区,新增元空间。把原来方法区的多种功能进行拆分有的功能放到了堆中,有的功能放到了元空间中。

  1. 栈区:方法运行时使用的内存,比如main方法运行,进入方法栈中执行
  2. 堆区:存储对象或者数组 , new来创建的,都存储在堆内存
  3. 方法区:存储可以运行的class文件
  4. 本地方法栈:JVM在使用操作系统功能的时候使用,和我们开发没有用
  5. 寄存器: 给CPU用的,和开发无关

在这里插入图片描述

数组内存图

在这里插入图片描述

两个数组指向同一个空间

因为他们指向的都是同一个地址空间,所以当其中一个发生了改变,另外一个也会发生改变

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值