最近跟着组里的大佬面试碰到这么一个问题, Q:说说var、let、const的区别 A:balabalabalabla... Q:const定义的值能改么? A:你逗我?不能吧 不知道各位看官怎么想?答案是部分能改,部分不能改。const定义的基本类型不能改变,但是定义的对象是可以通过修改对象属性等 ...
分类:
Web程序 时间:
2018-08-23 22:15:10
阅读次数:
244
一:Google的V8引擎的简化模型 如下,包含一个内存堆和函数调用栈。内存堆用于分配内存,函数调用栈用于记录当前程序的运行路径。当网页在chrome中运行报错时,控制台会输出一串错误信息,其来源就是函数调用栈。所以当函数声明时,其函数体存在于堆中,当函数被调用时,其信息存于call stack栈顶 ...
分类:
其他好文 时间:
2018-08-18 20:11:33
阅读次数:
156
一、堆内存 1、就是程序员手动管理的一块内存,在C语言中,可以理解为用malloc、realloc等申请空间的一些函数,这些函数所申请的空间就是堆空间 2、C语言中,堆空间是申请和释放 malloc/free 这两个函数来实现 3、堆内存和物理空间的大小有关,如果物理空间够大的话,理论上,程序员可以 ...
分类:
其他好文 时间:
2018-08-17 23:30:51
阅读次数:
178
静态变量和成员变量的不同: ① 所属范围不同。静态变量是属于类范围的;成员变量是属于对象范围的。 ② 存活时间不同。类的一生有着静态变量的伴随;而成员变量只能陪类走一程,对象产生的时候它就产生,而且它会随着对象的消亡而消亡。 ③ 存储位置不同。静态变量时存储在方法区里的静态区;成员变量存储在堆栈内存 ...
分类:
其他好文 时间:
2018-08-15 14:51:02
阅读次数:
163
以上代码的运行结果是什么? 答案是 true、true、false、true、false!!! 从写hello world 开始,大家都知道: ==比较的是栈内存中存放的对象的堆内存地址,用来判断两个对象的地址是否相同,即是否是指向同一个对象。 equals比较的是两个对象的内容是否相同。 按照上述 ...
分类:
其他好文 时间:
2018-08-13 12:25:09
阅读次数:
144
类的加载机制: 虚拟机读取class文件,并创建java.lang.class对象,并对数据进行检验、解析、初始化,最终能被虚拟机运行的过程。 Java对象创建时机 (1)使用new关键字创建对象 (2)使用Class类的newInstance方法(反射机制) (3)使用Constructor类的n ...
分类:
其他好文 时间:
2018-08-13 00:46:36
阅读次数:
169
==: == 比较的是变量(栈)内存中存放的对象的(堆)内存地址,用来判断两个对象的地址是否相同,即是否是指相同一个对象。比较的是真正意义上的指针操作。 1、比较的是操作符两端的操作数是否是同一个对象。2、两边的操作数必须是同一类型的(可以是父子类之间)才能编译通过。3、比较的是地址,如果是具体的阿 ...
分类:
其他好文 时间:
2018-08-12 21:35:47
阅读次数:
100
JVM整体工作流程 Java源文件.java 文件通过javac命令编译成.class文件,编译的文件也可以从网络上下载的jar、zip包等,通过java命令进行运行。 一个Java类的生命周期: 加载->链接(验证+准备+解析)->初始化(使用前的准备)->使用->卸载 (1)加载 首先通过一个类 ...
分类:
编程语言 时间:
2018-08-07 12:56:33
阅读次数:
154
JAVA多线程多线程的基本概念线程指进程中的一个执行场景,也就是执行流程,那么进程和线程有什么区别呢?每个进程是一个应用程序,都有独立的内存空间同一个进程中的线程共享其进程中的内存和资源(共享的内存是堆内存和方法区内存,栈内存不共享,每个线程有自己的。)什么是进程?一个进程对应一个应用程序。例如:在 windows 操作系统启动 Word 就表示启动了一个 进程。在 java 的开发环境下启动
分类:
编程语言 时间:
2018-08-07 11:05:54
阅读次数:
202
这里先说两个概念:1、堆(heap)2、栈(stack)堆 是堆内存的简称。栈 是栈内存的简称。说到堆栈,我们讲的就是内存的使用和分配了,没有寄存器的事,也没有硬盘的事。各种语言在处理堆栈的原理上都大同小异。堆是动态分配内存,内存大小不一,也不会自动释放。栈是自动分配相对固定大小的内存空间,并由系统 ...
分类:
编程语言 时间:
2018-08-02 13:52:02
阅读次数:
157