Java中Boolean和boolean的区别是什么


这篇“Java中Boolean和boolean的区别是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Java中Boolean和boolean的区别是什么”文章吧。有人问,Boolean 类型的值不是只有 true 和 false 两种吗?为什么他定义的属性出现了 null 值?我们应该先明确一点,boolean 是 Java 的基本数据类型,Boolean 是 Java 的一个类。boolean 类型会在“赋零值”阶段给属性赋 false。而 Boolean 是一个类,会在“赋零值”阶段给对象赋 null。如果是静态属性,会在类加载时被赋值。如果是普通类属性,会在实例化对象时赋值。这两点可以了解一下“类加载机制”和“对象创建过程”。加载:根据类的全名获取类的二进制字节流,将类加载进内存并在堆中生成一个代表这个类的 Class 对象,作为方法区数据的访问入口验证:验证 class 文件中的字节流是否符合 JVM 规范准备:在方法区中为类的静态属性分配内存,并初始化默认值(boolean 的默认值是 false,Boolean 的默认值是 null)解析:将常量池中的符号引用转化为直接引用,可以理解为对象引用转成指针初始化:真正开始执行类中的代码,静态属性赋值和静态块检查类是否已经被加载(双亲委派)给对象分配内存空间(指针碰撞)零值初始化(false / null)设置对象头(对象分代年龄等信息)执行 方法(属性初始化,语句块和构造方法)所以说,Boolean只是被加载了,还没有被实例化,在被实例化之前并没有分配内存,所以是 null接下来我们可以看看 Boolean 的属性和构造方法,了解一下它如何包装 boolean对于其他的属性和方法,可以自行查看都比较简单关于 Boolean 使用过程中有一个风险点,阿里巴巴开发手册也写得非常好简单来说就是,boolean 定义的属性一定要有值,如果 Boolean 对象值为 null,解包过程中就会出现NPE。想象一种场景:你女票问你:你爱我吗?但你没听清。如果你是 Boolean 就会回答,我没听清(null),如果你是 boolean 就会回答,不爱了 (false)之后就会被打。针对Boolean与true单纯从源码角度看不出来那个性能上更加好;大布免费云主机域名尔也是初始化了两个static对象源码截图如下:写了一个测试类:测试方式(获取大布尔类型true的时间 获取小布尔类型true的时间,通过100、1000、10000、100000次 看看那个时间更少的次数更多)测试代码如下:执行结果如下图:以上就是关于“Java中Boolean和boolean的区别是什么”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注百云主机行业资讯频道。

相关推荐: css怎么给单元格加阴影

这篇文章主要介绍“css怎么给单元格加阴影”,在日常操作中,相信很多人在css怎么给单元格加阴影问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”css怎么给单元格加阴影”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!1.首先,在…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 03/20 17:46
下一篇 03/20 17:46

相关推荐