2024年10月 第4页

  • 2024.10.11 | cuithink | 89次围观
    并发三大特性-有序性
    三、有序性3.1 什么是有序性在Java中,.java文件中的内容会被编译,在执行前需要再次转为CPU可以识别的指令,CPU在执行这些指令时,为了提升执行效率,在不影响最终结果的前提下(满足一些要求),会对指令进行重排。指令乱序执行的原因,是为了尽可能的发挥CPU的性能。Java中的程序是乱序执行的。Java程序验证乱序执行效果:static int a,b,x,y; public static void main(St...
  • 2024.10.11 | cuithink | 10次围观
    并发编程三大特性-可见性
    二、可见性2.1 什么是可见性可见性问题是基于CPU位置出现的,CPU处理速度非常快,相对CPU来说,去主内存获取数据这个事情太慢了,CPU就提供了L1,L2,L3的三级缓存,每次去主内存拿完数据后,就会存储到CPU的三级缓存,每次去三级缓存拿数据,效率肯定会提升。这就带来了问题,现在CPU都是多核,每个线程的工作内存(CPU三级缓存)都是独立的,会告知每个线程中做修改时,只改自己的工作内存,没有及时的同步到主内存,导致数据不一致问题。可见性问题的代码逻辑private&nb...
  • 2024.10.11 | cuithink | 22次围观
    并发编程的三大特性-原子性
    一、原子性1.1 什么是并发编程的原子性JMM(Java Memory Model)。不同的硬件和不同的操作系统在内存上的操作有一定差异的。Java为了解决相同代码在不同操作系统上出现的各种问题,用JMM屏蔽掉各种硬件和操作系统带来的差异。让Java的并发编程可以做到跨平台。JMM规定所有变量都会存储在主内存中,在操作的时候,需要从主内存中复制一份到线程内存(CPU内存),在线程内部做计算。然后再写回主内存中(不一定!)。原子性的定义:原子性指一个操作是不可分割的,不可中断的...
  • 2024.10.11 | cuithink | 101次围观
    线程的创建
     继承Thread类 重写run方法启动线程是调用start方法,这样会创建一个新的线程,并执行线程的任务。如果直接调用run方法,这样会让当前线程执行run方法中的业务逻辑。public class MiTest {     public static void main(String[] args) {   &nbs...
  • 2024.10.11 | cuithink | 88次围观
    线程基本概念
    1.1 进程与线程A什么是进程?进程是指运行中的程序。 比如我们使用钉钉,浏览器,需要启动这个程序,操作系统会给这个程序分配一定的资源(占用内存资源)。什么线程?线程是CPU调度的基本单位,每个线程执行的都是某一个进程的代码的某个片段。举个栗子:房子与人比如现在有一个100平的房子,这个方式可以看做是一个进程房子里有人,人就可以看做成一个线程。人在房子中做一个事情,比如吃饭,学习,睡觉。这个就好像线程在执行某个功能的代码。所谓进程就是线程的容器,需要线程利用进程中的一些资源,...
  • 2024.10.11 | cuithink | 50次围观
    spring事务
    Spring 事务的种类在 Spring 中,事务管理可以分为两大类:声明式事务管理和编程式事务管理。编程式事务可以使用 TransactionTemplate 和 PlatformTransactionManager 来实现,需要显式执行事务。允许我们在代码中直接控制事务的边界,通过编程方式明确指定事务的开始、提交和回滚。transactionTemplate.execute()声明式事务是建立在 AOP 之上的。其本质是通过 AOP 功能,对方法前后进行拦截,将事务处理的...
  • 2024.10.11 | cuithink | 19次围观
    spring aop
    Spring AOP里面的几个名词(1)切面(Aspect):切面是通知和切点的结合。通知和切点共同定义了切面的全部内容。 在Spring AOP中,切面可以使用通用类(基于模式的风格) 或者在普通类中以 @AspectJ 注解来实现。(2)连接点(Join point):指方法,在Spring AOP中,一个连接点 总是 代表一个方法的执行。 应用可能有数以千计的时机应用通知。这些时机被称为连接点。连接点是在应用执行过程中能够插入切面的一个点。这个点可以是调用方法时、抛出异...
  • 2024.10.11 | cuithink | 46次围观
    Bean生命周期中的一些类
    16.1. ApplicationContextInitializer常用于设置环境变量属性,IOC容器对象创建完以后执行。public class myApplicationInitializer implements ApplicationContextInitializer {     @Override     public ...
  • 2024.10.11 | cuithink | 71次围观
    FactoryBean和BeanFactory的区别
    BeanFactory 和 FactoryBean 是 Spring 框架中两个不同的接口,它们的作用和使用场景略有不同:BeanFactory:BeanFactory 是 Spring 框架中定义 bean 的工厂接口。它是 Spring 框架的核心接口之一,负责创建、配置和管理 bean 对象。BeanFactory 提供了一种松耦合的方式,允许将应用程序的配置和依赖注入与实际的 Java 代码分离开来。BeanFactory 的实现包括 XmlBeanFactory、A...
  • 2024.10.11 | cuithink | 36次围观
    Bean的创建过程
    那么Spring到底是如何来创建一个Bean的呢,这个就是Bean创建的生命周期,大致过程如下利用该类的构造方法来实例化得到一个对象(但是如何一个类中有多个构造方法,Spring则会进行选择,这个叫做推断构造方法)得到一个对象后,Spring会判断该对象中是否存在被@Autowired注解了的属性,把这些属性找出来并由Spring进行赋值(依赖注入)依赖注入后,Spring会判断该对象是否实现了BeanNameAware接口、BeanClassLoaderAware接口、Be...