网站大量收购独家精品文档,联系QQ:2885784924

动力节点–java常用类.docVIP

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
动力节点–java常用类

纲要 String StringBuffer 基础类型对应的8个包装类 日期相关类 数字相关类 Random Enum 内容 2.1、String 2.1.1、String类是不可变类,也就是说String对象声明后,将不可修改 public class StringTest01 { public static void main(String[] args) { String s1 = a; String s2 = b; s1=s1 + s2; //ab //new String(“a”); System.out.println(s1); } } 从以上内存图,大家可以看到,String对象赋值后不能再修改,这就是不可变对象,如果对字符串修改,那么将会创建新的对象 注意:只要采用双引号赋值字符串,那么在编译期将会放到方法区中的字符串的常量池里,如果是运行时对字符串相加或相减会放到堆中(放之前会先验证方法区中是否含有相同的字符串常量,如果存在,把地址返回,如果不存在,先将字符串常量放到池中,然后再返回该对象的地址) 2.1.2、String s1 = “abc”和 String s2 = new String(“abc”) public class StringTest02 { public static void main(String[] args) { String s1 = abc; String s2 = abc; String s3 = new String(abc); System.out.println(s1==s2, + (s1==s2)); System.out.println(s2==s3, + (s2==s3)); System.out.println(s2 equlas s3, + (s2.equals(s3))); } } 如果是采用双引号引起来的字符串常量,首先会到常量池中去查找,如果存在就不再分配,如果不存在就分配,常量池中的数据是在编译期赋值的,也就是生成class文件时就把它放到常量池里了,所以s1和s2都指向常量池中的同一个字符串“abc” 关于s3,s3采用的是new的方式,在new的时候存在双引号,所以他会到常量区中查找“abc”,而常量区中存在“abc”,所以常量区中将不再放置字符串,而new关键子会在堆中分配内存,所以在堆中会创建一个对象abc,s3会指向abc 如果比较s2和s3的值必须采用equals,String已经对eqauls方法进行了覆盖 2.1.3、String面试题分析 String s1 = new String(hello) ; String s2 = new String(hello) ; 以上代码创建了几个对象? 通过以上分析,大家会看到创建了5个对象,堆区中2个,常量池中1一个,栈区2个 通过以上分析,使用String时,不建议使用new关键字,因为使用new会创建两个对象 记住:堆区中是运行期分配的,常量池中是编译器分配的 2.1.4、String常用方法简介 endsWith:判断字符串是否以指定的后缀结束 startsWith,判断字符串是否以指定的前缀开始 equals,字符串相等比较,不忽略大小写 equalsIgnoreCase,字符串相等比较,忽略大小写 indexOf,取得指定字符在字符串的位置 lastIndexOf,返回最后一次字符串出现的位置 length,取得字符串的长度 replaceAll,替换字符串中指定的内容 split,根据指定的表达式拆分字符串 substring,截子串 trim,去前尾空格 valueOf,将其他类型转换成字符串 2.1.5、使用String时的注意事项 因为String是不可变对象,如果多个字符串进行拼接,将会形成多个对象,这样可能会造成内存溢出,会给垃圾回收带来工作量,如下面的应用最好不要用String 【代码示例】 public class StringTest04 { public static void main(String[] args) { String s = ; for (int i=0; i100; i++) { //以下语句会生成大量的对象 //因为String是不可变对象 //存在大量的对象相加或相减一般不建议使用String //建议使用StringBuffer或StringBuilder s+=i;// s = s+i; } } } 2.1.5、正则表达式初步 正则表达式,主要可以用来做字符串处理

文档评论(0)

junjun37473 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档