您的位置:首页 > 产品设计 > UI/UE

String类以及如何将字符串转化为数组,将字符和各种数值返回字符串格式,Integer和int 区别,StringBuilder和StringBuffer区别

2018-03-23 09:54 609 查看
String是一个类不是基本数据类型,它初始化的一个变量a(看成对象是错误的)并被赋值一个引用指向对象“Java”,这个a不能指向其他引用
例:String a="Java";①
     a="HTML5",②                     即②是错误的

String s=new String("abc");创建了几个对象呢?
两个



内部原理是这样的;
在JVM的工作过程中,会创建一片的内存空间专门存入String对象,我们把这片内存空间叫做String池。
先在String池中创建了一个String对象储存“abc”,再通过new 又创建了一个String对象,然后把引用给了s;

String s=new String("XYZ")+new String("XYZ");创建了几个对象呢?
四个



注意那里第二次是在内存创建;



因为当String池中已经存在了"abc"对象,就不会在创建相同的对象了;(这里和上述有矛盾)



String中的 ==符号比较的是  是否是同一个对象,s1和s3都是指“Welcome to Java”,s2这里指向了两个对象(根据上述),所以对象不同;

既然能把数组转化为字符串(在上几张有),那也可以将字符串转化为数组(字符串数组):
 char[ ] chars="Java".toCharArray();     //调用方法toCharArray来讲“Java”转化为chars【0】=“J”,chars[1]="a"....
在写几个还能把字符串数组转化为字符串的方法:
String s=new String(new char[ ]{"J","a","v","e"});
String  s=new String.valueOf(new char[ ]{"J","a","v","e"});

字符和各种数值返回字符串:
String.valueOf(字符和各种数值),    例String.valueOf(2.04),返回的就是'2','0','4'构成的字符串

1.Integer是一个引用类型,int是一个基本数据类型;
2.Integer和int都能表示一个数;
3.Integer和int不能互通,例如泛型要用Integer而不是int
4.对基本类型来说,对应的内存放的就是基本类型值;但对于引用类型Circle c,Integer i,String s等等来说对应内存放的是这些对象;

1.StringBuilder是速度最快的,但是在多线程中不安全,所以多用于单线程大量数据处理;
2.StringBuffer比StringBuilder速度慢些,但是在多线程中是安全的(修改缓冲区的方法是同步的),所以多用于多线程大量数据处理;
3.String用于少量数据处理,String是final类,不能被继承;
StringBuilder和StringBuffer非常擅长于字符串的增删改,倒置等等
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐