动力节点-java常用类

动力节点-java常用类

ID:34443538

大小:154.50 KB

页数:17页

时间:2019-03-06

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

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

1、1.纲要a)Stringb)StringBufferc)基础类型对应的8个包装类d)日期相关类e)数字相关类f)Randomg)Enum2.内容1.12.1、String1.1.12.1.1、String类是不可变类,也就是说String对象声明后,将不可修改publicclassStringTest01{publicstaticvoidmain(String[]args){Strings1="a";Strings2="b";s1=s1+s2;//ab//newString(“a”);System.out.println

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

3、(“abc”)publicclassStringTest02{publicstaticvoidmain(String[]args){Strings1="abc";17/17Strings2="abc";Strings3=newString("abc");System.out.println("s1==s2,"+(s1==s2));System.out.println("s2==s3,"+(s2==s3));System.out.println("s2equlass3,"+(s2.equals(s3)));}}栈s1s2s

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

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

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,截子

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

8、变对象//存在大量的对象相加或相减一般不建议使用String//建议使用StringBuffer或StringBuilders+=i;//s=s+i;}}17/17}1.1.12.1.5、正则表达式初步正则表达式,主要可以用来做字符串处理,可以描述特定的字符模式,如:”a{2}”表示由两个字符“a”构成的字符串,等同

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

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

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