String,内存剖析,常用方法_听韩顺平课笔记
时间:2021-09-16
本文章向大家介绍String,内存剖析,常用方法_听韩顺平课笔记,主要包括String,内存剖析,常用方法_听韩顺平课笔记使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1.String结构剖析
String类的理解和创建对象
- 使用Unicode编码,一个字符占两个字节
- String有很多构造器,构造器的重载
- String是final类,不能被其他的类继承
- String有属性private final char value[];用于存放字符串内容,所以String的底层是个char数组
- value[]是一个final属性,是不可修改的(地址不可修改,指向新地址),但是单个字符内容是可以变化的
String的继承关系:
- 实现了Serializable,说明String可以串行话,用于网络传输
- 实现了Comparable,说明String对象可以比较
String的地址不可变性的证明:
- 单独的内容的改变时允许的
- 但不允许改变地址空间
String的八点特性:
2.String创建剖析
String的创建方式(两种):
两种创建String对象的区别:
两种创建String对象的区别(内存分析图):
练习题1:
练习题2:
3.String测试题1
练习题3:T,F,T,F
intern()方法解析:
练习题4:
4.String测试题2
练习题5:做错了,答案:T,T,T,F
5.String对象特性1
习题1:
习题1解:
- 创建一个对象"hello"
- 在常量池中查看是否有"haha"对象,没有则创建,将s1指向"haha"
习题2:
习题2答案:
习题3:
习题3思路分析,追源码(重点):
习题3内存布局图:
验证习题3答案:输出false
- c指向堆中,d指向池中
习题3小结:
- 字符串常量相加,看的是池
- 字符串变量相加,看的是堆
6.String对象特性2
练习题1:
练习题2:
- 方法调用,开辟新栈,使用完毕后销毁,
- char数组在堆中,其中的内容被修改了
练习2内存分析:
7.String常用方法1
String是保存字符串常量的,每次跟新都需要重新开辟空间,效率较低
String类的常用方法一览:
String类的常用方法应用实例1:
8.String常用方法2
String类的常用方法应用实例2:
9.String常用方法3
format方法详解:
原文地址:https://www.cnblogs.com/CH0701/p/15302504.html
- 有趣的算法(六) ——Find-Union算法
- 有趣的算法(七) ——快速排序改进算法
- 编写你人生中第一个机器学习代码吧!
- 使用Octave来学习Machine Learning(二)
- RESTful API的十个最佳实践1. 使用名词而不是动词 2. Get方法和查询参数不应该改变资源状态3. 使用名词的复数形式 4. 为关系使用子资源 5. 使用HTTP头决定序列化格式 6. 使
- MYSQL数据库设计的一些小技巧[转载]
- 在ASP.NET 5应用程序中的跨域请求功能详解什么是“同域”添加CORS包在应用程序中配置CORSCORS策略选项跨域请求中的凭据设置先行请求的过期时间CORS是怎么样工作的先行请求
- 有趣的算法(八) ——红黑树插入算法
- 使用Donut Caching和Donut Hole Caching在ASP.NET MVC应用中缓存页面何时使用Donut CachingDonut Caching 的Nuget 包Donut Ho
- 有趣的算法(九) ——蛇形数组
- 有趣的算法(十一) ——分治法:快速求最值
- ASP.NET AJAX(3)__UpdatePanel
- 正则表达式学习笔记
- PHP10个实用函数
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Linux中gpio接口的使用方法示例
- Three.js教程(1):初识three.js
- 解决Electron安装报错问题
- Linux端口映射转发的方法
- Centos7如何备份和还原Redis数据的方法
- linux contos6.8下部署kafka集群的方法
- 基于Electron的touchbar开发
- Redis数据结构-简单动态字符串
- 使用new Function创建async方法
- Canvas系列(14):实战-小球碰撞
- IOC CreateBean
- Hugo搭建博客(二)— Hugo+Github Pages搭建博客
- 创建bean的实例
- Spring-IOC-默认标签的解析
- Spring-IoC -加载 Bean-总览