equals与==,覆盖和重载,static,final基本规则
来源:互联网 发布:java 线程池 串行 编辑:程序博客网 时间:2024/06/18 14:21
String a=new String("foo");
String b=new String("foo");
两条 new语句创建了两个对象,然后用 a,b这两个变量分别指向了其中一个对象,这
是两个不同的对象,它们的首地址是不同的,即 a 和 b 中存储的数值是不相同的,所以,
表达式 a==b 将返回 false,而这两个对象中的内容是相同的,所以,表达式
a.equals(b)将返回 true。
“==”比较的是内存地址。 equals比较的是内存地址里面存储的值
方法的覆盖和重载
覆盖:
1. 覆盖方法不能比它所覆盖的方法访问性差(访问权限不能缩小)。
2. 覆盖方法不能比它所覆盖的方法跑出更多的异常。
3. 相同的方法名,返回值类型,参数列表。一个方法覆盖掉了另一个方法
重载:
1. 方法名必须相同
2. 参数列表不同
3. 方法的返回值类型可以相同也可以不同。仅仅是返回类型不同不足以称为方法的重载。
4. 使用相同的名字创建多个方法(返回值类型,参数列表不同)
多态是同一个行为具有多个不同的表现形式或形态的能力。
static:
1. 在同一个类中,静态方法只能访问静态属性或静态方法。
2. 在同一个类中,静态方法不能直接调用非静态方法。
3. 静态方法中不存在当前对象,所以不能使用this和super关键字。
4. 静态方法不能被非静态方法覆盖
5. 构造方法不能声明为静态的。
6. 局部变量不能使用static修饰。
final:
1. 标记的类不能被继承。
2. 标记的方法不能被子类重写。
3. 标记的变量(成员变量或局部变量)成为常量,只能赋值一次。
4. 标记的成员变量必须在声明的时候赋值,如果在声明的时候没有赋值那么只有一次赋值的机会,而且再能在构造方法中赋值,然后才能使用。
5. 标记的局部变量可以只声明不赋值,然后再进行一次的赋值。
String,StringBuffer,StringBuilder,StringHelper区别:
String:字符串常量,是final修饰的是不可变的对象。
StringBuffer:线程安全的可变字符序列。
StringBuilder:非线程安全的。
StringHelper:字符串处理的辅助类。
阅读全文
0 0
- equals与==,覆盖和重载,static,final基本规则
- static,final ,==,equals
- java重载、重写、static、和final
- Java中覆盖和重载的规则
- C++父类与子类关系以及函数重载、覆盖和隐藏规则
- C++父类与子类关系以及函数重载、覆盖和隐藏规则
- C++父类与子类关系以及函数重载、覆盖和隐藏规则
- 6.20作业:static,final,继承和方法覆盖
- static final 和 final
- java中static 和 final 的一些使用规则
- java中重载方法与覆盖方法调用规则
- Java基础(重写与重载区别,instanceof,equals和==的区别)
- 重写与重载区别和final
- C++ 重载 覆盖 隐藏 规则
- static final 与 final区别
- java-equals和==的比较规则和equals的重写
- static的基本规则
- static的基本规则
- SSH------jsp将数据传递给action
- 数据库之-乐观锁与悲观锁
- 字符串与xml格式之间的转换
- [实用]Dev-c++中你所不知道的快捷键
- jsp和servlet
- equals与==,覆盖和重载,static,final基本规则
- JMS简介
- Angularjs过滤器笔记
- 链式A+B有两个用链表表示的整数,每个结点包含一个数位。这些数位是反向存放的,也就是个位排在链表的首部。编写函数对这两个整数求和,并用链表形式返回结果。 给定两个链表ListNode* A,ListN
- C语言关于字符串中字母大写换小写,小写换大写的实现程序
- 安装zsh后,终端mvn命令不能用问题解决
- 第十二章——SQLServer统计信息(1)——创建和更新统计信息
- jdbc中关于获取mysql数据库的链接
- 两台android设备间通过OTG-USB连接,实现通信(android设备间的通信)