首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Java面试基本问题

equals()方法用于比较两个对象值。 Q10。Java堆和堆栈内存有何区别? 堆和堆栈内存之间主要区别是: 特征 叠放 堆 记忆 堆栈存储器仅由一个执行线程使用。...Java对象是什么,如何创建? 对象具有状态和行为现实世界实体。一个对象具有三个特征: State Behavior Identity 使用'new'关键字创建对象。...在Java, 局部变量通常在方法,构造函数或块内使用 ,并且仅具有局部作用域。因此,该变量只能在块范围内使用。拥有局部变量最大好处是该类其他方法甚至都不知道该变量。...什么是Java无限循环?举例说明。 无限循环是Java一个指令序列,不满足功能退出要求,它会无限循环。这种类型循环可能是编程错误结果,也可能是基于应用程序行为故意行为。...什么是Java构造函数链接? 在Java,构造函数链接是相对于当前对象从另一个构造函数调用一个构造函数过程。构造器链接只有通过继承才能实现,在传统,子类构造器负责首先调用构造器。

1.1K50

【1】进大厂必须掌握面试题-Java面试-基础

equals()方法用于比较两个对象值。 Q10。Java堆和堆栈内存有何区别? 堆和堆栈内存之间主要区别是: 特征 叠放 堆 记忆 堆栈存储器仅由一个执行线程使用。...Java对象是什么,如何创建? 对象具有状态和行为现实世界实体。一个对象具有三个特征: State Behavior Identity 使用'new'关键字创建对象。...在Java, 局部变量通常在方法,构造函数或块内使用 ,并且仅具有局部作用域。因此,该变量只能在块范围内使用。拥有局部变量最大好处是该类其他方法甚至都不知道该变量。...什么是Java无限循环?举例说明。 无限循环是Java一个指令序列,不满足功能退出要求,它会无限循环。这种类型循环可能是编程错误结果,也可能是基于应用程序行为故意行为。...什么是Java构造函数链接? 在Java,构造函数链接是相对于当前对象从另一个构造函数调用一个构造函数过程。构造器链接只有通过继承才能实现,在传统,子类构造器负责首先调用构造器。

1.7K00
您找到你想要的搜索结果了吗?
是的
没有找到

JVM内存模型

清理内存策略取决于 JVM 实现(例如,Oracle Hotspot 提供了多种算法)。 堆可以动态扩展或收缩,并且可以具有固定最小和最大大小。...例如,在 Oracle Hotspot ,用户可以通过以下方式使用 Xms 和 Xmx 参数指定堆最小大小“java -Xms=512m -Xmx=1024m ...” 注意:堆不能超过最大大小。... add() 完成,帧 B 被销毁并且帧 A 再次成为当前帧。add() 结果被放入 Frame A 操作数堆栈,以便 functionA() 可以通过弹出其操作数堆栈使用它。...注意:此堆栈功能使其可动态扩展和收缩。堆栈不能超过最大大小,这限制了递归调用数量。如果超过此限制,JVM 会抛出 StackOverflowError。...堆栈不能超过最大大小,这限制了递归调用数量。如果超过此限制,JVM 会抛出 StackOverflowError。 对于 Oracle HotSpot,您可以使用参数 -Xss 指定此限制。

79040

XDEBUG 从入门到精通

– 它包含一个用于IDE调试器 – 它升级了PHPvar_dump()函数 – 它为通知,警告,错误和异常添加了堆栈跟踪 – 它具有记录每个函数调用和磁盘变量赋值功能 – 它包含一个分析器...Xdebug版本包含了不同类型不同颜色,并对数组元素/对象属性数量、最大深度和字符串长度进行了限制。还有一些其他函数也处理变量显示。...对默认显示嵌套层数限制 具体内容请移步官网 https://xdebug.org/docs/display 堆栈跟踪配置 Xdebug被激活PHP决定显示一个通知、警告、错误等,它将显示一个堆栈跟踪...integer 0 设置为“1”,跟踪文件将被附加到后面的请求,而不是被覆盖。...在跟踪或分析脚本,您通常希望关闭此选项,因为PHP生成oparray将增加大约三分之一大小,从而减慢脚本速度。无法使用ini_set()在脚本设置此设置,但只能在php.ini设置。

4.8K10

Java面试基本问题

equals()方法用于比较两个对象值。 Q10。Java堆和堆栈内存有何区别? 堆和堆栈内存之间主要区别是: 特征 叠放 堆 记忆 堆栈存储器仅由一个执行线程使用。...Java对象是什么,如何创建? 对象具有状态和行为现实世界实体。一个对象具有三个特征: State Behavior Identity 使用’new’关键字创建对象。...在Java, 局部变量通常在方法,构造函数或块内使用 ,并且仅具有局部作用域。因此,该变量只能在块范围内使用。拥有局部变量最大好处是该类其他方法甚至都不知道该变量。...什么是Java无限循环?举例说明。 无限循环是Java一个指令序列,不满足功能退出要求,它会无限循环。这种类型循环可能是编程错误结果,也可能是基于应用程序行为故意行为。...什么是Java构造函数链接? 在Java,构造函数链接是相对于当前对象从另一个构造函数调用一个构造函数过程。构造器链接只有通过继承才能实现,在传统,子类构造器负责首先调用构造器。

1.1K20

​年终盘点: 复盘20+基于React开源管理后台&插件

衍生出动效设计三原则: 4.React-Admin React-Admin是基于React16.x、Ant Design3.x管理系统架构。...所有模板都具有充分响应能力,能够适应和重排其布局以适应任何视口大小。...为应用每一个状态设计简洁视图,数据变动 React能高效更新并渲染合适组件。 组件化: 构建管理自身状态封装组件,然后对其组合以构成复杂 UI。...高效:React通过对DOM模拟,最大限度地减少与DOM交互。 灵活:无论使用什么技术栈,在无需重写现有代码前提下,通过引入React来开发新功能。...项目功能: 免费 React 管理仪表板模板包,具有现代设计系统和大量自定义模板和组件。 完全响应式:所有模板都是完全响应式,并且能够根据任何视口大小调整和重排其布局。

48910

矢量符号架构作为纳米级硬件计算框架

4 两个集合叉积: 叉积集由代表原始集元素向量所有可能乘法组成(例如,x)。在上面的例子启动 首先,对于集合表示,仅需要7次运算(6次加法和1次乘法)来形成表示。...虽然计算基元在不同VSA模型是通用,但是涉及到与特定物理衬底接口,模型选择可能变得至关重要。...具体来说,已经表明,使用大规模相变存储器设备存储器内计算架构实现时,可以并行地计算向量和项目存储器之间相似性Karunaratne et al., 2021].当在这样硬件上执行时,改进算法时间复杂度也变成...VSA表示法最大优点是,任意大小和形状数据结构可以与基本VSA运算并行处理。...为了计算向量域中cN运算,只有cN N成对运算 顺序计算所需要。然而,涉及到信号表示、通信和存储,密集矢量是昂贵

30220

异常、堆内存溢出、OOM几种情况

在被Loader就会被放到PermGen space,这个区域成为年老代,GC在主程序运行期间不会对年老区进行清理,默认是64M大小程序需要加载对象比较多时,超过64M就会报这部分内存溢出了,需要加大内存分配...【解决】:优化程序设计,减少方法调用层次;调整-Xss参数增加线程栈大小。 2、Java异常 Throwable Throwable是 Java 语言中所有错误或异常类。...Throwable包含了其线程创建线程执行堆栈快照,它提供了printStackTrace()等接口用于获取堆栈跟踪数据等信息。...《Effective Java》给出建议是: 对于可以恢复条件使用被检查异常,对于程序错误使用运行时异常。...如果虚拟机在扩展栈无法申请到足够内存空间,则抛出OutOfMemoryError异常 这里需要注意大小越大可分配线程数就越少。

78510

异常、堆内存溢出、OOM几种情况

在被Loader就会被放到PermGen space,这个区域成为年老代,GC在主程序运行期间不会对年老区进行清理,默认是64M大小程序需要加载对象比较多时,超过64M就会报这部分内存溢出了,需要加大内存分配...【解决】:优化程序设计,减少方法调用层次;调整-Xss参数增加线程栈大小。 Java异常 Throwable  Throwable是 Java 语言中所有错误或异常类。 ...Throwable包含了其线程创建线程执行堆栈快照,它提供了printStackTrace()等接口用于获取堆栈跟踪数据等信息。...《Effective Java》给出建议是: 对于可以恢复条件使用被检查异常,对于程序错误使用运行时异常。...如果虚拟机在扩展栈无法申请到足够内存空间,则抛出OutOfMemoryError异常 这里需要注意大小越大可分配线程数就越少。

1.4K40

python模块之threading

在每个线程run()方法调用前,传递func参数给sys.setprofile() threading.stack_size([size]) 返回创建新线程使用线程堆栈大小。...可选参数size指定后续创建线程堆栈大小,必须是0(表示使用平台或配置默认值)或大于等于32768(32KiB)正整数。如果未指定,默认size为0....如果不支持改动线程堆栈大小,抛出RuntimeError异常。如果size不合法,抛出ValueError异常,堆栈大小保持不变。 32KiB是目前能保证解释器堆栈空间充足最小值。...某些平台可能对堆栈大小做了特殊限制,比如要求最小堆栈大小在32KiB以上,或要求以系统内存页大小倍数分配。...这时该线程被认为是"活动"。run()方法结束(正常执行完成或抛出了未处理异常),线程对象不再是"活动"。is_alive()方法可用于检查线程是否处于活动状态。

95540

WebAssembly一知半解

分支通过隐式弹出所有未使用操作符来解除对操作符堆栈纠缠,类似于函数调用返回。 表达式 结构化控制流似乎是一个严格限制,但大多数高级控制结构都可以通过合适嵌套轻松表达。...调用 函数可以使用调用指令直接调用,指令可以用函数指针来模拟,该指令将运行时索引引用到模块定义函数表。表函数不需要具有相同类型。...堆栈只是由一个指令序列中所有前导标识指令组成,指令序列被减少为与结果值堆栈相对应常量,执行终止 为了处理控制构造,使用少量辅助管理指令扩展语法,这些辅助指令只在还原过程临时出现,框架本质上是函数调用调用框架...控制构造规则要求它们类型匹配显式注释,并且在检查内部块使用本地标签扩展上下文。键入分支指令,会在上下文中查找标签类型,这需要堆栈适当操作符来匹配连接点上堆栈。...作为一种底层语言,WebAssembly 不提供任何内置对象模型,这种设计为开发者提供了最大灵活性,并且不像以前虚拟机那样,不锁定任何特定编程范式/对象模型。

90320

FreeRTOS学习笔记 | 基础知识体系梳理

在RTOS下,上面截图里设置大小有了一个新名字叫做系统栈空间,而任务栈是不使用这里空间,哪里使用这里栈空间呢,实际上是中断函数和中断嵌套。...由于 Cortex-M3 和 M4 内核具有堆栈指针,MSP 主堆栈指针和 PSP 进程堆栈指针,或者叫 PSP 任务堆栈指针也是可以。...在 FreeRTOS 操作系统,主堆栈指针 MSP 是给系统栈空间使用,进 程堆栈指针 PSP 是给任务栈使用。...但是 MDK 无法确定通过函数指针实现函数调用栈需求。另外,发生中断或中断嵌套现场保护需要栈空间也不会统计。...任务 Task3 在运行期间调用了阻塞式 API 函数,调用函数,虽然 5 个系统时钟节拍时间片大小还没有用完,此时依然会通过时间片调度切换到下一个任务 Task4。

88610

微信团队原创分享:iOS版微信内存监控系统技术实践

OC对象分配,用fishhook工具hook malloc/free等接口监控堆内存分配,每隔1秒,把当前所有OC对象个数、TOP 200最大堆内存及其分配堆栈,用文本log输出到本地。...对于堆内存对象,它Category名是“Malloc ”+分配大小,如“Malloc 48.00KiB”;对于虚拟内存对象调用vm_allocate创建,最后参数flags代表它是哪类虚拟内存,...2.2.2 堆栈存储 据统计,微信运行期间,backtrace堆栈有成百万上千万种,在捕获最大栈长64情况下,平均栈长35。...2.3、数据上报 由于内存监控是存储了当前所有存活对象内存分配信息,数据量极大,所以出现FOOM,不可能全量上报,而是按某些规则有选择性上报。...首先把所有对象按Category进行归类,统计每个Category对象数和分配内存大小。这列表数据很少,可以做全量上报。接着对Category下所有相同堆栈做合并,计算每种堆栈对象数和内存大小

1.9K20

一文搞懂 | Linux 各种栈(进程栈 线程栈 内核栈 中断栈)

C/C++ 编译器始终将 sp 用作堆栈指针 lr (r14) 用于存储调用子例程返回地址。...:存放 APSR 标记,当前处理器模式,中断禁用标记等 保存程序状态寄存器 (SPSR):发生异常使用 SPSR 来存储 CPSR 上面是栈原理和实现,下面我们来看看栈有什么作用。...以传递调用参数为例,我们可以选择使用 CPU通用寄存器 来存放参数。但是通用寄存器数目都是有限出现函数嵌套调用时,子函数再次使用原有的通用寄存器必然会导致冲突。...【扩展阅读】:函数栈帧 (Stack Frame) 函数调用经常是嵌套,在同一刻,栈中会有多个函数信息。每个未完成运行函数占用一个独立连续区域,称作栈帧(Stack Frame)。...进程在运行过程,通过不断向栈区压入数据,超出栈区容量,就会耗尽栈所对应内存区域,这将触发一个 缺页异常 (page fault)。

5K20

Linux 各种栈:进程栈 线程栈 内核栈 中断栈

C/C++ 编译器始终将 sp 用作堆栈指针 lr (r14) 用于存储调用子例程返回地址。...:存放 APSR 标记,当前处理器模式,中断禁用标记等 保存程序状态寄存器 (SPSR):发生异常使用 SPSR 来存储 CPSR 上面是栈原理和实现,下面我们来看看栈有什么作用。...以传递调用参数为例,我们可以选择使用 CPU通用寄存器 来存放参数。但是通用寄存器数目都是有限出现函数嵌套调用时,子函数再次使用原有的通用寄存器必然会导致冲突。...【扩展阅读】:函数栈帧 (Stack Frame) 函数调用经常是嵌套,在同一刻,栈中会有多个函数信息。每个未完成运行函数占用一个独立连续区域,称作栈帧(Stack Frame)。...进程在运行过程,通过不断向栈区压入数据,超出栈区容量,就会耗尽栈所对应内存区域,这将触发一个 缺页异常 (page fault)。

2.8K50

Linux 各种栈:进程栈 线程栈 内核栈 中断栈

C/C++ 编译器始终将 sp 用作堆栈指针 lr (r14) 用于存储调用子例程返回地址。...:存放 APSR 标记,当前处理器模式,中断禁用标记等 保存程序状态寄存器 (SPSR):发生异常使用 SPSR 来存储 CPSR 上面是栈原理和实现,下面我们来看看栈有什么作用。...以传递调用参数为例,我们可以选择使用 CPU通用寄存器 来存放参数。但是通用寄存器数目都是有限出现函数嵌套调用时,子函数再次使用原有的通用寄存器必然会导致冲突。...【扩展阅读】:函数栈帧 (Stack Frame) 函数调用经常是嵌套,在同一刻,栈中会有多个函数信息。每个未完成运行函数占用一个独立连续区域,称作栈帧(Stack Frame)。...进程在运行过程,通过不断向栈区压入数据,超出栈区容量,就会耗尽栈所对应内存区域,这将触发一个 缺页异常 (page fault)。

3.3K20

PWN从入门到放弃(3)——栈&栈帧

0x01 函数调用栈 程序执行过程可看作连续函数调用一个函数执行完毕,程序要回到调用指令下一条指令 (紧接 call 指令) 处继续执行。...注2:不同架构 CPU,寄存器名称被添加不同前缀以指示寄存器大小。...例如 x86 架构用字母 “e(extended)” 作名称前缀,指示寄存器大小为 32 位;x86_64 架构用字母 “r” 作名称前缀,指示各寄存器大小为 64 位。...0x02 栈帧 函数调用经常是嵌套,在同一刻,堆栈中会有多个函数信息。每个未完成运行函数占用一个独立连续区域,称作栈帧 (Stack Frame)。...栈帧是堆栈逻辑片段,调用函数逻辑栈帧被压入堆栈, 函数返回逻辑栈帧被从堆栈中弹出。栈帧存放着函数参数,局部变量及恢复前一栈帧所需要数据等。

17910

【JavaSE专栏17】用最简单方法,实现 Java 堆栈

然后,我们可以使用对象进行各种操作,例如获取和设置对象属性。 程序执行结束后,Java 虚拟机会自动回收不再使用内存空间。...内存管理:栈由编译器自动分配和释放,大小固定且较小;堆由开发人员手动或自动进行动态分配和释放,大小可变且较大。 3.2 联系 关联性:在Java程序,栈中保存着对堆对象引用。...生命周期:栈上数据随着方法调用和返回而自动分配和释放,具有短暂生命周期;堆上数据可以在任何地方被引用,具有更长久生命周期,直到没有引用指向该对象才会被垃圾回收机制回收。...协同使用:栈和堆在程序执行相互协作。方法调用时,局部变量在栈上分配内存;方法创建对象则在堆上分配内存,并由栈上引用指向这些对象。...---- 四、总结 本文简单对 Java 堆栈数据结构进行了介绍,讲解了堆栈实现原理,并给出了样例代码。在下一篇博客,将讲解 Java 内存机制。

15020

结合多种系统api来理解堆栈概念

数据结构具有后进先出特点,我们提到堆和栈空间时候,指的是数据在内存概念,对栈空间,基本认知包括: 1、栈空间通常用来存放临时变量、参数,寄存器等数据; 2、栈空间不能被多个函数共享,只能使用堆内存进行不同函数间数据共享...: 函数嵌套调用; 函数局部变量; 函数形参,一般情况下函数形参是直接使用 CPU 寄存器,不需要使用栈空间,但是这个函数如果还嵌套了一个函数的话,这个存储了函数形参 CPU 寄存器内容是要入栈...这部分区域大小在程序运行前就已经确定,并且内存区域通常属于只读,某些架构也允许代码段为可写,即允许修改程序。在代码段,也有可能包含一些只读常数变量,例如字符串常量等。...进程调用malloc等函数分配内存,新分配内存就被动态添加到堆上(堆被扩张);利用free等函数释放内存,被释放内存从堆中被剔除(堆被缩减) 栈(stack):栈又称堆栈, 是用户存放程序临时创建局部变量...栈大小是有上限,一般默认为4kb,这个4kb会写到PE文件格式里,操作系统在加载通过PE文件确定此程序最大大小是多少,并记录到PCB进程控制块stack_max变量里,PCB进程控制块里有一个

29720
领券