avatar
文章
76
标签
19
分类
12
首页
时间轴
标签
分类
留言板
关于
张晓风的博客
首页
时间轴
标签
分类
留言板
关于

张晓风的博客

软考备考计划
发表于2024-09-09|软考| 条评论
一、总计划 阶段 学习时间 学习模块 第一阶段 9月9日-9月29日 综合知识 第二阶段 9月30日-10月20日 案例分析 第三阶段 10月21日-11月10日 论文 二、分计划2.1 第一阶段状态标识:...
Spring 中用到的设计模式
发表于2024-09-06|spring| 条评论
一、工厂设计模式Spring 使用工厂模式可以通过 BeanFactory 或 ApplicationContext 创建 bean 对象。 两者对比: BeanFactory:延迟注入(使用到某个 bean 的时候才会注入),相比于ApplicationContext 来说会占用更少的内存,程序启动速度更快。 ApplicationContext:容器启动的时候,不管你用没用到,一次性创建所有 bean 。BeanFactory 仅提供了最基本的依赖注入支持,ApplicationContext 扩展了 BeanFactory ,除了有BeanFactory的功能还有额外更多功能,所以一般开发人员使用ApplicationContext会更多。 ApplicationContext 的三个实现类: ClassPathXmlApplication:把上下文文件当成类路径资源。 FileSystemXmlApplication:从文件系统中的 XML 文件载入上下文定义信息。 XmlWebApplicationContext:从 Web 系统中的 XML...
Java 线程池笔记
发表于2024-09-03|java| 条评论
一、线程池介绍顾名思义,线程池就是管理一系列线程的资源池,其提供了一种限制和管理线程资源的方式。每个线程池还维护一些基本统计信息,例如已完成任务的数量。 使用线程池的好处: 降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。 提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。 提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控。 二、ThreadPoolExecutor 类介绍ThreadPoolExecutor 类中提供的四个构造方法。我们来看最长的那个,其余三个都是在这个构造方法的基础上产生。 12345678910111213141516171819202122232425/** * 用给定的初始参数创建一个新的ThreadPoolExecutor。 */public ThreadPoolExecutor(int corePoolSize,//线程池的核心线程数量 int...
SpringBoot 自动装配原理详解
发表于2024-09-02|spring| 条评论
每次问到 Spring Boot, 面试官非常喜欢问这个问题:“讲述一下 SpringBoot 自动装配原理?”。 我觉得我们可以从以下几个方面回答: 什么是 SpringBoot 自动装配? SpringBoot 是如何实现自动装配的?如何实现按需加载? 如何实现一个 Starter? 一、什么是 SpringBoot 自动装配?我们现在提到自动装配的时候,一般会和 Spring Boot 联系在一起。但是,实际上 Spring Framework 早就实现了这个功能。Spring Boot 只是在其基础上,通过 SPI 的方式,做了进一步优化。 SpringBoot 定义了一套接口规范,这套规范规定:SpringBoot 在启动时会扫描外部引用 jar 包中的META-INF/spring.factories文件,将文件中配置的类型信息加载到 Spring 容器(此处涉及到 JVM 类加载机制与 Spring 的容器知识),并执行类中定义的各种操作。对于外部 jar 来说,只需要按照 SpringBoot 定义的标准,就能将自己的功能装置进 SpringBoot。自...
Spring 事务详解
发表于2024-09-01|spring| 条评论
一、什么是事务?事务是逻辑上的一组操作,要么都执行,要么都不执行。 事务能否生效,数据库引擎是否支持事务是关键。比如常用的 MySQL 数据库默认使用支持事务的 innodb 引擎。但是,如果把数据库引擎变为 myIsam,那么程序也就不再支持事务了。 事务的特性(ACID)1.原子性(Atomicity):事务是最小的执行单位,不允许分割。事务的原子性确保动作要么全部完成,要么完全不起作用。2.一致性(Consistency):执行事务前后,数据保持一致。例如转账业务中,无论事务是否成功,转账者和收款人的总额应该是不变的。3.隔离性(Isolation):并发访问数据库时,一个用户的事务不被其他事务所打扰,各并发事务之间数据库是独立的。4.持久性(Durability):一个事务被提交之后,它对数据库中数据的改变是持久的,即使数据库发生故障也不应该对其有任何影响。 只有保证了事务的持久性、原子性、隔离性之后,一致性才能得到保障。也就是说A、I、D是手段,C是目的! MySQL...
Java基础面试题
发表于2024-08-24|面试| 条评论
一、数据类型Java 中有哪8种基本数据类型?它们的默认值和占用的空间大小是多少?说说这8种基本数据类型对应的包装类型。 Answer 1️⃣ Java 中有8种基本数据类型,分别为: 6种数字类型:byte、short、int、long、float、double 1种字符类型:char 1种布尔型:boolean 包装类型的常量池技术是什么? Answer Java 基本类型的包装类型的大部分(Byte,Short,Integer,Long,Character,Boolean)都实现了常量池技术。 为什么要有包装类型? Answer 基本类型有默认值、范型参数不能是基本类型
Spring相关面试题
发表于2024-08-22|面试| 条评论
1.什么是 Spring Bean?作用域有哪些? Answer Bean 代指的就是那些被 IoC 容器所管理的对象。Bean 的作用域通常有下面几种: 作用域 描述 singleton 容器中唯一的 Bean 实例(默认)。 prototype 每次获取都会创建新实例。 request 每次 HTTP 请求创建新实例(仅 Web 应用)。 session 每次 HTTP Session 创建新实例(仅 Web 应用)。 application/global-session 每个 Web 应用启动时创建一个实例(仅 Web 应用)。 websocket 每次 WebSocket 会话创建新实例(仅 Web 应用)。 singleton(最常用,默认的作用域)和prototype这两个作用域是相对用的多点的,其他的基本不会用到。 2.谈谈你对 Spring IoC 的理解 Answer ①...
vmware下虚拟机linux,用户登录时候提示鉴定故障解决方法
发表于2024-08-13|工具| 条评论
一、参考文章我参考的是这篇文章:https://blog.csdn.net/only_a_Heroic_car/article/details/119113789不过我跟他不同的是,我用的VMware ESXI,而且我的操作系统是Oracle Linux。不过操作步骤大同小异,我用他的方法确实解决了问题。 二、具体步骤2.1 重启系统,在开机界面提示三秒内输入时候,按 “e”,进入如下界面: 2.2 继续按“e”,进入如下界面:并选择第二项: 2.3 接着按“e”到下面界面: 2.4 在 rhgb quiet 后 空格 然后输入 1 如图 2.5 按回车键,回到这个界面: 2.6 然后按”b“启动,会出现下面的界面,输入命令重置登录账户的密码,并重启系统。passwd root/other—登录账户注意:init 6 2.7 完成!这个方法真的很好的解决了我的问题,让我的虚拟机能够恢复正常。
day-14-count(*)这么慢,我该怎么办
发表于2024-08-02|MySQL学习笔记| 条评论
一、count( * ) 的实现方式 MyISAM 引擎把一个表的总行数存在了磁盘上,因此执行 count( * ) 的时候会直接返回这个数,效率很高; 而 InnoDB 引擎就麻烦了,它执行 count( * ) 的时候,需要把数据一行一行地从引擎里面读出来,然后累积计数。 InnoDB 的默认隔离级别是可重复度。InnoDB 是索引组织表,主键索引树的叶子节点是数据,而普通索引树的叶子节点是主键值。 在保证逻辑正确的前提下,尽量减少扫描的数据量,是数据库系统设计的通用法则之一。 MyISAM 表虽然 count( * ) 很快,但是不支持事务; show table status 命令虽然返回很快,但是不准确; InnoDB 表直接 count( * ) 会遍历全表,虽然结果准确,但会导致性能问题。 二、不同的 count 用法 count() 的语义:count() 是一个聚合函数,对于返回的结果集,一行行地判断,如果 count 函数的参数不是 NULL,累计值就加 1,否则不加。最后返回累计值。 分析性能差别的时候要注意的几个原则:1.server...
day-13-为什么表数据删掉一半,表文件大小不变
发表于2024-08-01|MySQL学习笔记| 条评论
一、数据删除流程数据页的复用跟记录的复用是不同的。记录的复用,只限于符合范围条件的数据。而当整个页从 B+ 树里面摘掉以后,可以复用到任何位置。 如果相邻的两个数据页利用率都很小,系统就会把这两个页上的数据合到其中一个页上,另外一个数据页就被标记为可复用。 delete 命令其实只是把记录的位置,或者数据页标记为了“可复用”,但磁盘文件的大小是不会变的。 不止是删除数据会造成空洞,插入数据也会。 二、重建表MySQL 5.6 版本开始引入的 Online DDL Online 和 inplaceDDL 过程如果是 Online 的,就一定是 inplace 的;反过来未必,也就是说 inplace 的 DDL,有可能不是 Online 的。 三、小结如果要收缩一个表,只是 delete 掉表里面不用的数据的话,表文件的大小是不会变的,还要通过 alter table 命令重建表,才能达到表文件变小的目的。重建表有两种实现方式,Online DDL 的方式是可以考虑在业务低峰期使用的,而 MySQL 5.5 及之前的版本,这个命令是会阻塞 DML 的,这个需要特别小心。
123…8
avatar
张晓风
文章
76
标签
19
分类
12
Follow Me
最新文章
计算机网络-第一章笔记2025-03-02
单线复用--家里宽带2025-03-01
计算机网络 - B站学习计划2025-02-12
光猫路由改桥接,同时支持IPTV2025-01-14
Centrifugo安装与使用2025-01-09
分类
  • MySQL学习笔记14
  • Redis学习笔记3
  • java3
  • nginx4
  • spring13
  • 工具5
  • 建站相关2
  • 开发相关7
标签
MySQL logback nginx redis spring docker linux ldap jira 软考 postman network springboot websocket hexo 面试 java 数据结构与算法 git
归档
  • 三月 2025 2
  • 二月 2025 1
  • 一月 2025 4
  • 十一月 2024 1
  • 十月 2024 1
  • 九月 2024 5
  • 八月 2024 5
  • 七月 2024 21
网站信息
文章数目 :
76
本站总字数 :
46.4k
本站访客数 :
本站总浏览量 :
最后更新时间 :
©2024 - 2025 By 张晓风
框架 Hexo 7.1.1|主题 Butterfly 5.3.5
苏ICP备2023046043号