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

06_常用类分析.doc

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1、纲要 1 2、内容 1 2.1、计算机语言发展简史 1 2.2、Java发展简史 1 2.3、Java语言特性 2 2.4、Java的加载与执行 2 2.5、开始第一个Java程序 3 2.5.1、J2SE 的安装 3 2.5.2、搭建开发环境 3 2.6、public class 和 class的区别 5 纲要 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” //s1 = 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 = ; f

文档评论(0)

xuefei111 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档