- 博客(18)
- 收藏
- 关注
原创 Spring中的Bean的生命周期
的范围是否是 singleton的, 是否不是延迟加载的,是否不是。即完成了Spring Bean的整个生命周期。,被存储到单例池 singletonObjects中去了,接口的初始化方 法、执行自定义初始化init。实例的属性进行填充、执 行一些Aware。Bean的完成阶段:经过初始化阶段,Bean的实例化阶段:Spring。最具技术含量和复杂度的阶段;通过反射进行实例化;等,最终将一个普通的。接口的初始化方法回调。
2023-02-12 18:32:47 141
原创 redis是单线程,为什么还效率高
4.非cpu密集型任务:redis受限于内存和网络宽带,在高并发的请求下,redis需要更多的内存空间和更快的网络,否则很容易出现内存不够用和网络延迟等待的情况,当redis实例不满足使用时,可以通过部署多个redis节点。首先,redis 是基于内存的操作,而不是通过cpu操作。2.采用单线程:避免了不必要的上下文切换和竞争条件,也不存在多进程或者多线程导致的切换而占用cpu过多的性能,更不用去考虑各种锁的问题,也不存在加锁释放锁操作,不会出现死锁而导致的性能消耗;1.多线程处理可能涉及到锁。
2022-12-17 14:12:29 330 1
原创 spring框架中的Bean生命周期
Ⅱ处理各种Aware接口:Spring会先检测该Bean是否实现了某些Aware类型的接口,通过Aware类型的接口,可以让Spring框架为当前Bean注入相应的内容。执行init-method自定义初始化方法,如果 Bean 在Spring配置文件中配置了init-method属性, 则会自动调用其配置的初始化方法。执行DisposableBean销毁Bean,当Bean不再需要时,会经过清理阶段,如果Bean实现了DisposableBean这个接口,会调用其实现的destroy() 方法执行销毁;
2022-12-11 14:45:51 213
原创 Servlet的生命周期
客户端发送①HTTP请求给容器;容器在到Servlet过程中做了,②解析请求,③创建Servlet实例,④调用init()方法,⑤调用service()方法,⑥输出响应信息当容器做到第六步时,客户端⑦响应,⑧调用destroy()方法;服务,如果请求Servlet,则容器调用service()方法。初始化,该容器调用init(ServletConfig)方法。实例化,Servlet容器创建Servlet的实例。销毁,销毁实例之前调用destroy()方法。一、生命周期的各个阶段。
2022-10-30 18:57:08 107
原创 Mybatis如何实现多表查询(一对一,一对多)
一对多:在@Result注解中使用@Many注解。在@Results注解里使用@Result注解。一对一:在@Result注解中使用@One注解。
2022-10-20 10:29:28 405
原创 Mysql中的事务是什么?事务都有哪些隔离级别?
为了让不同的事务之间相互不存在干扰,就需要对事务的操作进行隔离,事务的隔离性也就是将操作同一个数据的事务相互分离,让操作之间分开有序的执行。每个隔离级别都针对事务并发问题中的一种或几种进行解决,事务级别越高,解决的并发事务问题也就越多,同时也意味着加的锁就越多,所以性能也会越差。默认为1,使用事务时为0。一个事务中如果有一个数据库操作失败,那么整个事务的所有数据库操作都会失败,数据库数据就会回滚到该事务开始之前的状态。在事务并发执行的时候,如果不进行事务隔离,那么就会产生脏写、脏读、重复读、幻读的问题。
2022-10-16 12:36:46 193
原创 Java中线程的六种状态
Java中的线程共有六种状态,分别是new(新建状态),runnable(可运行状态),blocked(阻塞状态),waiting(无限等待状态),timed_waiting(计时等待状态),terminated(消亡状态)weiting:当线程获取锁(lock)对象失败后,或者执行wai();timed_waiting:在调用sleep();new:创建后,启动前。
2022-10-16 12:11:55 677
原创 Set集合不重复原理
先通过hashCode()方法(该方法属于Object类的方法)求新增数据的哈希值,再将新增数据的哈希值%数组长度,得到余数,即为新增数据在数组中的索引值位置,此时如果该位置为null:则直接新增到该位置,如果不为null:则判断两个元素的哈希值&& (地址值||equals),如果哈希值和地址值或者哈希值与equals有一个条件满足,就认为是同一个元素,就不会新增,如果哈希值和地址值或者哈希值与equals两个条件都不满足,则新增挂到链表的最后位置。③TreeSet,红黑树,可排序的;
2022-09-25 20:37:37 668
原创 super关键字的使用
④super的访问不会局限于直接父类,如果有多级父类,并且还有同名的成员变量或成员方法,此时使用super访问时遵循就近原则;在继承关系中,访问构造方法时的特点有:①如果没有在子类构造方法里显示的写super(),则会默认赠送一个super();super是用来区分成员变量的,调用局部变量可以直接使用,调用子类成员变量需要用this,调用父类成员变量则用super。⑤super()调用的是父类中的无参数的构造方法,super(参数)调用的是父类中的有参数的构造方法。如果要显示的写,则super(参数)
2022-09-14 15:20:00 445
原创 四字节的整数表示范围比八字节浮点数表示范围小
4个字节小数部分的存储形式:共32位,最左侧第1位是符号位,紧跟着的8位是指数位,剩余23位为尾数位,其中指数位又含有1位符号位,指数的范围在±2^127;因此最小值的二进制表示为:1000...000,即1后跟63个0,十进制表示为-2^63,最大值的二进制表示为:0111...111,即1后跟63个1,十进制表示为-2^63-1;由此可见:当整数与小数的存储范围相比较时,八字节的整数范围是明显小于四字节小数范围的,所以四字节的浮点数比八字节的整数表示范围要广。四字节小数部分的范围为:±2^127。
2022-09-08 15:14:47 1022
原创 为什么大部分小数在计算机中是不精确的
存储形式主要有两种:①float类型:占4个字节,共32位,最左侧第1位是符号位,紧跟着的8位是指数位,剩余23位为尾数位,其中指数位又含有1位符号位,指数的范围在±2^127;默认使用double类型进行存储。其次我们主要掌握的是有符号数:即0表示正数,1表示负数,符号位的位置在二进制的最左侧;在计算机语言中,有高级语言和计算机编程语言之分,高级语言即:Java,C#,C++,python...等,而计算机是不认识这些语言的,因此他会将高级语言编译为计算机语言,即:0或1,简单理解为二进制;
2022-09-04 16:04:59 216
原创 微信小程序路由详解
delta 当 open-type 为 'navigateBack' 时有效,表示回退的层数,默认为1。保留当前页面,跳转到应用内的某个页面。url 需要跳转的 tabBar 页面的路径 (代码包路径),路径后不能带参数。delta 返回的页面数,如果 delta 大于现有页面数,则返回到首页;events 页面间通信接口,用于监听被打开页面发送到当前页面的数据。关闭当前页面,跳转到应用内的某个页面。关闭所有页面,打开到应用内的某个页面。...
2022-08-27 21:14:55 723
原创 微信小程序全局生命周期和页面生命周期
小程序初始化完成时触发,全局只触发一次。一个页面只会调用一次,可以在 onLoad 的参数中获取打开当前页面路径中的参数。如wx.navigateTo或底部切换到其他页面,小程序切入后台等。一个页面只会调用一次,代表页面已经准备妥当,可以和视图层进行交互。如wx.redirectTo或wx.navigateBack到其他页面时。小程序启动,或从后台进入前台显示时触发。—— 监听小程序启动或切前台。—— 监听页面初次渲染完成。—— 监听小程序初始化。—— 监听小程序切后台。—— 监听页面显示。
2022-08-21 21:46:29 1031
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人