为什么字符串有length属性 ?

原文链接:[https://blog.youkuaiyun.com/m0_58239318/article/details/122198676]

字符串是js中常用简单的一种数据类型(string), 但往往在使用中忽略了很多问题, 比如说字符串为什么有length属性, 属性不是对象独有的吗, 为什么字符串能使用很多方法呢? 接下来就来说一说这个问题

为什么字符串有length属性 ?

大家都知道 String() 构造函数可以创建一个字符串的实例, 而这个实例具有length长度

 由字面量定义的字符串在使用其length属性时其实做了如下的操作

  1. 创建了一个 String 类型的实例
  2. 使用实例的属性或方法
  3. 销毁实例
字符数组和字符串在编程中有一些重要的区别: 1. **定义和初始化**: - 字符数组:可以使用数组语法进行定义和初始化,例如:`char[] arr = {'H', 'e', 'l', 'l', 'o'};` - 字符串:可以使用字符串字面量进行定义和初始化,例如:`String str = "Hello";` 2. **不可变性**: - 字符数组:字符数组是可变的,可以修改数组中的单个字符。 - 字符串字符串是不可变的,一旦创建,其内容不能被修改。任何修改操作都会创建一个新的字符串对象。 3. **长度**: - 字符数组:可以使用`length`属性获取数组的长度。 - 字符串:可以使用`length()`方法获取字符串的长度。 4. **操作方法**: - 字符数组:可以使用数组操作方法,如`arr[0] = 'h';` - 字符串:提供了丰富的字符串操作方法,如`substring()`, `concat()`, `toUpperCase()`等。 5. **内存分配**: - 字符数组:字符数组在堆内存中分配,可以直接操作。 - 字符串字符串字符串常量池中分配,字符串对象在堆内存中。 6. **性能**: - 字符数组:由于字符数组是可变的,操作字符数组通常比操作字符串更高效。 - 字符串字符串的不可变性使得它在多线程环境中更安全,但在频繁修改时可能会导致性能问题。 示例代码: ```java // 字符数组 char[] arr = {'H', 'e', 'l', 'l', 'o'}; arr[0] = 'h'; System.out.println(arr); // 输出: hello // 字符串 String str = "Hello"; String newStr = str.substring(1); System.out.println(newStr); // 输出: ello ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值