- 博客(17)
- 收藏
- 关注
原创 对Spring、SpringMVC、MyBatis框架的介绍与解释
在现代软件开发中,框架的使用极大地提高了开发效率和维护性。特别是在Java生态系统中,Spring、SpringMVC和MyBatis这三个框架因其强大的功能和灵活性而广泛应用于企业级应用开发。本文将对这三个框架进行详细介绍与解释,分析它们的特性及各自的适用场景。Spring框架是一个为Java平台提供全面基础设施支持的开源框架,其核心理念是通过控制反转(IoC)和面向切面编程(AOP)来简化企业级应用程序的开发。Spring的设计目标是促进松耦合、提高可测试性并简化配置。
2024-07-19 20:20:59 719
原创 总结 File 类的用法和 InputStream, OutputStream 的用法
在Java编程中,File类和InputStream、OutputStream类是处理文件和数据流的重要工具。在本文中,我将总结这些类的用法,以帮助我们更好地理解和应用它们。首先让我们来看看File类。File类用于表示文件和目录的抽象路径名。我们可以使用File类来创建、删除、重命名文件或目录,以及获取文件属性等操作。
2024-07-19 19:59:54 297
原创 TCP连接与释放
主要状态包括:CLOSED(关闭)、LISTEN(监听)、SYN_SENT(同步已发送)、SYN_RCVD(同步已接收)、ESTABLISHED(已建立)、FIN_WAIT_1(FIN已发送)、FIN_WAIT_2(FIN已接收)、TIME_WAIT(等待重启)、CLOSE_WAIT(关闭等待)和LAST_ACK(最后确认)。例如,当一方发送FIN后进入FIN_WAIT_1状态,如果在规定时间内没有收到对方的ACK,就会进入TIME_WAIT状态,等待一段时间后才会彻底关闭连接。
2024-07-18 20:22:37 798
原创 乐动网介绍
该网站主要实现了以下几个功能:1. 登录 2. 上传⾳乐 3. 删除指定⾳乐 4. 批量删除选中的⾳乐 5. 查询你想要的⾳乐 6. 添加⾳乐⾄喜欢的列表 7. 移除喜欢的⾳乐。在管理自己的音乐资源时,用户难免会遇到需要删除某些音乐的情况。乐动网贴心地提供了删除指定音乐的功能,用户可以快速定位并删除不需要的音乐文件,维护自己的音乐库。
2024-07-18 08:31:15 289
原创 【项目】星辰博客介绍
用户登录成功之后,携带Cookie(里面有SessionId)继续执⾏查询操作,比如查询博客列表.此时请求转发到了第⼆台机器,第⼆台机器会先进⾏权限验证操作(通过SessionId验证⽤⼾是否 登录),此时第⼆台机器上没有该⽤⼾的Session,就会出现问题,提示用户登录,这是我们不能忍受的。1. 用户登录 用户登录请求,经过负载均衡,把请求转给了第⼀台服务器,第⼀台服务器进⾏账号密码 验证,验证成功后,⽣成⼀个令牌,并返回给客⼾端.log.error("token校验失败,token:",token);
2024-07-17 23:14:51 1007
原创 Session 和 Cookie的区别
总结,Cookie 通常用于在客户端存储少量信息,而 Session 则用于在服务器端管理用户会话信息。开发人员可以根据具体场景和需求选择使用 Cookie、Session 或两者结合来实现用户数据的存储和管理。Session 和 Cookie 是用于在 Web 开发中存储和管理用户数据的概念。
2024-07-17 20:24:47 275
原创 总结 IO、存储、硬盘、文件系统相关常识
在计算机科学领域中,IO(输入/输出)、存储、硬盘以及文件系统是非常重要的概念。在本篇博客中,我们将重点讨论文件系统的相关知识,并对IO、存储和硬盘等概念进行总结和梳理。
2024-04-28 23:18:22 796 1
原创 HashTable, HashMap, ConcurrentHashMap 之间的区别
在选择适合的哈希表实现时,我们需要根据具体的需求和场景来决定。如果应用程序是单线程的,可以选择 HashMap 来提高性能;如果需要在多线程环境下使用,可以考虑使用 ConcurrentHashMap 来确保线程安全性和性能;而如果需要线程安全性且不关心性能问题,可以选择 HashTable。无论选择哪种哈希表实现,都应该根据具体的情况来权衡各种因素,并了解它们之间的区别,以便做出最合适的选择。哈希表是常用的数据结构之一,对于高效地存储和检索键值对数据非常重要。!!希望多多指出不足之处!!!
2024-04-15 15:33:19 726 1
原创 synchronized 和 ReentrantLock 之间的区别
在 JDK 1.6 之后,synchronized 关键字在实现上进行了很多优化,性能已经得到了很大的改善,因此在低并发情况下,synchronized 的性能可能会比 ReentrantLock 稍微好一些。这是因为 ReentrantLock 提供了更多的灵活性和控制,例如提供了可中断的锁获取、超时的锁获取、公平性选择等功能,使得在高并发环境下能够更好地控制线程的调度和性能。synchronized是隐式的,即编译器会自动添加锁的获取和释放操作,希望大家多多指出不足之处!
2024-04-15 14:43:25 509 1
原创 解读synchronized关键字
在Java编程中,synchronized是一个关键字,用于实现线程同步。在多线程环境下,如果不加以控制,可能会导致数据竞争和不确定的结果。因此,synchronized关键字是非常重要的,可以确保多个线程之间的协调和互斥。
2024-04-15 06:00:00 789 1
原创 锁策略, cas 和 synchronized 优化过程
在并发编程中,锁策略是非常重要的一环。正确的锁策略可以提高程序的性能和并发能力,而错误的锁策略可能导致死锁和性能下降。在Java中,常见的锁策略有CAS和synchronized两种。本文将总结这两种锁策略的优化过程。
2024-04-14 17:33:37 262 1
原创 悲观锁和乐观锁
总的来说,悲观锁适用于写操作频繁的场景,能够确保数据的一致性;而乐观锁适用于读操作频繁的场景,能够提高并发性能。在实际应用中,需要根据具体的业务场景和需求选择合适的锁策略。悲观锁和乐观锁是在并发编程中用于处理多线程访问共享资源时的两种不同策略。
2024-04-14 17:31:08 484 1
原创 Java 标准库线程池的创建方式
Java 标准库线程池的创建方式总共有三种:1. 使用 Executors 类中的静态方法创建线程池;2. 使用 ThreadPoolExecutor 类手动创建线程池;3. 使用 ScheduledThreadPoolExecutor 类创建定时任务线程池。
2024-04-13 18:02:38 849
原创 线程池的优点
降低线程创建和销毁的开销:线程池会提前创建一定数量的线程,当需要处理任务时直接从线程池中获取已经创建好的线程,避免了频繁地创建和销毁线程所带来的开销。控制并发线程数量:线程池可以限制同时执行的线程数量,避免因过多线程导致系统资源耗尽或性能下降的问题。提高系统稳定性:线程池可以有效地管理线程的生命周期,避免因线程失控导致系统崩溃的情况。提高响应速度:线程池中的线程可以复用,减少了线程创建的时间,提高了任务的响应速度。综上所述,线程池的优点在于提高了系统的性能、稳定性和资源利用率。
2024-04-09 21:59:36 227
原创 理解Java Thread类的基本用法
简单来说,直接调用run()方法不会创建新线程,代码在当前线程中执行;而调用start()方法会创建新线程,并在新线程中执行代码,实现多线程并发执行的效果。
2024-03-28 23:13:42 695 3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人