String的几种初始化方法的区别

参考了:

java中String的两种初始化方法

?


String a;

String aa = "";

String aaa = "123";

String b = new String();

String bb = new String("");

String bbb = new String("123");

String c = null;

?

System.out.println(aa == bb);????????// false

System.out.println(aa.equals(bb));????// true

System.out.println(aa.equals(b));????// true

System.out.println(b == bb);????????// false

System.out.println(bb.equals(b));????// true

System.out.println(c);????????????????// null

a:未被初始化,什么操作也进行不了;

aa和aaa:内容不同,都是在字符串池中创建了字符串,然后返回的引用;

b和bb:没有区别,都是在堆中创建的字符串,与aa内容一样;

bbb:与b和bb只是内容不同;

c:null在java里是一个特别的东西,内容不同于aa;

时间: 2024-08-05 11:12:58

String的几种初始化方法的区别的相关文章

关于UIImage类的对象两种初始化方法的区别

1.imageNamed: 1 UIImage *image = [UIImage imageNamed:@"1"]; UIImage的类方法 第一次读取图片的时候,先把这个图片放到缓存中,下次再使用这个名字的图片时,直接从缓存中读取:如果缓存中不存在这个名字的图像,则先把该图片加载到缓存中,再返回该对象.如果我们需要短时间内频繁的加载一些一次性的图像,最好不要使用这种方法. 优点:方便快捷,只有第一次使用的时候稍慢,接下来再使用就会稍微快点: 缺点:如果在当前工程中只使用一次,就会浪

请问一下这三种存储方法的区别?原理是什么样子的?哪一种比较好,能不能提供一些意见。谢谢

public String nickName; public Integer userId; public String login(){ //登录之后 方法1. userId = user.getId();nickName = user.getNickName(); 方法2. this.getResRequest().setAttribute("userId", userId); this.getResRequest().setAttribute("nickName&quo

Java中String的两种赋值方式的区别

本文修改于:https://www.zhihu.com/question/29884421/answer/113785601 前言:在java中,String有两种赋值方式,第一种是通过"字面量"赋值,如:String str="hello",第二种是通过new关键字创建新对象,如:String str=new String("hello").那么这两种赋值的方式到底有什么区别呢,下面给出具体分析. 1.首先回顾Java虚拟机的结构图. 在上面的

Java数组的三种初始化方法

import org.junit.Test; //import org.testng.annotations.Parameters; public class Demo { @Test public void test() { //数组的静态初始化 int a[] = {2, 0, 1, 9, 2020}; System.out.println("----------静态初始化----------"); getArray(a); //数组的动态初始化方法一 int[] b = new

反射(2)—3种类加载方法的区别

直接上源码: 1 package reflex; 2 3 public class Dog { 4 static{ 5 System.out.println("加载静态模块"); 6 } 7 public Dog(){ 8 System.out.println("执行构造方法"); 9 } 10 } 1 package reflex; 2 3 import org.junit.Test; 4 /** 5 *三种类的加载方法区别 6 *1.Class.forName(

String的几种比较方法对比(Compare,CompareTo, CompareOrdinal、Equals)

String类字符串比较大概有4种方法:Compare(),CompareTo(), CompareOrdinal()和Equals(). Compare()方法是CompareTo()的静态版本.而Equals()与"=="是等价的,只要使用"=="运算符,就会调用Equals()方法.CompareOrdinal()对两个字符串进行比较,不考虑本地化语言和文化. const int Num = 10000000; string s1 = "abcdef

UIImage的几种初始化方法的对比

1.imageNamed:方法 imageNamed:是UIImage的一个类方法,它做的事情比我们看到的要稍微多一些.它的加载流程如下: a. 系统回去检查系统缓存中是否存在该名字的图像,如果存在则直接返回. b. 如果系统缓存中不存在该名字的图像,则会先加载到缓存中,在返回该对象. 观察上面的操作我们发现系统会缓存我们使用imageNamed:方法加载的图像时候,系统会自动帮我们缓存.这种机制适合于那种频繁用到界面贴图累的加载,但如果我们需要短时间内频繁的加载一些一次性的图像的话,最好不要使

顺序容器的5种初始化方法

#include <iostream> #include <string> #include <vector> #include <algorithm> using namespace std; int main(int argc, const char *argv[]) { //声明一个空的容器 vector<string> svec; svec.push_back("HeNan"); svec.push_back(&quo

Hadoop Hive 中几种排序方法的区别与比较

Hive 中 Order by, Sort by ,Dristribute by,Cluster By 的作用和用法 1. order by set hive.mapred.mode=nonstrict; (default value / 默认值) set hive.mapred.mode=strict; order by 和数据库中的Order by 功能一致,按照某一项 & 几项 排序输出. 与数据库中 order by 的区别在于在hive.mapred.mode = strict 模式下