当前位置: 首页 > 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;开发一个适合消防部队的计算机网上考试系统是非常必要的。鉴…...

C语言结构体内存对齐原理与实践

1. 结构体内存布局基础在C语言中&#xff0c;结构体&#xff08;struct&#xff09;是一种将不同类型的数据组合成一个整体的复合数据类型。理解结构体在内存中的实际存储方式&#xff0c;对于编写高效、可移植的代码至关重要。让我们从一个简单的例子开始&#xff1a;struct S…...

造相-Z-Image实战手册:基于Z-Image的AIGC版权合规提示词生成规范

造相-Z-Image实战手册&#xff1a;基于Z-Image的AIGC版权合规提示词生成规范 1. 项目概述与核心价值 造相-Z-Image是一款专为RTX 4090显卡优化的本地化文生图系统&#xff0c;基于通义千问官方Z-Image模型构建。这个项目最大的特点是将强大的AI图像生成能力带到了个人电脑上&…...

COMSOL 薄膜型声学超材料是利用薄膜结构单元在声波激励下的反共振特性,实现高于质量隔声定律...

COMSOL 薄膜型声学超材料是利用薄膜结构单元在声波激励下的反共振特性&#xff0c;实现高于质量隔声定律的隔声 STL隔声量 隔声系数 消声系数【1】薄膜材料本身需有较大弹性&#xff0c;且在低厚度情况下有良好的抗拉压性能&#xff0c;综合选取硅橡胶材料&#xff1b; 【2】附…...

HOOI算法里的‘skip’参数到底在干嘛?深入TensorLy源码讲透Tucker分解迭代过程

HOOI算法中的skip参数机制解析&#xff1a;从数学原理到TensorLy实现 当你在实现高阶正交迭代&#xff08;HOOI&#xff09;算法进行Tucker分解时&#xff0c;是否曾被multi_mode_dot函数中那个神秘的skip参数困扰过&#xff1f;这个看似简单的参数背后&#xff0c;实际上隐藏着…...

嵌入式SD卡文件处理轻量级工具库LC_SDTools

1. LC_SDTools 库概述LC_SDTools 是一个面向嵌入式 SD 卡文件系统应用的轻量级工具库&#xff0c;专为解决裸机或 RTOS 环境下 SD 卡文件操作中高频缺失的基础能力而设计。其核心定位并非替代 FatFs、LittleFS 或 ChibiOS FAT 模块等完整文件系统栈&#xff0c;而是作为上层应用…...

FastbootEnhance:Windows上最直观的Fastboot工具箱与Payload提取器

FastbootEnhance&#xff1a;Windows上最直观的Fastboot工具箱与Payload提取器 【免费下载链接】FastbootEnhance A user-friendly Fastboot ToolBox & Payload Dumper for Windows 项目地址: https://gitcode.com/gh_mirrors/fa/FastbootEnhance 还在为复杂的Fastb…...

维普检测升级被卡延毕?2026论文降AI急救包:4招人工微调SOP与5大工具硬核横评

论文初稿快要交了&#xff0c;维普却突然搞了个大动作&#xff0c;把系统给升级了。说实话&#xff0c;这事真挺让人头疼的&#xff0c;有人前两天查还是绿的&#xff0c;以为稳了&#xff0c;结果升级完再一测&#xff0c;AI率直接飙红。 但别慌&#xff0c;也别怀疑自己是不…...

I2C协议详解:从基础原理到工程实践

1. I2C协议基础与核心设计思想I2C&#xff08;Inter-Integrated Circuit&#xff09;总线是Philips公司&#xff08;现NXP&#xff09;在1980年代开发的一种同步、半双工串行通信协议。作为嵌入式系统中最常用的总线之一&#xff0c;I2C以其简洁的两线制&#xff08;SDA数据线S…...

5个理由告诉你为什么Anime4K是动画视频超分的最佳选择

5个理由告诉你为什么Anime4K是动画视频超分的最佳选择 【免费下载链接】Anime4K A High-Quality Real Time Upscaler for Anime Video 项目地址: https://gitcode.com/gh_mirrors/an/Anime4K Anime4K是一套开源的实时动画视频超分辨率算法&#xff0c;专门为提升动画内容…...

Mojo调用Python生态的7种方式,第4种连PyTorch官方文档都没写!——混合编程兼容性白皮书首发

第一章&#xff1a;Mojo与Python混合编程全景概览Mojo 是一种兼具 Python 语法亲和力与系统级性能的现代编程语言&#xff0c;专为 AI 基础设施和高性能计算场景设计。它原生兼容 Python 生态&#xff0c;允许开发者在同一个项目中无缝调用 Python 模块、复用 NumPy/Torch 接口…...