【Java】StringBuilder类、包装类

1 StringBuilder类

1.1 String的劣势

String类中字符串是常量,创建后不能更改

//底层是final修饰的数组
private final byte[] value;

字符串相加,内存中会存在多个字符串,占用空间多,效率低下

1.2 StringBuilder的优势

StringBuilder是字符串缓冲区,可以提高操作效率,数组长度可变,初始为16
底层是数组,没有被final修饰,所以长度可变
在内存中始终是一个数组,占用空间少,效率高,超出容量会自动扩容

1.3 构造方法、append、reverse、toString方法

public class StringBuilderTest {public static void main(String[] args) {StringBuilder sb = new StringBuilder();System.out.println(sb);//空串sb.append("abc");//返回this 无需接收返回值System.out.println(sb);//abc//链式编程:方法的返回值是对象可以继续调用对象的方法sb.append("a").append("b").append("c");System.out.println(sb);//abcabcsb.reverse();System.out.println(sb);//cbacba//String和StringBuilder的相互转换toString//String --> StringBuilderString s = "zxc";StringBuilder sb2 = new StringBuilder(s);sb2.append("vbn");//StringBuilder --> StringString s2 = sb2.toString();System.out.println(s2);}
}

2 包装类

2.1 概念

基本数据类型的数据没有对应的方法来操作数据,使用包装类包装基本类型的数据,定义一些方法来操作基本类型数据。

类型包装类
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
charCharacter
booleanBoolean

2.2 装箱与拆箱

装箱:把基本类型的数据,包装到包装类中
构造方法静态方法valueOf

拆箱:在包装类中取出基本类型的数据
成员方法intValue

示例:

public class StringBuilderTest {public static void main(String[] args) {int num1 = 1;//装箱//构造方法Integer num2 = new Integer(num1);System.out.println(num2);//1 返回值而非地址说明重写了toString//静态方法Integer num3 = Integer.valueOf(num1);System.out.println(num3);//1 返回值而非地址说明重写了toString//拆箱//成员方法int num4 = num3.intValue();System.out.println(num4);//1}
}

2.3 自动拆箱和装箱

JDK1.5之后,基本类型和包装类型可以自动相互转换。

public class StringBuilderTest {public static void main(String[] args) {Integer num1 = 1;//相当于Integer num2 = new Integer(1);//包装类无法直接计算 会自动拆箱转化为基本类型然后计算 最后又自动装箱赋值给num3Integer num3 = num1 + num2;System.out.println(num3);//2//ArrayList无法直接存取整数 存取包装类ArrayList<Integer> list = new ArrayList<>();//自动装箱list.add(1);//自动拆箱int value = list.get(0);System.out.println(value);//1}
}

3 基本类型和字符串之间的转换

字符串<—>基本类型

除Character外,静态方法parseXxxx可以将字符串参数转换为对应的基本类型。
Xxxx.toString、Xxxx.valueOf、str+**""**可以将Xxxx包装类拆箱后对应的基本类型数据转换为字符串

public static void main(String[] args) {//基本类型--->字符串//法1:基本类型+""√String s1 = 100+"";System.out.println(200+s1);//200100//法2:String toStringString s2 = Integer.toString(100);System.out.println(200+s2);//200100//法3 String valueOf()String s3 = String.valueOf(100);System.out.println(200+s3);//200100//字符串--->基本类型//法1:Xxxx parseXxxx(String str)int num = Integer.parseInt("100");System.out.println(200+num);//300}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/481029.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从贪心选择到探索决策:基于强化学习的多样性排序

本文主要介绍发表在SIGIR2018上的论文From Greedy Selection to Exploratory Decision-Making: Diverse Ranking with Policy-Value Networks​www.bigdatalab.ac.cn这篇论文利用强化学习来解决多样性排序问题&#xff0c;整体思路和AlphaGo类似。Motivation在信息检索领域一个…

对话系统聊天机器人的设计艺术(上)

前言关于本文的阅读方式&#xff1a;这不是一篇学术综述&#xff0c;也不是单纯的科普文&#xff0c;而是试图从目标出发来渐进式的思考对话系统的设计&#xff0c;顺便科普。因此本文不适合跳读&#xff0c;也不适合5分钟式浏览&#xff0c;而是适合在夜深人静的时候一个人...…

鲍捷 | 知识表示——面向实战的介绍

本文转载自文因互联 2016 年 6 月份组织的第一期北京知识图谱学习小组 Wiki。 知识表示&#xff08;Knowledge Representation&#xff0c;KR&#xff0c;也译为知识表现&#xff09;是如何将结构化数据组织&#xff0c;以便于机器处理和人的理解的方法。从结构推导出新的结构&…

【Java】Collection集合和泛型

学习目标&#xff1a;会存取&#xff0c;掌握特性 学习方式&#xff1a;学习顶层接口/抽象类的共性方法&#xff0c;使用底层的子类创建对象使用 1 集合框架 集合类的继承体系&#xff1a; Collection接口&#xff1a; 1) List接口&#xff1a;有序、允许重复、有索引 1.1) Ar…

]搜索引擎的文档相关性计算和检索模型(BM25/TF-IDF)

搜索引擎的检索模型-查询与文档的相关度计算1. 检索模型概述搜索结果排序时搜索引擎最核心的部分&#xff0c;很大程度度上决定了搜索引擎的质量好坏及用户满意度。实际搜索结果排序的因子有很多&#xff0c;但最主要的两个因素是用户查询和网页内容的相关度&#xff0c;以及网…

对话系统(任务型、检索式、生成式对话论文与工具串讲)

Motivation 对话是一个很大的概念&#xff0c;有非常非常多的子问题&#xff0c;刚入坑的小伙伴很可能迷失在对话的一小块区域里无法自拔&#xff0c;本文就是为解决这一类问题的。希望读者在看完本文后&#xff0c;可以理清楚对话的每个概念为什么而存在&#xff0c;以及它在整…

综述 | 知识图谱向量化表示

本文作者&#xff1a;窦洪健&#xff0c;2016级研究生&#xff0c;目前研究方向为推荐系统、文本生成&#xff0c;来自中国人民大学大数据管理与分析方法研究北京市重点实验室。 本文收录于RUC AI Box专栏&#xff0c;为该专栏特供稿件&#xff08;https://zhuanlan.zhihu.com/…

【LeetCode】4月2日打卡-Day18-矩阵操作

题1 生命游戏 描述 根据 百度百科 &#xff0c;生命游戏&#xff0c;简称为生命&#xff0c;是英国数学家约翰何顿康威在 1970 年发明的细胞自动机。 给定一个包含 m n 个格子的面板&#xff0c;每一个格子都可以看成是一个细胞。每个细胞都具有一个初始状态&#xff1a;1 即…

强化学习扫盲贴:从Q-learning到DQN

本文转载自知乎专栏「机器学习笔记」&#xff0c;原文作者「余帅」&#xff0c;链接https://zhuanlan.zhihu.com/p/358829371 本文学习目标1. 复习Q-Learning&#xff1b;2. 理解什么是值函数近似&#xff08;Function Approximation&#xff09;&#xff1b;3. 理解什么是DQN&…

【LeetCode】4月1日打卡-Day17-括号匹配/嵌套深度

题1 有效括号的嵌套深度 题解 要求划分出使得最大嵌套深度最小的分组&#xff0c;我们首先得知道如何计算嵌套深度。我们可以通过栈实现括号匹配来计算&#xff1a; 维护一个栈 s&#xff0c;从左至右遍历括号字符串中的每一个字符&#xff1a; 如果当前字符是 (&#xff0c;…

肖仰华 | 基于知识图谱的可解释人工智能:机遇与挑战

本文转载自公众号知识工场&#xff0c;整理自 2017 年 10 月 13 日肖仰华教授在 CIIS2017 中国智能产业高峰论坛上所做的报告。 肖仰华&#xff1a;很高兴有机会跟大家一起分享《基于知识图谱的可解释人工智能&#xff1a;机遇与挑战》。 刚才刘总的报告中提到了机器和人类将来…

对话系统的设计艺术(完结)

Motivation对话是一个很大的概念&#xff0c;有非常非常多的子问题&#xff0c;刚入坑的小伙伴很可能迷失在对话的一小块区域里无法自拔&#xff0c;本文就是为解决这一类问题的。希望读者在看完本文后&#xff0c;可以理清楚对话的每个概念为什么而存在&#xff0c;以及它在整…

2018届校招面经精选

https://www.zhihu.com/question/23259302 牛客网​已认证的官方帐号819 人赞同了该回答最好的办法就是看看别人是怎么准备的&#xff0c;通过别人的面经来反思自己如何准备。针对应届生校招面试 “机器学习” 相关岗位的情况&#xff0c;牛妹为大家整理了一批面经&#xff0c…

【Java】列表、集合、哈希表和可变参数

1 List 1.1 List的特点 List接口继承自Collection接口List是有序集合&#xff0c;存取顺序一致允许存储重复元素 1.2 List的特有方法【带索引】 public void add(int index, E element);public E get(int index)public E remove(int index)&#xff1a;返回移除元素public …

白硕 | 知识图谱,就是场景的骨架和灵魂

本文转载自公众号恒生技术之眼 知识图谱&#xff0c;目前已在全世界得到了重视和应用&#xff0c;成为当下人工智能热的一个重要组成部分。它究竟是怎样的一种技术&#xff1f;它的应用场景在哪里&#xff1f;未来国内企业该如何发展&#xff1f;让我们一起来聊聊。 从知识图谱…

您的DST大礼包请查收

本文转载自刘冲大佬&#xff08;知乎id&#xff1a;呜呜哈&#xff09;的知乎文章&#xff0c;链接&#xff1a;https://zhuanlan.zhihu.com/p/40988001除本文外&#xff0c;作者还写了很多对话相关的良心好文&#xff01;做对话的小伙伴千万不要错过这位良心答主噢(&#xffe…

LSTM长短记,长序依赖可追忆(深度学习入门系列之十四)

摘要&#xff1a;如果你是一名单身狗&#xff0c;不要伤心&#xff0c;或许是因为你的记忆太好了。有时&#xff0c;遗忘是件好事&#xff0c;它让你对琐碎之事不再斤斤计较。然而每当自己记不住单词而“问候亲人”时&#xff0c;也确实气死个人。于是你懂得了如何控制好什么信…

【Java】如何理解Java中的双列集合Map?

1 Map<K,V>接口 1.1 特点 双列集合一个元素包含俩值Key不可以重复&#xff0c;Value可以重复Key和Value一一对应Key和Value可以时任意类型 1.2 常用方法 public V put(K key, V value): 不重复返回null&#xff0c;重复返回value public static void main(String[] a…

技术动态 | 清华大学开源OpenKE:知识表示学习平台

本文转载自公众号机器之心&#xff0c;选自 THUNLP。 清华大学自然语言处理实验室近日发布了 OpenKE 平台&#xff0c;整合了 TransE、TransH、TransR、TransD、RESCAL、DistMult、HolE、ComplEx 等算法的统一接口高效实…