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

【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力

引言&#xff1a; 在人工智能快速发展的浪潮中&#xff0c;快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型&#xff08;LLM&#xff09;。该模型代表着该领域的重大突破&#xff0c;通过独特方式融合思考与非思考…...

在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用

1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...

【7色560页】职场可视化逻辑图高级数据分析PPT模版

7种色调职场工作汇报PPT&#xff0c;橙蓝、黑红、红蓝、蓝橙灰、浅蓝、浅绿、深蓝七种色调模版 【7色560页】职场可视化逻辑图高级数据分析PPT模版&#xff1a;职场可视化逻辑图分析PPT模版https://pan.quark.cn/s/78aeabbd92d1...

PAN/FPN

import torch import torch.nn as nn import torch.nn.functional as F import mathclass LowResQueryHighResKVAttention(nn.Module):"""方案 1: 低分辨率特征 (Query) 查询高分辨率特征 (Key, Value).输出分辨率与低分辨率输入相同。"""def __…...

实战设计模式之模板方法模式

概述 模板方法模式定义了一个操作中的算法骨架&#xff0c;并将某些步骤延迟到子类中实现。模板方法使得子类可以在不改变算法结构的前提下&#xff0c;重新定义算法中的某些步骤。简单来说&#xff0c;就是在一个方法中定义了要执行的步骤顺序或算法框架&#xff0c;但允许子类…...

嵌入式面试常问问题

以下内容面向嵌入式/系统方向的初学者与面试备考者,全面梳理了以下几大板块,并在每个板块末尾列出常见的面试问答思路,帮助你既能夯实基础,又能应对面试挑战。 一、TCP/IP 协议 1.1 TCP/IP 五层模型概述 链路层(Link Layer) 包括网卡驱动、以太网、Wi‑Fi、PPP 等。负责…...

用js实现常见排序算法

以下是几种常见排序算法的 JS实现&#xff0c;包括选择排序、冒泡排序、插入排序、快速排序和归并排序&#xff0c;以及每种算法的特点和复杂度分析 1. 选择排序&#xff08;Selection Sort&#xff09; 核心思想&#xff1a;每次从未排序部分选择最小元素&#xff0c;与未排…...

基于Java项目的Karate API测试

Karate 实现了可以只编写Feature 文件进行测试,但是对于熟悉Java语言的开发或是测试人员,可以通过编程方式集成 Karate 丰富的自动化和数据断言功能。 本篇快速介绍在Java Maven项目中编写和运行测试的示例。 创建Maven项目 最简单的创建项目的方式就是创建一个目录,里面…...

CentOS 7.9安装Nginx1.24.0时报 checking for LuaJIT 2.x ... not found

Nginx1.24编译时&#xff0c;报LuaJIT2.x错误&#xff0c; configuring additional modules adding module in /www/server/nginx/src/ngx_devel_kit ngx_devel_kit was configured adding module in /www/server/nginx/src/lua_nginx_module checking for LuaJIT 2.x ... not…...

第21节 Node.js 多进程

Node.js本身是以单线程的模式运行的&#xff0c;但它使用的是事件驱动来处理并发&#xff0c;这样有助于我们在多核 cpu 的系统上创建多个子进程&#xff0c;从而提高性能。 每个子进程总是带有三个流对象&#xff1a;child.stdin, child.stdout和child.stderr。他们可能会共享…...