本文主要讲述Java中的length字段和length()方法,有需要的朋友可以参考下,更多Java教程知识,请登陆疯狂软件教育官网。

  首先,你能快速回答下面的问题吗?

  如果没有IDE(集成开发环境)的自动补全功能,如何获取数组和字符串的长度?

  我问了不同等级的开发者(初级和中级)同样的问题,他们很难准确而确信地给出答案。虽然IDE提供的代码自动补全功能十分方便,但也带来了“表面理解(surface understanding)”的问题。在本文中,我会解释一些和Java数组的关键概念。

  上述问题的答案如下:

  int[] arr = new int[3];

  System.out.println(arr.length);//数组的length属性

  String str = "abc";

  System.out.println(str.length());//字符串的length()方法

  现在的问题是,为什么数组有length属性而字符串没有?或者,为什么字符串有length()方法而数组没有?

  问题1. 为什么数组有length属性?

  首先,数组是一个容器对象,它保存了一定数量的某一类型的值。当一个数组被创建出来后,它的长度就不会再改变了。数组的长度可视作一个final实例变量。因此,长度可被认为是数组定义的一个属性。

  创建数组有两种方式:1)数组创建表达式;2)数组初始化。一旦数组被创建,它的长度就固定了。

  下面的数组声明虽然只指明了数组中第一维的长度,但它是合法的。

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

  数组的初始化创建了一个数组并为其中的每个元素赋上初始值,它是由一个被“{”和“}”包围的用逗号分隔的若干表达式构成,示例如下:

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

  问题2. 为什么没有一个像“String”一样定义的“Array"类?

  因为数组是一个对象,所以下面的代码是合法的。

  Object obj = new int[10];

  数组包含了Object类中的所有成员(除了clone)。为什么不能像定义一个类那样定义数组呢?我们找不到一个Array.java文件。一种比较简单的解释是:它们被掩藏了。你可考虑一下这个问题:如果有一个数组类,那么它该是什么样的?我们还是需要一个数组来保存数组数据,是不是?因此,定义一个这样的类似很不明智的。

  事实上,我们可以通过下面的方式来获取一个数组类:

  int[] arr = new int[3];

  System.out.println(arr.getClass());

  输出的结果是:

  class[]

  ”class[]“是”int类型数组“类对象的运行时类型签名。

  问题3. 为什么字符串有length()方法?

  字符串中保存字符数据的数据结构是一个字符数组。因此,没有必要定义一个在实际应用中不必须的字段。与C语言不通,在Java中,一个字符数组并不是一个字符串。

  疯狂Java培训专注软件开发培训,提升学员就业能力,重点提升实践动手能力。技术知识沉淀深厚的老师,让你感受Java的魅力,激发你对于编程的热爱,让你在半年的时间内掌握8-10万的代码量,掌握Java核心技术,成为真正的技术高手;通过大量全真企业项目疯狂训练,迅速积累项目经验。让你成为技能型的现代化高端人才,迅速获得高薪就业! 课程相关学习请咨询QQ:544627560电话:020-28309378 QQ:707552864,或者咨询疯狂软件教育中心,地址:广州天河区车陂沣宏大厦3楼

转载于:https://www.cnblogs.com/gojava/p/3991050.html

Java中的length字段和length()方法相关推荐

  1. 关于日常业务中常见公共字段的处理方法

    关于日常业务中常见公共字段的处理方法 1 概述操作 2 测试 在日常的业务处理中, 新增或修改等常见业务, 经常对一些与业务无关的常用字段需要进行赋值和更新,为了更好的方便的进行代码开发, 可以采用切 ...

  2. Java中创建数组的几种方法

    Java中创建数组的几种方法 public static void main(String[] args) { //创建数组的第一种方法 int[] arr=new int[6]; int intVa ...

  3. Java中String字符串截取几种方法(substring,split)

    Java中String字符串截取几种方法 substring,split 这是一个Java中的String的基础用法的演示. 下面通过代码对大家进行讲解 substring 这里用来ndexOf,la ...

  4. Java数组怎么定义?java中数组的定义及使用方法

    许多初学者不知道如何定义java中数组,下面我就为大家带来一篇java中数组的定义及使用方法.应该可以解决大部分人的需求,现在就分享给大家,也给大家做个参考. 数组:是一组相关变量的集合 数组是一组相 ...

  5. java语言 文件上传,java中实现文件上传的方法

    java中实现文件上传的方法 发布时间:2020-06-19 10:29:11 来源:亿速云 阅读:86 作者:Leah 这篇文章给大家分享的是java中实现文件上传的方法,相信大部分人都还没学会这个 ...

  6. 高级 | Java中获取类名的3种方法

    转载自 高级 | Java中获取类名的3种方法 获取类名的方法 Java 中获取类名的方式主要有以下三种. getName() 返回的是虚拟机里面的class的类名表现形式. getCanonical ...

  7. 在 Java 中初始化 List 的五种方法

    转载自  在 Java 中初始化 List 的五种方法 Java 中经常需要使用到 List,下面简单介绍几种常见的初始化方式. 1.构造 List 后使用 List.add 初始化 List< ...

  8. 谈谈java中遍历Map的几种方法

    java中的map遍历有多种方法,从最早的Iterator,到java5支持的foreach,再到java8 Lambda,让我们一起来看下具体的用法以及各自的优缺点 先初始化一个map public ...

  9. Java 中 List 分片的 5 种方法!

    作者 | 王磊 来源 | Java中文社群(ID:javacn666) 转载请联系授权(微信ID:GG_Stone) 前些天在实现 MyBatis 批量插入时遇到了一个问题,当批量插入的数据量比较大时 ...

最新文章

  1. 3 CSS 高级语法
  2. ZZULIOJ 1158: 又是排序(指针专题)
  3. LG显示将在坡州工厂为iPhone 14 Pro Max生产120Hz刷新率屏幕
  4. java导论pdf下载,人工智能导论 PDF 下载
  5. 目标检测算法——YOLOv3
  6. 开源一款资源分享与下载工具 —— 电驴(eMule)
  7. 01、winPE64位 -- UEFI+GPT启动引导分区方式 -- win10专业版(1903)64位安装 -- 数字许可永久激活
  8. RGB颜色过度,数值转颜色
  9. Windows 下网卡对802.1Q tag 的支持
  10. ES6中新的AJAX解决方案:Promise、Fetch、Response、Axios
  11. 2020年创业风口:社交电商
  12. Vue学习笔记-项目开发2.5图文列表展示(周末去哪玩儿)
  13. 《英雄联盟》首部成人动画全球爆火,尺度有点大啊!
  14. 机器学习必备算法之(一)逻辑回归(logistics regression)及Python实现
  15. 03 矩阵不只是mn个数字
  16. SVN客户端使用教程
  17. 在CodeBlocks中完美使用WTL进行开发
  18. 达内python培训6,达内北京IT培训班:Python就业6道面试题分享!
  19. 程序员葵花宝典,使你终身受益的箴言
  20. 雾计算和边缘计算的区别

热门文章

  1. [转]cookie、sesstion、localstorage、sesstionstorage的使用和区别
  2. 软件工程专插本_2021年广东专插本8所学校招生专业(拟),华师停招专插本?...
  3. 不写代码不用Excel,销售总监的数据分析,10分钟你就可以学会
  4. 如何从0开始,搭建企业的实时数据中台?
  5. oracle如何取当前日期年月_Oracle获取当前年、月、日的方法
  6. 局域网网络风暴检测工具_交换机网络术语汇总
  7. 力扣 每日一题 丢失的数字
  8. 技巧|BurpSuite实现监听代理流量,隐匿身份
  9. 【五级流水线CPU】—— 8. 测试结果
  10. 实验2.4 使用系统函数pow(x,y)计算xy的值