| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> java从小白开始的练习(String构造器,内存分析与笔试题) -> 正文阅读 |
|
[数据结构与算法]java从小白开始的练习(String构造器,内存分析与笔试题) |
目录 String是引用类型,为什么不用new关键字进行创建就可以使用? String的方法理解与源码讲解(jdk8.0,方法为常用方法) final关键字修饰是不可变的,所以字符串像数组一样,内容,大小是国定不变的,只能创建新的字符串。 方法二:isEmpty() (查看字符串长度是否为0,返回true或者false) ?方法三:charAt(下标) (返回一个该下标的值,以char类型返回) ?方法四:indexof(下标) (返回指定字符ch在字符串中第一次出现处的索引,如果此字符串中没有这样的字符,则返回-1。) 方法五(非常重要):equals(比较对象) (判断字符串与比较对象是否相等,相等返回true,反之,返回false) 方法六?substring(开始下标,结束下标) (返回一个字符串,字符串截取开始下标开始到结束下标结束) 判断下面代码运行结果?(参考String的内存空间进行解答!!!) String的详解String就是字符串 String是引用类型,为什么不用new关键字进行创建就可以使用?因为字符串的使用太过于平凡了,使用就简化了String的使用。这样就减少了代码的冗余。(冗余:小编理解就是重复的次数) String的方法理解与源码讲解(jdk8.0,方法为常用方法)在jdk8.0当中字符串就是个char类型数组的,但在9.0时候改成了byte类型的数组 final关键字修饰是不可变的,所以字符串像数组一样,内容,大小是国定不变的,只能创建新的字符串。构造器?无参构造:一个空字符串对象 ?有参构造:(有参构造太多了,小编举一个例子来看)就是将其它基本类型的数组转化为字符串 参数介绍:? ????????byte []?:一个byte类型的数组 ? ? ? ? hibye :字节 ? ? ? ? offset:偏移量(当偏移量是2,就是从第二个数组开始) ? ? ? ? count:数量 方法:“+” (拼接字符串最常见方法)
方法一:length() (?返回字符串的长度)方法二:isEmpty() (查看字符串长度是否为0,返回true或者false)?方法三:charAt(下标) (返回一个该下标的值,以char类型返回)?方法四:indexof(下标) (返回指定字符ch在字符串中第一次出现处的索引,如果此字符串中没有这样的字符,则返回-1。)? 方法五(非常重要):equals(比较对象) (判断字符串与比较对象是否相等,相等返回true,反之,返回false)? ?equals()方法进行比较,通过源码可以看出先比较内存地址是否相等(==判断的是内存地址),在比较值是否一样。因为String的存储不同,所以不要使用==来判断字符串是否相等!!! 方法六?substring(开始下标,结束下标) (返回一个字符串,字符串截取开始下标开始到结束下标结束)方法七 toString() (返回改字符串,不需要下标)? ?方法八 join(字符串1,字符串2)(拼接二个字符串)? 方法9:split(regex?-- 正则表达式分隔符。limit?-- 分割的份数)?(匹配给定的正则表达式来拆分字符串。) ? String内存分析
使用上面方式创建一个字符串时,其实是在常量池(元空间)中创建一个字符串,将变量指向字符串的内存地址。(如下图) ?
使用上面方式创建一个字符串时,是在堆中创建一个空间,空间指向常量池内存地址,变量指向了堆中的地址。(如下图) ? String笔试题(讲解一下下面代码)判断下面代码运行结果?(参考String的内存空间进行解答!!!)
问下面代码创建了几个对象?
?产生三个对象,字符串是不可变的,str1与str的拼接会产生一个新的字符串 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 16:22:16- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |