String对象的创建

方式一:String():空参构造器创建一个空的(长度为0)字符串。

方式二:String(char[] a):用一个字符数组a创建一个字符串对象,构造器参数为一个字符串数组。

方式三: String(char[] a, int offset, int length):提取字符数组a中一部分创建一个字符串对象

    offset为开始截取的下标,length为截取长度。(这两个参数要在合法范围内)

方式四:String(String value)

最后,便捷创建一个指向字符串的引用的方式为:,但此种方式没有在堆空间中创建对象。

原文地址:https://www.cnblogs.com/sout-ch233/p/11779080.html

时间: 2024-10-13 13:57:52

String对象的创建的相关文章

JAVA String对象的创建

String对象的创建是比较特殊的,普通对象创建都是在堆中创建,String对象确不一定,下面看一段代码 [java] view plaincopy public class StringTest1 { public static void main(String[] args) throws Exception{ String a = "abc"; String b = "abc"; String c = "ab"; String d = ne

深入理解final 类String 对象的创建以及内部方法

学习过程中的笔记 : int indexOf(int ch) :获取字符在字符串中第一次出现的位置,如果不存在,则返回-1 int indexOf(int ch,int fromIndex): 从fromIndex位置开始查找,查找ch第一次出现的位置 获取位置 int indexOf(int ch) :获取字符在字符串中第一次出现的位置,如果不存在,则返回-1 int indexOf(int ch,int fromIndex): 从fromIndex位置开始查找,查找ch第一次出现的位置 in

3.Java基础:String对象的创建和使用

一.常用的创建方式 String s1="abc": String s2="abc": s1==s2    ==> true 解析:s1和s2指向的是同一个字符串池地址 二.不常用的创建方式 String s1=new String("abc"): String s2=new String("abc"):: s1==s2    ==> false 解析:s1和s2指向的是不同的字符串池地址,new的时候会重新创建一

实习第二天-String对象的不可变性-未解决

public class Reverse { public static void main(String[] args) { String c1=new String("abc"); String c2=new String("abc"); String c3=c1; System.out.println("c1==c2:"+ (c1==c2)); //c1==c2:false 第一个输出语句c1==c2很好理解,因为c1和c2都是用new 创

Java String对象的经典问题(转)

public class StringTest { public static void main(String[] args) { String strA = "abc"; String strB = "abc"; String strC = new String("abc"); System.out.println(strA == strB);//true System.out.println(strA == "abc")

Java中String对象的不可变性

首先看一个程序 package reverse; public class Reverse { public static void main(String[] args) { String c1=new String("abc"); String c2=new String("abc"); String c3=c1; System.out.println("c1==c2:"+ (c1==c2)); System.out.println(&quo

String s=new String("xyz");创建几个String对象的问题

首先让我们了解几个概念: 栈 :由JVM分配区域,用于保存线程执行的动作和数据引用. 堆 :由JVM分配的,用于存储对象等数据的区域. 常量池constant pool :在堆中分配出来的一块存储区域,用于存储显式 的String,float或者integer.这是一个特殊的共享区域,可以在内存中共享的不经常改变的东西,都可以放在这里. 进入正题: String a = "abc";①String b = "abc";② 使用String a = "abc

String str=new String("abc")到底创建了几个对象

这句代码到底创建了几个对象?研究了好一阵,现在才能说清楚. package com.sun.test; public class Test<T> { T a; /** * @param args */ public static void main(String[] args) { String str=new String("abc"); } } 我们来看下这段简单代码的字节码: <pre name="code" class="java

java 创建string对象机制 字符串缓冲池 字符串拼接机制

1.String str = new String("hello"); 创建了2个对象,1.检查常量池中有没有hello,没有的话,创建对象放到常量池中,再创建对象放到堆中.如果常量池有hello对象,则只创建一个对象并放到堆中. 2.字符串常量池在方法区 3.String str = "hello";检查常量池有无hello,如果有,则把指向该对象,如果没有,创建对象放在常量池里. 4.intern()方法.把字符串变成常量池里的字符串:如果常量池中已经包含了等于