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

一、关键字

我们第一章案例中有很多关键字,比如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][]) //报错,空指针,因为光有栈名称,没有堆的具体数

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

docker-compose设置永久启动、自动重启

步骤一 找到 docker-compose.yml 文件 步骤二 vim 打开文件 找到 image: PS&#xff1a;就是为了对齐格式 步骤三 在其下方添加&#xff1a; restart: always而后保存即可

打开nginx连接的php页面报错502

目录 问题描述&#xff1a; 原因&#xff1a; 1. 使用 Unix 域套接字&#xff08;Unix Socket&#xff09; 区别和优势&#xff1a; 2. 使用 TCP/IP 套接字 区别和优势&#xff1a; 如何选择 扩展&#xff1a;Rocky_Linux9.4安装PHP的步骤&#xff1a; 使用Remi存储库…

Wifi通信协议:WEP,WPA,WPA2,WPA3,WPS

前言 无线安全性是保护互联网安全的重要因素。连接到安全性低的无线网络可能会带来安全风险&#xff0c;包括数据泄露、账号被盗以及恶意软件的安装。因此&#xff0c;利用合适的Wi-Fi安全措施是非常重要的&#xff0c;了解WEP、WPA、WPA2和WPA3等各种无线加密标准的区别也是至…

通过防抖动代码解决ResizeObserver loop completed with undelivered notifications.

通过防抖动代码解决ResizeObserver loop completed with undelivered notifications. 一、报错内容二、解决方案解释&#xff1a; 一、报错内容 我通过el-tabs下的el-tab-pane切换到el-table出现的报错&#xff0c;大致是渲染宽度出现了问题 二、解决方案 扩展原生的 Resiz…

Android 应用加固与重签名—使用AndroidStudio自带工具 apksigner

由 AndroidStudio 生成的release版本的app有自己的签名&#xff0c;但当应用加固后会删除原签名&#xff0c;需要重新签名。 一、加固方式&#xff1a; 使用基础版的腾讯云&#xff08;乐固&#xff09;进行免费加固&#xff0c;上传软件后等待在线加固完成后下载 apk 即可。…

vue3+ts+vite集成eslint

项目中安装eslint yarn add eslint -Deslint初始化 npx eslint --init按照下方操作即可 安装typescript-eslint/parser yarn add typescript-eslint/parser -D安装vite-plugin-eslint2 yarn add vite-plugin-eslint2 -D配置vite-plugin-eslint2 // vite.config.ts import …

钡铼技术BL104在环境监测站多协议采集保障数据全面准确

随着工业化和城市化进程的加快&#xff0c;环境污染问题日益严重&#xff0c;环境监测站在保护生态环境、保障公众健康中的作用变得越来越重要。钡铼技术PLC物联网关BL104&#xff0c;为环境监测站提供了一种高效、可靠的多协议数据采集解决方案&#xff0c;保障了监测数据的全…

如何实现对文件发送全生命周期的外发管理?

在日常工作中&#xff0c;我们需要经常和企业外部的机构或者个人&#xff0c;发送一些企业内部的文档或者图纸等资料。但企业在文件外发管理上&#xff0c;仍存在一定漏洞&#xff0c;有些员工会通过一些手段&#xff0c;将重要核心文件数据发过去&#xff0c;包括但不仅限于以…

【数据结构(邓俊辉)学习笔记】二叉搜索树02——查找、插入和删除

文章目录 1.概述2. 查找2.1 查找&#xff1a;算法2.2 查找&#xff1a;理解2.3 查找&#xff1a;实现2.4 查找&#xff1a;语义 3. 插入3.1 插入&#xff1a;算法3.2 插入&#xff1a;实现 4. 删除4.1 删除&#xff1a;框架4.2 删除&#xff1a;单分支4.3 删除&#xff1a;双分…

MySQL----redo log重做日志原理及流程

重做日志 redo log&#xff1a;重做日志&#xff0c;用于记录事务操作的变化&#xff0c;确保事务的持久性。redo log是在事务开始后就开始记录&#xff0c;不管事务是否提交都会记录下来&#xff0c;在异常发生时&#xff08;如数据持久化过程中掉电&#xff09;&#xff0c;…

笔记-python里面的xlrd模块详解

那我就一下面积个问题对xlrd模块进行学习一下&#xff1a; 1.什么是xlrd模块&#xff1f; 2.为什么使用xlrd模块&#xff1f; 3.怎样使用xlrd模块&#xff1f; 1.什么是xlrd模块&#xff1f; ♦python操作excel主要用到xlrd和xlwt这两个库&#xff0c;即xlrd是读excel&…

成都百洲文化传媒有限公司助力商家扬帆远航

在数字经济的浪潮中&#xff0c;电商行业如日中天&#xff0c;成都百洲文化传媒有限公司正是这一领域的佼佼者。作为一家专注于电商服务的传媒公司&#xff0c;百洲文化以其专业的服务、创新的理念和卓越的成果&#xff0c;在业内树立了良好的口碑&#xff0c;成为众多商家信赖…

大数据实训室建设可行性报告

一、建设大数据实训室的背景与意义 随着信息技术的飞速发展&#xff0c;大数据已成为推动社会进步和经济发展的重要力量。中高职院校作为技能型人才培养的摇篮&#xff0c;承担着为社会输送大数据领域高素质、高技能人才的重要任务。因此&#xff0c;建设大数据实训室&#xf…

OKR:2024年目标和关键成果常见问题

什么是目标和关键结果&#xff08;OKR&#xff09;&#xff1f; 目标和关键结果&#xff08;#OKR#&#xff09;是一种由结果驱动的目标制定方法。在企业中&#xff0c;OKR经常被用来指导基于结果的成功。使用结果而不是任务作为驱动力&#xff0c;OKRs 鼓励通过度量指标对实现成…

Android 查询及获取应用程序 Package 及 Acticity 名称的方法

一、通过命令查询和获取应用的Package及Acticity &#xff08;一&#xff09;通过命令查询应用包名及安装信息 以下是常用命令&#xff1a; 命令形式作用adb shell pm list packages查询系统中所有应用的包名adb shell pm list packages -s查询系统应用包名adb shell pm lis…

onnx进阶算子优化

一、定义 如何保证pytorch 模型顺利转为onnx. 前言pytorch 算子是如何与onnx 算子对齐的&#xff1f;Asinh 算子出现于第 9 个 ONNX 算子集。PyTorch 在 9 号版本的符号表文件中是怎样支持这个算子的&#xff1f;BitShift 算子出现于第11个 ONNX 算子集。PyTorch 在 11 号版本…

Harbor本地仓库搭建004_Harbor配置管理功能_分布式分发功能_仓库管理_用户管理_垃圾清理_审查服务_项目定额---分布式云原生部署架构搭建00

然后我们再看一下配置管理,这里主要有个认证模式 这里我们是数据库,其实就是我们安装的postgresql 可以看到还有LDAP对吧,这个其实就是自己公司如果有 LDAP服务器,那么可以对接过来,那么,这个时候 再登录harbor的时候,就可以直接使用公司的,LDAP来管理,所有的用户了,其实就是…

电脑桌面图标大小怎么调整?多种方法图文教程【全】

随着数字化生活的深入&#xff0c;电脑桌面图标的大小调整成为了我们日常使用中经常需要面对的问题。无论是为了更清晰地查看文件内容&#xff0c;还是为了美化桌面布局&#xff0c;掌握调整图标大小的方法都显得尤为重要。电脑桌面图标大小怎么调整&#xff1f;本文将为您提供…

为什么要选择华为 HCIE-Security 课程?

2020 年我国网络安全市场规模达到 680 亿元&#xff0c;同比增长 25%。随着对网络安全的愈加重视及布局&#xff0c;市场规模将持续扩大。 近年来&#xff0c;随着“云大物工移智”等新兴技术的快速发展和普及应用&#xff0c;数字化已经融入社会经济生活的方方面面&#xff0c…

Golang 依赖注入库Wire应用案例

文章目录 简介Github指南安装案例wire.NewSetwire.Buildwire.Bindwire.Structwire.Valuewire.InterfaceValue 简介 Go语言的依赖注入库Wire是由Google提供的一个代码生成工具&#xff0c;用于简化和自动化依赖注入过程。Wire主要通过生成代码来处理依赖关系&#xff0c;而不是…