iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Java数组正确的写法是什么
  • 572
分享到

Java数组正确的写法是什么

2023-06-30 10:06:18 572人浏览 独家记忆
摘要

这篇“Java数组正确的写法是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Java数组正确的写法是什么”文章吧。索引:

这篇“Java数组正确的写法是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Java数组正确的写法是什么”文章吧。

Java数组正确的写法是什么

索引:命名规则、自动类型推断、静态动态初始化、多维数组的其他写法、常见错误写法、数组下标越界、默认值问题、数组长度问题、数组内存解析

正确写法:

1.步骤分类:(以下int可以替换为char String double等等)
       ①一步写法:

int [] ids = new int []{1001,1002,1003};// 声明+初始化int ids [] = new int []{1001,1002,1003}; // [ ]位置有两种放法int ids [] = {1001,1002,1003};//自动类型推断,new int []可省int ids [] = new [] int{1001,1002,1003};//只有定义时的[]可以乱动

      自动类型推断:仅在一步写法中适用,可以省略=右边的new int [ ]

        ②两步写法:

int ids [] ;   //声明ids = new int [ ] {1001,1002,1003} ;   //初始化int ids [];ids [] = new int {1001,1002,1003};//分两步时,左边不加[]int ids [];ids = {1001,1002,1003};//分两步时,没有类型推断

2.状态分类:静态动态必须二选一,给长度不加{},给{}不加长度

       ①静态初始化:

两个[ ]均为空String [] name = new String [] {"张三","李四"} ;//也可写为String [] name = {"张三","李四"};

       ②动态初始化:

后面的[ ]必须带数字规定长度,并且不能{}赋值String [ ] name ;name = new String [2] ;//可以合为一步写String name [] = new String [2];int ids [3][4] = XXXXXXXXX;int ids [3][ ] = XXXXXXXXX;int ids [ ][4] = XXXXXXXXX;

多维数组

int arr1 [][] =XXXXXXXXXXX;int [] arr2 []=XXXXXXXXXXX;int [][] arr3 =XXXXXXXXXXX;//都是正确写法Java主张 int [] arr = new int []{}; 写法//多维数组同理int [] arr[][] =XXXXXXXX;int [][] arr[] =XXXXXXXX;随便瞎基8放都是正确的Java主张 int [][] arr = new int [][]{};写法不过我个人不习惯。。。
int arr0 [][] = {{1,2},{3,4},{5,6}};//正确:静态、自动类型推断int arr1 [][] = new int [3][2];int arr2 [][] = new int [3][ ];//正确:动态、可省列数[]int arr3 [][][] = new int [3][ ][ ];//正确:动态、可省后两个[]

默认值问题:动态[i][j]有默认值,静态{}没有默认值(末尾详解)

int arr0 [][] = new int [2][2];//动态初始化,分配内存//数组内的4个成员全部默认为0,编译运行都不会报错int arr0 [][] = new int [][]{ {1,2},{3} };//静态初始化,编译能通过,arr0[1][1]没有默认值(未分配空间)//编译能通过,运行到arr[1][1]会报错int arr0[][] = new int [3][] ;// 输出arr0[3][0]  arr0[3][1]  arr0[3][2]  arr0[3][3].......//都会报错

报错案例:Java数组正确的写法是什么

数组下标越界:arr[1][1]在静态初始化的时候没有给值,所以没有分配内存空间,编译能通过,但是访问的时候会报错。该静态初始化的数组范围仅限于arr[0][0]  arr[0][1]  到arr[1][0]

深入内存理解:(末尾详解)

String cod [][] = new String [3][ ];//只定义了行,列数未知
System.out.println(cod[1][1]);//未定义列,不给默认值。运行报错

正确写法:加一步 cod[1]=new String [2\3\4....];分配列内存,给定默认值null

Java数组正确的写法是什么

常见错误写法

① int [ ] arr1 = new int [ ] ;                       //静态忘带{}

② int [3] arr2 = new int [3] ;                      //前面[ ]必须空

③ int [ ] arr3 = new int [5] {1,2,3,4,5} ;     //动态不能带{ }

数组一旦确定(声明+初始化),长度就固定了,不能更改

数组的内存分配是连续的,系统要为数组分配一个固定的空间,如果100个空间以后被其他内容占用内存,那么数组就只能用到前99个空间,如果长度可以改变,那么arr[100]就会更改其他内容产生bug

一个例子说明数组长度问题:

二维数组遍历,两层for循环:

public class Test2 {public static void main(String args[]) {int arr[][] = { {1,2,3},{4,5,6,7},{8,9},{10}};for(int i = 0 ; i <arr.length ; i++){//arr.lengthfor(int j = 0 ; j<arr[i].length ;j++){//arr[i].lengthSystem.out.println(arr[i][j]+"    ");}                        System.out.println();}//System.out.println(arr[2][2]);报错下标越界                }}

运行结果:

Java数组正确的写法是什么

arr.length是第一维度长度

arr[i].length是第i行的第二维度长度

arr[i][j].length是第i行j列的第三维度的长度

数组内存解析:

以二维数组为例,分为内层和外层。形如arr[0] arr[1]的是外层,完整表达arr[1][2]的是内层

一、对于一个外层arr[1]来说,它就是一个一维数组,就会分为“初始化”和“未初始化”的两种情况:

例1:

int arr1[][] = new int [3][];System.out.println( arr1[1] );//运行结果:null

此时只知道外层行数,但内层没有初始化,没有分配地址,故结果为null

int arr1[][] = new int [3][5];//任意给定列数System.out.println(arr1[1]);//运行结果:[I@15db9742

此时内层长度确定,初始化完成,arr1[1]指向一个首地址[I@15db9742

一个 [ 表示arr[1]的内层为一维数组,I是int的首字母,@后面是地址

例2:

String arr1[][] = new String [3][5];System.out.println(arr1);//运行结果:[[Ljava.lang.String;@15db9742

因为完整定义了String数组,故分配了空间,arr1指向arr1[0][0]的地址(整个数组的首地址)

两个[[表示里面有二维数组,java.lang.String;是包名

例3:

float arr1[][] = new float  [3][5];System.out.println(arr1[0]);//结果:[F@15db9742

外层元素初始化值为:地址值

内层元素初始化值为:与一维数组初始化情况相同

一维数组初始化:

数组元素是整形int long short :  0

数组元素是浮点型float double : 0.0

数组元素是boolean型:false

数组元素是引用类型  : null

数组元素是char型 :0 或 '\u0000' 而非‘0’

数字0,而不是字符0,对应的ASCII码不一样

'\u0000'是Unicode码第0000号位,是一个空格符,但是不是键盘上的空格

验证如下:

Java数组正确的写法是什么

經典例題:

Java数组正确的写法是什么

解:b e可以,acdf都不行

Java数组正确的写法是什么

以上就是关于“Java数组正确的写法是什么”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网精选频道。

--结束END--

本文标题: Java数组正确的写法是什么

本文链接: https://www.lsjlt.com/news/328109.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java数组正确的写法是什么
    这篇“Java数组正确的写法是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Java数组正确的写法是什么”文章吧。索引:...
    99+
    2023-06-30
  • 主机域名的正确写法是什么
    主机域名的正确写法是:主机名.域名。例如,www.example.com,其中www是主机名,example.com是域名。主机域名...
    99+
    2023-06-07
    主机域名 主机 域名
  • JS中switch的正确写法是怎样,要注意什么
    在JavaScript中,switch语句的正确写法如下:```javascriptswitch (expression) {cas...
    99+
    2023-09-09
    JS
  • PHP数组反转的正确方法
    php 中反转数组有三种方法:使用 array_reverse() 函数返回新数组。使用 for 循环手动反转,遍历数组从末尾开始。使用 rsort() 和 ksort() 内...
    99+
    2024-04-28
    php 数组反转
  • Java中如何正确重写equals方法
    目录1. 什么是equals方法?1.1 equals方法:2. 为什么要重写equals方法?2.1 举个例子吧~3. 分析equals源码:4. 正确重写equals方法:重写e...
    99+
    2024-04-02
  • Java中二维数组的正确使用方法介绍
    目录一. 多维数组1. 概念2. 分类二. 二维数组1. 概念2. 定义3. 初始化3.1 动态初始化3.2 静态初始化4. 扩展案例4.1 动态初始化的变形写法4.2 遍历二维数组...
    99+
    2023-05-19
    Java二维数组使用 Java二维数组 Java数组
  • php数组正确相加方法
    在php中,数组是一种常见的数据结构,具有存储和操作大量数据的能力。而有时候我们需要将两个数组中对应位置的元素相加,得到一个新的数组。例如,有两个数组$a=[1,2,3]$和$b=[4,5,6]$,我们需要得到数组$c=[5,7,9]$,即...
    99+
    2023-05-22
  • Java中打包同步函数的正确姿势是什么?
    在Java中,同步函数可以让我们更好地控制多个线程对共享资源的访问,从而避免线程安全问题。但是,如果同步函数不正确地使用,就会导致性能下降或者死锁等问题。因此,在Java中打包同步函数的正确姿势是非常重要的。 一、synchronized...
    99+
    2023-09-29
    打包 同步 函数
  • c语言strlen的正确用法是什么
    C语言中的strlen函数的正确用法是: #include <string.h> size_t strlen(cons...
    99+
    2023-10-20
    c语言
  • Restful架构风格下,API接口设计正确的写法是什么
    这篇文章主要介绍“Restful架构风格下,API接口设计正确的写法是什么”,在日常操作中,相信很多人在Restful架构风格下,API接口设计正确的写法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单...
    99+
    2024-04-02
  • 选择云计算数据库的正确方法是什么
    这篇文章将为大家详细讲解有关选择云计算数据库的正确方法是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。近年来,企业将本地部署的数据迁移云端越来越成为一种...
    99+
    2024-04-02
  • html的正确理解是什么
    HTML,即超文本标记语言,是一种标记语言,它用于编写web文档并实现网页的结构和内容。HTML是web开发中的重要组成部分,它的正确理解有助于开发者更好地掌握web技术。HTML的原始目的是为了向用户展示文本(包括图像和链接等内容),并且...
    99+
    2023-05-14
  • Node输出日志的正确方法是什么
    本篇内容主要讲解“Node输出日志的正确方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Node输出日志的正确方法是什么”吧!背景每个程序员都喜欢在有问题的代码中插入一些日志的方法来帮助...
    99+
    2023-07-05
  • Java中对象打包的正确方式是什么?
    Java是一门面向对象的编程语言,在Java中,对象是非常重要的概念。对象的创建和管理对于Java程序的运行效率和稳定性有着至关重要的影响。在Java中,对象的打包也是非常重要的一部分,本篇文章将会介绍Java中对象打包的正确方式。 什么是...
    99+
    2023-07-23
    打包 接口 对象
  • java判断时间格式是否正确的代码怎么写
    你可以使用 `SimpleDateFormat` 类来判断时间格式是否正确。下面是一个示例代码:```javaimport java...
    99+
    2023-10-12
    java
  • python正确的变量命名方法是什么
    在Python中,以下是正确的变量命名方法:1. 变量名必须以字母(a-z、A-Z)或下划线(_)开头。2. 变量名可以包含字母、下划线和数字(0-9),但不能以数字开头。3. 变量名对大小写敏感,例如"myVar"和"myvar"是不...
    99+
    2023-08-11
    python
  • java 中ThreadLocal 的正确用法
    java 中ThreadLocal 的正确用法用法一:在关联数据类中创建private static ThreadLocalThreaLocal的JDK文档中说明:ThreadLocal instances are typically pr...
    99+
    2023-05-31
    java threadlocal ava
  • 正确解决IE6的问题的方法是什么
    正确解决IE6的问题的方法是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。这个话题是从IE6 No More引起的,那本是一场反对IE6浏览器的行动,几乎每个身边的开发人员...
    99+
    2023-06-12
  • 如何正确的定义数组
    这篇文章将为大家详细讲解有关如何正确的定义数组,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。操作环境:Windows7系统,Dell G3电脑。数组定义的方法: 一、一维数组1)、int[]...
    99+
    2023-06-14
  • Java数组的去重方法是什么
    这篇文章主要讲解了“Java数组的去重方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java数组的去重方法是什么”吧!数组去重的场景将数组var arr =[1,1,‘true&#...
    99+
    2023-06-25
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作