Java学习 (二)关键字、标识符、数组

news2025/4/10 17:50:08

一、关键字

我们第一章案例中有很多关键字,比如class、public、static、void等,这些关键字依旧被java定义好了,可以拿来用,不需要死记硬背,按照官方文档查询即可

#官方文档
https://docs.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html
常用关键字

二、标识符

  上面的关键字的定义好的,那么标识符就是我们自定义的,通常来说我们称之为变量

比如说我们在定义class类的时候,是不是都是随便起名 比如class  xxx  这个就是变量(标识符)  但是标识符的定义需要遵循一定的命名规则,如下

1、 标识符命名规则

由26个英文字母大小写  0-9   下划线_   或者$ 组成
不可以数字开头
不可以使用关键字,但是能包含关键字
java中严格区分大小写,长度无限制
标识符不能包含空格

2、标识符命名格式

数据类型  变量名  = 变量值

案例

char gender  变量初始化  #java语言必须要先定于变量名,才能使用
gender = ‘男’  变量赋值

3、基本数据类型

整型  byte  short  int long
浮点型 float  double
字符型 chart
布尔型   boolean
#引用数据类型,现在不用了解

类  class
数组 array
接口  interface
枚举   enum
注解  annotation
记录   record
1、整型的数据范围

计算机存储单位

2、浮点类型范围

浮点数  不适合在精确小数点的环境,比如银行,舍弃的小数点也是很多钱

BigDecimal 来替换浮点

3、字符型

4、布尔值

4、运算符规则

当容量小的数据类型和容量大的数据类型做运算时,结果自动转换为容量大的数据类型

案例

int i1 = 10
long l1 = i1
float f1 = l1
double d1 = f1

 此时的容量小或者大,不是说内存空间的大小,而是表示数据范围的大小,long(8字节)  float(4字节),int 是4字节可以把数据赋值给long 8字节,float 比long的范围还要大,那么long可以赋值给float

三、数组

数组是多个相同类型数据,按照一定顺序排序的集合,并使用一个名字命名,并通过编号的方式对这些数据统一管理

1、数组定义

案例1 数组定义 初始化值
int num1 = 10;
int num2;
num2 = 20

#声明数组
double[] prices;

#声明什么new什么 初始化步骤
prices = new double[]{1.1,2.2,3.3} #初始化 并赋值
 案例2
String[] fods;
foods = new String[]{"你好","你好2","你好3"}
案例3
#不指定数组元素 指定长度
String[] foods =  new String[4]; #如果不带花括号,可以直接写数字
                                 #表示能存放的大小,后续在添加数组的值

案例1和案例2 是静态,数组变量的初始化与数组元素的操作同时进行
案例3 是动态的  #数组变量的赋值与数组元素赋值操作分开

案例1和案例2定义的值就是数组的长度

小结
数组一旦初始化完成,数组的长度就确定了,并且不可更改

静态定义 写花括号里
int[] arr1 = new int[]{1,2,3,4}
动态 写大括号里
int arr[] = new int[4]

2、数组元素调用

1、获取索引位值

int[] arr1 = new int[]{1,2,3,4}

#调用
arr1[0]  #从0 开始
arr1[1]
arr1[2]
arr1[3]

2、给索引位赋值

int[] arr1 = new int[4]

#赋值
arr1[0] = 555
arr1[0] = 666

3、获取数组长度

int[] arr1 = new int[4]

#获取数组容量大小
arr1.length

4、如何遍历数组

int[] arr1 = new int[4]
for (int i = 0; i <= 4; i ++){
      System.out.println(arr1[i])
}

或者
for (int i = 0; i <= prices.length; i ++){
      System.out.println(arr1[i])
}

5、数组元素默认初始化值

int[] arr1 = new int[4]
System.outprintln(arr1[0])

此时默认值是什么

整型    0
浮点型 0.0
字符型  0 
字符串   null
布尔类型  false

3、多维数组格式

#定义一维数组
int[] arr1 = new int[]{1,2,3};

#定义二维数组 静态
int[][] arr2 = new int[][]{{1,2,3},{4,5,6}};

#定义动态二维数组
#可以定义3个子数组(元素)
#每个子数组里面可以放4个元素
String[][] arr3 = new String[3][4]; 


#动态二维数组2
#将第二个置空
#置空表示没设置上线,写入的时候根据写入的元素决定
String[][] arr3 = new String[3][]; 

关于数组的写法  

int[][] arr5 = 
int[] arr5[] =
int arrt5[][] =

这3种写法都是堆的


类型推断
#写的时候如果是在一行,并且带有值的时候
#可以把右边的new int[][] 去掉,也是可以的
int[][] arr2 = {{1,2,3},{4,5,6}};

二维数组的调用

int[][] arr2 = {{1,2,3},{4,5,6}};

#调用内层元素
arr2[0][0]  #第一个数组的第一个元素
arr2[1][2]  #第二个数组的第三个元素2

#我们调用的时候如果不指定内存元素
#只指定第一个数组,那么只会打印数组的内存地址
arr2[1]

#如果是普通数据升级为二维数组
arr4[0]   = new int[4]  #给数组添加一个子数组

二维数组的长度

#定义二维数组 静态
int[][] arr2 = new int[][]{{1,2,3},{4,5,6}};


arr2.length  是2 因为有2个元素
arr2[0].length  是3 因为数组1有3个元素

如何遍历二维数组

int[][] arr2 = new int[][]{{1,2,3},{4,5,6}};


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

二维数组的默认值

#动态初始化方法1
int[][] arr2 = new int[3][2]

#外层元素默认值
System.out.println(arr2[0]) 内存地址值
System.out.println(arr2[0])
#内层元素默认值
System.out.println(arr2[0][]) //0



#动态初始化方法2
int[][] arr2 = new int[3][]


#外层元素默认值
System.out.println(arr2[0]) //null
#内层元素默认值
System.out.println(arr2[0][]) //报错,空指针,因为光有栈名称,没有堆的具体数

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1841205.html

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

相关文章

高速公路收费图片分析系统深入理解

当今社会&#xff0c;随着交通运输业的快速发展&#xff0c;高速公路已成为人们出行的重要选择。而高速公路收费系统作为保障道路可持续运营的重要组成部分&#xff0c;其效率和准确性对于保障道路畅通和交通安全至关重要。近年来&#xff0c;随着技术的不断进步&#xff0c;高…

elasticsearch的安装和配置

单节点安装与部署 我们通过docker进行安装 1.docker的安装 如果以及安装了docker就可以跳过这个步骤。 首先更新yum: yum update安装docker: yum install docker查看docker的版本&#xff1a; docker -v此时我们的docker就安装成功了。 2.创建网络 我们还需要部署kiban…

【VMware】VMware虚拟机安装_配置_使用教程

一、准备工作 1、下载VMware软件&#xff1a;访问VMware官方网站&#xff0c;下载适合你操作系统的VMware Workstation Pro安装包。 下载地址&#xff1a;VMware Desktop Hypervisors for Windows, Linux, and Mac 2、准备操作系统镜像文件&#xff1a;根据你想要在虚拟机中安…

读AI新生:破解人机共存密码笔记06人工智能生态系统

1. 深蓝 1.1. “深蓝”的胜利虽然令人印象深刻&#xff0c;但它只是延续了几十年来显而易见的趋势 1.2. 国际象棋算法的基本设计是由克劳德香农在1950年提出的 1.2.1. 这一基本设计在20世纪60年代初实现了重大改进 1.2.2. 最优秀的国际象棋程序的等级评分稳步提高&#xff…

数据分析第十二讲 数据可视化入门(一)

数据可视化入门&#xff08;一&#xff09; 在完成了对数据的透视之后&#xff0c;我们可以将数据透视的结果通过可视化的方式呈现出来&#xff0c;简单的说&#xff0c;就是将数据变成漂亮的统计图表&#xff0c;因为人类对颜色和形状会更加敏感&#xff0c;然后再进一步解读…

ChinaTravel成流量密码,景区如何打造视频监控管理平台提升旅游体验

随着中国经济的飞速发展和人民生活水平的持续提高&#xff0c;旅游已经成为越来越多人休闲放松的首选方式。近期&#xff0c;随着互联网的普及和社交媒体的兴起&#xff0c;以及免签政策带火入境游&#xff0c;“ChinaTravel”已成为社交网络上的一大流量密码&#xff0c;吸引了…

数学建模基础:非线性模型

目录 前言 一、非线性方程组 二、非线性规划 三、微分方程模型 四、非线性模型的应用 五、实例示范&#xff1a;传染病传播模型 实例总结 五、总结 前言 非线性模型用于描述变量之间的非线性关系&#xff0c;相比线性模型&#xff0c;其数学形式更为复杂&#xff0c;但…

操作系统真象还原:输入输出系统

第10章-输入输出系统 这是一个网站有所有小节的代码实现&#xff0c;同时也包含了Bochs等文件 10.1 同步机制–锁 10.1.1 排查GP异常&#xff0c;理解原子操作 线程调度工作的核心内容就是线程的上下文保护&#xff0b;上下文恢复 。 根本原因是访问公共资源需要多个操作&…

[Linux] 版本控制

git是一个开源的分布式版本控制系统 早期&#xff0c;每做一个就备份一下 后来&#xff0c;自动保存 一个软件多人开发

YOLOv10改进 | 注意力篇 | YOLOv10引入EMAttention(EMA)注意力

1. EMA介绍 1.1 摘要:在各种计算机视觉任务中说明了通道或空间注意机制在产生更可辨别的特征表示方面的显着有效性。 然而,通过通道降维来建模跨通道关系可能会给提取深度视觉表示带来副作用。 本文提出了一种新型高效的多尺度注意力(EMA)模块。 着眼于保留每个通道的信息…

《Windows API每日一练》5.1 键盘基础

本节我们讲述关于键盘的一些基础知识。当我们按下一个键盘按键时&#xff0c;会产生一个键盘按键消息。这一点你能确定吗&#xff1f;假如是一个菜单快捷键消息&#xff0c;或者是一个子窗口控件消息呢&#xff1f;这就超出了本节讨论的范围&#xff0c;我们将在菜单和子窗口控…

零编程数据可视化展示:十个简易案例!

数据可视化是呈现数据内在价值的最终手段。数据可视化实例利用各种图表和图形设计手段&#xff0c;合乎逻辑地展示复杂而不直观的数据。为了让用户直观清楚地了解他们想要的数据及其比较关系&#xff0c;数据可视化实例的呈现至关重要。即时设计整理了10个数据可视化实例&#…

OceanBase 列存中多列过滤性能解析

今天有同事问我&#xff0c;列存大宽表场景下&#xff0c;如果在多个列上有等值过滤条件&#xff0c;OceanBase 的性能是不是无法满足要求&#xff1f; Hi 晓楚&#xff0c;帮评估个OTS替换场景 大概1亿大宽表&#xff0c;查询姿势就是任意字段的组合&#xff0c;进行等值查询g…

使用Docker在Mac上部署OnlyOffice,预览编辑word、excel、ppt非常好

前端编辑word、ppt文档&#xff0c;开源免费方案并没有找到合适的&#xff0c;像wps、石墨文档都是自研的方案。实现过程中wps采用的svg方案&#xff0c;而石墨文档采用的是canvas&#xff0c;它们均是自己来实现编辑器&#xff0c;不依赖浏览器提供的编辑器&#xff08;conten…

【调试笔记-20240619-Windows-Typescripts中类型不匹配的解决方法】

调试笔记-系列文章目录 调试笔记-20240619-Windows-Typescripts中类型不匹配的解决方法 文章目录 调试笔记-系列文章目录调试笔记-20240619-Windows-Typescripts中类型不匹配的解决方法 前言一、调试环境操作系统&#xff1a;Windows 10 专业版调试环境调试目标 二、调试步骤搜…

【数据结构】选择题

在数据结构中&#xff0c;从逻辑上可以把数据结构分为&#xff08;线性结构和非线性结构&#xff09; 当输入规模为n时&#xff0c;下列算法渐进复杂性中最低的是&#xff08;&#xff09; 时间复杂度 某线性表采用顺序存储结构&#xff0c;每个元素占4个存储单元&#xf…

【笔记】打卡01 | 初学入门

1 基本介绍 MindSpore Data&#xff08;数据处理层&#xff09; ModelZoo&#xff08;模型库&#xff09; MindSpore Science&#xff08;科学计算&#xff09;&#xff0c;包含了业界领先的数据集、基础模型、预置高精度模型和前后处理工具 MindSpore Insight&#xff08;可视…

【stm32-新建工程-HAL库版本】

stm32-新建工程-HAL库版本 ■ HAL库版本目录■ Drivers■ Middlewares 文件夹&#xff0c; 同寄存器版本一样。■ Output 文件夹&#xff0c; 同寄存器版本一样。■ Projects 文件夹&#xff0c; 同寄存器版本一样。■ User 文件夹 ■ HAL库版本目录 ■ Drivers ① &#xff0c…

Vitis Accelerated Libraries 学习笔记--OpenCV 安装指南

目录 1. 简介 2. 安装过程 2.1 安装准备 2.2 常见错误 2.2.1 核心共享库报错 3. 通过实例测试 4. 总结 1. 简介 使用Vitis Vision Library Vitis 视觉库&#xff0c;为什么要安装opencv库&#xff1f; 在使用Vitis Vision Library时&#xff0c;安装OpenCV库是因为许…

前端 CSS 经典:边框转圈动画效果

前言&#xff1a;首先我们要知道 css 动画只对数值类的 CSS 属性起作用。要实现边框转圈动画效果&#xff0c;实际就是渐变背景的旋转。但是在以前&#xff0c;渐变背景是不支持动画的。现在我们可以利用浏览器新出的 Houdini API 来实现这个动画效果。Houdini API 特别强大&am…