
javaEE
文章平均质量分 89
持续更新javaEE相关知识
不想写bug呀
轻舟已过万重山
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
垃圾回收介绍
在程序运行过程中,内存管理是至关重要的环节。如果开发者手动管理内存,稍有不慎就可能出现内存泄露、野指针等问题,严重影响程序的稳定性。而垃圾回收机制的出现,为我们解决了这些难题。下面,我们就来总结一下垃圾回收的核心知识点。原创 2025-07-23 22:49:31 · 696 阅读 · 0 评论 -
类加载过程及双亲委派模型
这里的二进制字节流可以从多种来源获取,比如从本地文件系统中的.class 文件读取、从 JAR 包中读取、通过网络下载、由其他文件生成(如 JSP 文件被编译成.class 文件)等。类加载过程是 JVM 将类的字节流加载到内存并进行处理,最终形成可执行代码的过程,包括加载、验证、准备、解析和初始化五个阶段,每个阶段都有其独特的作用,共同保证了类能够正确地被 JVM 识别和使用。双亲委派模型则是类加载器遵循的重要机制,它通过层级委派。原创 2025-07-22 21:57:34 · 776 阅读 · 0 评论 -
IP协议介绍
IPv4使用4个字节作为IP地址,IPv6使用16个字节作为IP地址,2^128,这是一个天文数字,可以保证所有设备IP地址唯一,但是由于IPv6和IPv4不兼容,升级的话需要更换设备,所以现在IPV6普及率较低。形如这个过程,我们逐渐询问接下来的地址,因为网络环境是相当复杂的,任何一个路由器无法存储所有网络信息,不过每个路由器都可以知道附近的网络情况。只给接入网络的设备分配IP地址,因此同⼀个MAC地址的设备,每次接⼊互联网中得到的IP地址不⼀定是相同的。实际偏移的字节数是这个值*8得到的。原创 2025-07-20 20:53:59 · 625 阅读 · 0 评论 -
TCP协议介绍
TCP协议属于TCP/IP 协议族的传输层协议,主要用于在两台设备之间提供可靠、有序、面向连接的数据传输服务。校验和;序列号(按序到达);确认应答;超时重发;连接管理;流量控制;拥塞控制。原创 2025-07-19 16:04:50 · 648 阅读 · 0 评论 -
UDP协议介绍
UDP(User Datagram Protocol,用户数据报协议)是 TCP/IP 协议簇中位于传输层的核心协议之一,是一种无连接、不可靠但高效的传输层协议。UDP 以其简洁的报文结构和高效的传输特性,在实时通信等领域发挥着重要作用。它的报文结构简单明了,首部仅 8 字节,数据部分灵活承载应用数据。但同时,UDP 也存在无连接、不可靠、缺乏流量控制和拥塞控制等局限性。在实际应用中,我们需要根据具体的业务需求选择合适的协议。原创 2025-07-18 14:40:07 · 792 阅读 · 0 评论 -
HTTPS加密流程
对称加密就是加密和解密使用同一个秘钥非对称加密使用一对密钥(公钥和私钥),用公钥加密的数据,只能用对应的私钥解密;用私钥加密的数据(或生成的签名),只能用对应的公钥验证。HTTPS加密过程有三组密钥。原创 2025-07-17 17:26:17 · 570 阅读 · 0 评论 -
HTTP协议介绍
HTTP(超⽂本传输协议)是一种应用层协议,往往基于传输层的TCP协议实现;原创 2025-07-16 23:30:05 · 2196 阅读 · 2 评论 -
网络基本概念
2、数据封装:请求数据从应用层开始,逐层经过传输层(添加 TCP/UDP 头部,包含端口号)、网络层(添加 IP 头部,包含 A 和 B 的 IP 地址)、数据链路层(添加 MAC 头部和尾部),最终封装成帧。4、数据分用:主机 B 接收到帧后,从数据链路层开始逐层剥离头部,依次经过网络层、传输层,最终将请求数据传递到对应的应用程序(根据端口号匹配)。1、发起请求:主机 A 的应用程序(如浏览器)生成请求数据,明确要与主机 B 的某个服务(通过端口号指定,如 80 端口的 HTTP 服务)通信。原创 2025-07-10 17:45:42 · 727 阅读 · 0 评论 -
HashTable、HashMap 与 ConcurrentHashMap 的区别总结
在java集合框架中,HashTable、HashMap、ConcurrentHashMap都是基于哈希表实现的键值对存储结构,但它们在线程安全性、性能、功能特性等方面存在显著差异,本文将从多个维度对比这三者的区别。原创 2025-07-07 21:20:00 · 508 阅读 · 0 评论 -
总结synchronized
Java中的synchronized是一种内置线程同步机制,具有多种锁特性:开始时采用乐观锁(CAS)和轻量级锁(自旋),在高竞争时升级为悲观锁和重量级锁;它是不公平锁、可重入锁,但不支持读写锁。synchronized可用于同步方法(实例和静态)及代码块,通过锁住对象或Class对象实现线程安全。其锁升级机制包括无锁→偏向锁(记录线程ID)→轻量级锁(CAS自旋)→重量级锁(线程阻塞),根据竞争情况动态调整,优化性能。原创 2025-07-05 22:27:33 · 551 阅读 · 0 评论 -
线程池相关介绍
线程池是管理多线程任务执行的关键技术,通过复用线程资源避免频繁创建销毁开销。Java线程池包含7个核心参数:核心/最大线程数、空闲超时时间、任务队列、线程工厂和拒绝策略。ThreadPoolExecutor的工作流程是:先使用核心线程处理任务,队列满则创建新线程至最大值,最后触发拒绝策略。Executors类提供了四种常用线程池:FixedThreadPool、CachedThreadPool、SingleThreadExecutor和ScheduledThreadPool.原创 2025-07-03 22:42:11 · 618 阅读 · 0 评论 -
多线程案例——单例模式
单例模式是一种确保类仅有一个实例的设计模式,适用于全局对象管理场景。主要实现方式包括饿汉式(类加载时创建实例,简单但可能浪费资源)和懒汉式(延迟加载需处理线程安全)。针对懒汉式的线程安全问题,可通过同步锁和双重检查锁(配合volatile防止指令重排序)优化。该模式在配置管理、日志系统等需要全局唯一对象的场景中具有重要应用价值。原创 2025-07-01 22:44:16 · 558 阅读 · 0 评论 -
线程安全问题
线程安全是多线程编程中最核心的问题之一。理解线程安全问题的根源,掌握各种解决方案的适用场景和优缺点,是编写高质量并发程序的基础。在实际开发中,应优先考虑使用Java并发包提供的高级工具类,而非自己实现同步机制,这样既能保证正确性,又能提高开发效率。原创 2025-07-01 12:09:52 · 965 阅读 · 0 评论 -
java线程状态
状态变化简易图实例化│▼NEW (新建)│▼│ (可运行) │ ││ │ ││ │ 竞争锁失败 ││ ▼ ││ BLOCKED (阻塞) ││ │ ││ │ 获取到锁 ││ ▼ │▼ │ │WAITING (无限等待) ││ │ │▼ ▼ │TIMED_WAITING (超时等待) ││ │ ││ │ 超时/被唤醒 │││ 执行完成▼TERMINATED (终止)原创 2025-05-08 16:15:48 · 878 阅读 · 0 评论 -
Thread类的基本用法
每个Thread对象,只能start一次,因此上每次想创建一个新线程必须创建一个新的Thread类1.1继承Thread类@Overridet.start();// 注意是调用start()而不是run()*必须重写run()方法;通过start()方法启动新线程;不能直接调用run()方法,这样不会创建新线程1.2、实现 Runnable 接口@Overridet.start();1.3、使用Lambda 表达式});t.start();原创 2025-05-04 22:39:00 · 704 阅读 · 0 评论 -
进程与线程
总结:进程是资源分配的单元,线程是CPU调度的单元;3、eg浏览器的一个标签页可能用一个线程加载页面,另一个线程播放视频,共享浏览器的内存空间。1、性能:线程切换比进程切换快得多,适合高并发任务(如Web服务器处理大量请求)。3、eg同时运行的浏览器和音乐播放器是两个独立的进程,它们的内存和资源完全隔离。1、多进程:需要高稳定性(如浏览器每个标签页独立进程)、隔离性(如安全沙箱)。2、多线程:需要高效协作(如游戏渲染+逻辑线程)、高并发(如数据库连接池)。:一个进程崩溃通常不会影响其他进程(稳定性高);原创 2025-05-01 19:33:24 · 402 阅读 · 0 评论