String对象的声明操作和Java内存管理机制
来源:互联网 发布:hessian java 编辑:程序博客网 时间:2024/06/06 09:53
字符串对象的声明和操作
字符串创建的两种方式
//第一种 s1 == s2 返回false;String s1 = new String("abc");String s2 = new String("abc");//第二种 s3 == s4 返回trueString s3 = "abc";String s4 = "abc";
- 声明字符串时采用第一种方式会在字符串池里给s1 和 s2所指向的字符串 分别开辟内存空间。
采用第二种方式会先将s1 创建的字符串“abc”保存在字符串池里,如果有创建相同的字符串“abc”时 ,只需将“abc”的地址赋给变量即可。这里是将“abc”的地址赋给s3和s4,即s3和s4指向同一个字符串“abc”。这种方式可以节约内存空间的占用,减少资源的浪费。
String对象是不可变的
类中每个看来会修改String值的方法,其实都创建了String对象(包含修改后的字符串内容)
String的只读特性使代码执行效率别较高
字符串字面值存储于字符串池中,String对象优先指向字符串池,避免反复生成重复的字符串实例
- 系统对字符串的非修改处理效率很高,远远高于另外两个字符串类StringBuilder 和StringBuffer
String对象的常用方法
- length()返回此字符串长度
- charAt(int index)-返回索引处的char值
- concat(String str) 将指定字符串连接到此字符串的结尾
- contains(CharSequence s)是否包含指定的字符串序列
- equals(Object obj)将字符串与指定的对象比较
- compareTo(String anotherString) 按字典顺序比较两个字符串
- indexOf(int ch) 返回指定字符在此字符串中第一次出现的索引
- split(String regex)根据匹配给定的正则表达式来拆分字符串
- substring(int beginIndex) 截取字符串
- toLower/upperCase()将指定字符串进行大小写转换
java对象的内存管理机制
- 在使用new创建对象,在堆内存分配对象空间、初始化
- 在方法栈中定义局部变量,持有对堆内存中对的对象的引用
- 方法执行完返回,栈内存自动释放,局部变量销毁
- 如果堆内存的对象没有变量引用它,成为垃圾,由垃圾回收器回收,释放所占堆内存。
- java垃圾回收器:
- java运行时系统有一个垃圾回收线程清除不再使用的对象,俗称垃圾回收器
- 垃圾回收器定时扫描内存,对于被使用的对象加上标记,按可能的路径扫描结束后,清除未加标记的对象。
- 被回收的对象是:
- 不再被任何变量引用的对象
- 引用变量自动放弃
- 人为将引用变量置为null
阅读全文
0 0
- String对象的声明操作和Java内存管理机制
- String对象的内存管理机制
- Java的内存管理机制
- java的内存管理机制
- java 的内存管理机制
- Java的内存管理机制
- java的内存管理机制
- String对象的声明和String对象的常用方法
- 浅谈java的内存管理机制
- java内存管理机制和内存泄漏问题
- Javascript中对象的声明和操作
- 自动内存管理机制(2)——虚拟机对象的创建、内存布局和访问定位
- Java中String显式声明的对象创建问题
- java对象数组的声明和初始化
- Java 的内存管理机制是怎样的?
- JAVA、OC的内存管理机制的本质
- String和内存操作
- String和内存操作
- 图片上传(无需上传按钮、自动裁剪)
- 常用 正则表达式
- Spark应用介绍
- 异步消息的传递-回调机制
- vsftpd:500 OOPS: vsftpd: refusing to run with writable root inside chroot ()错误的解决方法
- String对象的声明操作和Java内存管理机制
- UIView的alpha、hidden和opaque属性之间的关系和区别
- HDU 6038(Function) 思维 Java
- NVIDIA Nsight Eclipse 安装
- 项目中期客户拜访随行小记
- Linux yum提示Another app is currently holding the yum lock; waiting for it to exit...
- How to use boost::property_tree to load and write JSON
- MySQL、SqlServer、Oracle数据库之间的差异
- HDU-2602-Bone Collector(01背包)