当前位置: 首页 > news >正文

新增备案网站要关闭吗温岭建设局网站

新增备案网站要关闭吗,温岭建设局网站,佛山正规网站建设哪家好,网站建设规划怎么写三.String类学习 1.String,StringBuffer,StringBuilder的区别? 2.字符串拼接用加号的原理 ? 3.字符串常量池如何理解? 4.String的intern方法理解? 5.String的equals方法和compareTo方法的使用&#xf…

三.String类学习

1.String,StringBuffer,StringBuilder的区别?

2.字符串拼接用加号的原理 ?

3.字符串常量池如何理解?

4.String的intern方法理解?

5.String的equals方法和compareTo方法的使用?

6.String常用方法?

7.String类和StringBuffer类的常用方法?

待更新

待更新

三.String类学习

1.String,StringBuffer,StringBuilder的区别?

①不可变性

  • String是不可变的,value为final且指向字面量,无修改方法
  • StringBuffer和StringBuilder是可变的,value直接保存在堆中,有修改方法

②线程安全

  • String,StringBuffer线程安全,StringBuffer解决线程安全
  • StringBuilder线程不安全,StringBuilder只是建立可变字符串

③使用流程

  • String 少量改变可以用(重新生成字面量并放入常量池)
  • StringBuilder单线程多次改变(线程不安全,但是改变字符串在堆中数组中改变)
  • StringBuffer多线程多次改变(线程安全,而且改变字符串在堆中数组中改变)

④String为什么不变呢?

  • final修饰的value数组引用为final类型(只是数组地址不变,数组内容仍然可变)
  • private修饰value数组外部无法直接访问,String类未提供修改数组元素的方法。
  • 而StringBuffer和StringBuilder都提供对value数组操作的方法

2.字符串拼接用加号的原理 ?

①str1 = str2 + str3(都为变量)

  • 实际上 str1 = (new StringBuilder()).append(str1).append(str2).toString
  • 实际上 新建了StringBuilder对象并转换为String对象

②str3 = str2.concat()

  • 实际上,产生了新的String对象,并将字符串通过新建数组的形式凭借,将数组作为new String的参数获得新的String对象
  • 即str2.concat()新建String对象,然后将
  • 注意:除非String直接赋值给字符串,否则调用函数都是生成String类的对象。
  • 代码
package stringtest;public class StrinParaTest {public static void main(String[] args) {char[] a = new char[]{'a','b','c'};String b = new String(a);System.out.println(b);//abcString d1 = b.concat("d");//concat实际上最后以new String(新数组)System.out.println(d1);//abcdString s = a.toString();//a.toString实际上是以字符串类型返回的地址,也就是字符串 只不过是地址的字符串System.out.println(s);//C@1540e19d//故新建String对象由于String对象重写了toString方法,故打印的为字符串//而cahr[]类型的数组并未重写toString,故其toString返回的是地址(字符串类型)}
}

③使用

  • 多次拼接用StringBuilder,因为用String也会产生很多的StringBuilder对象,而直接用StringBuilder只用产生一个

3.字符串常量池如何理解?

①方法区中有专门存放字符串的常量池

②String a = “abc”

  • 在常量池中生成了abc字符串,然后引用变量a直接赋值为常量池中的地址

②String b = new String(“abc”)

  • 若常量池已有abc,在堆中生成String对象,然后value指向常量池
  • 若常量池没有abc,则先在常量池生成abc,再最后用value指向常量池

4.String的intern方法理解?

①String a = “a” + “b”

  • 编译期常量会直接合并,故a指向常量池

②String b = “a” + a

  • 生成StringBuilder对象后生成String对象,value指向常量池

③String c = (“abc” + a).intern()

  • 此时c由value指向常量池直接转化c直接指向常量池

④代码解析

package stringtest;public class StringDiffTest {public static void main(String[] args) {String a = "a" + "b";String temp = "b";String b = "a" + temp;String c =("a" + temp).intern();System.out.println(a==b);//falseSystem.out.println(b==c);//falseSystem.out.println(a==c);//true//此时intern可以让引用直接指向常量池地址,故a=c,但是利用StringBuilder方法生成的String仍然还是指向堆中对象}
}

5.String的equals方法和compareTo方法的使用?

①String的equals方法重写

  • 即比较字符串

②String的compareTo方法

  • 实现Comparable接口
  • 重写CompareTo方法

6.String常用方法?

①字符串是否回文

  • String转换为char类型数组循环
  • StringBuilder和StringBuffer通过reverse + toString + equals来实现
    注意:因为StringBuilder和StringBuffer并未重写equals,故需要先转化

②字符串大写小写

  • String类型的 toUpperCase toLowerCase

③比较字符串

  • compareTo 和 compareToIgnore

④String ->char

  • char[] chars = str.tocharArray();
  • String str = new String(chars);

⑤String->byte

  • byte[] bytes = str.getBytes()
  • String str = new String(bytes)

⑥String->StringBuffer

  • String s = StringBuffer.toString()
  • String s = StringBuffer + “”
  • StringBuffer s = (new StringBuffer()).append(s)

7.String类和StringBuffer类的常用方法?

①String常用方法

  • length charAt concat equals getBytes toCharArrays toUpperCase toLowerCase

②StringBuffer常用方法

  • 增 append insert 删 delete 改 replace reverse 查 substring

③示例代码

package stringtest;public class StringTest {public static void main(String[] args) {//判断回文//1.String转化数组String a = "abcba";char[] chars = a.toCharArray();int t = 0;for(int i = 0;i<a.length()/2;i++){if(chars[i] == chars[a.length()-i-1]){t++;}}if(t==a.length()/2){System.out.println("是回文");}//2.String转化StringBuilderStringBuilder stringBuilder = (new StringBuilder()).append(a);String s = stringBuilder.reverse().toString();System.out.println("回文数:"+(s.equals(a)));//3.对String方法的使用String p = "likejin";//String重写了equals,toString,实现了compareToSystem.out.println(p.length());System.out.println(p.equals(p));System.out.println(p.toString());System.out.println(p.compareTo(p));//String和字节数组,char数组,StringBuffer的转换byte[] bytes = p.getBytes();String q = new String(bytes);char[] chars1 = p.toCharArray();String m = new String(chars);String s1 = new StringBuilder().append(p).toString();String n = s1.toString();//4.对StringBuilder方法的使用StringBuilder a1 = new StringBuilder("likejin");//增删改查a1.append("like");a1.insert(11,"changyu");a1.delete(0,2);a1.replace(9,14,"");a1.substring(0);System.out.println(a1);}
}

未更新

未更新

http://www.yayakq.cn/news/434753/

相关文章:

  • 网站怎么自己编辑模块外贸网站建设电话
  • 传统文化网站建设网络开发是什么
  • 网站 ip地址是什么工作调动申请书
  • 点击最多的网站网站的权重
  • 权威的赣州网站建设友情链接出售网
  • 只做衬衣网站seo做的比较牛的公司
  • 网站安全加固商业广告公司排名
  • 织梦网站上传保存文档阿里巴巴运营流程
  • 北京网站建设外包稿定设计app下载
  • 四川住建厅官方网站的网址陕西省建设网三类人员证书下载
  • 中介网站怎么做装备2合1合成版传奇手游
  • 利用百度搜索自己的网站网易163企业邮箱登录入口
  • 一个虚拟主机如何做多个网站seo推广公司有哪些
  • 广告人网站中国菲律宾直播
  • 网站公告栏怎么做驻马店网站网站建设
  • 临沂建设网站推荐wordpress主题
  • wordpress建站案例视频教程移动互联网开发试卷
  • 外国好的设计网站大全沈阳鹊起网站建设
  • 云南 房地产网站建设ueditor wordpress4.4
  • 网站运营部的职责传智播客
  • php网站后台模板下载不了汉南做网站
  • c 能和php一起做网站吗vs做的本地网站
  • 网站建设开发软件有哪些方面四川省住房和城乡建设厅网站下载
  • 国外小型网站中文域名有哪些网站
  • 做ppt找图片的网站长春移动端网站设计
  • 企业设计网站公司哪家好网站出现乱码怎么办
  • 电子商务专业网站韩国的 电子商务网站
  • 做网站竞价还需要推广公司网站站内链接
  • 营销网站试用简约的网页设计欣赏
  • 天津站建站时间中国景观设计网