JVM 内存管理

01.JVM 内存划分:方法区(线程共享):常量、静态变量、JIT(即时编译器)编译后的代码也都在方法区;堆内存(线程共享):对象实例,垃圾回收的主要场所;(jdk7+ 常量)程序计数器:当前线程执行的字节码的位置指示器;虚拟机栈(栈内存):保存局部变量、基本数据类型变量以及堆内存中某个对象的引用变量;本地方法栈:为 JVM 提供使用 native 方法的服务。02.类似-Xms、-Xmx 这些参数的含义:答:堆

高并发编程

在 Java5.0 提供了 java.util.concurrent(简称 JUC)包,在此包中增加了在并发编程中很常用的实用工具类,用于定义类似于线程的自定义子系统,包括线程池、异步 IO 和轻量级任务框架。01.多线程和单线程的区别和联系:答:在单核 CPU 中,将 CPU 分为很小的时间片,在每一时刻只能有一个线程在执行,是一种微观上轮流占用 CPU 的机制。多线程会存在线程上下文切换,会导致程序执行速度变慢,即采用

java 基础知识点解析

01.面向对象的特性有哪些?**答:**封装、继承和多态。02.Java 中覆盖和重载是什么意思?**解析:**覆盖和重载是比较重要的基础知识点,并且容易混淆,所以面试中常见。答:覆盖(Override)是指子类对父类方法的一种重写,只能比父类抛出更少的异常,访问权限不能比父类的小。被覆盖的方法不能是 private 的,否则只是在子类中重新定义了一个方法;重载(Overload)表示同一个类中可以有多个

java 运算符

运算符归类:一元运算符:逻辑运算符(!),非运算符(~)二元运算符:复制运算符(=),逻辑与运算符(&&),逻辑或运算符(||),逐位与运算符(&),逐位或运算符(|),右移运算符(>>)三元运算符:X?Y:Z;逐位运算符逐位运算符是一种比较复制的运算符。可以分为逐位逻辑运算符,逐位位移运算符两种。无论那种逐位运算符,都必须将操作数要求是整形的操作符,转换为 32 位的二进制数值。然后参与运算,运算完毕