JAVA String作业——动手动脑以及课后实验性问题
一:如何解释这样的输出结果?从中你能总结出什么?1、源码
//mao2015.10.20
//==的两个分辨
//对原始数据而言
//对引用类型变量
public class StringPool {
public static void main(String args[])
{
/*String s0="Hello";
String s1="Hello";
String s2="He"+"llo";
System.out.println(s0==s1);//true
System.out.println(s0==s2);//true
System.out.println(new String("Hello")==new String("Hello"));//false
//S0 S1 S2 实际上是用的同一个对象 ,都指向Hello这个常量,都是用的Hello这个地址
//new 创建内存空间 一旦创建即是几份的
*/
String s1 = "a";
String s2 = s1;
System.out.println(s1==s2); //true
s1+="b";
System.out.println(s1==s2);//false
System.out.println(s1=="ab");//false
System.out.println(s1.equals("ab"));//true
/*给字串变量赋值意味着:两个变量(s1,s2)现在引用同一个字符串对象“a”!
String对象的内容是只读的,使用“+”修改s1变量的值,实际上是得到了一个新的字符串对象,其内容为“ab”,它与原先s1所引用的对象”a”无关,所以,s1==s2返回false;
代码中的“ab”字符串是一个常量,它所引用的字符串与s1所引用的“ab”对象无关。
String.equals()方法可以比较两个字符串的内容。*/
}
}
2、截图


3、结论
给字串变量赋值意味着:两个变量(s1,s2)现在引用同一个字符串对象“a”!String对象的内容是只读的,使用“+”修改s1变量的值,实际上是得到了一个新的字符串对象,其内容为“ab”,它与原先s1所引用的对象”a”无关,所以,s1==s2返回false;代码中的“ab”字符串是一个常量,它所引用的字符串与s1所引用的“ab”对象无关。String.equals()方法可以比较两个字符串的内容。
S0 S1 S2 实际上是用的同一个对象 ,都指向Hello这个常量,都是用的Hello这个地址。
二、请查看String.equals()方法的实现代码,注意学习其实现方法。
String.equals(Object anObject)
将此字符串与指定的对象比较。
比如s1.equals(s2) 即比较s1与s2的内容
三、String
String类的方法可以连续调用:String str="abc";String result=str.trim().toUpperCase().concat("defg");//去首尾空格,全变大写,去连接符1、源代码
//mao2015.10.23
//string的连续调用
public class StringConstant {
public static void main(String[] args) {
// TODO Auto-generated method stub
String str = "abc";
String result = str.trim().toUpperCase().concat("defg");
System.out.println(result);
}
}
2、运行结果

(请阅读JDK中String类上述方法的源码,模仿其编程方式,编写一个MyCounter类,它的方法也支持上述的“级联”调用特性,其调用示例为:MyCounter counter1=new MyCounter(1);MyCounter counter2=counter1.increase(100).decrease(2).increase(3);…)
四、字串加密(请编写一个程序,使用上述算法加密或解密用户输入的英文字串。)
1、源代码
//mao2015.10.23
//字串加密
public class Secret {
public static void main(String[] args) {
// TODO Auto-generated method stub
String s1 = "fdsajfjj";
char a[] = new char[s1.length()];
s1.getChars(0, s1.length(), a, 0);
char b[] = new char[s1.length()];
for(int i=0;i<s1.length();i++)
{
b[i] = (char) (a[i] + 3);
}
for(int i=0;i<s1.length();i++)
System.out.println(b[i]);
}
}
2、运行结果截图

JAVA String作业——动手动脑以及课后实验性问题的更多相关文章
- JAVA 数组作业——动手动脑以及课后实验性问题
JAVA课后作业——动手动脑 一:阅读并运行示例PassArray.java,观察并分析程序输出的结果,小结,然后与下页幻灯片所讲的内容进行对照. 1.源代码 // PassArray.java // ...
- JAVA语法基础作业——动手动脑以及课后实验性问题 (八)
一.动手动脑 运行AboutException.java示例,了解Java中实现异常处理的基础知识. 1)源代码 import javax.swing.*; class AboutException ...
- JAVA 多态和异常处理作业——动手动脑以及课后实验性问题
1. 阅读以下代码(CatchWho.java),写出程序运行结果: 1) 源代码 public class CatchWho { public static void main(String[] ...
- JAVA 接口与继承作业——动手动脑以及课后实验性问题
一.继承条件下的构造方法调用 运行 TestInherits.java 示例,观察输出,注意总结父类与子类之间构造方法的调用关系修改Parent构造方法的代码,显式调用GrandParent的另一个构 ...
- JAVA类与对象作业——动手动脑以及课后实验性问题
一: 1.源代码 //MAO2015.10.6 //foo class Foo { int value; public Foo(int initValue) { value = initValue; ...
- java课程作业--动手动脑
随机数: 1)编写一个方法,使用以下算法生成指定数目(比如1000个)的随机整数. Modulus=231-1=int.MaxValue Multiplier=75=16807 C=0 当显示过231 ...
- 2019-9-16 java上课知识整理总结(动手动脑,课后实验)
java上课知识整理总结(动手动脑,课后实验) 一,课堂测试 1,题目:课堂测试:像二柱子那样,花二十分钟写一个能自动生成30道小学四则运算题目的 “软件” 要求:(1)题目避免重复: (2)可定制( ...
- java动手动脑和课后实验型问题String类型
1.请运行以下示例代码StringPool.java,查看其输出结果.如何解释这样的输出结果?从中你能总结出什么? true true false 总结: 使用new关键字创建字符串对象时, 每次申请 ...
- java课堂动手动脑及课后实验总结
动手动脑一:枚举 输出结果: false false true SMALL MEDIUM LARGE 分析和总结用法 枚举类型的使用是借助ENUM这样一个类,这个类是JAVA枚举类型的公共基本 ...
随机推荐
- DbUtils使用时抛出Cannot get a connection
java.sql.SQLException: Cannot get a connection, pool error Timeout waiting for idle object Caused by ...
- linux bash shell 流程控制(if/else )
本文转自:http://blog.csdn.net/flowingflying/article/details/5069646 本文也即<Learning the bash Shell>3 ...
- [CF355C]Vasya and Robot(思维,贪心)
题目链接:http://codeforces.com/contest/355/problem/C 题意:1~n n个物品各重wi,现在有一个人可以从左边拿和从右边拿, 左边拿一个物品的花费是l*wi, ...
- servlet&jsp高级:第一部分
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- [SAP ABAP开发技术总结]BAPI调用
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- centos vpn
yum install ppp -y cd /usr/local/src wget http://dl.fedoraproject.org/pub/epel/7/x86_64/p/pptpd-1.4. ...
- 数据库mysql中having 和where的区别
having的用法 having字句可以让我们筛选成组后的各种数据,where字句在聚合前先筛选记录,也就是说作用在group by和having字句前.而 having子句在聚合后对组记录进行筛选. ...
- [转载] tmux 使用指南
原文: https://danielmiessler.com/study/tmux/ tmux的用法和screen类似, 比screen好用一些, 不过需要单独安装
- C# ?(问号)的三个用处(转载)
public DateTime? StatusDateTime = null; 脑子便也出现个问号,这是什么意思呢?网上搜下,总结如下: 1. 可空类型修饰符(?): 引用类型可以使用空引用表示一个不 ...
- Android通过webservice对sqlserver数据库进行操作
首页在AndroidManifest.xml中添加访问数据库权限 <uses-sdk android:minSdkVersion="7" /> <uses-per ...