题目:编写一个接受两个字符串参数的方法,用各种布尔值的比较关系来比较这两个字符串,然后把结果打印出来。
解析:有很多种可能,看例子先
import java.util.*; public class test { static void f(boolean b) {if(b == true) System.out.println(true); else System.out.println(false);} static void stringTest(String s, String t) { f(s == t); f(s.equals(t)); f(t.equals(s)); } public static void main(String[] args) { String s = "one", t = "two"; test.stringTest(s, t); System.out.println("-------------------------"); String s1 = "one", t1 = "one"; test.stringTest(s1, t1); System.out.println("-------------------------"); String s3 = new String("one"), t3 =new String("one"); test.stringTest(s3, t3); System.out.println("-------------------------"); String s2 = "one", t2 = s2; test.stringTest(s2, t2); System.out.println("-------------------------"); } }
结果是这样的:
false false false ------------------------- true true true ------------------------- false true true ------------------------- true true true -------------------------
第一栏三个false很好理解,因为他们表示的内容都不一样当然不相同。
第二栏为什么是三个true呢?虽然我们没有显式的把这两个变量用=连接起来,但是编译器为了节约存储,把表示相同字符串的变量指向了同一块内存区域,也就是说这一个字符串在内存中只保存了一次。
第三栏我们用new来强制编译器分配内存,所以会出现有false有true因为==比较的是引用是否相同,而equals比较的是字面量是否相同(String类重写)
第四栏因为引用相同所以不管是equals和==都输出true
相关推荐
java基础String类选择题练习题,文档包含了答案与分析,适合学习用,本文档仅仅用于学习分享,不得用于商业用途
计算机后端-Java-Java核心基础-第21章 常用类 13. String的常用方法3.avi
计算机后端-Java-Java核心基础-第22章 常用类 07. String课后算法题目3.avi
计算机后端-Java-Java核心基础-第22章 常用类 08. String课后算法题目3拓展.avi
计算机后端-Java-Java核心基础-第21章 常用类 05. String类的概述.avi
计算机后端-Java-Java核心基础-第21章 常用类 11. String的常用方法1.avi
计算机后端-Java-Java核心基础-第21章 常用类 12. String的常用方法2.avi
计算机后端-Java-Java核心基础-第22章 常用类 05. String课后算法题目1.avi
计算机后端-Java-Java核心基础-第22章 常用类 06. String课后算法题目2.avi
计算机后端-Java-Java核心基础-第21章 常用类 09. String的一道面试题.avi
计算机后端-Java-Java核心基础-第21章 常用类 08. String不同拼接操作的对比.avi
计算机后端-Java-Java核心基础-第21章 常用类 07. String不同实例化方式的对比.avi
计算机后端-Java-Java核心基础-第21章 常用类 15. String与char[]之间的转换.avi
计算机后端-Java-Java核心基础-第21章 常用类 14. 回顾String与基本数据类型包装类的转
Chp15 反射Key Point ●Class 对象及其基本操作●Method 对象...说明下面几种情况,应该采用哪种获得类对象的方法1)获得String 类的类对象2)加载一个类,该类的全限定名写在某个配置文件中3)打印某个对象的所有方法
京动力节点-Java编程零基础教程-001-编程基础-基本概念-语言、程序、编程.mp4 北京动力节点-Java编程零基础教程-002-编程基础-基本概念-编译.mp4 北京动力节点-Java编程零基础教程-003-编程基础-基本DOS操作.mp4 ...
文旦含有java编程思想一书中前9章的PPT 还附有几个基础型的编程代码 如乘法表: public class Chengfabiao { public static void main(String[] args) { for (int i = 1; i ; i++) {// 从1开始循环到9 for ...
计算机后端-Java-Java核心基础-第14章 面向对象06 25. 基本数据类型包装类与String的相互
第3章 控制程序流程 3.1 使用Java运算符 3.1.1 优先级 3.1.2 赋值 3.1.3 算术运算符 3.1.4 自动递增和递减 3.1.5 关系运算符 3.1.6 逻辑运算符 3.1.7 按位运算符 3.1.8 移位运算符 3.1.9 三元if-else运算符 3.1.10 ...
各种字符串相似度和距离算法的实现:Levenshtein,Jaro-winkler,n-Gram,Q-Gram,Jaccard索引,最长公共子序列编辑距离,余弦相似度......