
面试题
程序新视界
个人公众号【程序新视界】,一个硬技术,软实力同步提升的平台。《Spring Boo技术内幕:架构设计与实现原理》作者,《深入以太坊智能合约开发》联合作者之一。主要从事于三方支付行业。
-
原创 【JVM】Int类型在栈中是否会被缓存?
在写面试题系列文章中,多次涉及到JVM的内存分布情况,以及方法执行的过程中局部变量的存储变化情况。比如,在此前已经讲解过字符串常量池的初始化及使用情况。前些天一位粉丝加微信好友,询问关于int类型的一张存储结构图,主要是对int类型在方法执行的过程中是否存在缓存的情况有疑问。在交流、探讨的过程中收获很多相关知识。本篇文章就汇总分享一下。int类型的是否会被缓存首先看下图(其他公众号文章获得),图中显示int类型在栈中会被复用。针对引用类型我们知道栈中只存储引用地址,而对应的值存储在堆中,这没什么问2020-10-12 21:42:15694
1
-
原创 面试题系列第8篇:谈谈String、StringBuffer、StringBuilder的区别?
《Java面试题系列》:一个长知识又很有意思的专栏。深入挖掘、分析源码、汇总原理、图文结合,打造公众号系列文章,面试与否均可提升Level。欢迎持续关注【程序新视界】。第8篇。关于字符串的面试题除了内存分布、equals比较,最常见的就是与StringBuffer和StringBuilder之间的区别了。如果你回答:String类是不可变的,StringBuffer和StringBuilder是可变类,StringBuffer是线程安全的,StringBuilder则不是线程安全的。就上面的总结而.2020-09-15 17:30:441889
0
-
原创 面试题系列第7篇:Java方法到底是值传递还是引用传递?
《Java面试题系列》:一个长知识又很有意思的专栏。深入挖掘、分析源码、汇总原理、图文结合,打造公众号系列文章,面试与否均可提升Level。欢迎持续关注【程序新视界】。本篇为第7篇。要点:Java方法到底是值传递还是引用传递?这个问题一直在技术讨论区争论不休。对于初级人员来说很具有迷惑性,即便对于很多高级开发来说,也搞不清楚。本篇文章就带大家探究一下底层的原理,最终化繁为简,让大家通过一两句话就明白到底是值传递还是引用传递。面试题常见面试题,执行以下代码,查看对应的打印结果:@Testpub.2020-09-07 09:13:32421
0
-
原创 面试题系列第6篇:JVM字符串常量池及String的intern方法详解?
《Java面试题系列》:一个长知识又很有意思的专栏。深入挖掘、分析源码、汇总原理、图文结合,打造公众号系列文章,面试与否均可提升Level。欢迎持续关注【程序新视界】。本篇为第6篇。关于字符串的比较在前面文章中已经详解过,本篇文章基于字符串常量池的存储及在使用intern方法时所引起的内存变化进行一步深层次的讲解。重点内容:当字符串调用intern方法后,再进行字符串的比较,会发生什么变化?本文内容均以HotSpot虚拟机为基础讲解。面试题先通过一个面试题形象的了解一下我们本篇文章要讲的内容的.2020-09-03 08:37:15421
0
-
原创 面试题系列第5篇:JDK的运行时常量池、字符串常量池、静态常量池,还傻傻分不清?
《Java面试题系列》:一个长知识又很有意思的专栏。深入挖掘、分析源码、汇总原理、图文结合,打造公众号系列文章,面试与否均可提升Level。欢迎持续关注【程序新视界】。本篇为第5篇。【番外篇】本篇核心:JDK各个版本中JDK的运行时常量池、字符串常量池、静态常量池的功能及存储位置。在写本系列文章时,发现一旦追究起底层实现都会涉及到一些内存结构的问题。其中涉及比较多的便是常量池,本篇文章汇总一下JDK的运行时常量池、字符串常量池、静态常量池的功能及存储结构。JVM运行时内存结构在了解常量池之前我们.2020-08-30 19:58:43541
0
-
原创 面试题系列第4篇:重写了equals方法,为什么还要重写hashCode方法?
《Java面试题系列》:一个长知识又很有意思的专栏。深入挖掘、分析源码、汇总原理、图文结合,打造公众号系列文章,面试与否均可提升Level。欢迎持续关注【程序新视界】。本篇为第4篇。核心问题:重写了equals方法,为什么还要重写hashCode方法?这不仅仅是一道面试题,而且是关系到我们的代码是否健壮和正确的问题。在前面两篇文章涉及到了equals方法的底层讲解:《说说==和equals的区别?你的回答可能是错误的》和《Integer等号判断的内幕,你可能不知道?》。本篇文章,带大家从底层来分析.2020-08-27 21:15:181216
1
-
原创 面试题系列第3篇:Integer等号判断的内幕,你可能不知道?
《Java面试题系列》:对面试题中经典内容进行深入挖掘,分析源码、汇总原理,形成公众号系列文章,面试与否均可提升技能。欢迎大家持续关注【程序新视界】。本篇为系列第3篇。面试过程中关于Integer的比较“==”的问题内容层出不穷,但无论怎么变化,只要了解了其中的底层原理,马上就可以得出答案,再也不用死记硬背考题了。《阿里巴巴Java开发手册》中有这样一项强制要求:“所有整形包装类对象之间值的比较,全部使用equals方法比较。说明:对于Integer var= ?在-128到127范围内的赋值,.2020-08-26 15:13:23454
0
-
原创 面试题系列第2篇:new String()创建几个对象?有你不知道的
Java面试题系列:将面试题中比较经典和核心的内容写成系列文章持续在公众号更新,可巩固基础知识,可梳理底层原理,欢迎大家持续关注【程序新视界】。本篇为面试题系列第2篇。常见面试问题下面代码中创建了几个对象?new String("abc");答案众说纷纭,有说创建了1个对象,也有说创建了2个对象。答案对,也不对,关键是要学到问题底层的原理。底层原理分析在上篇文章《面试题系列第1篇:说说==和equals的区别?你的回答可能是错误的》中我们已经提到,String的两种初始化形式是有本质区别的。2020-08-25 07:23:16521
0
-
原创 面试题系列第1篇:说说==和equals的区别?你的回答可能是错误的
最近准备再刷刷面试题,将面试题中比较经典和核心的内容写成系列文章发表在公众号中,巩固基础知识,分享给大家,欢迎大家持续关注【程序新视界】。下面是本系列第1篇。大多数面试的第一题不是让说说面向对象,就是关于字符的。本篇文章就从各方面来聊聊“==和equals的区别”。概念上的区别针对字符串(注意仅限字符串)的比较,==和equals的区别有以下两点:(1)"=="是判断两个变量或实例是不是指向同一个内存空间。(2)"equals"是判断两个变量或实例所指向的内存空间的值是不是相同。单纯从抽象的概念2020-08-24 14:09:40460
0