《java入门》第一季之类(String类字符串一旦被赋值就没法改变)

毫无疑问,String类是java里面最重要的类之一。因此它有很多方法需要了解和掌握。

字符串一旦被赋值,值就不能发生改变:

package cn.itcast_02;

/*
 * 字符串的特点:一旦被赋值,就不能改变。
 */
public class StringDemo {
	public static void main(String[] args) {
		String s = "hello";//hello是在字符串常量池中待着的。赋值hello后就没法在改变了。
		s += "world";
		System.out.println("s:" + s); // helloworld
	}
}
整个过程开辟了三个空间。

通过图片看一下赋值过程。

/*
 * String s = new String(“hello”)和String s = “hello”;的区别
 * 前者会创建2个对象(hello在常量池中创建对象,再在堆内存中创建(new出来的),然后new出来的对象指向字符串常量池中的对象),后者创建1个对象,
   直接指向字符串常量池中。
 *
 * ==:比较引用类型比较的是地址值是否相同
 * equals:比较引用类型默认也是比较地址值是否相同,而String类重写了equals()方法,比较的是内容是否相同。
 */
public class StringDemo2 {
	public static void main(String[] args) {
		String s1 = new String("hello");
		String s2 = "hello";

		System.out.println(s1 == s2);// false
		System.out.println(s1.equals(s2));// true
	}
}
/*
 * 看程序写结果
 */
public class StringDemo3 {
	public static void main(String[] args) {
		String s1 = new String("hello");
		String s2 = new String("hello");
		System.out.println(s1 == s2);// false
		System.out.println(s1.equals(s2));// true

		String s3 = new String("hello");
		String s4 = "hello";
		System.out.println(s3 == s4);// false
		System.out.println(s3.equals(s4));// true

		String s5 = "hello";
		String s6 = "hello";
		System.out.println(s5 == s6);// true
		System.out.println(s5.equals(s6));// true
	}
}

字符串到底创建几个对象问题,再以后专题中再做详细整理。

时间: 2024-10-11 04:57:36

《java入门》第一季之类(String类字符串一旦被赋值就没法改变)的相关文章

Java入门第一季——从此投身Java??

找工作告一段落. 最后的工作呢,和java紧密相关,也是阴差阳错,不过都是软件开发,都好了,不过以后侧重点肯定是在java这边,php有机会还是一直学下去的,那么美的说~ Java开发第一季  一.简介 1.1 Java SE--基础核心: 以此为基础,又分为Java EE(企业应用开发,JSP等),Java ME(嵌入式开发,安卓等): JVM(Java Virtual Machine): Java虚拟机,使Java代码可以跨平台运行: .java-->编译器-->.class-->解

《java入门第一季》之类String类小案例

案例一: /* * 需求:把数组中的数据按照指定个格式拼接成一个字符串 * 举例: * int[] arr = {1,2,3}; * 输出结果: * "[1, 2, 3]" * 分析: * A:定义一个字符串对象,只不过内容为空 * B:先把字符串拼接一个"[" * C:遍历int数组,得到每一个元素 * D:先判断该元素是否为最后一个 * 是:就直接拼接元素和"]" * 不是:就拼接元素和逗号以及空格 * E:输出拼接后的字符串 */ publ

《java入门第一季》之类(String类常见方法小叙)

String类下面的构造方法和一些常见的方法: /* * 字符串:就是由多个字符组成的一串数据.也可以看成是一个字符数组. * 通过查看API,可以知道 * A:字符串字面值"abc"也可以看成是一个字符串对象. * B:字符串是常量,一旦被赋值,就不能被改变. * * 构造方法: * public String():空构造 * public String(byte[] bytes):把字节数组转成字符串 * public String(byte[] bytes,int index,i

《java入门第一季》之Arrays类前传(排序案例以二分查找注意的问题)

根据排序算法,可以解决一些小案例.举例如下: /* * 把字符串中的字符进行排序. * 举例:"dacgebf" * 结果:"abcdefg" * * 分析: * A:定义一个字符串 * B:把字符串转换为字符数组 * C:把字符数组进行排序 * D:把排序后的字符数组转成字符串 * E:输出最后的字符串 */ public class ArrayTest { public static void main(String[] args) { // 定义一个字符串 S

慕课网-Java入门第一季-6-7 使用 Arrays 类操作 Java 中的数组

来源:http://www.imooc.com/code/1556 Arrays 类是 Java 中提供的一个工具类,在 java.util 包中.该类中包含了一些方法用来直接操作数组,比如可直接实现数组的排序.搜索等(关于类和方法的相关内容在后面的章节中会详细讲解滴~~). Arrays 中常用的方法: 1. 排序 语法:  可以使用 sort( ) 方法实现对数组的排序,只要将数组名放在 sort( ) 方法的括号中,就可以完成对该数组的排序(按升序排列),如: 运行结果: 2. 将数组转换

《java入门第一季》之类(Scanner类)

/* * Scanner:用于接收键盘录入数据. * * 前面的时候: * A:导包 * B:创建对象 * C:调用方法 * * System类下有一个静态的字段: * public static final InputStream in; 标准的输入流,对应着键盘录入.InputStream si = System.in; * * InputStream is = System.in;//返回的是InputStream类型的 * * 通过一个例子来解释上面的问题. * class Demo {

java入门第一季_1.6_数组

既然选择了远方,便只顾风雨兼程. 数组 数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同. Java语言中提供的数组是用来存储固定大小的同类型元素. public class Demo1 { public static void main(String[] args) { // 定义一个数组,保存五名学生的成绩 int[] scores = { 78, 93, 97, 84, 63 }; // 输出数组中的第二个成绩 System.out.println

Java入门第一季

慕课网:http://www.imooc.com/learn/85 Java入门知识第一季 1.Java开发环境和IDE的使用: 2.变量和常量 3.常用的运算符 4.流程控制语句 5.数组:使用Arrays操作数组.foreach循环遍历数组 6.方法的定义,重载调用 跟着慕课网的教程,去一步一步补充完成小练习中的代码,学习效率会比较高~

《java入门第一季》之HashSet存储自定义对象问题以及注意事项

上一篇http://blog.csdn.net/qq_32059827/article/details/51578158 写到存储字符串类型的时候出现了无序,而且这个无序不是随机那种无序,它是有一定存储规律的.上次存储的是字符串,那么这里看看存储自定义对象是不是也是同样的规律.其实这里有着很多的问题需要讨论. 存储自定义对象,代码写了出来: import java.util.HashSet; public class HashSetDemo2 { public static void main(