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

行业协会网站建设方案工商注册代理

行业协会网站建设方案,工商注册代理,wordpress 直播 视频教程,杭州百度整站优化服务目录 引言 String类的特性 String类的部分实现代码#xff1a; 不可变性#xff1a; 补充#xff1a; 常量池#xff1a; 不可变性的好处 创建String对象 创建String对象的常用的三种方法如下#xff1a; 使用常量串构造#xff08;最常用#xff09;#xf…目录 引言 String类的特性 String类的部分实现代码 不可变性 补充 常量池 不可变性的好处 创建String对象 创建String对象的常用的三种方法如下 使用常量串构造最常用 使用new关键字 字符数组 补充 常用方法 两个常用的String对象的比较方法 1.用“”号来进行比较比较的是引用的地址 2.用equals()方法来进行比较直接比较的字符串的内容 字符串查找 转化 1. 数值和字符串转化使用valueOf()方法 2. 大小写转换 3. 字符串转数组 4. 格式化输出 字符串替换​编辑 字符串截取 从String类中按下标取一个char类型出来charAt()方法 字符串修改 StringBuilder和StringBuffer String和StringBuilder类不能直接转换。如果要想互相转换可以采用如下原则: 1.String变为StringBuilder利用StringBuilder的构造方法或append()方法 2.StringBuilder变为String调用toString()方法 结语 引言 在Java编程语言中String类是用来创建和操作字符串的一种非常重要的类。由于其不可变性和广泛的应用String类在Java中的使用频率非常高。本文将详细介绍String类的特性、创建方式、常用方法以及它的不可变性。 String类的特性 String类的部分实现代码 不可变性 从源码可以看到String类是通过一个被private关键字修饰的char类型的数组来存储数据的但是String类并没有提供访问该数组的方法set方法。因此一旦创建了String对象它的值就无法被改变。如果需要对字符串进行修改通常会创建一个新的String对象。 补充 String类被final修饰表明该类不能被继承。value被修饰被final修饰表明value自身的值不能改变即不能引用其它字符数组但是其引用空间中的内容可以修改。String类是引用类型内部并不存储字符串本身。 常量池 字符串常量池是String对象的一个特殊存储区域它可以帮助节省内存空间。当我们创建字符串常量时JVM会首先检查字符串常量池如果池中已存在相同的String对象就会返回池中的对象引用而不是创建一个新对象。 请注意网上有些人说字符串不可变是因为其内部保存字符的数组被final修饰了因此不能改变。这种说法是错误的不是因为String类自身或者其内部value被final修饰而不能被修改。final修饰类表明该类不想被继承final修饰引用类型表明该引用变量不能引用其他对象但是其引用对象中的内容是可以修改的。 不可变性的好处 String类的不可变性有几个优点 安全性字符串常量的不可变性使得字符串实例可以安全地在多个线程间共享。性能不可变的字符串可以被缓存减少了重复创建相同字符串对象的开销。哈希值缓存由于String的内容不可变它的哈希值也不会变。这使得String对象可以作为哈希表的键提高了哈希表的性能。 创建String对象 创建String对象的常用的三种方法如下 使用常量串构造最常用 String str Hello, World!;使用new关键字 String str new String(Hello, World!);字符数组 char[] charArray {H, e, l, l, o}; String str new String(charArray);补充 有以下代码 public static void main(String[] args) {String s1 new String(hello);String s2 new String(world);String s3 s1; } 调试结果如下 通过调试结果可以得知s1和s2引用的是不同对象s1和s3引用的是同一对象。 常用方法 两个常用的String对象的比较方法 1.用“”号来进行比较比较的是引用的地址 代码演示如下 public static void main(String[] args) {//s1和s2引用的是不同对象 s1和s3引用的是同一对象String s1 new String(hello);String s2 new String(hello);String s3 s1;System.out.println(s1 s2);//s1 s2的结果是falseSystem.out.println(s1 s3);//s1 s3的结果是true } 运行结果如下 2.用equals()方法来进行比较直接比较的字符串的内容 代码演示如下 public static void main(String[] args) {//s1和s2引用的是不同对象 s1和s3引用的是同一对象String s1 new String(hello);String s2 new String(hello);String s3 s1;//直接比较字符串的内容所以结果都是trueSystem.out.println(s1.equals(s2));System.out.println(s1.equals(s3)); } 运行结果如下 还有其他的比较方法如compareToComparable等由于篇幅问题就不做过多介绍了同学们可自行了解。 字符串查找 注意上述方法都是实例方法。 转化 1. 数值和字符串转化使用valueOf()方法 String s1 String.valueOf(1234);//int类型转String类型 String s2 String.valueOf(56.78);//double类型转String类型 String s3 String.valueOf(true);//boolean类型转String类型 2. 大小写转换 public static void main(String[] args) {String str new String(hello);str str.toUpperCase();//转大写System.out.println(str);str str.toLowerCase();//转小写System.out.println(str); } 3. 字符串转数组 代码演示如下 public static void main(String[] args) {String s hello;char[] ch s.toCharArray();// 字符串转数组for (int i 0; i ch.length; i) {System.out.print(ch[i]);}System.out.println(); } 运行结果如下 4. 格式化输出 代码演示如下 public static void main(String[] args) {String s String.format(%d-%d-%d, 1949, 10,1);//格式化输出System.out.println(s); } 运行结果如下 字符串替换 注意由于字符串是不可变对象, 替换不修改当前字符串, 而是产生一个新的字符串。 字符串截取 代码示例如下 public static void main(String[] args) {String str hello world;System.out.println(str.substring(0, 5));System.out.println(str.substring(6));//没有截取空格 } 运行代码如下 注意substring(int beginIndex, int endIndex)是前闭后的substring(0, 5)表示包含0号下标的字符不包含5号下标。 从String类中按下标取一个char类型出来charAt()方法 代码示例如下 public static void main(String[] args) {String str hello world;char ch str.charAt(0);//取第一个System.out.println(ch);System.out.println(str.charAt(10));//取最后一个 } 运行代码如下 字符串修改 public static void main(String[] args) {String s hello;s world;System.out.println(s);//输出hello world } 并不推荐这种方式因为其效率非常低中间创建了好多临时对象。尽量避免直接对String类型对象进行修改因为String类是不能修改的所有的修改都会创建新对象效率非常低下。 StringBuilder和StringBuffer 由于String的不可更改特性为了方便字符串的修改Java中又提供StringBuilder和StringBuffer类。这两个类大部分功能是相同的这里介绍 StringBuilder常用的一些方法其它的大家可自行查阅文档。 方法 说明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位置的字符设置为chint 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)位置的字符替换为strString substring(int start) 从start开始一直到末尾的字符以String的方式返回String substring(int startint end) 将[start, end)范围内的字符以String的方式返回StringBuffer reverse() 反转字符串String toString() 将所有字符按照String的方式返回 String和StringBuilder类不能直接转换。如果要想互相转换可以采用如下原则: 1.String变为StringBuilder利用StringBuilder的构造方法或append()方法 代码示例如下 public static void main(String[] args) {StringBuilder stringBuilder new StringBuilder(Hello);System.out.println(stringBuilder);stringBuilder.append( World!);System.out.println(stringBuilder); } 运行结果如下 2.StringBuilder变为String调用toString()方法 代码示例如下 public static void main(String[] args) {StringBuilder stringBuilder new StringBuilder(Hello);String str stringBuilder.toString(); } 调试结果如下 由于StringBuilder和StringBuffer大部分功能和用法都是类似的因此本文仅介绍StringBuilderStringBuffer的相关方法大家可自行了解使用。 注意StringBuffer采用同步处理属于线程安全操作而StringBuilder未采用同步处理属于线程不安全操作。 结语 以上就是的本次要带大家深度剖析的Java中的String类的全部内容感谢大家愿意花时间阅读本文 如有错误建议或问题均可在评论区指出
http://www.pierceye.com/news/415039/

相关文章:

  • 企业做网站有什么好处坏处四川住房城乡和城乡建设厅网站首页
  • 小学学校网站建设计划广州seo顾问服务
  • 做淘宝素材网站哪个好用网站制作网站建设需要多少钱
  • 住房建设部官方网站设计费计取wordpress仿百度搜索主题
  • 云建站平台哪家好沈阳百度seo关键词排名优化软件
  • 响应式网站设计的优点国内优秀设计网站
  • 网站开发集成环境国内html5网站欣赏
  • iis7.5 没有默认网站北京seo的排名优化
  • 两学一做网站是多少钱营销型网站策划怎么做
  • 渭南做网站的自建房设计图
  • 移动网站建设价格线上推广专员是干嘛的
  • 做化妆刷的外贸网站企业网站托管备案
  • 湖南省建设干部学校 网站金融直播室网站建设
  • 贵州建设厅特殊工种考试网站photoshop平面设计教学视频
  • 怎么推广我的网站代理网站推荐
  • wordpress主题站模板做网站跟做APP哪个容易
  • 杭州网站建设公司推荐网站建设优化服务渠道
  • php是网站开发语言吗做网站前端需要编程基础吗
  • python 网站开发 前端企业信用信息系统官网
  • 公司网站设计有哪些使用技巧呢商城网站建设怎么收费
  • 东莞做网站平台安阳营销型网站建设
  • 如何查看网站开发语言百度排行榜风云榜
  • 泉州 网站建设公司首选广告设计公司名字有寓意有创意
  • 天津个人做网站慈利网站制作
  • 专门做推广的网站吗宿迁房价2023年最新房价
  • 0基础12天精通网站建设网站建设 全网推广
  • 东莞网站营销推广公司移动应用开发案例
  • 妇科医院网站建设怎么做网站建设培训心得体会
  • 网站建设 管理正能量网站入口地址
  • 做网站没有创意Wordpress国际收款