- 博客(15)
- 收藏
- 关注
原创 synchronized 超详解
1.修饰普通方法:作用于当前对象实例,进入同步代码前要获得当前对象实例的锁// ...2.修饰静态方法:作用于当前类,进入同步代码前要获得当前类对象的锁,synchronized关键字加到static 静态方法和 synchronized(class)代码块上都是是给 Class 类上锁3.修饰代码块:指定加锁对象,对给定对象加锁,进入同步代码库前要获得给定对象的锁// ...synchronized 是 Java 中实现线程同步的一种重要方式,它可以修饰方法或代码块。
2024-05-10 21:57:41
1043
原创 MVC工作流程
MVC就是一种设计模式M-Model 模型(完成业务逻辑:有javaBean构成,service+dao+entity)V-View 视图(做界面的展示 jsp,html……)C-Controller 控制器(接收请求—>调用模型—>根据结果派发页面)前端控制器(DispatcherServlet):接收请求,响应结果,相当于电脑的CPU。处理器映射器(HandlerMapping):根据URL去查找处理器。处理器(Handler):需要程序员去写代码处理逻辑的。
2024-05-08 20:35:36
1211
原创 spring的核心详解
Spring是一个开源的Java/Java EE全功能栈(full-stack)的应用程序框架,它提供了广泛的功能来支持企业应用程序的开发。Spring的主要目的是使Java EE开发变得更容易,通过使现有的技术更加容易使用,促进良好的编程实践(例如通过依赖注入和面向切面编程)。面向切面编程,作为面向对象的一种补充,将公共逻辑(事务管理、日志、缓存等)封装成切面,跟业务代码进行分离,可以减少系统的重复代码和降低模块之间的耦合度。切面就是那些与业务无关,但所有业务模块都会调用的公共逻辑。
2024-05-05 18:10:01
1084
原创 java多线程 创建方式详解
线程(Thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。在Unix System V及SunOS中也被称为轻量进程(Lightweight Process),但轻量进程更多指内核线程(Kernel-Level Thread),而把用户线程(User-Level Thread)称为线程。线程是独立调度和分派的基本单位。
2024-05-03 16:08:54
648
1
原创 JVM 垃圾回收器 详解
Jvm的垃圾收集器(serial收集器、parnew收集器、parallel scavenge收集器、serial old 收集器、parallel old收集器、cms收集器、g1收集器)新生代收集器:Serial、ParNew、Parallel Scavenge老年代收集器:CMS、Serial Old、Parallel Old整堆收集器: G1收集方式并行收集:指多条垃圾收集线程并行工作,但此时用户线程仍处于等待状态。
2024-05-02 21:35:03
2057
1
原创 Redis 详解
Redis是一个使用 C 语言编写的,高性能非关系型的键值对数据库。与传统数据库不同的是,Redis 的数据是存在内存中的,所以读写速度非常快,被广泛应用于缓存方向。Redis可以将数据写入磁盘中,保证了数据的安全不丢失,而且Redis的操作是原子性的。
2024-05-01 13:14:23
1142
1
转载 JVM(java虚拟机)垃圾回收机制 超详细
垃圾其实是指那些没有被引用或者没有被任何指向的对象,那么这个这个对象就会被称为垃圾如果我们不及时的将垃圾进行回收,就有可能会造成内存泄漏,因为这些垃圾一直占用着我们的内存直达我们的应用程序结束,并且其他的对象无法进来到内存当中。
2024-04-30 20:25:06
1073
1
原创 ArrayList原理
ArrayList基于动态数组实现;对于随机index访问的get和set方法,ArrayList的速度要优于LinkedList。因为ArrayList直接通过数组下标直接找到元素;因为ArrayList在新增和删除元素时,可能扩容和复制数组;
2024-04-29 22:50:25
179
原创 Docker基本概念
总之,Docker 提供了一个灵活、快速和可靠的容器化平台,可以在应用程序开发中加速开发、部署和测试流程,并提供一致性和可移植性。Docker 是一种容器化平台,可以轻松打包、分发和运行应用程序及其依赖项。
2024-04-28 17:35:37
359
1
原创 java 代码沙箱实现
代码沙箱其实就是java的编译执行过程,我们只需要完成这些过程即可,需要注意的是,防止写入的代码带病毒,乱写入,死循环之类的问题,我们可以用黑白名单来解决,比如把File加入黑名单。
2024-04-28 17:31:50
1672
5
原创 JVM (java虚拟机)
JVM的堆是一个用于存储Java对象实例的内存区域,具有特定的内存结构和管理机制,是Java程序运行时的重要组成部分。在JVM(Java虚拟机)中,栈是另一种重要的内存区域,它用于存储局部变量表、操作数栈、动态链接、方法出口等信息。每一个方法从调用直至执行完成的过程,就对应着一个栈帧在虚拟机栈中入栈到出栈的过程。方法区(Method Area)是JVM(Java虚拟机)中的一个重要内存区域,它与Java堆一样,是各个线程共享的内存区域。
2024-04-27 23:14:09
1005
2
原创 RabbitMQ详解
备份交换机alternate-exchange 是一个普通的exchange,当你发送消息到对应的exchange时,没有匹配到queue,就会自动转移到备份交换机对应的queue,这样消息就不会丢失。当消息消费失败时,消费端给broker回复nack,如果consumer设置了requeue为false,则nack后broker会删除消息或者进入死信队列,否则消息会重新入队。生产者确认机制只确保消息正确到达交换机,对于从交换机路由到Queue失败的消息,会被丢弃掉,导致消息丢失。
2024-04-27 14:49:02
1782
3
原创 线程池详解
使用的任务队列 DelayQueue 封装了一个 PriorityQueue,PriorityQueue 会对队列中的任务进行排序,时间早的任务先被执行(即ScheduledFutureTask 的 time 变量小的先执行),如果time相同则先提交的任务会被先执行(ScheduledFutureTask 的 squenceNumber 变量小的先执行)。适用场景:适用于处理CPU密集型的任务,确保CPU在长期被工作线程使用的情况下,尽可能的少的分配线程,即适用执行长期的任务。保证顺序的执行各个任务。
2024-04-26 15:18:35
1441
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人