前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java漫谈8

Java漫谈8

作者头像
用户1335799
发布2018-03-12 10:57:53
6740
发布2018-03-12 10:57:53
举报

今天我们来聊聊字符串。

字符串,在Java中一个最接近与8大数据类型的存在。甚至于由于它太好用了,以至于在编写代码的时候都快忘了有个叫char的基本数据类型了。我记得,当年刚能独立写一些小型代码的时候,被老师问到8大基本的数据类型有哪些,便脱口而出了String,int, boolean……(当然这个回到是错误的)

为什么会出现这种情况呢,因为String有一个非常特殊的功能——可以不用new直接新建。这种能力与基本数据类型的能力比较相像,之前几篇我提过int的使用,简单来说就是int i=3;。再看看String的方式String s="abc";,它们都没有通过new就直接赋值了。

说道String的这个功能,就让我想起了另外一个测试题(如果是初学者,可以选择性跳过)——在Java中,为什么测量一个字符串长度的时候用的.length(),而测量一个数组的长度直接用 .length 就可以了。也就是前者为什么会多一个括号,而后者没有。我不知道你心中有没有什么答案,反正我当年脱口而出的回答就是,这是API规定的,至于API为什么这么规定,这可能是编写API的那个人的习惯吧。

看到这儿你肯定已经知道这并不是习惯使然,而是一种必然。而真正的原因是,数组的就像一个有了规定大小的座位的教室一样,自然的,我们会对了解教室里面的座位总个数,座位号有需求。因此,对数组来说,长度就是它内在的一个属性。相较于数组,字符串更倾向于显示内容,而且纵观Java的API,String类是没有属性的,像得到它的hashcod,length这些结果都是用方法去得到的。而在Java中,调用方法时就会有有括号出现,于是就出现了字符串得到长度的大小时用.length(),而数组的长度是用length

今天我们初步认识了一下String,聊到了String的性质——它是个类,也聊到了它没有属性只有方法这个特性。希望这对你初识String有帮助。

清单

  1. String不是基本的数据类型,它是一个类。
  2. 由于开发的时候对字符串的需求远胜于单个字符,故Java在设计String的时候,让它有了不用new,就能直接赋值的方式。
  3. String a="zzz";String a = new String("zzz"); 效果上看起来一样,但内部的存储方式不同。这一点面试中经常被问到。具体的我们下一次聊。
  4. String的API中常用的有,equals("a"), charAt("a"), subString(a,b), indexOf(1),它们分别是比较字符内容,字符定位,字符串截取,按位置取字符。
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-10-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 怀英的自我修炼 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档