色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術(shù)文章
文章詳情頁

java -length的三種用法說明

瀏覽:2日期:2022-08-25 08:11:06

java中l(wèi)ength主要有三種用法,本博客只介紹前兩種:

1 Java中的length屬性是針對(duì)數(shù)組說的,比如說你聲明了一個(gè)數(shù)組,想知道這個(gè)數(shù)組的長(zhǎng)度則用到了length這個(gè)屬性.

2 java中的length()方法是針對(duì)字符串String說的,如果想看這個(gè)字符串的長(zhǎng)度則用到length()這個(gè)方法.

例程:

1、所對(duì)應(yīng)的用法:

String[] list={'a','b','c'};

System.out.println(list.length);

2、所對(duì)應(yīng)的用法

String a='apple';

System.out.println(a.length());

補(bǔ)充知識(shí):深入分析Java中的length和length()

在開始正文之前,請(qǐng)你快速回答如下問題:

在不使用任何帶有自動(dòng)補(bǔ)全功能IDE的情況下,如何獲取一個(gè)數(shù)組的長(zhǎng)度?以及,如何獲取一個(gè)字符串的長(zhǎng)度?

這個(gè)問題我問過不同水平的程序員,包括初級(jí)和中級(jí)水平的。他們都不能準(zhǔn)確而自信地回答這個(gè)問題(如果你能很準(zhǔn)確很自信的回答這個(gè)問題,那么證明針對(duì)這一知識(shí)點(diǎn)你比大多數(shù)中級(jí)程序員掌握的好)。由于現(xiàn)在很多IDE都有代碼補(bǔ)全功能,這使得開發(fā)人員在很多問題上都理解的很膚淺。本文將介紹幾個(gè)關(guān)于Java數(shù)組的關(guān)鍵概念。

上面問題的正確回答姿勢(shì)應(yīng)該是這樣的:

java -length的三種用法說明

那么問題來了,為什么數(shù)組有l(wèi)ength屬性,而字符串沒有?或者,為什么字符串有l(wèi)ength()方法,而數(shù)組沒有?

為什么數(shù)組有l(wèi)ength屬性?

首先,數(shù)組是一個(gè)容器對(duì)象,其中包含固定數(shù)量的同一類型的值。一旦數(shù)組被創(chuàng)建,他的長(zhǎng)度就是固定的了。數(shù)組的長(zhǎng)度可以作為final實(shí)例變量的長(zhǎng)度。因此,長(zhǎng)度可以被視為一個(gè)數(shù)組的屬性。

有兩種創(chuàng)建數(shù)組的方法:

1、通過數(shù)組表達(dá)式創(chuàng)建數(shù)組。

2、通過初始化值創(chuàng)建數(shù)組。

無論使用哪種方式,一旦數(shù)組被創(chuàng)建,其大小就固定了。

使用表達(dá)式創(chuàng)建數(shù)組方式如下,該方式指明了元素類型、數(shù)組的維度、以及至少一個(gè)維度的數(shù)組的長(zhǎng)度。

int[][] arr = new int[3][];

該聲明方式是符合要求的,因?yàn)樗付艘粋€(gè)維度的長(zhǎng)度(該數(shù)組的類型為int,維度為2,第一維度的長(zhǎng)度為3)

使用數(shù)組初始化的方式創(chuàng)建數(shù)組時(shí)需要提供所有的初始值。形式是使用{和}將所有初始值括在一起并用,隔開。

int[] arr = {1,2,3};

注:

這里可能會(huì)有一個(gè)疑問,既然數(shù)組大小是初始化時(shí)就規(guī)定好的,那么int[][] arr = new int[3][];定義的數(shù)組并沒有給出數(shù)組的第二維的大小,那么這個(gè)arr的長(zhǎng)度到底是如何“規(guī)定好”的呢?

其實(shí),arr的長(zhǎng)度就是3。其實(shí)Java中所有的數(shù)組,無論幾維,其實(shí)都是一維數(shù)組。例如arr,分配了3個(gè)空間,每個(gè)空間存放一個(gè)一維數(shù)組的地址,這樣就成了“二維”數(shù)組。但是對(duì)于arr來說,他的長(zhǎng)度就是3。

java -length的三種用法說明

Java中為什么沒有定義一個(gè)類似String一樣Array類

因?yàn)閿?shù)組也是對(duì)象,所以下面的代碼也是合法的:

Object obj = new int[10];

數(shù)組包含所有從Object繼承下來方法,除clone()之外。為什么沒有一個(gè)Array類呢?在Java中沒有Array.java文件。一個(gè)簡(jiǎn)單的解釋是它被隱藏起來了(注:Java中的數(shù)組有點(diǎn)類似于基本數(shù)據(jù)類型,是一個(gè)內(nèi)建類型,并沒有實(shí)際的類與他對(duì)應(yīng))。

你可以思考這樣一個(gè)問題——如果有一個(gè)Array類,那它會(huì)像什么樣?它會(huì)仍然需要一個(gè)數(shù)組來存放所有的數(shù)組元素,對(duì)嗎?因此,定義出一個(gè)Array類不是一個(gè)好的主意。(注:這里可能有點(diǎn)繞,道理有點(diǎn)類似于:雞生蛋蛋生雞問題,可能比喻也不是很恰當(dāng),請(qǐng)讀者自行理解)

事實(shí)上我們可以獲得數(shù)組的類定義,通過下面的代碼:

java -length的三種用法說明

輸出:

class [I

“class [I”代表著”成員類型是int的數(shù)組”的class對(duì)象運(yùn)行時(shí)類型的簽名

為什么String有l(wèi)ength()方法?

String背后的數(shù)據(jù)結(jié)構(gòu)是一個(gè)char數(shù)組,所以沒有必要來定義一個(gè)不必要的屬性(因?yàn)樵搶傩栽赾har數(shù)值中已經(jīng)提供了)。和C不同的是,Java中char的數(shù)組并不等于字符串,雖然String的內(nèi)部機(jī)制是char數(shù)組實(shí)現(xiàn)的。(注:C語言中,并沒有String類,定義字符串通常使用char string[6] = 'hollis';的形式)

注:要想把char[]轉(zhuǎn)成字符串有以下方式:

java -length的三種用法說明

以上這篇java -length的三種用法說明就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 国产伦理久久精品久久久久 | 中文国产成人精品少久久 | 欧美日韩亚洲精品一区 | 免费国产成人高清视频网站 | 亚洲综合视频在线观看 | 欧美怡红院免费全视频 | 久久久久女人精品毛片九一 | 午夜两性视频免费看 | 精品国产一区二区 | 丝袜美腿精品一区二区三 | 亚洲天堂美女视频 | 国产一区二区久久久 | 在线成人免费看大片 | 日本美女高清在线观看免费 | 成人免费视频69 | 生活片毛片 | 久草视频福利在线观看 | 日韩视频欧美视频 | 国产福利在线91 | 男女毛片免费视频看 | 国产精品自拍在线观看 | 亚洲精品高清国产一久久 | 亚洲乱码一二三四五六区 | 最新国产午夜精品视频不卡 | 国产一区二区在线不卡 | 亚洲视频在线看 | 综合在线播放 | 韩国一级毛片 | 国产亚洲欧美久久精品 | 在线观看日本污污ww网站 | 一区中文字幕 | 欧美精品成人3d在线 | 美女张开腿让我 | 久久国产精彩视频 | 黄色成人在线网站 | 亚洲综合国产一区在线 | 亚洲三级在线免费观看 | 国产免费自拍视频 | 成人午夜大片 | 久草资源免费 | 亚洲网址在线观看 |