java基础知识

1.引用是什么?
在java实现某个功能的时候,会将类实例化成对象,然后jvm再对实例化后的对象进行操作。
实例化后的对象可以赋值,也可以引用。赋值时,java会开辟一个新的地址用于存放变量,而引用则不开辟地址。
String a = “a”;
String b = “a”;
将String类实例化成对象a与b,并赋值
String c = new String(“a”);
将c指向new出来的String型对象”a”
System.out.println(a==b);
System.out.println(a==c);
由于a与b都为对象赋值,打印出来的结果应该是true
而c是引用对象“a”,所以打印出来的结果应该是false

对象:一个类的具体实例化;
引用:对象的别名,使用该别名可以存放该对象,编译器不会为引用分配空间,新对象与源对象共用一个存储地址空间;引用的生命周期是它所引用的对象的生命周期,函数里返回一个局部对象的引用是很危险的
给你推荐一种最简单的理解方式:引用就好比是给商品贴的标签,你通过标签可以拿到这个商品…….我开始就是这么理解的,后来用多了就意会啦…..

2.==与equal()
==用于比较两个变量的内容是否相同,则是个操作符
例如
string a=new string (“a”);
string b=new string (“a”);
a这个变量的内容,也就是这个A对象的地址,而不是a。
一般情况下,==比较对象,一般是引用的地址是否相同,而基础数据类型则是比较本身的数值如a=1,b=1,则a==b返回true.

equal()是object类的一个方法
equal()用于比较两个对象的值是否相同,a.equal(b)则返回true.
不过这个情况是在有重写equal方法
例如自定义的类或者使用的string类型,string类型会自动重写了equal方法,只要字符串相同,这a.equal(b)就返回true。
如果使用的类没有自己覆盖方法,则equal()与==相同,都是比较的变量的内容,因为内部就是用的==
public boolean equals(Object o) {
return (this == o);
}

3.面向对象的特征
抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面。抽象只关注对象有哪些属性和行为,并不关注这些行为的细节是什么。
封装:通常认为封装是把数据和操作数据的方法绑定起来,对数据的访问只能通过已定义的接口。
继承:

发布了12 篇原创文章 · 获赞 23 · 访问量 1万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章