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

news2024/12/26 9:26:09

目录

一、键盘录入_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.coloradmin.cn/o/2085560.html

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

相关文章

[Backbone]CAS-ViT: Convolutional Additive Self-attention Vision Transformers

1. BaseInfo TitleCAS-ViT: Convolutional Additive Self-attention Vision Transformers for Efficient Mobile ApplicationsAdresshttps://arxiv.org/pdf/2408.03703Journal/Time202408Author清华Codehttps://github.com/Tianfang-Zhang/CAS-ViTRead20240829TableVisonTrans…

【健康问答】揭秘五大‘天然降压果‘,高血压患者常吃,血压稳稳降!-曹启富医生

曹医生&#xff0c;听说有些水果对高血压患者有特别的益处&#xff0c;能帮助降低血压&#xff0c;是真的吗&#xff1f; 曹医生说&#xff1a;确实如此。在日常饮食中&#xff0c;合理摄入一些富含特定营养素的水果&#xff0c;对于辅助控制高血压有着积极的作用。今天&#…

苹果手机系统崩溃了怎么办?详细修复指南助你快速恢复

苹果手机以其卓越的性能和稳定的系统赢得了众多用户的青睐&#xff0c;但偶尔也会出现系统崩溃的情况&#xff0c;让人措手不及。当面对苹果手机系统崩溃时&#xff0c;不必过于担心&#xff0c;本文将为你提供一套详细的修复指南&#xff0c;帮助你快速恢复手机的正常使用。 …

AI 网关零代码解决 AI 幻觉问题

作者&#xff1a;邢云阳&#xff0c;Higress Contributor 前言 什么是 AI Agent 随着大模型技术的快速发展&#xff0c;越来越多的公司在实际业务中落地了大模型应用。但是人们逐渐发现了大模型能力的不足。例如&#xff1a;由于大模型的训练数据是有限的&#xff0c;因此一…

身体发出的“高压”警报,曹启富医生教你识别高血压症状

高血压&#xff0c;这一慢性“隐形杀手”&#xff0c;正悄然影响着越来越多人的健康。随着生活节奏的加快和不良生活习惯的积累&#xff0c;其发病率逐年攀升&#xff0c;成为威胁人类健康的重要疾病之一。今天&#xff0c;我们有幸邀请到心脑血管科专家曹启富医生&#xff0c;…

摩博会15天倒计时!ONEOS 恒石智能强强联手,即将携多款MODEL系列芯片打造的智能仪表璀璨亮相

随着2024年第二十二届中国国际摩托车博览会&#xff08;摩博会&#xff09;的临近&#xff0c;国内领先的操作系统提供商ONEOS与智能硬件领域的佼佼者恒石智能宣布强强合作&#xff0c;将于9月13日至16日在重庆国家会展中心共同揭开多款MODEL系列芯片驱动的彩屏仪表的神秘面纱。…

JavaWeb - Vue项目

创建 命令行 vue create project 图形化界面 vue ui 目录结构 启动 命令行 npm run serve 端口配置 Vue的组件文件以.vue结尾 每个组件有三个部分组成&#xff1a; <template>&#xff1a;模板部分&#xff0c;由它生成HTML代码<script>&#xff1a;控制…

揭秘SQL注入漏洞:为何它成为攻击者的首选?

自Web应用程序开始广泛使用数据库以来&#xff0c;SQL注入漏洞便因其隐蔽性强、潜在危害巨大以及实施门槛相对较低等特性&#xff0c;成为了网络攻击者频繁利用的安全弱点之一。尽管这一漏洞已经存在多年&#xff0c;它仍然是企业组织在数字化转型过程中面临的最为普遍且危险的…

vue2项目 预渲染 Unable to prerender all routes 错误排查与解决方案

前言 今天在做我的Vue2项目的SEO优化时&#xff0c;我采用了prerender-spa-plugin与vue-meta-info的一套官网前端SEO预渲染方案。 但是&#xff0c;在打包时&#xff0c;报错Unable to prerender all routes。尝试了很多种网上方案&#xff0c;都没有成功&#xff0c;最后从源…

用代码和android studio创建flutter项目的区别差异

用代码创建的项目&#xff0c;在lib目录下&#xff0c;不会出现dictory文件夹&#xff0c;操作起来有些不便。

智慧灯塔,照亮企业AI Agent实施明路

AI Agent是能够感知环境&#xff0c;基于目标进行决策并执行动作的智能化应用。随着大模型能力增强以及RAG等技术的成熟&#xff0c;AI Agent的能力得到了质的飞跃。这些模型赋予了AI Agent更接近人类的思维能力&#xff0c;再联动各类工具和组件&#xff0c;使得AI Agent在处理…

虚拟机 Linux 安装 JDK(Vagrant 之二 CentOS7 篇)

本文已首发于&#xff1a;秋码记录 我们已然在上一篇讲解了如何快速的搭建一个Linux虚拟机&#xff0c;通过vagrant命令化工具&#xff0c;我们很方便的构筑了虚拟机&#xff0c;那么&#xff0c;我们所搭建出来的Linux系统主要是为了调试产品&#xff0c;以便产品在部署生产环…

电路笔记(PCB): kicad freerouting自动布线

安装插件 使用自动布线 会自动运行&#xff0c;等待布线完成即可。也可以布到一定程度&#xff0c;单击界面&#xff0c;切换到手动布线。 CG 一个替代的 freerouting 插件 https://forum.kicad.info/t/an-alternative-freerouting-plugin/52736/3

微信视频号的小视频怎么保存?视频号下载助手最实在的下载教程

最近一些朋友在私信问我视频号的视频怎么用下载助手保存到手机相册呢&#xff1f;虽说网络工具很多&#xff0c;但这个工具算是最稳定的工具之一。 软件介绍 工具名称&#xff1a;视频下载助手 工具扩展&#xff1a;视频号下载助手还拥有多种名称如&#xff1a;视频下载小助…

【开端】基于nginx部署的具有网关的web日志分析

一、绪论 基于nginx部署的具有网关的web日志分析&#xff0c;我们可以分析的日志有nginx的access.log &#xff0c;网关的日志和应用的日志 二、日志分析 1、nginx日志 参数 说明 示例 $remote_addr 客户端地址 172.17.0.1 $remote_user 客户端用户名称 -- $time_lo…

在 CentOS 7 上安装 LNMP 环境:MySQL 8.0、PHP 8.3 和 ThinkPHP 8.0

在 CentOS 7 上安装 LNMP 环境&#xff0c;并配置 MySQL 8.0、PHP 8.3 以及 ThinkPHP 8.0&#xff0c;能够为你的 web 应用程序提供一个强大的开发和运行环境。下面是详细的安装步骤&#xff1a; --- ## 在 CentOS 7 上安装 LNMP 环境&#xff1a;MySQL 8.0、PHP 8.3 和 Thin…

鸿蒙( Beta5版)开发实战:基于AVCodecKit【音视频解码】

1&#xff1a;场景描述 场景&#xff1a;基于VideoCoder的音视频解码及二次处理播放。 首先导入选择器picker模块&#xff0c;使用PhotoViewPicker方法拉起图库选择视频文件&#xff0c;将视频文件传递到native侧使用Demuxer解封装器进行解封装&#xff0c;再使用OH_VideoDec…

83、 项目的发布和容器的重启策略

0、强制删除 [rootmaster01 ~]# kubectl run --imagenginx:1.22 nginx1 pod/nginx1 created [rootmaster01 ~]# kubectl get pod NAME READY STATUS RESTARTS AGE nginx1 0/1 ContainerCreating 0 1s [rootmaster01 ~]# kubectl delete…

Mysql基础练习题 577.员工奖金 (力扣)

577.编写解决方案&#xff0c;报告每个奖金 少于 1000 的员工的姓名和奖金数额。 建表插入数据&#xff1a; Create table If Not Exists Employee (empId int, name varchar(255), supervisor int, salary int) Create table If Not Exists Bonus (empId int, bonus int) Tr…

Android 查看代码行数(命令行和Statistic插件)

目录 一、命令行 1.1 使用 1.2 结果分析 二、Statistic 2.1 下载 Statistic 插件 2.2 设置 Statistic 插件 2.3 使用 Statistic 插件 相关推荐 一、命令行 find . -name "*.java" -o -name "*.kt" | xargs wc -l find .&#xff1a;从当前目录&am…