java--String,toString(课堂)
2016-01-13 23:46
302 查看
publicclass
Strin_g {
publicstaticvoid
main(String[]args) {
Object object =new
Object();
System.out.println(object.equals(new
Object()));//false
String string ="11";
String string2 ="23";
String string3 ="23";
String string4 =new
String("23");
String string5 =new
String("23");
//equals是判断内容,比较都是用==。而==是判断内存地址
System.out.println(string.equals(string2));//false数值不相等
System.out.println(string2.equals(string3));//true数值相等
System.out.println(string4.equals(string5));//true,因为字符串池里有23,string类重写了Object
equals方法,用于判断内容是否相等
//而不是比较内存地址
System.out.println(string3.equals(string4));//true数值相等
String string6 ="222";
String string7 ="222"
+"2";//这里是三个对象,string7,“222”和"2"。如果把"222"变成"22",就输出true
System.out.println(string6.equals(string7));//false数值不相等
System.out.println(string6
== string7);//false内存地址(对象(空间))不相等
System.out.println(string4
== string5);//false对象(空间)不同
System.out.println(string2
== string3);////true指向的内存地址一样,都是放22的那个空间,只要数值相同,它就不会再次开辟空间来存放数值
System.out.println(string3
== string4);////false内存地址(对象(空间))不相等
//字符串池的用法:
//1、每弄出一个新的字符串,系统都会在字符串池中new一个对象
//2、再一次创建字符串对象时,系统都会在字符串池中寻找是否存在一个字符串跟要创建的
// 字符串内容一致,如果有,直接赋值,如果没有,则创建新的对象,然后放入字符串池中
//3、字符串 通过连接,都会改变成新的字符串, 原先不变,简单的说:
// 字符串操作的结果都是一个新的字符串
}
}
publicclass
Person {
public
Stringname;
publicintage;
public
Person(Stringname,intage)
{//shift+alt+s+o
this.name
= name;
this.age
= age;
}
@Override
public
String toString() {//shift+alt+s+s,用来测试传入的值是否正确,
//因为toString这个方法有返回值
return"Person
[name=" +name
+", age=" +age
+"]";
}
publicstaticvoid
main(String[]args) {
System.out.println(new
Person("小白",
10));
}
}
package com.lijie.lianxi1;
//////////// 面试陷阱 //////////////
publicclass
StringDem {
publicstaticvoid
main(String[]args) {
String string =new
String("123"); //创建string对象
System.out.println("change之前:"
+ string); //
123 打印
change(string);
//string = change(string);
System.out.println("change之后:"
+ string);//
123
Student student =new
Student();
student.name
= "lisi";
System.out.println("change之前student:"
+ student.name); //lisi
change(student);
System.out.println("change之后student:"
+ student.name);//zhangsan
}
publicstatic
String change(Stringstr){//这里相当于一个新对象,在方法区生成了一个新空间,
//存放着456,与string中存放着的123无关,所以改变str时,
//影响不到string的值,依然是123
return str
="456"; //
123456
}
publicstaticvoid
change(Studentstudent){
student.name
= "zhangsan";// 而这里张三的改变是在lisi的那个空间里,也就是student那里,所以原值改变
}
}
class Student{
public
Stringname;
}
引用大神的笔记:
将一个值转换成一个字符串有两种方法,一是使用toString()方法,
二是使用转型函数String()。下面是一些需要注意的问题:
1,大多值都有toString()方法,null和undefined是没有的。
2,对于字符串型的值也可以使用toString()方法,它会返回
该字符串的一个副本。
3,toString()方法可以传递一个参数,表示数值的基数。
var t = 8; t.toString(2); //1000
4,任何值都可以使用String()方法。它的过程是这样的
首先,如果值有toString()方法,那么则使用该方法(无参数)。
其次,那就是该值没有toString()方法,那就是 null 返回 "null",undefined返回"undefined";
var a=null;
String(a); //"null"
publicclass
Strin_g {
publicstaticvoid
main(String[]args) {
Object object =new
Object();
System.out.println(object.equals(new
Object()));//false
String string ="11";
String string2 ="23";
String string3 ="23";
String string4 =new
String("23");
String string5 =new
String("23");
//equals是判断内容,比较都是用==。而==是判断内存地址
System.out.println(string.equals(string2));//false数值不相等
System.out.println(string2.equals(string3));//true数值相等
System.out.println(string4.equals(string5));//true,因为字符串池里有23,string类重写了Object
equals方法,用于判断内容是否相等
//而不是比较内存地址
System.out.println(string3.equals(string4));//true数值相等
String string6 ="222";
String string7 ="222"
+"2";//这里是三个对象,string7,“222”和"2"。如果把"222"变成"22",就输出true
System.out.println(string6.equals(string7));//false数值不相等
System.out.println(string6
== string7);//false内存地址(对象(空间))不相等
System.out.println(string4
== string5);//false对象(空间)不同
System.out.println(string2
== string3);////true指向的内存地址一样,都是放22的那个空间,只要数值相同,它就不会再次开辟空间来存放数值
System.out.println(string3
== string4);////false内存地址(对象(空间))不相等
//字符串池的用法:
//1、每弄出一个新的字符串,系统都会在字符串池中new一个对象
//2、再一次创建字符串对象时,系统都会在字符串池中寻找是否存在一个字符串跟要创建的
// 字符串内容一致,如果有,直接赋值,如果没有,则创建新的对象,然后放入字符串池中
//3、字符串 通过连接,都会改变成新的字符串, 原先不变,简单的说:
// 字符串操作的结果都是一个新的字符串
}
}
publicclass
Person {
public
Stringname;
publicintage;
public
Person(Stringname,intage)
{//shift+alt+s+o
this.name
= name;
this.age
= age;
}
@Override
public
String toString() {//shift+alt+s+s,用来测试传入的值是否正确,
//因为toString这个方法有返回值
return"Person
[name=" +name
+", age=" +age
+"]";
}
publicstaticvoid
main(String[]args) {
System.out.println(new
Person("小白",
10));
}
}
package com.lijie.lianxi1;
//////////// 面试陷阱 //////////////
publicclass
StringDem {
publicstaticvoid
main(String[]args) {
String string =new
String("123"); //创建string对象
System.out.println("change之前:"
+ string); //
123 打印
change(string);
//string = change(string);
System.out.println("change之后:"
+ string);//
123
Student student =new
Student();
student.name
= "lisi";
System.out.println("change之前student:"
+ student.name); //lisi
change(student);
System.out.println("change之后student:"
+ student.name);//zhangsan
}
publicstatic
String change(Stringstr){//这里相当于一个新对象,在方法区生成了一个新空间,
//存放着456,与string中存放着的123无关,所以改变str时,
//影响不到string的值,依然是123
return str
="456"; //
123456
}
publicstaticvoid
change(Studentstudent){
student.name
= "zhangsan";// 而这里张三的改变是在lisi的那个空间里,也就是student那里,所以原值改变
}
}
class Student{
public
Stringname;
}
引用大神的笔记:
将一个值转换成一个字符串有两种方法,一是使用toString()方法,
二是使用转型函数String()。下面是一些需要注意的问题:
1,大多值都有toString()方法,null和undefined是没有的。
2,对于字符串型的值也可以使用toString()方法,它会返回
该字符串的一个副本。
3,toString()方法可以传递一个参数,表示数值的基数。
var t = 8; t.toString(2); //1000
var t = 8; t.toString(2); //1000
</pre><p><span style="font-family: Microsoft YaHei; font-size: 12px;"> 默认情况下 参数是10。要说明的是对于非数值类型(boolean,string等)设置toString()的参数是无效的,</span></p><p></p><div class="dp-highlighter bg_html"><div class="bar"><div class="tools"></div></div><ol class="dp-xml"><li class="alt"><span><span>var </span><span class="attribute">t</span><span> =</span><span class="attribute-value">"8"</span><span>; </span></span></li><li><span>t.toString(2); //8, 返回字符串的副本; </span></li></ol></div><pre class="html" style="display: none;" name="code" code_snippet_id="115396" snippet_file_name="blog_20131217_1_1944988">var t ="8"; t.toString(2); //8, 返回字符串的副本;
4,任何值都可以使用String()方法。它的过程是这样的
首先,如果值有toString()方法,那么则使用该方法(无参数)。
其次,那就是该值没有toString()方法,那就是 null 返回 "null",undefined返回"undefined";
var a=null;
String(a); //"null"
相关文章推荐
- java-数组3
- java-数组概念总结(
- 数列求和 0,1,1,2,3,5,8,13,21,34........Java
- java-数组2
- Java多态小练习
- java-数组1
- java : iBatis 2.3 resultMap
- javaI/0之[打印流][序列流/合并流/分割流][操作对象]等流对象
- Java NIO:浅析I/O模型
- java web学习笔记day2
- Spring注解使用方法
- Spring源代码解析(九):Spring Acegi框架鉴权的实现
- Java Swing Synth - JRadioButton Style
- Java学习----集合函数
- E299:Bulls and Cows(字符串处理)
- Java学习----Math函数
- JDK的一些命令行工具
- Generating project in Batch mode 很慢的问题
- JAVA多线程互斥同步例子
- Spring Data JPA入门