我问了一个五年开发的“大牛”,String是基本数据类型吗?

文章 未结 置顶 精帖 0 1.03w
无法显示用户头像
作者:ECode1024官方,责任编辑:ECode1024官方 5 钻石
发布于 2019-07-04
如题所说,我今天问了一个五年开发的“大牛”,String是基本数据类型吗? 你可能比较困惑我为什么给大牛加上了引号,五年开发,基础好点的也的却算得上大牛了啊,且听我娓娓道来。 img[https://newecode1024.oss-cn-hongkong.aliyuncs.com/10a1927c-fce7-4563-8a72-9e188644e244.jpg]  我问了一个工作五年的开发者这个问题,他忽然停顿了几秒钟给的回答是: [pre] 是的 [/pre] img[https://newecode1024.oss-cn-hongkong.aliyuncs.com/4fd3be52-2cf8-437e-ac00-29f7bc2bc0e2.jpeg]  顿时我心里有数了,大哥你这五年是怎么过来的?加班加来的吗?又或者家里有矿,不指望工作生活,工作只是体验体验生活的艰辛吗?这么基础的问题,怎么回事啊face[吃惊]  OK,先抛开这大哥不说了,毕竟工作时间长短有时候真的不能和工作经验成正比的。face[思考]  img[https://newecode1024.oss-cn-hongkong.aliyuncs.com/5a59c1a4-5169-4a58-bd0f-0429a45d7e68.jpg]  我们知道,String不是Java中的基本数据类型,那么我们先来看看Java语言之中的基本数据类型都包括哪些。Java中基本数据类型一共有八种,敲黑板: [pre] 1)四种整数类型(byte、short、int、long):     byte:8 位,用于表示最小数据单位,如文件中数据,-128~127     short:16 位,很少用,-32768 ~ 32767     int:32 位、最常用,-2^31-1~2^31  (21 亿)     long:64 位、次常用     注意事项:    int i=5; // 5 叫直接量(或字面量),即 直接写出的常数。     整数字面量默认都为 int 类型,所以在定义的 long 型数据后面加 L或 l。     小于 32 位数的变量,都按 int 结果计算。     强转符比数学运算符优先级高。见常量与变量中的例子。 2)两种浮点数类型(float、double):     float:32 位,后缀 F 或 f,1 位符号位,8 位指数,23 位有效尾数。     double:64 位,最常用,后缀 D 或 d,1 位符号位,11 位指数,52 位有效尾    注意事项:    二 进 制 浮 点 数 : 1010100010=101010001.0*2=10101000.10*2^10(2次方)=1010100.010*2^11(3次方)= . 1010100010*2^1010(10次方)    尾数:  . 1010100010   指数:1010   基数:2     浮点数字面量默认都为 double 类型,所以在定义的 float 型数据后面加F 或 f;double 类型可不写后缀,但在小数计算中一定要写 D 或 X.X    float  的精度没有 long 高,有效位数(尾数)短。    float  的范围大于 long  指数可以很大。    浮点数是不精确的,不能对浮点数进行精确比较。 3)一种字符类型(char):     char:16 位,是整数类型,用单引号括起来的 1 个字符(可以是一个中文字符),使用 Unicode 码代表字符,0~2^16-1(65535) 。     注意事项:    不能为 0个字符。    转义字符:\n  换行  \r  回车  \t Tab 字符  \" 双引号  \\ 表示一个\    两字符 char 中间用“+”连接,内部先把字符转成 int 类型,再进行加法运算,char 本质就是个数!二进制的,显示的时候,经过“处理”显示为字符。 4)一种布尔类型(boolean):true 真  和 false 假。 [/pre] 讲完了Java中的八种数据类型,我们再来回到文章标题问题上来,我们说String不是Java中的基本数据类型,那它是什么呢?它是一个类啊face[哈哈]  img[https://newecode1024.oss-cn-hongkong.aliyuncs.com/120f3b07-e29a-4887-9434-b4f19d6a3474.jpg]  仅仅说它是一个类也太随意了吧,我找来了专业的说法,如下阐述: [pre] String不是基本数据类型,而是一个类(class),是C++、java等编程语言中的字符串。 String类是不可变的,对String类的任何改变,都是返回一个新的String类对象。 String 对象是 System.Char 对象的有序集合,用于表示字符串。String 对象的值是该有序集合的内容,并且该值是不可变的。 因为,java.lang.String类是final类型的,因此不可以继承这个类、不能修改这个类。 为了提高效率节省空间,我们应该用StringBuffer类。 [/pre] OK,作为开发者,最重要的是基础扎实,脚踏实地,任何东西不仅要知其然,更要知其所以然,这样才能走的更远! img[https://newecode1024.oss-cn-hongkong.aliyuncs.com/9d9c387d-c0b8-4731-b3fe-5aed6f0dcdbd.jpg]  [pre] 作者:ECode1024官方 来源:ECode1024网 [/pre]

声明:本文所有观点仅代表创作者本人,ECode1024系信息收集发布平台,ECode1024仅提供信息存储以及展示服务。若有侵权,请联系我们删除。
回复
  • 暂无任何回复,抢个沙发吧~~
推荐阅读
ECode1024 QQ交流群

打开手机QQ扫码加入 ECode1024 交流群

ECode1024 微信交流群

打开手机微信扫码关注 ECode1024 公众号