【Java】需要注意的小细节
一、==和equals
1、比较两个变量时
a、==可以判断两个变量是否相等,如果两个变量是基本类型变量,而且是数值类型,只要两个变量值相等,返回true。
2、比较两个引用变量
a、==只有两个引用类型变量指向同一对象,才会返回true。==不可以比较类型上没有父子关系的对象。
b、equals()方法是Object类提供的一个实例方法,所以所以引用变量都可以使用该方法来判断是否和其他引用变量相等,但这个方法没有重写前,和==没有区别,因为他的源码是:
public boolean equals(Object obj) {
return (this == obj);
}
所以他们也必须指向同一对象才会返回true。String类重写了equals()方法,只要两个字符串里包含的字符序列相同就会返回true。
二、常量池
常量池专门用于管理在编译时就被确定并被保存在已编译的.class文件中的一些数据,包括关于类、方法、接口中的常量,还包括字符串常量。JVM常量池会保证相同的字符串直接量只有一个,不会产生多个副本。
三、红黑树
红黑树(Red Black Tree) 是一种自平衡二叉查找树,是在计算机科学中用到的一种数据结构,典型的用途是实现关联数组。
它是在1972年由Rudolf Bayer发明的,当时被称为平衡二叉B树(symmetric binary B-trees)。后来,在1978年被 Leo J. Guibas 和 Robert Sedgewick 修改为如今的“红黑树”。
【Java】需要注意的小细节的更多相关文章
- 。Java中的一些小细节
1.main方法. ------任何一个Java程序都有一个main方法,它是程序的入口. ------当执行 “ java + 类名 “ 这个命令时,JVM就会去加载这个类,并且寻找这个类中的m ...
- JAVA的程序代码小细节,变量的使用,以及一些细节的面试题
package cn.hncu; public class LableDemo { public static void main(String[] args) { //demo1(); demo2( ...
- Java性能优化的小细节
性能优化实现方式(单纯考虑代码层面): 1.减小代码体积 2.提高运行效率 如何做: 1.尽量指定类.方法的final修饰符 带有final修饰的类是不可派生的,该类所有的方法都是final的,jav ...
- java学习第二天小细节.day10
栈内存溢出表示可以使用递归 This的使用 普通方法,字段,其他方法与构造器三种访问方法 Super的使用 在子类如果需要使用到父类的字段者使用到super(字段,字段),需要放到第一行,因需要初始化 ...
- 学习Java,容易被你忽略的小细节(3)
在<学习Java,容易被你忽略的小细节(2)>中我们已经深入讨论过String类中equals()方法的使用,在本文中我们将进一步讨论equals()方法在其他境况下的使用方法. 首先,我 ...
- 学习Java,容易被你忽略的小细节(2)
昨天心情真的太糟糕了,写完<学习Java,值得注意你注意的问题(1)>之后,迎来些许的支持以后就是一片片的谴责.我的主页上涌现出许许多多Java方面的牛人,谴责我水平太低,写的问题太初级. ...
- 学习Java,值得你留意的问题(1)更名为《学习Java,容易被你忽略的小细节(1)》
记得大二快要结束的时候,有个女孩子突然问我“你会Java吗,帮我做大作业好吗?” 实话说,那个女孩真的很漂亮,我当时也非常想帮她.但是我从来没有接触过Java,让我在短短的几天内完成Java程序设计课 ...
- php课程---Json格式规范需要注意的小细节
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式. 易于人阅读和编写.同时也易于机器解析和生成. 它基于JavaScript Programming Lan ...
- Vue.js 和 MVVM 的小细节
Vue.js 和 MVVM 的小细节 转载 作者:流云诸葛 链接:www.cnblogs.com/lyzg/p/6067766.html MVVM 是Model-View-ViewModel 的缩写, ...
- Java的StringAPI的小练习
//-------------String类-------------- //求两个字符串的最大相同子串 /* 思路: 1.找出较短的那个字符串 2.找出短串的所有子串,使用contains函数判断是 ...
随机推荐
- Linux操作系统备份之二:通过tar拷贝分区实现Linux操作数据的在线备份
http://www.tektea.com/archives/2163.html. 在<Linux操作系统备份之一:使用LVM快照实现Linux操作系统数据的在线备份>文章中,我们介绍了使 ...
- NDK开发-简介&环境搭建(Eclipse,Android Studio)
NDK简介 NDK(Native Development Kit)是一套工具集,允许你在Android应用中嵌入c或c++. 使用NDK的好处主要有以下4点: 安全:由于apk的java层代码很容易被 ...
- C语言回顾-结构体、枚举和文件
1.构造类型 根据已经定义的一个或多个数据类型用构造的方法来定义. 分为:数组.结构体和共用体 2.结构体 struct 结构体名{ 成员列表: }; 1)结构体定义完成以后,计算机不会给结构体分配存 ...
- .NET开发者必备的工具箱
本文作者Spencer是一名专注于ASP.NET和C#的程序员,他列举了平时工作.在家所使用的大部分开发工具,其中大部分工具都是集中于开发,当然也有一些其它用途的,比如图片处理.文件压缩等. 如果你是 ...
- DELPHI XE5
一直觉得DELPHI7之后,如果写WINDOWS桌面应用,没什么变化. 一直在痛苦,为什么DELPHI提供的控件那么丑陋,透明等什么功能都做的那么差. 一直在郁闷,新装的DELPHI都不带DEMO. ...
- vc6 使用的那些事
VC6.0中Release下调试模式设置 http://blog.csdn.net/wangqinghao/article/details/7730428
- CSS3 笔记四(Transforms/Transition/Animations)
CSS3 2D Transforms Methods translate() rotate() scale() skewX() skewY() matrix() 1> translate() T ...
- Java的文件读写操作
file(内存)----输入流---->[程序]----输出流---->file(内存) 当我们读写文本文件的时候,采用Reader是非常方便的,比如FileReader,InputStr ...
- [mysql]throw exception
CREATE PROCEDURE pro_throwException (errorCode char(5), errorMessage text) BEGIN SIGNAL SQLSTATE err ...
- Bootstrap Modal 垂直方向加滚动条
原文链接:http://blog.csdn.net/cyh1111/article/details/52960747 背景 使用Bootstrap Modal实现用户资料修改,由于用户信息过多,默认M ...