动力节点-java常用类.doc

动力节点-java常用类.doc

ID:62047221

大小:118.50 KB

页数:16页

时间:2021-04-16

动力节点-java常用类.doc_第1页
动力节点-java常用类.doc_第2页
动力节点-java常用类.doc_第3页
动力节点-java常用类.doc_第4页
动力节点-java常用类.doc_第5页
资源描述:

《动力节点-java常用类.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、个人收集整理勿做商业用途1.纲要a)Stringb)StringBufferc)基础类型对应的8个包装类d)日期相关类e)数字相关类f)Randomg)Enum2.内容1.12.1、String1.1.12.1.1、String类是不可变类,也就是说String对象声明后,将不可修改publicclassStringTest01{public staticvoidmain(String[]args){ﻩﻩﻩStrings1 ="a";ﻩﻩStrings2 = "b";ﻩﻩﻩs1=s1+s2; //abﻩ//newString(“a”);ﻩSyste

2、m.out.println(s1);}}个人收集整理勿做商业用途栈s1s2方法区(常量池)abab堆temp从以上内存图,大家可以看到,String对象赋值后不能再修改,这就是不可变对象,如果对字符串修改,那么将会创建新的对象注意:只要采用双引号赋值字符串,那么在编译期将会放到方法区中的字符串的常量池里,如果是运行时对字符串相加或相减会放到堆中(放之前会先验证方法区中是否含有相同的字符串常量,如果存在,把地址返回,如果不存在,先将字符串常量放到池中,然后再返回该对象的地址)1.1.12.1.2、String s1= “abc”和Strings2=n

3、ewString(“abc”)public classStringTest02{public static voidmain(String[] args){ﻩﻩﻩString s1="abc";个人收集整理勿做商业用途ﻩﻩStrings2= "abc";ﻩﻩﻩStrings3=newString("abc");ﻩSystem.out.println("s1==s2," + (s1==s2));System.out.println("s2==s3, " + (s2==s3));ﻩSystem.out.println("s2equlass3,"+(s2

4、.equals(s3)));} }栈s1s2s3方法区(常量池)abc堆abc个人收集整理勿做商业用途l如果是采用双引号引起来的字符串常量,首先会到常量池中去查找,如果存在就不再分配,如果不存在就分配,常量池中的数据是在编译期赋值的,也就是生成class文件时就把它放到常量池里了,所以s1和s2都指向常量池中的同一个字符串“abc”l关于s3,s3采用的是new的方式,在new的时候存在双引号,所以他会到常量区中查找“abc”,而常量区中存在“abc”,所以常量区中将不再放置字符串,而new关键子会在堆中分配内存,所以在堆中会创建一个对象abc,s

5、3会指向abcl如果比较s2和s3的值必须采用equals,String已经对eqauls方法进行了覆盖1.1.12.1.3、String面试题分析String s1 =newString("hello");String s2=newString("hello");以上代码创建了几个对象?栈s1s2堆hellohello方法区(常量池)hello通过以上分析,大家会看到创建了5个对象,堆区中2个,常量池中1一个,栈区2个通过以上分析,使用String时,不建议使用new关键字,因为使用new会创建两个对象记住:堆区中是运行期分配的,常量池中是编译器

6、分配的个人收集整理勿做商业用途1.1.12.1.4、String常用方法简介1.endsWith:判断字符串是否以指定的后缀结束2.startsWith,判断字符串是否以指定的前缀开始3.equals,字符串相等比较,不忽略大小写4.equalsIgnoreCase,字符串相等比较,忽略大小写5.indexOf,取得指定字符在字符串的位置6.lastIndexOf,返回最后一次字符串出现的位置7.length,取得字符串的长度8.replaceAll,替换字符串中指定的内容9.split,根据指定的表达式拆分字符串10.substring,截子串1

7、1.trim,去前尾空格12.valueOf,将其他类型转换成字符串1.1.22.1.5、使用String时的注意事项因为String是不可变对象,如果多个字符串进行拼接,将会形成多个对象,这样可能会造成内存溢出,会给垃圾回收带来工作量,如下面的应用最好不要用String【代码示例】public class StringTest04{ﻩpublic static voidmain(String[] args){ﻩStrings= "";ﻩfor(inti=0;i<100;i++){//以下语句会生成大量的对象ﻩ//因为String是不可变对象ﻩﻩ/

8、/存在大量的对象相加或相减一般不建议使用Stringﻩ//建议使用StringBuffer或StringBuilders+

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。