课堂动手动脑-3及字符串加密

1.StringConstructors.java

在Java中内容相同的字符串常量“Hello”只保存一份,以节约内存,s0,s1,s2引用的都是同一对象;

编译器在编译s2时,会去掉“+”号,直接连成一个字符串;

使用new创建字符串对象时,值虽然相同,但引用的是两个对象

2.

给字符串变量赋值时,两个字符串变量s1,s2引用同一个对象“a”;

String对象内容是只读的,使用“+”号修改s1变量的值得到一个新的字符串对象,与原来无关;

代码中的“ab”是常量,其引用的字符串对象与“ab”无关;

String.equals()比较两个字符串的内容是否相同;

3.String.equals()方法

创建两个对象时,s1,s2引用的不是同一个对象,所以为false;判断两个字符串内容是否相同,用s1.equals(s2),字符串变量初始化相同时,所引用的是同一对象,所以s1==s2为true;

时间: 2024-07-30 13:31:25

课堂动手动脑-3及字符串加密的相关文章

Java课堂动手动脑-截图集锦

课堂实践性问题 没有数据类型,名称与类名相同,没有返回值 类本身有自定义的构造方法,调用时应有参数,这时系统不再使用默认构造方法 类字段初始化顺序 1.执行类成员定义时指定的默认值或累的初始化块,执行哪一个看哪一个排在前面. 2.执行类的构造函数 动手动脑问题(类之间继承,创建子类对象导致父类初始化块的执行) 静态初始化执行顺序 1.静态初始化块只执行一次 2.创建子类的对象时,父类的初始化块也会执行 静态方法访问实例成员变量如下:

10月14日课堂动手动脑

动手动脑 一.为何下面的代码无法编译 public class D1 { public static void main(String[] args) { //int a=1; Foo f=new Foo(); //System.out.println(f.value); } } class Foo{ int value; public Foo(int i) { value=i; } } 原因是当类中有自己定义的构造函数时,初始化时要传参进行初始化. 如果类提供了一个自定义的构造方法,将导致系统

java课堂动手动脑

实验任务一:阅读并运行示例PassArray.java. 1)源代码: package demo; //PassArray.java //Passing arrays and individual array elements to methods public class PassArray { public static void main(String[] args) { int a[] = { 1, 2, 3, 4, 5 }; String output = "The values of

课堂动手动脑

阅读QiPan.java示例程序了解如何利用二维数组和循环语句绘制五子棋盘. 源代码: package Array; import java.io.*; public class QiPan { //定义一个二维数组来充当棋盘 private String[][] board; //定义棋盘的大小 private static int BOARD_SIZE = 15; public void initBoard() { //初始化棋盘数组 board = new String[BOARD_SIZ

Java课堂 动手动脑5

1.了解棋盘打印:利用二维数组输出一个15*15的棋盘,棋盘的原素为"+",就是输出一个横纵都是15个"+"的二维数组,然后再以坐标形式输入棋子"●",替换掉原来棋盘里的"+".再编写代码. 电脑随机生成2个整数,作为电脑下棋的座标,赋给board数组.还涉及1.座标的有效性,只能是数字,不能超出棋盘范围2.如果下的棋的点,不能重复下棋.3.每次下棋后,需要扫描谁赢了 代码如下: import java.io.*; publi

JAVA课堂-动手动脑1

一.Enum:一般用来表示一组相同类型的常量.对这些属性用常量的好处是显而易见的,不仅可以保证单例,且比较时候可以用”==”来替换equals,枚举对象里面的值都必须是唯一的. 代码: public class EnumTest {      public static void main(String[] args) { Size s=Size.SMALL; Size t=Size.LARGE;//s和t引用同一个对象? System.out.println(s==t);  ////是原始数据

java课堂 动手动脑3

(1) 该函数没有赋初值再就是如果类提供一个自定义的构造方法,将导致系统不在提供默认的构造方法. (2) public class test { public static void main(String[] args) { // TODO Auto-generated method stub InitializeBlockClass obj=new InitializeBlockClass(); System.out.println(obj.field); obj=new Initializ

Java课堂 动手动脑6

一.下列语句哪一个将引起编译错误?为什么?哪一个会引起运行时错误?为什么? m=d;d=m;d=(Dog)m;d=c;c=(Cat)m; 先进行自我判断, 1.代码: class Mammal{} class Dog extends Mammal {} class Cat extends Mammal{} public class TestCast { public static void main(String args[]) { Mammal m; Dog d=new Dog(); Cat

Java课堂动手动脑--方法

1.查看JDK文档 System.out.println方法重载 1 println 2 public void println() 3 Terminates the current line by writing the line separator string. The line separator string is defined by the system property line.separator, and is not necessarily a single newline