您的位置:首页 > 产品设计 > UI/UE

《String》

2018-02-28 12:36 106 查看
Object类Object类是所有类的终极父类,任何一个类都继承了object类Java是开源的,源代码是公开的Object方法:1. toString返回该对象字符串表示 完整类名+@+对象哈希吗2. Equals方法用于比较两个对象的内存地址,判断两个对象是否为同一个对象3. Hashcode返回该对象的哈希码值字符串“==”用于比较引用数据类型数据的时候比较的是两个对象的内存地址“equals”默认方法比较也是两个对象的内存地址在String中重写了equals把字符串转换成字符数组,然后一个一个的比较String s = “hello”这种方式创建字符串的时候,jvm首先会检查字符串常量池中是否存在该字符串对象,如果已经存在,那么就不会在字符串常量池中再创建,直接返回该字符串在字符串常量池中的内存地址,如果该字符串还不存在字符串常量池中,那么就会在字符串常量池中创建该字符串的对象,然后再返回String s1 = new String(“hello”)这种方式创建的字符创对象的时候,jvm首先会检查字符串常量池中是否存在“hello”的字符串,如果已经存在,则不会在字符串常量池中创建了,如果还不存在,那么就会在字符串常量池中创建“hello”字符串对象,然后还会去到堆内存中再创建一份字符创的对象,把字符串常量池中“hello”内容拷贝致对内存中的字符创对象,然后返回堆内存中字符串对象的内存地址。注意:使用字节数组或者字符数组都可以构建一个字符串对象String方法:1. length() 获取字符串的长度2. charAt(int index) 获取特定位置的字符 3. indexOf(String str) 获取特定字符的位置 如果没有出现 -1表示4. Lastindexof(int char) 获取最后一个字符的位置 如果没有出现 -1表示字符串是常量,他们的值在创建之后不能修改,字符串的内容一旦发生了变化,那么马上就会创建一个新的对象String缓冲类如果需要频繁修改字符串的内容,使用Stringbuffer,Stringbuffer就是一个存储一个字符的容器。Stringbuffer:底层是依赖一个字符数组才能储存字符数据的,该字符串数组默认的初始容量为16,如果字符数组长度不够使用时,自动增长1倍+2。Stringbuilder:跟Stringbuffer兼容的api,功能与Stringbuffer一样的,比Stringbuffer运行更快。Stringbuffer与Stringbuilder相同处1. 两个类都是字符串缓冲类2. 两个类的方法都是一致的Stringbuffer与Stringbuilder不同处1. Stringbuffer是线程安全的操作效率低,Stringbuilder是线程不安全的操作效率高2. Stringbuffer是jdk1.0出现的,Stringbuilder1.5出现的
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息