
Java进阶
文章平均质量分 95
记录Java相关学习笔记
玛卡~巴卡
这个作者很懒,什么都没留下…
展开
-
基于Netty实现一个高性能下载服务,支持断点下载
Netty 是一个基于 Java NIO 的异步事件驱动的高性能网络应用框架。它简化了网络编程的复杂性,提供了一套丰富的 API,方便开发者构建高性能、可伸缩的网络应用。Netty 的核心是非阻塞 I/O 模型,它能够处理大量并发连接,充分利用多核 CPU 提升程序性能。对于下载服务而言,Netty 的高并发、异步 I/O 特性可以显著提升下载效率,尤其是在处理大文件和多用户并发下载时。原创 2024-10-24 15:36:03 · 950 阅读 · 0 评论 -
【JVM】(三) 深入理解JVM垃圾回收机制(GC)
JVM 的垃圾回收机制(Garbage Collection)是 Java 中的重要特性之一,它负责在程序运行时自动回收不再使用的内存,以避免内存泄漏和提高程序的性能。垃圾回收机制的设计与实现对于 Java 程序的运行效率和稳定性至关重要。因此,作为一名合格的程序员,对于 JVM 的垃圾回收机制势必要有深入的了解,才能编写设计出合理高效的代码。原创 2023-08-02 13:13:52 · 926 阅读 · 0 评论 -
【JVM】(二)深入理解Java类加载机制与双亲委派模型
在 Java 中,类加载机制是 Java 虚拟机(JVM)的一个重要组成部分,它负责在运行时将 Java 类加载到内存中,并转换为可执行代码。理解类加载机制对于深入理解 Java 的运行机制和开发高质量的Java应用程序至关重要。本文将深入探讨 Java 的类加载过程以及双亲委派模型。首先,我将详细介绍类加载过程的五个阶段。接下来,将重点介绍双亲委派模型以及它解决的问题。原创 2023-08-02 11:29:28 · 1242 阅读 · 0 评论 -
【JVM】(一)深入理解JVM运行时数据区
JVM 是 Java 程序的运行基础和运行环境,同时也是 Java 实现 "一次编译,到处运行" 的关键所在。因此,深入了解 JVM 对于学习和理解 Java 编程语言是至关重要的,那么JVM 到底是如何运行的呢?原创 2023-08-01 21:12:07 · 942 阅读 · 1 评论 -
愉快的 Servlet 之旅 —— 两万字详解 Servlet
Servlet 是 Java 编写的服务端程序,用于处理客户端(通常是浏览器)发送的请求,并向客户端返回响应。它是Java EE 规范的一部分,提供了一种在服务器上动态生成内容的方式。Servlet 是基于Java 的实现的,因此具有跨平台性,可以在不同的操作系统上运行。它遵循 Java 的安全性和可靠性,也能充分利用 Java 语言的优势,如面向对象编程和丰富的类库。原创 2023-07-30 23:19:38 · 842 阅读 · 3 评论 -
玩转Tomcat:从安装到部署
Tomcat 是一个开源的 Java Servlet 容器,由 Apache 软件基金会开发和维护。Tomcat 全称是 Apache Tomcat,它被广泛用于部署 Java Web 应用程序。简单来说,Tomcat 是一个 Web 服务器,用于处理 Java Servlet 的请求和响应。而 Servlet 是 Java 编写服务端的程序,用于处理客户端(通常是浏览器)发送的请求,并向客户端返回响应。原创 2023-07-29 17:15:16 · 1520 阅读 · 1 评论 -
Java文件操作与流处理
在计算机中,文件是用于存储数据的基本单位。它可以包含文本、图像、音频、视频或其他类型的数据。文件可以用于保存程序代码、用户数据、操作系统配置等内容。每个文件都有一个唯一的名称,通过这个名称可以在计算机系统中找到和访问文件。原创 2023-07-29 12:35:53 · 1587 阅读 · 5 评论 -
【单例模式】如何设计线程安全的饿汉模式和懒汉模式的单例模式
单例模式(Singleton Pattern)是一种创建型设计模式,用于确保一个类只存在一个实例,并提供全局访问点来访问该实例。在软件开发中,有些类只需要拥有一个全局实例,例如日志记录器、数据库连接池、线程池等。使用单例模式可以确保这些类只被实例化一次,从而节省系统资源,避免不必要的对象的创建和销毁。原创 2023-07-16 15:51:45 · 820 阅读 · 1 评论 -
【多线程】(六)Java并发编程深度解析:常见锁策略、CAS、synchronized原理、线程安全集合类和死锁详解
Java并发编程深度解析:常见锁策略、CAS、synchronized原理、线程安全集合类和死锁原创 2023-07-19 13:33:25 · 1056 阅读 · 0 评论 -
【多线程】(五)工厂模式和线程池
线程池是一种管理和复用线程的机制。线程池维护着一个线程队列,其中包含着多个准备好的线程。当有任务需要执行时,线程池中的线程可以被分配来执行任务,执行完成后又可以返回线程池以供下一次使用。原创 2023-07-19 09:51:54 · 922 阅读 · 0 评论 -
【多线程】(四)定时器及其模拟实现
定时器是一种用于在指定的时间间隔或指定的时间点执行任务的工具。它允许开发人员在程序中安排任务在未来的某个时间点执行,或者按照固定的时间间隔重复执行。定时器通常用于需要定期执行某些操作的场景,例如定时任务调度、定时数据备份、定时数据同步等。它可以帮助开发人员实现按照预定时间执行任务的逻辑,而不需要手动计算时间和编写复杂的定时逻辑。原创 2023-07-17 10:00:00 · 246 阅读 · 0 评论 -
【多线程】(三)阻塞式队列和生产者消费者模型
阻塞式队列(Blocking Queue)是一种特殊的队列,它提供了线程安全的阻塞操作,以实现在队列为空或已满时的等待和阻塞。阻塞式队列通常用于多线程环境下的生产者-消费者模型,其中生产者线程向队列中插入元素,消费者线程从队列中获取元素。阻塞式队列提供了一种同步机制,使得生产者线程在队列已满时等待插入,而消费者线程在队列为空时等待获取。: 在队列的尾部插入指定元素,如果队列已满,则阻塞等待空间可用。take(): 从队列的头部获取并删除元素,如果队列为空,则阻塞等待元素可用。阻塞式队列的。原创 2023-07-17 00:00:00 · 342 阅读 · 0 评论 -
【多线程】(二)线程安全问题与线程同步
简单来说,线程安全就是在多线程环境下,对共享资源的访问和操作能够正确、可靠地进行,不会产生不确定的或者与预期不符合的结果。在多线程编程中,多个线程同时访问和修改共享数据时,可能会引发以下问题:竞态条件(Race Condition):多个线程竞争执行同一段代码,导致执行结果依赖于线程执行的时序,而非代码本身的逻辑。这可能导致不可预期的结果。数据竞争(Data Race):多个线程同时读写共享数据,至少有一个线程进行写操作,而且没有适当的同步机制来保护共享数据。这可能导致数据的不一致性或破坏数据完原创 2023-07-16 13:17:08 · 812 阅读 · 4 评论 -
【多线程】(一)多线程概念
线程可以看做是进程中的一个执行单元,也就是说一个线程就是一个执行流。一个进程可以包含多个线程,每个线程都有自己的执行路径和执行状态,并且共享进程的地址空间以及资源。它们可以直接访问进程的数据,包括全局变量和共享内存区域。因此线程之间的通信和数据共享相对于进程来说更加的容易和高效。另外,与创建进程相比,线程的创建和切换开销更小。原创 2023-07-13 01:13:05 · 377 阅读 · 3 评论 -
【JDBC】Java连接MySQL数据库
JDBC(Java Database Connectivity)是Java语言用于与关系型数据库进行交互的标志 API。这个 API 由java.sql以及javax.sql包中的一些类和接口组成,使Java应用程序能够通过标准化的方式连接和操作各种不同的数据库。原创 2023-07-13 11:33:21 · 14368 阅读 · 4 评论