当前位置: 首页 > article >正文

Java基础(5)- Java代码笔记2

目录

一、键盘录入_Scanner

1.输入:导包 -> 创建对象 -> 调用方法

2.next和nextLine区别

二、Random随机数

1.生成随机数

 2.在指定范围内随机生成一个数

三、Switch语句

四、一维数组

1.数组定义

2.获取数组长度

3.遍历数组

3.输出数组

 4.数组常见异常

5.练习

五、内存图

1.java内存划分


一、键盘录入_Scanner

1.输入:导包 -> 创建对象 -> 调用方法

import java.util.Scanner; //导包
public class Demo01HelloWorld {
    public static void main(String[] args) {
        Scanner a = new Scanner(System.in); //创建对象
        Scanner b = new Scanner(System.in);
        a.nextInt(); //输入整型(int)
        b.next(); //输入字符串(String)
    }
}

2.next和nextLine区别

next遇到空格和回车结束

nextLine遇到回车结束

public class Demo02Scanner {
    public static void main(String[] args) {
        Scanner sc1 = new Scanner(System.in);
        String data1 = sc1.next();
        System.out.println(data1);
        Scanner sc2 = new Scanner(System.in);
        String data2 = sc2.nextLine();
        System.out.println(data2);
    }
}

二、Random随机数

1.生成随机数

public class Demo01Random {
    public static void main(String[] args) {
        Random rd = new Random();
        int data = rd.nextInt();
        System.out.println("data = " + data);
    }
}

 2.在指定范围内随机生成一个数

nextInt(int bound) -> 在 0-(bound-1) 随机一个数

public class Demo02Random {
    public static void main(String[] args) {
        Random rd = new Random();
        int data = rd.nextInt(9);
        System.out.println("data = " + data);
    }
}

生成901-1000的随机数 

int data1 = rd.nextInt(100) + 901; //生成901-1000的随机数
System.out.println("data1 = " + data1);

三、Switch语句

case具有穿透性,如果不用break终止,则一直运行到default(包括)。

四、一维数组

1.数组定义

a.动态初始化

数据类型[] 数组名 = new 数据类型[长度]
数据类型 数组名[] = new 数据类型[长度]

等号左边的数据类型:规定了数组中只能存储什么类型的数据

[]:代表是数组,一个[]代表一维数组,两个[][]代表二维数组

数组名:小驼峰式

等号右边的数据类型和等号左边相同

[长度]:指定数组长度,规定了数组最多能存多少个数据

b.静态初始化:定义数组直接给值 -> 不推荐

数组类型[] 数组名 = new 数据类型[]{元素1,元素2...}
数组类型 数组名[] = new 数据类型[]{元素1,元素2...}

c.静态初始化简化形式 -> 推荐

数据类型[] 数组名 = {元素1,元素2...}

2.获取数组长度

数组名.length

3.遍历数组

快速生成for循环和变量i

3.输出数组

直接输出数组名,会输出数组在内存中的地址。

地址值:数组在内存中的唯一标识。

数组中的默认值:整数:0 / 小数:0.0 / 字符:'\u0000' -> 对应int值为0 / 布尔:false / 引用:null

 4.数组常见异常

a.数组索引越界异常 ArrayIndexOutOfBoundsException

b.空指针异常 NullPinterException

5.练习

练习一:随机产生10个【0-100】之间的数,统计既是3又是5,但不是7的倍数的个数

//练习:随机产生10个【0-100】之间的数,统计既是3又是5,但不是7的倍数的个数
public class Demo01array {
    public static void main(String[] args) {
        Random rd = new Random();
        int count = 0;
        int[] arr = new int[10];
        for (int i = 0; i < arr.length; i++) {
            arr[i] = rd.nextInt(100);
            if (arr[i] % 7 == 0)
                break;
            if (arr[i] % 3 == 0 && arr[i] % 5 == 0) {
                System.out.println("zhi:" + arr[i]);
                count++;
            }
        }
        System.out.println("total:" + count);
    }
}

五、内存图

1.java内存划分

a.栈(重点)(Stack):主要运行方法,方法的运行都在栈内运行,运行完毕后,需要“弹栈”。

b.堆(重点)(Heap):保存的是对象,数组,每new一次都会在堆内存中开辟空间,并为这个空间分配一个地址值。堆中的数据都是有默认值的。

整数:0 / 小数:0.0 / 字符:'\u0000' -> 对应int值为0 / 布尔:false / 引用:null

c.方法区(重点)(Method Area):代码的“预备区”,记录了类的信息以及方法的信息,方法区中主要保存class文件及其中的信息,代码运行之前,需要先进内存(方法区)

d.本地方法栈(了解)(Native Method Stack):专门运行native方法(本地方法)

本地方法可以理解为堆对Java功能的扩充

有很多功能,java语言实现不了,所以需要依靠本地方法(c语言编写)完成,例如:读写

e.寄存器(了解)(pc register) -> 和CPU有关

2.数组指向同一空间则更改同一块区域

int[] arr1 = new int[3];
arr1[1] = 10;

int[] arr2 = arr1;
arr2[1] = 100; //更改的同一地址,值变为100.


http://www.kler.cn/a/283484.html

相关文章:

  • C++算法练习-day40——617.合并二叉树
  • 自由学习记录(21)
  • 卓胜微嵌入式面试题及参考答案(2万字长文)
  • LLMs 如何处理相互矛盾的指令?指令遵循优先级实验
  • 区块链技术在慈善捐赠中的应用
  • 读数据质量管理:数据可靠性与数据质量问题解决之道03数据目录
  • 面向对象分析和设计OOA和OOD的区别和联系?
  • 服务器被渗透的表现及检测方法
  • windows安全软件之火绒杀毒的密码忘记后处理
  • erlang学习:用OTP构建系统3,应用程序服务器
  • SQL 优化实践:从慢查询到高性能更新
  • Sinc Function介绍
  • 【Python机器学习】NLP词频背后的含义——距离和相似度
  • 【二叉树进阶】--- 前中后序遍历非递归
  • python之zip函数
  • 【大模型系列篇】词向量 - 从Word2Vec到ELMo
  • C# 匿名函数 delegate(参数...){ }
  • LeetCode 热题100-41 二叉树的层序遍历
  • 如何使用 Pytest 进行测试
  • SSRF和CSRF实战复现
  • 【自动驾驶】决策规划算法概述
  • Kafka消息积压的典型场景及解决方案
  • SSRF以及CSRF
  • Vue3.0项目实战(二)——大事件管理系统登录注册功能实现
  • 快讯 | Midjourney开拓硬件领域:苹果前经理加盟助力发展
  • 防御Nginx负载均衡中的拒绝服务攻击:策略与实践