Java基础面试题

析构磷火
• 阅读 2529

java中==和equals和hashCode的区别

==是运算符,用于比较两个变量是否相等。

equals,是Objec类的方法,用于比较两个对象是否相等,默认Object类的equals方法是比较两个对象的地址,跟==的结果一样。Object的equals方法如下:

public boolean equals(Object obj) {  
    return (this == obj);   
}    

hashCode也是Object类的一个方法。返回一个离散的int型整数。在集合类操作中使用,为了提高查询速度。(HashMap,HashSet等)

  • 基本数据类型:也称原始数据类型。byte,short,char,int,long,float,double,boolean 他们之间的比较,应用双等号(==),比较的是他们的值。
  • 引用数据类型: 当他们用(==)进行比较的时候,比较的是他们在内存中的存放地址,所以,除非是同一个new出来的对象,他们的比较后的结果为true,否则比较后结果为false。

JAVA当中所有的类都是继承于Object这个基类的,在Object中的基类中定义了一个equals的方法,这个方法的初始行为是比较对象的内存地
址,但在一些类库当中这个方法被覆盖掉了,如String,Integer,Date在这些类当中equals有其自身的实现,而不再是比较类在堆内存中的存放地址了。

如果两个对象根据equals()方法比较是相等的,那么调用这两个对象中任意一个对象的hashCode方法都必须产生同样的整数结果。
如果两个对象根据equals()方法比较是不相等的,那么调用这两个对象中任意一个对象的hashCode方法,则不一定要产生相同的整数结果

int、char、long各占多少字节数

类型 字节数 备注
byte 1 -128-127
short 2 -32768~32767
int 4
long 8
float 4 float类型数值有后缀F
double 8 没有后缀F的小数默认为double
char 2 Java默认编码方式为Unicode
boolean 1 true or false

int与integer的区别

谈谈对java多态的理解

String、StringBuffer、StringBuilder区别

什么是内部类?内部类的作用

抽象类和接口区别

抽象类的意义

抽象类与接口的应用场景

抽象类是否可以没有方法和属性?

接口的意义

泛型中extends和super的区别

父类的静态方法能否被子类重写

进程和线程的区别

final,finally,finalize的区别

序列化的方式

Serializable 和Parcelable 的区别

静态属性和静态方法是否可以被继承?是否可以被重写?以及原因?

静态内部类的设计意图

成员内部类、静态内部类、局部内部类和匿名内部类的理解,以及项目中的应用

谈谈对kotlin的理解

闭包和局部内部类的区别

String 转换成 Integer的方式及原理

点赞
收藏
评论区
推荐文章
Wesley13 Wesley13
4年前
java中字符串相等判断
字符串的判断有2种:        1、判断地址是否相等 用:        2、判断值是否相等 用:equals方法Object类作为所有类的超类,而Object类的equals方法是直接比较地址的,源码如下:publicbooleanequals(Objectobj){
红烧土豆泥 红烧土豆泥
4年前
补充关于equals的比较方式
补充(equals比较)java.lang.String类中的方法equals判断相等依据策略:如果与目标相等返回0,小于目标返回值小于0,大于目标返回值大于0language@NativestaticfinalbyteLATIN10;@NativestaticfinalbyteUTF161;language/Compa
阿里程序员的Java之路!2021年最新Java面试点梳理
面试题模块介绍:一、Java基础JDK和JRE有什么区别?和equals的区别是什么?两个对象的hashCode()相同,则equals()也一定为true,对吗?final在java中有什么作用?java中的Math.round(1.5)等于多少?String属于基础的数据类型吗?
腾讯T3团队整理,持续更新中
Java基础1.JAVA中的几种数据类型是什么,各自占用多少字节。2.String类能被继承吗,为什么。3\.两个对象的hashCode()相同,则equals()也一定为true,对吗?4\.String属于基础的数据类型吗?5.Java中操作字符串都有哪些类?它们之间有什么区别?6.Java中IO流分为几种?7.BIO、NIO
凯特林 凯特林
4年前
安利一些强无敌的 NPM 软件包
实用工具Lodashlodash是一套现代JavaScript实用程序库,提供模块化、性能与多种附加功能。可提供关于JavaScript数组、对象及其他数据结构的多种实用功能。安装及示例yarnaddlodash不要滥用,尽量使用ES自带方法 。我常用的一些方法如下//深度比较两个对象的值是否全相等importisEqu
红烧土豆泥 红烧土豆泥
4年前
补充关于equals的比较方式
补充(equals比较)Object中的equals比较的是地址languagepublicbooleanequals(Objectobj)return(thisobj);java.lang.String类中equals的方法equals判断相等依据策略:如果与目标相等返回0,小于目标返回值小于0,大于目标返回值大于0lan
Wesley13 Wesley13
4年前
Java中==和equals的区别
""可以比较基本数据类型,也可以比较引用数据类型。如果比较基本数据类型比较的是变量中存储的值;如果比较引用类型比较的是变量中存储的地址引用。equals()是Object类中继承过来的方法,每个引用类型都可以调用,默认继承的equals()方法的比较与""一致。如下代码所示: publicbooleanequals(Objectobj)
Stella981 Stella981
4年前
Sonar 规则
bug类型:1、".equals()"shouldnotbeusedtotestthevaluesof"Atomic"classes.bug主要不要使用equals方法对AtomicXXX进行是否相等的判断Atomic变量永远只会和自身相等,Atomic变量没有覆写equals()方法.2、""
Wesley13 Wesley13
4年前
Java提高篇——equals()与hashCode()方法详解
阅读目录equals()方法详解hashcode()方法详解Hashset、Hashmap、Hashtable与hashcode()和Equals()的密切关系java.lang.Object类中有两个非常重要的方法:publicbooleanequals(Objectobj)pub
Easter79 Easter79
4年前
String字符串相等判断
\:比较的是内存地址值equals:比较的是值,对象的equals()可以被重写java中字符串的比较:Stringa"abc";Stringb"abc"那么ab将返回true。因为在java中字符串的值是不可改变的,相同的字符串在内存中只会存一份,所以a和
Wesley13 Wesley13
4年前
JAVA 基础部分易混淆问题总结
前言   最近在看了一些java基础问题,顺便将这段时间看到的容易混淆和已忘记的问题进行整理总结一下.接下来会再写一些web方便易混淆或者不常用易忘记的问题梳理问题列表    1、和equals区别        操作符专门用来比较两个变量的值是否相等,也就是用于比较变量所对应的内存中所存储的数值是否相同,要