1. Java虚拟机运行时数据区 在JDK1.8之前,JVM运行时数据区分为堆、虚拟机栈、本地方法栈、方法区、程序计数器。如下图所示: 虚拟机栈:线程私有,随线程创建而创建。栈里面是一个一个“栈帧”,每个栈帧对应一次方法调用。栈帧中存放了局部变量表(基本数据类型变量和对象引用)、操作数栈、方法出口等 ...
分类:
编程语言 时间:
2020-01-08 14:14:16
阅读次数:
66
ES6中有一个方法判断两个对象是否相等,这个方法判断是两个对象引用地址是否一致 let obj1= { a: 1 } let obj2 = { a: 1 } console.log(Object.is(obj1, obj2)) // false let obj3 = obj1 console.log ...
分类:
编程语言 时间:
2020-01-08 13:00:29
阅读次数:
72
指针和引用的相同点: 1、都能提供对其他对象的间接访问 指针和引用的不同点: 1、引用并非对象,它只是为一个已经存在的对象所起的一个别名 指针本身就是一个对象,允许对指针赋值和拷贝 2、一旦定义了引用,就无法令其再绑定到另外的对象上去 指针可以先后指向几个不同的对象 3、引用定义的时候,必须赋初值 ...
分类:
其他好文 时间:
2020-01-05 13:36:52
阅读次数:
87
/* * java运行内存: * 堆(heap):存储的全是对象,每个对象都包含一个与之对应的class信息 * 只有一个heap,被所有线程共享,heap中不存放基本数据类型和对象引用,只放对象本身 * 栈:每个线程都有属于自己的栈(用户态栈),栈中保存基本数据类型的对象和自定义对象的引用,这个引 ...
分类:
编程语言 时间:
2020-01-04 12:15:42
阅读次数:
82
对象:目前在使用new运算符在堆内存中开辟的内存空间称为对象。 引用:是一个变量,不一定是局部变量,还可能是成员变量。引用保存了内存地址,指向了堆内存中的对象。 所有访问实例相关的数据,都需要通过“引用.”的方式访问,因为只有通过引用才能找到对象。 只有一个空的引用访问对象的实例相关的数据会出现空指 ...
分类:
其他好文 时间:
2020-01-04 10:53:19
阅读次数:
55
现象封装了一个部门选择框对象,在第一次创建选择框的时候是正确的,但是在关闭之后再次创建,发现点击事件被调用两次,于是console.log(),发现第一次创建的选择框的数据也被打印了一次,执行两次分别是执行了第一次本该销毁掉的选择框对象的方法和刚创建的选择框对象的方法。解决想了想,会不会是事件绑..... ...
分类:
其他好文 时间:
2020-01-04 00:46:45
阅读次数:
84
在UE4中,项目中的所有资源都是存储在硬盘中,当需要用到资源时,则需要将其加载进入内存中使用。为了更好的表示(引用)资源,UE4提供了两种引用资源的方式——硬引用、软引用。 资源的硬引用 硬性引用,即对象 A 引用对象 B,并导致对象 B 在对象 A 加载时加载。通俗点说,硬引用所表示的资源在引用初 ...
分类:
编程语言 时间:
2019-12-30 14:34:47
阅读次数:
152
导读 世界上只有两种物质:高效率和低效率;世界上只有两种人:高效率的人和低效率的人。 萧伯纳 常量&变量 直接赋值常量,禁止声明新对象 直接赋值常量值,只是创建了一个对象引用,而这个对象引用指向常量值。 反例 Long i=new Long(1L); String s=new String("abc ...
分类:
编程语言 时间:
2019-12-28 12:50:19
阅读次数:
80
一.String问题答疑String字符串是如何设计与实现考量的?String字符串缓存intern()方法,由永久代移到堆中。String的演化,Java9中底层把char数组换成了byte数组,占用更少的空间二.String的创建机理由于String在Java世界中使用过于频繁,Java为了避免在一个系统中产生大量的String对象,引入了字符串常量池。其运行机制是:创建一个字符串时,首先检查
分类:
编程语言 时间:
2019-12-27 15:17:08
阅读次数:
88
java虚拟机中的程序计数器区、虚拟机栈区、本地方法栈区3个区域是随着线程的创建而创建,随着线程的结束而结束时,内存自然得到回收,所以这三个区域不需要过多考虑内存的回收问题。 java虚拟机中的方法区和虚拟机堆区2个区是所有线程共享的区域,不同的接口或类需要的内存不同,且方法区和堆区往往是在程序运行 ...
分类:
编程语言 时间:
2019-12-26 19:30:21
阅读次数:
72