java基础复习之对于String对象,可以使用“=”赋值,也可以使用new关键字赋值,两种方式有什么区别?

String类型是实际工作中经常用到的类型,从数据类型上划分,String是一个引用类型,是API中定义的一个类。所以String类型的对象可以用new创建,例如String name=new String("string");为变量name进行赋值,值为“string” ,然而String类比其他类有些特殊,可以使用‘=‘直接赋值,如 String name="string";也是为变量name进行赋值,值为"string",这两种赋值是有差别的,使用new赋值,永远都是创建一个新对象,在新的内存空间初始化了字符串的值,而使用“=”赋值,不会每次都初始化新的字符串,而是从一个“字符串实例池”中查找有没有要赋值的字符串,如果有则直接引用,如不存在,则初始化一个字符串,并放入“字符串实例池”。在实际编程中,往往使用“=”好对String类型变量进行赋值。

java基础复习之对于String对象,可以使用“=”赋值,也可以使用new关键字赋值,两种方式有什么区别?

时间: 2024-10-14 04:49:54

java基础复习之对于String对象,可以使用“=”赋值,也可以使用new关键字赋值,两种方式有什么区别?的相关文章

java基础复习之对于String对象,能够使用“=”赋值,也能够使用newkeyword赋值,两种方式有什么差别?

String类型是实际工作中经经常使用到的类型,从数据类型上划分,String是一个引用类型,是API中定义的一个类.所以String类型的对象能够用new创建,比如String name=new String("string");为变量name进行赋值,值为"string" ,然而String类比其它类有些特殊,能够使用'='直接赋值,如 String name="string";也是为变量name进行赋值,值为"string&quo

Java基础5—{面向对象(构造方法、对象的创建步骤、static关键字、Math类)}

1.面向对象 1.1 构造方法概述和格式 1:构造方法概述和作用 创建对象,给对象中的成员进行初始化 2:构造方法格式特点 a:方法名与类名相同 b:没有返回值类型,连void都没有 c:没有具体的返回值 1 public class Student { 2 private String name; 3 private int age; 4 //我们自定义的类,默认存在一个空参构造构造方法 5 //构造方法的语法:方法名跟类名相同,没有返回值,连void 也没有 6 public Student

Java中实现多线程的两种方式之间的区别

Java提供了线程类Thread来创建多线程的程序.其实,创建线程与创建普通的类的对象的操作是一样的,而线程就是Thread类或其子类的实例对象.每个Thread对象描述了一个单独的线程.要产生一个线程,有两种方法: ◆需要从Java.lang.Thread类派生一个新的线程类,重载它的run()方法:  ◆实现Runnalbe接口,重载Runnalbe接口中的run()方法. 为什么Java要提供两种方法来创建线程呢?它们都有哪些区别?相比而言,哪一种方法更好呢? 在Java中,类仅支持单继承

Java中有两种实现多线程的方式以及两种方式之间的区别

网上流传很广的是一个网上售票系统讲解.转发过来.已经不知道原文到底是出自哪里了. Java中有两种实现多线程的方式.一是直接继承Thread类,二是实现Runnable接口.那么这两种实现多线程的方式在应用上有什么区别呢? 为了回答这个问题,我们可以通过编写一段代码来进行分析.我们用代码来模拟铁路售票系统,实现通过四个售票点发售某日某次列车的100张车票,一个售票点用一个线程表示. 我们首先这样编写这个程序: Java代码    class ThreadTest extends Thread{

JS对象转URL参数(原生JS和jQuery两种方式)

转自:点击打开链接 现在的js框架将ajax请求封装得非常简单,例如下面: [javascript] view plain copy $.ajax({ type: "POST", url: "some.php", data: { name: "John", location: "Boston" } }).done(function( msg ) { alert( "Data Saved: " + msg )

Java基础复习(四)

4 集合框架      Collection:  |--List:有序(元素存入集合的顺序和取出的顺序一致),元素都有索引.元素可以重复.    |--Set:无序(存入和取出顺序有可能不一致),不可以存储重复元素.必须保证元素唯一性. 1,添加: add(object):添加一个元素 addAll(Collection) :添加一个集合中的所有元素.  2,删除:  clear():将集合中的元素全删除,清空集合. remove(obj) :删除集合中指定的对象.注意:删除成功,集合的长度会改

Java基础复习㈥ 内存分配

1.方法区 类的全限定名.直接超类的全限定名.该类是类或者接口.访问修饰符.直接超接口全限定名: 运行时常量池.字段.方法.静态变量.到类装载器的引用.到类class的引用 2.栈内存 局部变量区.操作数栈.帧数据区 3.堆内存 存放由new创建的对象和数组 *栈内存和堆内存 栈存取速度比堆快,仅次于寄存器,栈数据可以共享.栈中主要存放一些基本类型的变量和对象句柄 4.本地方法栈内存 5.String ① String str1 = "abc"; String str2 = "

Java基础复习笔记系列 五 常用类

Java基础复习笔记系列之 常用类 1.String类介绍. 首先看类所属的包:java.lang.String类. 再看它的构造方法: 2. String s1 = “hello”: String s2 = “hello”:结论:s1 == s2. 字符串常量放在data区. 3. String s3 = new String("hello"); String s4 = new String("hello");结论:s3 != s4.但s3.equals(s4).

java基础复习2-6

if语句 if else 结构 简写: 变量 = (条件表达式)?表达式1:表达式2: 三元运算符: 好处:可以简化if else代码. 弊端:因为是一个运算符,所以运算完必须要有一个结果. switch语句 if和switch语句很像. 具体什么场景下,应用哪个语句呢? 如果判断的具体数值不多,而是符合byte short int char这四种类型 . 虽然两个语句都可以使用,建议使用switch语句.因为效率稍高. 其他情况:对区间的判断,对结果为boolean类型判断,使用if,if的会