String基础
一:
String,StringBuffer与StringBuilder的区别??
String 字符串常量
StringBuffer 字符串变量(线程安全)
StringBuilder 字符串变量(非线程安全)
在大部分情况下 StringBuffer > String
在大部分情况下 StringBuilder > StringBuffer
java.lang.StringBuilder一个可变的字符序列是5.0新增的。此类提供一个与 StringBuffer 兼容的 API,但不保证同步。
该类被设计用作 StringBuffer 的一个简易替换,用在字符串缓冲区被单个线程使用的时候(这种情况很普遍)。
如果可能,建议优先采用该类,因为在大多数实现中,它比 StringBuffer 要快。两者的方法基本相同。
二:
输出结果
String a="abc";
String b="abc";
String c=new String("abc");
String d="ab"+"c";
System.out.println(a==b );
System.out.println(a==c );
System.out.println(a==d );
System.out.println(b==c );
System.out.println(b==d );
System.out.println(c==d );
Answer
true
false
true
false
true
false
三:输出结果
public static void main(String[] args){ String i5="1";
String i6="00";
String i7="100";
String i8=i5+i6;
String i9="1"+"00";
String i10=i5+i6;
String i11="1";
i11+="00";
System.out.println(i7==i8);
System.out.println(i7==i9);
System.out.println(i9==i8);
System.out.println(i8==i10);
System.out.println(i9==i11); }
answer
false
true
false
false
false
解析:
String d="ab"+"c"; String i9="1"+"00";对于直接相加的字符串,在编译期就进行了优化,在编译期就确定了他的值,分别被优化成 abc 100,因此在运行时,a,b,d i7 i9指向同一个对象,由于有符号引用(间接引用),在编译器不会优化,编译器确定不了值,
在运行期才确定他的值,这种方式生成的对象事实上是保存在堆上的。
String基础的更多相关文章
- string类(一、string基础)
string基础 1.字符串常量具备字符串池特性. 字符串常量在创建前,首先在字符串池中查找是否存在相同文本. 如果存在,则直接返回该对象引用:若不存在,则开辟空间存储. 目的:提高内存利用率. 2. ...
- C++ 基础知识回顾(string基础、智能指针、迭代器、容器类)
[1] string基础 [1.1] string 的构造 #include <iostream> #include <string> int main() { using n ...
- hdu 4055 Number String (基础dp)
Number String Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)To ...
- 【JS学习】String基础方法
前言:本博客系列为学习后盾人js教程过程中的记录与产出,如果对你有帮助,欢迎关注,点赞,分享.不足之处也欢迎指正,作者会积极思考与改正. 目录 定义: 字符串的连接: 标签模板的使用: 字符串的基本方 ...
- String基础: String两种创建对象方式的比较
字符串常量 在一般的语言中常量一旦声明则不可改变,在java中的字符串常量是以匿名对象来表示的 javaz中字符串两种定义方法: String strA= new String("hello ...
- 夯实Java基础系列3:一文搞懂String常见面试题,从基础到实战,更有原理分析和源码解析!
目录 目录 string基础 Java String 类 创建字符串 StringDemo.java 文件代码: String基本用法 创建String对象的常用方法 String中常用的方法,用法如 ...
- Lua的string和string库总结
Lua有7种数据类型,分别是nil.boolean.number.string.table.function.userdata.这里我总结一下Lua的string类型和string库,复习一下,以便加 ...
- 【JavaScript基础系列】决定你的人生能走多远的,是基础。
前言 javaScript门槛非常低,一点语法,一个dom,一个bom就可以使用它开发大部分js应用,再加上现在层出不穷的框架极大的简化抽象了javaScript的使用方式,但是我们始终不能忘记的一点 ...
- [Java 泥水匠] Java Components 之一:Java String (肯定有你不懂的)
作者:泥沙砖瓦浆木匠网站:http://blog.csdn.net/jeffli1993个人签名:打算起手不凡写出鸿篇巨作的人,往往坚持不了完成第一章节. 1.1 前言 说起String,大家最熟悉不 ...
随机推荐
- 极限编程核心价值:反馈(Feedback)
原文:https://deviq.com/feedback 极限编程核心价值:简单(Simplicity) 极限编程核心价值:沟通(Communication) 极限编程核心价值:反馈(Feedbac ...
- redis性能测试工具的使用
在redis安装完成后会生成一个bin的目录,在这个目录中有一个 redis-benchmark 的文件脚本工具,通过执行这个工具进行redis的性能测试. bash #执行这个脚本后脚本会自动运行r ...
- android 自定义listview无法响应点击事件OnItemClickListener
如果你的自定义ListViewItem中有Button或者Checkable的子类控件的话,那么默认focus是交给了子控件,而ListView的Item能被选中的基础是它能获取Focus,也就是说我 ...
- 【转载】python中利用smtplib发送邮件的3中方式 普通/ssl/tls
#!/usr/bin/python # coding:utf- import smtplib from email.MIMEText import MIMEText from email.Utils ...
- leetcode88—Merge Sorted Array
Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array. Note: T ...
- mysql linux 安装卸载
mysql安装包官网https://dev.mysql.com/downloads/mysql/5.7.html#downloads wget https://dev.mysql.com/get/Do ...
- Java学习笔记--Java开发坏境搭建
一.安装JDK http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 根据自己系统选择 ...
- E - A Twisty Movement
A dragon symbolizes wisdom, power and wealth. On Lunar New Year's Day, people model a dragon with ba ...
- 04-Maven依赖管理
1.概述 2.依赖范围 3.依赖传递性 4.依赖的原则
- stop-hbase.sh一直处于等待状态
今天关闭HBase时,输入stop-hbase.sh一直处于等待状态 解决方法: 先输入:hbase-daemon.sh stop master 再输入:stop-hbase.sh就可以关闭HBase ...