首页 > 编程语言 >java面试题汇总

java面试题汇总

时间:2024-04-30 16:26:54浏览次数:26  
标签:面试题 java String int 是否 汇总 Equals Integer 数据类型

基础篇

1、java中 == 和 equals 的区别?

== 是比较运算符,Equals 是方法

== 在判断基本数据类型的时候,就是判断数值是否相等,比如int 10 和 int 20的时候就是判断10 和20 这两个数是否相等

== 在判断引用数据类型的时候,也就是对象是否相等的时候,判断的是内存地址是否相等,也就是这两个对象是否就是同一个对象。  

总结: ==判断基本数据类型的值,判断引用数据类型的内存地址。

Equals是定义在Object类的方法,不同类有不同的实现。

用Integer 和 String这两个阐述一下,从而理解Equals方法的设计思想。

Integer的Equals方法通过三步完成比较:内存地址是否相同; 类型是否相同;数值是否相同;(当判断内存地址一致时就不会再判断后面的两项,当内存地址不同才会判断下一项。)

String的Equals方法通过四步完成比较:内存地址是否相同;类型是否相同;长度是否相同;每个字符是否相同;

总结:Equals方法最终目的是比较内容相同。

 

2、java中Integer和int有什么区别?

基本类型与引用类型:int是基本数据类型,直接存储数值,而Integer是对象,它的实例是引用类型,存储的是对象的引用。

默认值:int的默认值为0,而Integer的默认值为null。

操作符支持:对于int类型我们可以使用比较操作符==来比较两个变量的值是否相等,而对于Integer对象,使用==比较得到的是两个Integer对象的引用地址是否相等,比较的是两个对象的地址而非真正的数值。如果要比较Integer对象包含的数值是否相等,需要使用equals()方法。

null安全性:int类型的值始终有明确的默认值0,不存在空值。但是Integer类型的值可以为null,因此在使用Integer类型时,需要对null做特殊处理,否则可能会产生`NullPointerException`。

泛型支持:由于Java泛型的设计限制,Java泛型不能用于基本数据类型。这就意味着我们不能使用ArrayList<int>,但是我们可以使用ArrayList<Integer>。

方法支持:Integer类提供了更多的方法,例如将一个字符串转换成整数、将一个整数转换成不同进制的字符串等。这些方法在int类中并不存在。

 

3、Java的String,StringBuffer,StringBuilder的区别?

 

4、Java的String的intern方法的原理

从字符串常量池中查询当前字符串是否存在(通过equals判断)。

如果存在,返回常量池中的字符串引用。

如果不存在,把这个String对象引用存到常量池,然后返回这个String对象的引用。

 

标签:面试题,java,String,int,是否,汇总,Equals,Integer,数据类型
From: https://www.cnblogs.com/JoeYD/p/18168227

相关文章

  • ElasticJob-面试题-高频题
    ElasticJob1ElasticJob的失效转移-故障转移-机制是怎样的?答案:当任务执行失败或者节点宕机时,ElasticJob具备故障转移和重试的能力,能够自动进行故障恢复,确保任务的稳定运行。底层原理是怎么样的?底层实现原理就是:Elasticjob的故障恢复机制是通过分布式协调服务-zookeeper和任务节点......
  • Java中“==”与“equals”在字符串比较中的应用与分析
    packagecom.aiit.helloworld;publicclassHelloWorld{ publicstaticvoidmain(Stringargs[]){ Strings1="a"+"b"; Strings2=newString(s1); if(s1==s2)//false System.out.println("doit~~~"); if(s1.equals(s......
  • C/C++、Java 与 Python 中未初始化变量的处理比较
    在C/C++中,未初始化的变量的值是不确定的,可能是随机的。 在Python中,如果直接使用未初始化的变量,会引发NameError异常。Python要求变量在使用前必须进行赋值或初始化。 而在Java中,直接使用未初始化的局部变量会导致编译错误,必须先对变量进行初始化。 C++和Java在字......
  • 'org.springframework.web.filter.CharacterEncodingFilter' is not assignable to 'j
    问题描述:在写SSM项目中,配置前端控制器的时候发现错误'org.springframework.web.filter.CharacterEncodingFilter'isnotassignableto'javax.servlet.Filter,jakarta.servlet.Filter'一直爆红解决思路:在您的错误消息中,指出了org.springframework.web.filter.CharacterEn......
  • JavaScript数组
     JavaScript数组数组(Array)是属于内置对象,数组和普通对象的功能类似,都可以用来存储一些值。不同的是:普通对象是使用字符串作为属性名,而数组是使用数字作为索引来操作元素。索引:从0开始的整数就是索引。数组的存储性能比普通对象要好。在实际开发中我们经常使用数组存储......
  • Ubuntu apt安装Java
    ref:https://www.jianshu.com/p/ddf1195e6d9f安装jdk17要安装此版本,请先更新软件包索引:$sudoaptupdate接下来,检查Java是否安装:$java-version如果Java当前未安装,您将看到以下输出:找不到命令“java”,但可以通过以下软件包安装它:aptinstallopenjdk-11-jre-hea......
  • java基础面试
    ThreadLocal:ThreadLocal并不解决线程间共享数据的问题ThreadLocal通过隐式的在不同线程内创建独立实例副本避免了实例线程安全的问题每个线程持有一个Map(ThreadLocalMap)并维护了ThreadLocal对象与具体实例的映射,该Map由于只被持有它的线程访问,故不存在线程安全以及锁的......
  • 记录springboot项目多module(java/scala)打包代码
    java项目不太熟,之前一直使用的idea中的打包方式:BuildArtifacts...,现在使用maven打包,一直报下面的common等依赖包找不到,花了很多时间,在此记录下解决过程。解决办法是先将依赖包deploy到远程仓库,然后在打包的时候先install,再package,就可以打包成功。但还有一个问题没解决:由于我的......
  • 引爆你的网页乐趣!前端十个令人捧腹的JavaScript整蛊代码。
    愚人节整蛊代码。想要在网页上增添一抹幽默与惊喜吗?或是想给你的朋友一个意想不到的“小惊喜”?那么,这十款简单而有趣的JavaScript前端整蛊代码绝对能满足你的需求!每一个代码都能让你的网页瞬间变得生动有趣。1,抖动页面在线效果演示:张苹果博客模拟页面抖动的动画效果。3秒后......
  • 「软件测试面试题集解析课」限时优惠,助你高效备战,一举拿下心仪职位
    面试时常被难倒?不知道如何准备才能脱颖而出?别担心!我们为您整理了一份的软件测试经典面试题视频课,覆盖了操作系统、编程语言、测试用例设计、计算机网络、数据库、算法与数据结构等内容,助您轻松应对软件测试面试挑战。首先,从操作系统与常用命令面试题,让您牢固掌握基础知识;编程语言......