一、预先需要掌握的知识(java虚拟机)java虚拟机的方法区:java虚拟机有一个运行时数据区,这个数据区又被分为方法区,堆区和栈区,我们这里需要了解的主要是方法区。方法区的主要作用是存储被装载的类的类型信息,当java虚拟机装载某个类型的时候,需要类装载器定位相应的class文件,然后将其读入到 ...
分类:
编程语言 时间:
2020-06-24 17:56:42
阅读次数:
51
jvm系列(一):java类的加载机制 1、什么是类的加载 类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个 java.lang.Class对象,用来封装类在方法区内的数据结构。类的加载的最终产品是位于堆区中的 Class对象, Cl ...
分类:
编程语言 时间:
2020-06-21 15:49:27
阅读次数:
48
在vscode中,通过setting>User>Text Editor>Font可以调整字体大小,但是这里只是调整右侧的代码编辑区域的字体,左侧的侧边栏确无法调整字体大小,找了很久都没有找到调整编辑器字体的方法,无意中发现vscode有缩放功能。 Ctrl 加减号是缩放, Ctrl加加号是放大。 ...
分类:
其他好文 时间:
2020-06-13 21:22:23
阅读次数:
73
oc static 跟java有所区别。 1.全局只有在本类可以访问。出文件就不可访问了,区别与java. 2.类方法可以访问static 变量。oc + 方法类似java静态方法。 3.一个静态变量所以实例对象共用。分配在堆区内存。相同java。 4.方法中声明static 变量。只有在方法中访问 ...
分类:
移动开发 时间:
2020-06-13 15:48:24
阅读次数:
82
内存中的五大区域 栈:存储局部变量 堆:程序员手动申请的空间 BSS 段:未初始化的全局变量,静态变量 常量区:已经初始化的全局变量,静态变量 代码段:存储代码的 如何向堆区申请字节空间来使用 1 我们在堆中申请的字节空间,如果不主动释放,那么系统就不会释放的,除非程序结束了 在堆中申请字节空间的步 ...
分类:
编程语言 时间:
2020-06-13 00:32:59
阅读次数:
56
概述 一个进程对应一个JVM实例,一个运行时数据区,又包含多个线程,这些线程共享了方法区和堆,每个线程包含了程序计数器、本地方法栈和虚拟机栈 一个JVM实例只存在一个堆内存,堆也是Java内存管理的核心区域 Java堆区在JVM启动的时候即被创建,其空间大小也就确定了。是JVM管理的最大一块内存空间 ...
分类:
其他好文 时间:
2020-06-09 16:31:47
阅读次数:
63
1、对于任意整型数n的按位取反公式为:~n=-(n+1) “~” 取反运算符 2、指针指向字符串时,字符串是常量,存储在常量区,而指针存储在栈区,不能对其操作修改。 3、C++中函数可以嵌套调用,但是不可以嵌套定义。 ...
分类:
编程语言 时间:
2020-06-06 16:59:17
阅读次数:
82
栈区 存 引用和基本类型,不能存对象,而堆区存对象。==是比较地址,equals()比较对象内容。 (1) String str1 = "abcd"的实现过程:首先栈区创建str引用,然后在String池(独立于栈和堆而存在,存储不可变量)中寻找其指向的内容为"abcd"的对象,如果String池中 ...
分类:
其他好文 时间:
2020-06-05 12:54:28
阅读次数:
76
《Java虚拟机规范》将虚拟机的内存分为以下几个区域: 堆区:堆区是JVM中最大的一块内存区域,按照垃圾分代收集的角度划分,又可以分成年轻代和老年代,而年轻代内存又被分成三部分,Eden空间、From Survivor空间、To Survivor空间,默认情况下年轻代按照8:1:1的比例来分配; 方 ...
分类:
其他好文 时间:
2020-06-04 19:26:42
阅读次数:
68
一、二位数组是一个特殊的一维数组,特殊在这个一维数组中每个元素都是一维数组 相当于一维数组存储一维数组(遍历二维数组可以通过debug模式很直观的展示) 通过以下堆区分布证明: int[][] data = new int[2][3]; 二、语法: 数据类型[][]:第一个[]代表行,第二个[]代表 ...
分类:
编程语言 时间:
2020-06-02 18:35:52
阅读次数:
79