深入理解
文章平均质量分 68
一些技术的个人深入理解
ideal-cs
坐看云卷云舒,静听花开花落
展开
-
深入理解:脏读、不可重复读、幻读;事务隔离级别;Spring框架事务传播行为
数据库事务( transaction)是访问并可能操作各种数据项的一个数据库操作序列这些操作要么全部执行,要么全部不执行,是一个不可分割的工作单位。事务由事务开始与事务结束之间执行的全部数据库操作组成。在这种最低级别的隔离下,一个事务可以读取到另一个事务尚未提交的数据变更。这意味着存在脏读、不可重复读、幻读问题:即事务读取到了其他事务还没有最终确认的数据。原创 2024-01-14 16:59:13 · 1261 阅读 · 0 评论 -
深入理解:Class.getResource与ClassLoader.getResource使用区别
使用示例代码如下:# 一·作用:都是使用类的类加载器来读取某个文件,从而获取该文件的URL对象# 二·Class.getResource()方法读取文件:## 1.若文件路径以“/”开头,则该方法会从classpath根目录开始,再结合文件路径去获取文件URL对象## 2.若文件路径不以“/”开头,则该方法会从当前调用方法所在类的包下面开始,再结合文件路径去获取文件URL对象原创 2023-12-03 19:16:55 · 370 阅读 · 2 评论 -
深入理解:Spring监听器底层原理与使用方法
# 一·监听器的底层原理:(1)底层利用观察者模式实现,项目任何位置提前注册监听器(观察者)到主题map集合里面(key为事件类型,value为对应的监听器对象集合List);项目任何位置一旦利用主题发布事件操作时,就会批量触发对应的监听器响应方法。(2)主题发布事件方法本质就是,从主题map里面获取出对应的监听器集合,然后循环调用监听器的固定响应方法就行了,至于是同步还是异步,就看调用监听器固定方法时是否利用多线程操作了。原创 2022-08-16 00:11:31 · 2535 阅读 · 1 评论 -
深入理解:输入流read()方法的底层运作原理,以及为什么缓存空间可以极大的提升IO流读写文件的效率
一·FileInputStream类的read方法官方JDK解释如下图所示:可能文档说的太过官方,本人来阐述说明一下。(1)当输入流对象调用这个方法时,一次调用只会从某个文件中读取一字节(也就是8位)的二进制数据,然后返回读取的一字节数据。(2)执行完一次调用之后,该方法并不会立即停掉,而是会进入阻塞状态。进程阻塞就是进程会在后台挂起,即,占着cpu内存,却不执行任何任务,但这样可以加快启动与调用的速度。一旦这样的进程过多就会很耗费计算机各种资源,所以每次我们读完文件数据之后,都必须关掉输入输出流的原创 2022-07-21 00:30:28 · 1828 阅读 · 0 评论 -
深入理解:文件、二进制、字符集(编码)三者之间的区别与联系
一·为什么计算机底层使用二进制存储数据?计算机采用二进制的主要原因:1、计算机是由逻辑电路组成,逻辑电路通常只有两个状态,开关的接通与断开,这两种状态正好可以用“1”和“0”表示;也可以用true和false两种状态来表示,所以C语言中0可以表示false,非0则可以表示true状态。(如果逻辑电路能有第三种状态,也许就可以实现三进制存储数据了)2、二进制中只使用0和1两个数字,传输和处理时不易出错,因而可以保障计算机具有很高的可靠性。...........................原创 2022-07-19 23:33:56 · 1491 阅读 · 0 评论 -
深入理解:为什么要使用工厂模式?
一·工厂模式概念: 1.工厂模式本质上是一种“代码风格”或者“思维风格”(1)如果写程序时,你就不用工厂模式思想,非得每次调用对象都去直接new一个实例对象,这当然也是能够实现程序结果的。(2)就跟MVC开发风格、Restful代码风格一样。由于用的人多了,自然也就成了开发者的定式了。(当然这样也是有好处的!)(3)spring的IOC容器管理技术底层就是利用了工厂模式的思想(4)工厂模式(Factory Pattern)现在是 Java 中最常用的设计模式之一。这种类型的..........原创 2022-07-18 00:23:33 · 3366 阅读 · 2 评论 -
深入理解:scp,rsync,sftp,xsync等命令的基本使用方法,以及cmd命令窗口下进行相关的ssh命令操作
scp,rsync,sftp,xsync等命令之间的区别一·作用类似:一·scp命令使用方法:参考链接二·rsync命令使用方法:参考链接三·xsync命令使用方法:参考链接四·sftp命令使用方法:五·windows系统中的cmd命令窗口,也可以使用ssh命令免密登录远程服务器,用法与Linux系统的免密登录操作一样:具体可参考链接一·作用类似:都是用于服务器之间的数据传输,也称数据同步一·scp命令使用方法:参考链接https://blog.csdn.net/a545812327/article原创 2021-11-25 19:56:35 · 1556 阅读 · 0 评论 -
深入理解:js标签中的type=“text/JavaScript“,表示什么意思
一·案例代码如下:<script type="text/javascript"> function onchangeFun() { //注意函数名不能与已经存在的关键字相同,否则会出错! alert("男神已经改变!") }</script>二·type=“text/javascript”,表示什么意思?表示将< script>< /script>之间的文本内容,在浏览器原创 2021-07-25 10:34:57 · 3288 阅读 · 1 评论 -
深入理解:cmd下java命令启动JVM运行class文件时,可以自动识别不同编码编译后的class文件并加之运行
总结如下:前提:1.cmd默认为GBK编码格式;2.源代码正确一:程序源代码以GBK格式保存时:(1)用javac命令去编译这个源代码,一定会OK(2)用java命令去执行这个编译后的字节码文件,一定会OK二:程序以源代码UTF-8无BOM格式保存时:(1)用javac命令去编译这个源代码,要指明使用什么字符集编码格式,才会编译OK,否则报错。(示例命令:javac -encoding UTF-8 HelloWorld.java)(2)用java命令去执行这个编译后的字节码文件,一定会OK原创 2021-05-21 12:00:03 · 455 阅读 · 0 评论 -
深入理解:中央调度器DispatcherServlet的映射路径,不能随意乱配置,否则会导致各种问题
中央调度器DispatcherServlet的映射路径,不能随意乱配置,否则会导致各种问题一·在web.xml文件中配置一个 DispatcherServlet:二· DispatcherServlet 拦截路径:若随意配置其拦截路径1.配置路径:/web/2.配置路径:/web/*3.配置路径:/web/*.do4.配置路径:/web*.do5.配置路径:\*.*三· DispatcherServlet 拦截路径:正确配置其拦截路径方案一:/方案二:*.do , do可以为其他字母方案三:/*四·综上所述原创 2021-09-12 14:13:37 · 1046 阅读 · 0 评论 -
深入理解:全网最详细解释。什么情况下,才可以使用Java“强制类型转换”
深入理解:全网最详细解释!什么情况下,才可以使用Java“强制类型转换”!一· 在java中,数据类型分为两种:(1)“基本数据类型”:只有Java中八大基本数据类型(2)“引用数据类型”:变量位置上存储的是某个数据的内存地址。(换种说法,就是非基本数据类型都是引用数据类型)二·“基本数据类型”之间的类型转换:(1)自动类型转换**:容量小的类型自动转换为容量大的数据类型。(2)强制类型转换**:容量大的转换为容量小的数据类型三·“引用数据类型”之间的类型转换:举例说明前提:创建三个JavaBean类情况一原创 2021-07-18 20:48:42 · 5706 阅读 · 7 评论 -
深入理解:数据库中,“int(M)”和“varchar(M)” ,两者括号里面的M含义是不同的
一·整型数据后面括号中的数字含义:不表示这个数据的内存长度,表示的是数据显示出来的宽度。这点与 varchar、char 后面的数字含义是不同的。问题:int(1)、tinyint(5) 哪个保存数据的字节数大?(注意数字类型后面括号中的数字)答案:int 大。综上所述:整型的数据类型括号内的数字不管是多少,所占的存储空间都是一样;tinyint一个字节 smallint 两个字节 MEDIUMINT三个字节;也就是说不管 int 后面的数字是多少,它存储的范围始终是 -2^31 到 2^3原创 2021-08-19 21:41:20 · 1056 阅读 · 0 评论 -
深入理解:Spring框架IOC通过解析xml文件,创建对象的底层原理
一·IOC底层原理架构图如下:二·spring框架的底层是如何解析xml文件,从而创建相应对象的呢?本人接下来,通过案例演示说明1.先创建一个spring项目,并导入一个dom4j的jar包,用于解析xml文件。(或者利用maven创建一个spring项目,但是也要导入spring框架依赖)2.创建一个UserDaoImpl类,具体如下:3.创建一个空类:Mss类4.创建一个spring配置文件(test_2.xml 文件),并在里面添加,刚刚创建两个类的bean管理。5.在Ms原创 2021-07-25 10:09:18 · 496 阅读 · 2 评论 -
深入理解:静态代理的底层原理(即,深入理解:Spring框架中的面向切面编程(AOP))
一· 静态代理:静态代理:由程序员创建或特定工具自动生成源代码,也就是在编译时就已经将接口,被代理类,代理类等确定下来。在程序运行之前,代理类的.class文件就已经生成。二· 静态代理简单实现:我这儿举一个比较粗糙的例子,假如一个班的同学要向老师交班费,但是都是通过班长把自己的钱转交给老师。这里,班长就是代理学生上交班费,班长就是学生的代理。第一步:public interface Person {//定义一个Person接口 public void giveMoney();//上交班费原创 2021-06-21 09:23:38 · 184 阅读 · 0 评论 -
深入理解:各个类中equals方法的作用,以及它的底层实现原理
一·Object类中的 equals() 方法,源码分析以及他的作用:/** * 作用:判断这两个“对象”是否相等,若相等就返回true,不相等就返回false * * 注意:这里比较两个对象是否相等的依据是: * 两个对象在电脑中的“内存地址是否相等”,若“内存地址相等”就返回true,若“内存地址不相等”就返回false * * 实际作用:1.几乎没有实际作用。 *原创 2021-06-09 16:45:00 · 1744 阅读 · 0 评论 -
深入理解:动态代理的底层原理(即,深入理解:Spring框架中的面向切面编程(AOP))
一·代理设计模式的原理:使用一个代理将对象包装起来, 然后用该代理对象取代原始对象。任何对原始对象的调用都要通过代理。代理对象决定是否以及何时将方法调用转到原始对象上。二·为什么需要动态代理:从作用上来说,使用静态代理也可以完成,在不改变源码的情况下,对已有的方法,进行增强(运行期增强)功能的代理作用。但是静态代理特征是,代理类和目标对象的类都是在编译期间确定下来,不利于程序的扩展。同时,每一个代理类只能为一个接口服务,这样一来程序开发中必然产生过多的代理。最好可以通过一个代理类完成全部的代理功能。原创 2021-06-22 11:56:24 · 1052 阅读 · 0 评论 -
深入理解:Java中读取文件时,有时候使用 “/“(斜杠)分割目录,有时候使用 “.“(点)分割目录的问题
一·问题描述:1.Java中读取文件时,情况一:使用 “斜杠” 作为分隔符2.Java中读取文件时,情况二:使用 “点” 作为分隔符3.这两种路径表达的区别,以及他们分别使用的环境?二·解释:1.以 “斜杠” 作为分隔符的,读的是文件内容本身2.以 “点” 作为分割符的,读的是class字节码文件三·它们分别使用的环境:1.需要读取文件内容本身的时候,使用 “斜杠” 分割目录;(一般都是项目中,需要读取配置文件的时候使用)2.需要读取文件class字节码文件的时候,使用 “点” 分割原创 2021-07-25 11:03:02 · 1213 阅读 · 4 评论