JVM调优-入门
为什么要调优 ? 最近几天在和朋友一起玩我的世界服务器,服务器是我之前购买的用于部署项目的2c2g的阿里云,闲置无用,便拿来当作服务器,在部署期间遇到过很大问题,但因为我是Java选手,部署方面的报错,调用Jar包的参数等还是能看明白,倒也…
标记为「Java」的文章集合。
为什么要调优 ? 最近几天在和朋友一起玩我的世界服务器,服务器是我之前购买的用于部署项目的2c2g的阿里云,闲置无用,便拿来当作服务器,在部署期间遇到过很大问题,但因为我是Java选手,部署方面的报错,调用Jar包的参数等还是能看明白,倒也…
Java 虚拟机性能监控、故障处理工具 基础故障处理工具 - jps:虚拟机进程状况工具 - jstat:虚拟机统计信息监视工具 - jinfo:Java 配置信息工具 - jmap:Java 内存映像工具 - jhat:虚拟机堆转储快照分…
Java 虚拟类加载机制 类加载的时机 - 遇到 new、getstatic、putstatic或 invokestatic 这四条字节码指令时: - 使用 new 关键字实例化对象时。 - 读取或设置一个类型的静态字段时。 - 调用一个类…
Java 类文件结构 无关性的基石 实现语言无关性的基础仍然是虚拟机和字节码存储格式。Java 虚拟机不与包括 Java 语言在内的任何程序语言绑定,它只与“Class 文件”这种特定的二进制文件格式相关联。Class 文件中包含了 Jav…
Java 垃圾收集器与内存分配策略 对象已死? 引用计数算法 - 在对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加一;当引用失效时,计数器值就减一;任何时刻计数器为零的对象就是不可能再被使用的。 - 单纯的引用计数很难解决对…
Java 内存区域与内存溢出异常 Java 内存区域 运行时数据区域 程序计数器 - 程序计数器(Program Counter Register)是一块较小的内存空间,它可以看作是当前线程所执行的 字节码 的行号指示器。 - 在任何一个确…
Java 并发容器和框架 ConcurrentHashMap 的实现原理与使用 - ConcurrentHashMap 是线程安全且高效的 HashMap。 - 为什么要使用 ConcurrentHashMap : - 在并发编程中使用 H…
Java 并发编程实践 生产者和消费者模式 生产者和消费者模式是通过一个容器来解决生产者和消费者之间的强耦合问题。在该模式中,生产者和消费者彼此之间不直接通信,而是通过阻塞队列进行通信。具体工作流程如下: 1. 生产者 :生产者生成数据后,…
Executor 框架 Java 的线程既是工作单元,也是执行机制。为了更好地管理和调度线程,Java 提供了强大的 Executor 框架。 Executor 框架的两级调度模型 在 Java 的 HotSpot VM 线程模型中, Ja…
Java 中的线程池 合理地使用线程池可以带来以下三个主要好处: 1. 降低资源消耗 :通过重复利用已创建的线程,减少线程创建和销毁所造成的开销。 2. 提高响应速度 :当任务到达时,无需等待线程创建即可立即执行任务。 3. 提高线程的可管…
Java 中的并发工具类 并发流程控制的手段 - CountDownLatch - CyclicBarrier - Semaphore 在线程间交换数据的一种手段 - Exchanger 工具类 CountDownLatch - Count…
Java 中的 13 个原子操作类 原子更新基本类型类 - AtomicBoolean :原子更新布尔类型。 - AtomicInteger :原子更新整型。 - int addAndGet int delta :以原子方式将输入的数值与实…
Java 中的锁 Lock 接口 - 锁是用来控制多个线程访问共享资源的方式,一般来说,一个锁能够防止多个线程同时访问共享资源(但是有些锁可以允许多个线程并发访问共享资源,比如读写锁)。 - Lock 接口提供了与 synchronized…
Java并发编程基础 线程的状态 线程的状态变化 Daemon 线程 - Daemon 线程是一种支持型线程 (常被叫做守护线程),因为它主要被用作程序中后台调度以及支持性工作。 - 可以通过调用 Thread.setDaemon true…
Java内存模型 Java 内存模型的基础 并发编程模型的两个关键问题 - 线程之间如何通信 / 线程之间如何同步 - 共享内存(Java采用) : - 线程之间共享程序的公共状态, 通过写-读内存中的公共状态进行隐式通信 。 - 同步是显…
并发编程的挑战和底层原理 并发编程的目的 并发编程的目的是为了让程序运行得更快。 并发编程的挑战 - 上下文切换 - 死锁 - 资源限制 Java 并发机制的底层实现原理 Java 中的并发机制依赖于 JVM 的实现和 CPU 的指令。 v…
集合框架概览 Java集合,也叫做容器,主要由两大接口派生而来: - Collection :主要用于存放单一元素 - List :存储的元素 有序、可重复 - ArrayList :基于 Object 数组 - Vector :基于 Ob…
数据存储 Java程序运行期间,有5个地方可以存储数据 - 寄存器:速度最快,Java没有直接控制器,根据需求进行分配 - 栈内存:存在于常规内存RAM中,仅次于寄存器,Java必须知道存在于栈内存中数据的生命周期,通常用于存储一些数据的引…
Lambda表达式 Lambda 表达式,也可称为闭包 Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中) 使用 Lambda 表达式可以使代码变的更加简洁紧凑 语法 重要特征 可选类型声明:不需要声明参数类型,编译器可…