首页 > 编程语言 >Java面试题

Java面试题

时间:2022-10-09 10:46:14浏览次数:67  
标签:面试题 Java JDK equals hashcode 引用 类型

Java 基础
1. JDK 和 JRE 有什么区别?
JDK:Java Development Kit 的简称,Java 开发工具包,提供了 Java 的开发环境和运行环境。
JRE:Java Runtime Environment 的简称,Java 运行环境,为 Java 的运行提供了所需环境。
具体来说 JDK 其实包含了 JRE,同时还包含了编译 Java 源码的编译器 Javac,还包含了很多 Java 程序调试和分析的工具。简单来说:如果你需要运行 Java 程序,只需安装 JRE 就可以了,如果你需要编写 Java 程序,需要安装 JDK。

2.==和equals的区别是什么

(==)对于基本类型是引用类型 == 的作用是效果不同的

基本类型:比较值

引用类型:比较引用

(equals)对于基本类型是引用类型 == 的作用是效果不同的

equals 本质上就是 ==,只不过 String 和 Integer 等重写了 equals 方法,把它变成了值比较

(== 对于基本类型来说是值比较,对于引用类型来说是比较的是引用;而 equals 默认情况下是引用比较,只是很多类重新了 equals 方法,比如 String、Integer 等把它变成了值比较,所以一般情况下 equals 比较的是值是否相等。)

 

3.两个数的hashcode相同,那么值一定相同?

不一定,两个对象的 hashCode() 相同,equals() 不一定 true

知识衍生:

(hashcode为什么会相同,因为hash表结合了直接寻址和链式寻址两种方式,

1.直接寻址可以理解为根据hashcode的值为索引进行寻找
hashcode返回的是int类型,所以存储的索引的数量是有限的2^32个

因此不可避免的在存储对象时,对不同的对象可能计算出相同的hashcode值

2.链式寻址是指当我们要存储两个具有相同hashcode的对象时,采用链式结构将它们连接起来)

 

标签:面试题,Java,JDK,equals,hashcode,引用,类型
From: https://www.cnblogs.com/huangjinjia/p/16771280.html

相关文章

  • 力扣219(java&python)-存在重复元素 II(简单)
    题目:给你一个整数数组 nums和一个整数 k,判断数组中是否存在两个不同的索引 i 和 j,满足nums[i]==nums[j]且abs(i-j)<=k。如果存在,返回true;否则,返回f......
  • javascript简单实现主题变色
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"/><metahttp-equiv="X-UA-Compatible"content="IE=edge"/><metaname="viewport"c......
  • JavaScript 事件
    事件浏览器窗口,文档等发生的一些特定的交互瞬间。对于Web应用来说,有下面这些代表性的事件:点击某个元素、将鼠标移动至某个元素上方、关闭弹窗等等。JavaScript是以事......
  • 在java 的基础上增量学习 shell 编程
     shell 脚本其实还是我们比较常用的,在开发中经常会有需求,要写脚本实现某某功能。 比如,别人让写一个告警脚本,将消息推送到钉钉上。 这篇文章作为shell 的入门吧。 jav......
  • 【博学谷学习记录】超强总结,用心分享|Java基础分享-数据结构(数组、链表)
    目录1.数组2.链表2.1.链表简介2.2.链表分类2.2.1.单链表2.2.2.循环链表2.2.3.双向链表2.2.4.双向循环链表1.数组数组(Array) 是一种很常见的数据结构。......
  • java在图片上绘制框框
    /***画缺陷框的图片文件*@paramfile{@linkFile}*@parampolygon缺陷框*@return带缺陷的文件*@throwsIOExceptionIO异常*......
  • Java 多线程(一)线程简介
    多任务类似于这些例子,现实生活中太多太多了。看起来是多个任务在做,其实本质上我们的大脑再同一时间依旧只做一件事。 多线程  原来是一条路,慢慢的因为车多起来......
  • 微软全力拥抱 Java!
    作者|苏宓出品|CSDN(ID:CSDNnews)虽然一直以来,微软的不少产品在很多层面都有使用Java语言,但近日其官网上的一则「MicrosoftiscommittedtothesuccessofJavadev......
  • JavaScript基础 看这一篇就够了
    JavaScript是什么?JavaScript是世界上最流行的客户端脚本语言,主要用于为网页添加交互,跟html,css并称为前端三大语言。JavaScript能做什么?客户端数据验证客户端数据计算......
  • 对于Java课上问题的探究和解答
    问题一:子类和父类的继承关系(extends)需要强调的是,子类自动声明继承父类中的public和protected的成员其中,public成员,外界可以自由访问;private成员,外界无法进行访问;protec......