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

加强网站建设 通知网站建设流程多少钱

加强网站建设 通知,网站建设流程多少钱,制作网站服务,大型h5手游平台目录: 一. 认识 String 类 二. String 类的基本用法 三. String对象的比较 四.字符串的不可变性 五. 认识 StringBuffer 和 StringBuilder 一. 认识 String 类: 在C语言中已经涉及到字符串了,但是在C语言中要表示字符串只能使用字符数组或者…

目录:

一. 认识 String 类
二. String 类的基本用法
三. String对象的比较
四.字符串的不可变性
五. 认识 StringBuffer 和 StringBuilder
一. 认识 String 类:
在C语言中已经涉及到字符串了,但是在C语言中要表示字符串只能使用字符数组或者字符指针,可以使用标准库提供的字符串系列函数完成大部分操作,但是这种将数据和操作数据方法分离开的方式不符合面相对象的思想,而字符串应用又非常广泛,因此Java语言专门提供了String类
二. String 类的基本用法:
1.字符串构造: 我们构造字符串可以使用常量串构造, 直接newString对象: 使用字符数组进行构造
public static void main(String[] args) {// 使用常量串构造String s1 = "haha";// 直接newString对象String s2 = new String("hehe");// 使用字符数组进行构造char[] array = {'h', 'o'};String s3 = new String(array);}

注意:String是引用类型,内部并不存储字符串本身

他的存储是通过value来维护:如图:

三. String对象的比较:

1. 对于基本类型变量,==比较两个变量中存储的值是否相同

// 对于基本类型变量,==比较两个变量中存储的值是否相同
System.out.println(a == b); // false
System.out.println(a == c); // true

2.对于内置类型==比较的是变量中的值;对于引用类型==比较的是引用中的地址。

// 对于引用类型变量,==比较两个引用变量引用的是否为同一个对象
String s1 = new String("hello");
String s2 = new String("hello");
String s3 = new String("world");
String s4 = s1;
System.out.println(s1 == s2); // false
System.out.println(s2 == s3); // false
System.out.println(s1 == s4);

3.String类重写了父类Objectequals方法,Objectequals默认按照==比较,String重写equals方法后,(简单来说,equals比较的是,对象里的内容)

public static void main(String[] args) {String s1 = new String("bte");String s2 = new String("btE");String s3 = s1;System.out.println(s2 == s1);//falseSystem.out.println(s3 == s1);//ture,这里是引用比较System.out.println(s1.equals(s3));//true
}

四.字符串的不可变性 :

1.String是一种不可变对象. 字符串中的内容是不可改变。字符串不可被修改

其原因. 是String类在设计时就是不可改变的,String类实现描述中已经说明了

2.以下是jdk8中的String类的实现 :

3.  纠正 网上有些人说:字符串不可变是因为其内部保存字符的数组被final修饰了,因此不能改变。这种说法是 错误 的,不是因为String类自身,或者其内部value被final修饰而不能被修改。

4.final 修饰类表明该类不想被继承, final 修饰引用类型表明该引用变量不能引用其他对象,但是其引用对象中的 内容 可以修改
如图:

 5.但是由于维护数组的value(就是引用,也可以理解为地址),被private修饰:所以,数组的引用不能被修改:

总结:

1. String类被final修饰,表明该类不能被继承
2. value被修饰被final修饰,表明value自身的值不能改变,即不能引用其它字符数组,但是其引用空间中的内容可以修改。
五. 认识 StringBuffer 和 StringBuilder(略讲):
(一)者运行速度: 这段代码可以看出,字符串拼接还是 StringBuffer 和 StringBuilder 比较快,虽然他们,运行时会调用很多方法,但是他们,不会开辟新的字符串对象,所以速度很快。
  public static void main(String[] args) {long start = System.currentTimeMillis();String s = "";for(int i = 0; i < 10000; ++i){s += i;}long end = System.currentTimeMillis();System.out.println(end - start);start = System.currentTimeMillis();StringBuffer sbf = new StringBuffer("");for(int i = 0; i < 10000; ++i){sbf.append(i);}end = System.currentTimeMillis();System.out.println(end - start);start = System.currentTimeMillis();StringBuilder sbd = new StringBuilder();for(int i = 0; i < 10000; ++i){sbd.append(i);}end = System.currentTimeMillis();System.out.println(end - start);}

如图:

方法 说明:
StringBuff append(String str)
在尾部追加,相当于String的+=,可以追加:boolean、char、char[]、
double、float、int、long、Object、String、StringBuff的变量
char charAt(int index)
获取index位置的字符
int length()
获取字符串的长度
int capacity()
获取底层保存字符串空间总的大小
void ensureCapacity(int
mininmumCapacity)
扩容
void setCharAt(int index,
char ch)
将index位置的字符设置为ch
int indexOf(String str)
返回str第一次出现的位置
int indexOf(String str, int fromIndex)
从fromIndex位置开始查找str第一次出现的位置
int lastIndexOf(String str)
返回最后一次出现str的位置
int lastIndexOf(String str, int fromIndex)
从fromIndex位置开始找str最后一次出现的位置
StringBuff insert(int offset, String str)
在offset位置插入:八种基类类型 & String类型 & Object类型数据
StringBuffer deleteCharAt(int index)
删除index位置字符
StringBuffer delete(int start, int end)
删除[start, end)区间内的字符
StringBuffer replace(int start, int end, String str)
将[start, end)位置的字符替换为str
String substring(int start)
从start开始一直到末尾的字符以String的方式返回
String substring(int start,int end)
将[start, end)范围内的字符以String的方式返回
StringBuffer reverse()
反转字符串
String toString()
将所有字符按照String的方式返回
(二).StringBuilder(二者方法都很多,这里示范一个) 
1. 由于 String 的不可更改特性,为了方便字符串的修改, Java 中又提供 StringBuilderStringBuffer 类。这两个类大部分功能是相同的,这里介绍 StringBuilder 常用的一些方法,其它需要用到了大家可参阅 StringBuilder在线文档: Java Platform SE 8
2. StringBuilder 的 append方法:
在尾部追加,相当于 String += ,可以追加: boolean char char[]
double float int long Object String StringBuff 的变量:
public static void main(String[] args) {String s1 = "这样";s1 += "拼接";//1.即尾插-->字符、字符串、整形数字,相当于上面的拼接StringBuilder stringBuilder = new StringBuilder("haha");System.out.println(stringBuilder.append(1));//要接受,就用toString转化为String类型String ret = stringBuilder.toString();System.out.println(ret);}

注意:String变为StringBuilder: 利用StringBuilder的构造方法或append()方法,StringBuilder变为String用toString方法。

(二).StringBuffer 和 StringBuilder区别 :

 1.StringBuffer 和 StringBuilder append方法源码如下:StringBuffer被synchronized修饰,所以,在多线程情况下,可以保证线程安全(相当于他有一个锁,在做事时候不会被别人打扰),StringBuilder 则在单线程情况下,可以保证线程安全

 

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

相关文章:

  • 营口市住房建设保障办官方网站百度上搜不到网站
  • 沈阳网络建网站建各企业网站多少钱
  • 电子商务网站设计与规划高端食品品牌排行榜前十名
  • 外贸电商网站开发价格福建做网站公司
  • 东莞齐诺做网站湖北seo网站设计
  • 网站后台用什么语言网页设计与制作ppt课件
  • 网站统计分析如何给网站做高质量外链
  • 大同网站建设优化推广最专业网站建设公司
  • 网站网站建站郑州个人做网站
  • 网站开发怎样建立后台数据如何制作qq小程序
  • 网站建设功能评估表上海松江网站设计公司
  • 地方门户网站app济宁医院网站建设
  • 北京网站建设推广服公司网站维护经验总结
  • 企业网站建设模板多少钱沈阳高端网站
  • 网站建设策划书结束语网站建设 小程序开发 营销推广
  • 泸州市建设工程质量监督站网站汉字域名的网站
  • 长春市制作网站费用的网站建设公司
  • php ajax网站开发典型实例pdf城市分站seo
  • 仿站模板购物网站开发教程中文
  • 秦皇岛做网站的公司哪家好网站备案太慢
  • 做招聘网站需要什么人员国内十大网站建设品牌
  • 信息门户网站开发合同人个做外贸用什么网站好
  • 做网站被骗预付款怎么办怎么做网站企业介绍
  • 为什么很多公司没自己的网站做彩票网站犯法不
  • 网站如何建设与优化洛阳网红
  • flash网站建设教程视频链接转wordpress
  • python企业网站开发wordpress wp_link_pages
  • 武邑网站建设价格旅游网站首页设计模板
  • 福建住房和城乡建设局网站有没有做黑市网站
  • 网站建设费算什么费用宁波建设网 提取业务