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

零基础学习Java 03

目录

数组

 动态初始化数组

静态初始化

数组的应用

数组两种典型的异常

 

 length关键字求出数组的长度

数组遍历在IDEA中输出快捷语句

对象数组

 

数组的遍历:foreach方法

二维数组

枚举(enum)


数组

1在方法中可以返回一个数组,但是在定义方法时类型要为数组类型;

​ 在方法中作为参数传入数组作为参数:

​ eg: public static void print(int[] array)

###:不管是作为参数还是返回值,传递的都是数组的地址!!!

2 数组在程序运行期间,长度不可以发生改变,如果一个数组给它**重新new了一个值则,则这个新的会覆盖旧的**;

​ eg:

​ int[] num = new int[3];

​ `num = new int[5]; //此时就将长度3 变成了5//

3 数组不能直接打印,因为这样打印出的是数组的所在内存地址;

4 打印和C语言一样;

 动态初始化数组


​ 格式:数据类型 [ ] 数组名称 = new 数组类型 [数组长度];

​ eg:int[] str = new int[10];

​ 也可以写成:

​ double[] str6;
​ str6 = new double[5];
使用动态初始化数组时:内部元素会有一个默认值;
 

静态初始化

​ 基本格式:数据类型 [ ] 数组名称 = new 数组类型 [ ] {元素1 ,元素2 ,元素3…};

​ eg:int[] str3 = new int[] {1,2,3,4,5,6,7,8};

​ 也可以写成:

			int[] str5;str5 = new int[]{5,6,2,8,5};

 

数组的应用

​ 如果将一个数组A等于另外一个数组B时,则相当于将该数组A的地址给了另外一个数组B,另外一个数组B的值也就等于了该数组A的值,如果**被赋值的数组B的值发生了改变,则原数组A的值也发生改变**;

		int[] num3 = {1,2,3,4};int[] num5;num5 = num3;//将num3的地址给了num5//num5[3] = 2;num5[2] = 3;//原数组该位置的值也发生了改变//System.out.println();for(int i=0;i<4;i++){System.out.print(num5[i]+"  ");}System.out.println();for(int i=0;i<4;i++){System.out.print(num3[i]+"  ");}

 

数组两种典型的异常

1:ArreyIndexOutofBoundsException

​ 就是一个数组应用时超出了数组定义的范围;

2:空指针异常:NullPointerException

​ 就是给了数组一个null空值,在之后并没有进行具体的new创建内容,从而报错;

 

 length关键字求出数组的长度

​ eg: int n = num.length; // n 是用来接收数组的长度,num是数组的名称//

 

数组遍历在IDEA中输出快捷语句

​ 格式:数组名 + “.” + for + 要进行循环的变量名称

​ eg:num.fori;

​ 会形成:for (int i = 0; i < num.length; i++)

 

对象数组

1:首先写一个标准类;

public class arrayObject {private String name;private int age;public arrayObject() {}public arrayObject(String name, int age) {this.name = name;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}
}

 2:创建对象数组;

public static void main(String[] args) {arrayObject[] str = new arrayObject[3];		//创建对象数组,其中arrayObject是创建的类的名称//arrayObject one = new arrayObject("aaa",10);	//创建对象,然后进行赋值//arrayObject two = new arrayObject("bbb",20);	//创建对象,然后进行赋值//arrayObject three = new arrayObject("ccc",30);  //创建对象,然后进行赋值//str[0] = one;	//将对象的地址传给对象数组//str[1] = two;	//将对象的地址传给对象数组//str[2] = three; //将对象的地址传给对象数组//for (int i = 0; i < 3; i++) {		//输出数组//System.out.print(str[i].getName()+"  ");System.out.println(str[i].getAge());}
}

 

数组的遍历:foreach方法

这只是一个使用方法名称,并不是一个关键字,是java为了方便遍历而弄的一种更加简单的方式。

格式:

​ for(int 循环变量 :数组){

​ System.out.println(循环变量);

​ }

public class Protect1{public static void main(String[] args) {int[] num = new int[]{5,2,4,1,9,6,8,7};for (int i:num) {System.out.print(i+" ");}}
}

二维数组

Java中二维数组最大的特征是它的每一行元素的个数可以不相等

 

1:定义

一定要记得除了最后一行,其它都要加【,】。数组结尾要加【;】。)

格式:

数组类型[ ] [ ] 数组名称 = {

​ { 第一行元素 },

​ { 第二行元素 },

​ …

​ { 第N行元素 }

} ;

2:获取数组的元素个数

​ 1:int 接收变量 = 数组名称 . length; // 输出二维数组的行数

​ 2:int 接收变量 = 数组名称 [ 行数 ] . length; //输出第n行的元素个数

3:调用输出

其实和C语言没啥区别;

for(int i =0;i<num1.length;i++){for (int j=0;j<num1[i].length;j++){System.out.print(num1[i][j]+" ");}System.out.println();
}

 

枚举(enum)

以下是枚举最简单的说明:

枚举在我看来更加像是一个存储自己想要存储的元素的集合;

写在主方法之前;

1:格式:enum 枚举名{ 要存入的各种值(如果是字符串不需要加双引号直接写就好)};

	eg: enum week{Mon,Tue,Wed,Thu,Fri,Sat,Sun};

#:最后的引号可以不加,但是如果其中含有方法,就必须要加;

2:枚举类型数据的调用:枚举名 接受数据变量名 = 枚举名 . 枚举中具体的元素;

	eg: week day = week.Mon;

 

 

 

 

相关文章:

零基础学习Java 03

目录 数组 动态初始化数组 静态初始化 数组的应用 数组两种典型的异常 length关键字求出数组的长度 数组遍历在IDEA中输出快捷语句 对象数组 数组的遍历&#xff1a;foreach方法 二维数组 枚举(enum) 数组 1在方法中可以返回一个数组&#xff0c;但是在定义方法时类型要…...

PG数据库超时退出 TCP设定

数据库在使用psql工具以及jdbc进行远程连接时&#xff0c;在经过一定时间之后报错-致命错误&#xff1a; terminating connection due to client no input timeout。 排查安全参数&#xff0c;hg_clientnoinput 0&#xff1b; 问题原因 操作系统TCP相关参数设置不正确&…...

每日学术速递4.4

CV - 计算机视觉 | ML - 机器学习 | RL - 强化学习 | NLP 自然语言处理 Subjects: cs.CL 1.Baize: An Open-Source Chat Model with Parameter-Efficient Tuning on Self-Chat Data 标题&#xff1a;Baize&#xff1a;一种对自聊天数据进行参数高效调优的开源聊天模型 作者…...

ChatGPT将引发大量而普遍的网络安全隐患

ChatGPT是一个基于人工智能的语言生成模型&#xff0c;它可以在任何给定的时间&#xff0c;使用自然语言生成技术&#xff0c;生成文本、对话和文章。它不仅可以被用来编写文本&#xff0c;还可以用来编写语言、生成图像和视频。目前&#xff0c; ChatGPT已广泛应用于语言翻译、…...

购买学生护眼台灯几瓦最好?有哪些推荐护眼灯

现今的近视已然成为普遍现象&#xff0c;而且有往低年龄段发展的趋势。究其原因&#xff0c;长期使用电子设备是一方面&#xff0c;还是就是我们日常工作、学习、生活没有很好的护眼环境&#xff0c;很多时候我们不经意的错误习惯&#xff0c;久而久之就有可能诱发近视。对孩子…...

什么是 SYN 攻击?如何避免 SYN 攻击?

SYN 攻击方式最直接的表现就会把 TCP 半连接队列打满&#xff0c;这样当 TCP 半连接队列满了&#xff0c;后续再在收到 SYN 报文就会丢弃&#xff0c;导致客户端无法和服务端建立连接。 避免 SYN 攻击方式&#xff0c;可以有以下四种方法&#xff1a; 调大 netdev_max_backlo…...

数据分析练习——学习一般分析步骤

目录 一、准备工作 二、导入库和数据 1、导入必要的库&#xff1a; 2、模拟数据 三、数据分析过程 1、读取数据&#xff1a; 2、数据概览和描述性统计&#xff1a; 2.1、查看数据概览&#xff1a; 2.2、查看描述性统计&#xff1a; 3、数据清洗&#xff1a; 3.1、处…...

Linux环境下挂载exfat格式U盘,以及安装exfat文件系统

目录Linux一般支持的文件系统有&#xff1a;1.安装exfat软件安装工具环境以及exfat件依赖的系统软件下载exfat源码包并安装2.挂载exfat格式U盘查看U盘在那个目录执行挂载命令Linux一般支持的文件系统有&#xff1a; 文件系统名称详情ext专门为Linux核心做的第一个文件系统&…...

网格布局grid

grid网格定义 css网格是一个用于web的二维&#xff08;行和列的组合&#xff09;布局&#xff0c;利用网格&#xff0c;你可以把内容按照行和列的格式进行排版&#xff0c;另外&#xff0c;可以轻松的实现复杂布局。 1.定义网格和fr单位 1.1定义网格 在父元素加上&#xff…...

《扬帆优配》环境更优!这类资金,迎利好!

近来&#xff0c;第一批主板注册制新股连续发动申购&#xff0c;网下询价中&#xff0c;组织出资者频繁现身打新商场&#xff0c;公募基金、社保基金、养老金、保险资金等中长时间资金&#xff0c;成为全面注册制下新股发行商场的重要参加者。 多位业内人士对此表明&#xff0c…...

RK3568平台开发系列讲解(内存篇)内存管理的相关结构体

🚀返回专栏总目录 文章目录 一、硬件架构二、Linux 物理内存管理结构体沉淀、分享、成长,让自己和他人都能有所收获!😄 📢应用程序想要使用内存,必须得先找操作系统申请,我们有必要先了解一下 Linux 内核怎么来管理内存,这样再去分析应用程序的内存管理细节的时候,…...

如何理解二叉树与递归的关系

二叉树一般都是和递归有联系的&#xff0c;二叉树的遍历包括了前序&#xff0c;后序&#xff0c;中序&#xff0c;大部分题目只要考虑清楚应该用那种遍历顺序&#xff0c;然后特殊情况的条件&#xff0c;题目就会迎刃而解。 1. 先来说说二叉树的遍历方式 其实二叉树的遍历很简…...

CSS 高级技巧

目录 1.精灵图 1.1为什么需要精灵图 1.2 精灵图&#xff08;sprites&#xff09;的使用 2.字体图标 2.1字体图标的产生 2.2字体图标的优点 2.3字体图标的下载 2.4字体图标的引入 2.5字体图标的追加 1.精灵图 1.1为什么需要精灵图 一个网站往往回应用很多的小背景图像作…...

ToBeWritten之MIPS汇编基础铺垫

也许每个人出生的时候都以为这世界都是为他一个人而存在的&#xff0c;当他发现自己错的时候&#xff0c;他便开始长大 少走了弯路&#xff0c;也就错过了风景&#xff0c;无论如何&#xff0c;感谢经历 转移发布平台通知&#xff1a;将不再在CSDN博客发布新文章&#xff0c;敬…...

MySQL数据库对数据库表的创建和DML操作

1&#xff0e;创建表user&#xff0c;其中包含id、name、password,其中主键自增&#xff0c;name&#xff0c;唯一是可变长度&#xff0c;最大长度是30&#xff0c;密码&#xff0c;可变长度&#xff0c;最大长度为20&#xff0c;不为空。 以下是创建符合要求的user表的SQL语句…...

【PCB专题】PCB 阻焊层(solder mask)与助焊层(paste mask)有什么区别

一块标准的印刷电路板 (PCB) 通常需要两种不同类型的“罩层 (mask)”。其中阻焊层 (solder mask) 和助焊层 (paste mask) 都是“罩层”,但在 PCB 制造过程中,它们分别用于两个完全不同的部分,因此也存在很大的区别。 阻焊层定义 阻焊层定义了电路板外表面的保护材料涂抹范围…...

ThreeJS-纹理旋转、重复(十一)

旋转 文档&#xff1a;three.js docs 关键代码&#xff1a; //设置旋转中心,默认左下角 docColorLoader.center.set(0.5,0.5); //围绕旋转中心逆时针旋转45度 docColorLoader.rotation Math.PI/4; 完整代码: <template> <div id"three_div"></div>…...

CSDN——Markdown编辑器——官方指导

CSDN——Markdown编辑器——官方指导欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题&#xff0c;有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表…...

DN-DETR调试记录

博主在进行DINO实验过程中&#xff0c;发现在提取了3个类别的COCO数据集中&#xff0c;DINO-DETR对car,truck的检测性能并不理想&#xff0c;又通过实验自己的数据集&#xff0c;发现AP值相差不大且较为符合预期&#xff0c;因此便猜想是否是由于DINO中加入了负样本约束导致背景…...

ASP消防网上考试系统设计与实现

本文以ASP和Access数据库来开发服务器端&#xff0c;通过计算机网络技术实现了一个针对消防部队警官的网上考试系统。为了。提高消防部队的工作效率和信息化水平&#xff0c;体现消防部队信息化进程的特色&#xff0c;开发一个适合消防部队的计算机网上考试系统是非常必要的。鉴…...

从WWDC看苹果产品发展的规律

WWDC 是苹果公司一年一度面向全球开发者的盛会&#xff0c;其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具&#xff0c;对过去十年 WWDC 主题演讲内容进行了系统化分析&#xff0c;形成了这份…...

day52 ResNet18 CBAM

在深度学习的旅程中&#xff0c;我们不断探索如何提升模型的性能。今天&#xff0c;我将分享我在 ResNet18 模型中插入 CBAM&#xff08;Convolutional Block Attention Module&#xff09;模块&#xff0c;并采用分阶段微调策略的实践过程。通过这个过程&#xff0c;我不仅提升…...

无法与IP建立连接,未能下载VSCode服务器

如题&#xff0c;在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈&#xff0c;发现是VSCode版本自动更新惹的祸&#xff01;&#xff01;&#xff01; 在VSCode的帮助->关于这里发现前几天VSCode自动更新了&#xff0c;我的版本号变成了1.100.3 才导致了远程连接出…...

java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别

UnsatisfiedLinkError 在对接硬件设备中&#xff0c;我们会遇到使用 java 调用 dll文件 的情况&#xff0c;此时大概率出现UnsatisfiedLinkError链接错误&#xff0c;原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用&#xff0c;结果 dll 未实现 JNI 协…...

【磁盘】每天掌握一个Linux命令 - iostat

目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat&#xff08;I/O Statistics&#xff09;是Linux系统下用于监视系统输入输出设备和CPU使…...

el-switch文字内置

el-switch文字内置 效果 vue <div style"color:#ffffff;font-size:14px;float:left;margin-bottom:5px;margin-right:5px;">自动加载</div> <el-switch v-model"value" active-color"#3E99FB" inactive-color"#DCDFE6"…...

Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器

第一章 引言&#xff1a;语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域&#xff0c;文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量&#xff0c;支撑着搜索引擎、推荐系统、…...

[Java恶补day16] 238.除自身以外数组的乘积

给你一个整数数组 nums&#xff0c;返回 数组 answer &#xff0c;其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法&#xff0c;且在 O(n) 时间复杂度…...

中医有效性探讨

文章目录 西医是如何发展到以生物化学为药理基础的现代医学&#xff1f;传统医学奠基期&#xff08;远古 - 17 世纪&#xff09;近代医学转型期&#xff08;17 世纪 - 19 世纪末&#xff09;​现代医学成熟期&#xff08;20世纪至今&#xff09; 中医的源远流长和一脉相承远古至…...

省略号和可变参数模板

本文主要介绍如何展开可变参数的参数包 1.C语言的va_list展开可变参数 #include <iostream> #include <cstdarg>void printNumbers(int count, ...) {// 声明va_list类型的变量va_list args;// 使用va_start将可变参数写入变量argsva_start(args, count);for (in…...