Android中的String.java源码问题

今天有兴趣看了一下String.java类中的源码发现有点不同,但是貌似区别也不大,也借着这个机会解读下String.java源码吧

源码就不粘了,说下不同点:

Android下:

private final int count;

Java源码:

private final char value[];(其实android里也有这一句,只是被注释掉了)

 

Android中许多构造器是异常抛错

 

 

而java中则是正常的构造器初始化方法

 

而length方法也不太一样

android:

java下:

 

android中的charAt方法也改成了JNI了

 

String源码貌似基本上都有改动,但是貌似不影响我们的使用。

那么问题来了,我们到底是使用的哪个String呢?

是java的,还是android下的?android下难道没有引用jdk的吗?

 

最后分析下源码吧

1、String类使用final修饰,决定了它是一个不可修改的类,底层是一个char数组

2、

private final char value[];


private final int count;

也就决定了它的长度是不可以改变的

3、继承了Serializable、Comparable、CharSequence接口

Serializable:实现序列化

Comparable:用于对两个实例化对象比较大小

CharSequence:实现只读的字符序列。包括length(), charAt(int index), subSequence(int start, int end)这几个API接口,StringBuffer和StringBuild也是实现了改接口。

总结:

对于上述的问题,作一个总结,android中应该是自己写了一个String类,而且是仿照java中的String完成,且做出了一定的优化,

只是我们都习惯使用了jdk。

有什么问题或者是不对的地方,欢迎在评论区指正,谢谢!

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值