7-1知识回顾
来源:互联网 发布:台湾人深圳知乎 编辑:程序博客网 时间:2024/05/18 21:49
学习总结
String篇
1、String长度为多少呢?
Public String s1=”aaa”;
System.out.pringtln(s1.length( ));
查询长度方法可以发现,它返回的是int类型,故其最长的长度为4个字节
2、String它不是基本数据类型,而是类类型。可以理解为char的集合,它是final类型的,即不可更改,不可继承。
3、String字符串的比较
代码:
String s1="aaa";
String s2="aaa";
String s3=new String("aaa");
String s4=new String("aaa");
System.out.println(s1==s2);
System.out.println(s1.equals(s3));
System.out.println(s3==s4);
结果显示:
true
true
false
结果分析:
“==”表示的是字符串地址的比较,但是JVM虚拟机在对两个值进行“==”比较时,会先在虚拟池里找是否已经存在与比较值相同的字符串,如果有,就不要创建空间来存储这个对象了。
“equals”表示的是字符串内容的比较,只要内容相同,其结果一定是正确的。如果利用new来创建字符串对象的时候,JVM是直接为对象分配空间。
main篇
我们都会记得一句话:程序是从主函数开始的。看主函数的定义:
public staticvoid main(String args[]);
解释:JVM虚拟机首先加载的就是主函数,因为主函数不需要在创建对象来调用,故与其他方法相区别,采用静态的方法。而其他方法则是在创建了对象的时候再加载到内存中。
this篇
代码如下:
publicclass Test {
publicstatic void main(String[] args) {
// TODO Auto-generated method stub
Son son=new Son();
}
}
publicclass Son extends Father {
private Stringstr="son";
public Son(){
System.out.println("Constructor "+this.str);
work();
}
public void work(){
System.out.println("son_work "+str);
}
}
publicclass Father extends GrandFather{
private Stringstr="father";
public Father(){
System.out.println("Constructor "+this.str);
work();
}
public void work(){
System.out.println("father_work "+str);
}
}
publicclass GrandFather {
private Stringstr="grandfather";
public GrandFather(){
System.out.println("Constructor "+this.str);
work();
}
public void work(){
System.out.println("grandfather_work "+str);
}
}
运行结果为:
1、Constructor grandfather
son_work null
2、Constructor father
son_work null
3、Constructor son
son_work son
结果分析:
对于输出的1、2、3句话,可以看到在构造函数中,因为JVM虚拟机在加载构造方法时把属性也加载了,故在首先输出str的时候,输出的是grandfather,之后,在运行父类Father中的work方法时,因为子类Son重写了work方法,故先执行子类的work方法,但是此时子类的str还没有来得及加载,故显示的是空值。当然,此处的this是可以省略的,结果一样。
- 7-1知识回顾
- 【C++】知识回顾1
- 知识回顾7、继承和多态的问题1
- 知识回顾
- 回顾知识
- 每天一点iOS知识回顾7
- 回顾工作中用到的知识1
- 每天一点iOS知识回顾1
- 2017.11.1知识总结及回顾
- 树知识回顾
- 回顾VC常用知识
- 8086汇编知识回顾
- Android知识回顾
- 数据库知识回顾
- jsp知识回顾
- 2011知识回顾
- 知识回顾、String类
- java知识回顾
- (转)EXTJS20教程
- js创建表格动态增加行并删除行
- (转)(原创)IIS6.0架构1
- RAC原理
- grails 中配置要注意的一个地方
- 7-1知识回顾
- 用dreamweaver 8打开gsp文件
- SVN小问题解决
- (转)PHP如何禁止图片文件的被盗链
- PHP 计算时间差
- mysql将时间戳转成常用可读时间格式
- activity深入理解
- mysql将时间戳转成常用可读时间格式
- PHP拾遗2