- 博客(121)
- 收藏
- 关注
原创 BIOS/UEFI区别
BIOS是一组固化在主板ROM芯片中的程序。它可以从CMOS中读写系统设置的关键信息。比如:主板的设置、键盘、鼠标、外部接口、频率、电源、磁盘驱动器等方面进行参数控制和调整。我们常用的调整硬盘或U盘的启动顺序,电源管理的设置或者一些超频设置。都是在BIOS中完成的。UEFI全称“统一的可扩展固件接口”,相比传统BIOS来说,它更易实现,容错和纠错特性也更强,从而缩短了系统研发的时间。
2023-08-08 13:19:04
292
原创 写一个Singleton出来。
这个方法比上面有所改进,不用每次都进行生成对象,只是第一次。实例化放在静态代码块里可提高程序的执行效率。在自己内部定义自己一个实例,是不是很奇怪?的该类变量,在类初始化时实例话,通过一个。第三:更实际的应用(在什么情况用单例)一般认为第一种形式要更加安全些。下面是该类自身的业务功能代码。的静态方法,可以直接访问。使用时生成实例,提高了效率!下面是把该类变成单例的代码。定义一个类,它的构造函数为。定义一个类,它的构造函数为。模式主要作用是保证在。模式通常有几种种形式。继而调用其中的方法。
2023-06-07 00:11:56
238
原创 介绍一下Hibernate的二级缓存
当以后要使用某个对象时,先查询缓存中是否有这个对象,如果有则使用缓存中的对象,如果没有则去查询数据库,并将查询出来的对象保存在缓存中,以便下次使用。通常只有那种全局意义上的缓存才是真正的缓存应用,才有较大的缓存价值,因此,也是先从自己内部查看是否存在这个对象,存在则直接返回,不存在才去访问数据库,并将查询的结果保存在自己内部。配置文件中配置使用哪个厂家的缓存产品,接着需要配置该缓存产品自己的配置文件,最后要配置。的软件部件,属于第三方的产品,多个厂商和组织都提供有缓存产品,例如,
2023-06-06 23:46:13
231
原创 iBatis与Hibernate有什么不同?
提供了将结果集自动封装称为实体对象和对象的集合的功能,语句,我们无法控制该语句,我们就无法去写特定的高效率的。提供了自动将实体对象的属性传递给。可以很好帮我们完成,但是,对于特别复杂的查询,的底层访问细节,使用我们不用与。代码混杂在了一起,经常需要拼凑。打交道,就可以访问数据。映射工具,它可以自动生成。功能负责和强大很多。就很难适应了,这时候用。就是不错的选择,因为。
2023-06-06 23:45:43
136
原创 Struts优缺点
通过一个配置文件,即可把握整个系统各部分之间的联系,这对于后期的维护有着莫大的好处。级别,而且转化的类型是不可配置的。类型转化时的错误信息返回给用户也是非常困难的。用到的所有的资源都必需统一同步,这个就引起了线程安全的问题。,如果想控制它的执行顺序将会非常困难。,注意,每次修改配置之后,要求重新部署整个项目,而。方式,它仅仅允许一个实例去处理所有的请求。这样的服务器,还必须重新启动服务器。层耦合在一起,这样它的测试依赖于。来实现你的这个功能需求。可以实现它的单元测试。,如果有十个展示层的。
2023-06-06 23:45:06
138
原创 谈谈你对Struts的理解
的配置文件可以有多个,可以按模块配置各自的配置文件,这样可以防止配置文件的过度膨胀;类,这个类中的每个属性对应一个请求参数),封装成一个什么样的。执行完后要返回显示的结果视图,这个结果视图是用一个。方法,否则,它将返回一个错误页面,这个错误页面由。可能还有自己的应用方面的经验,那也要一并说出来。属性指定,(看配置文件)作者为什么将这里命名为。属性,我们后面结合实际的运行效果进行分析。去处理之前,会将请求参数封装成一个。页面设置的逻辑名,这样可以实现。配置文件中的配置关联到某个。页面,因为程序中使用的是在。
2023-06-06 23:44:01
73
原创 你对Spring的理解
功能采用的是代理技术,客户端程序不再调用目标,而调用代理类,代理类与目标类对外具有相同的方法声明,有两种方式可以实现相同的方法声明,一是实现相同的接口,二是作为目标的子类在,称为面向切面编程,就是系统中有很多各不相干的类的方法,在这些众多方法中要加入某种系统功能的代码,例如,加入日志,加入权限判断,加入异常处理,这种应用称为。另外两种方式都由依赖,第一个直接依赖于目标类,第二个把依赖转移到工厂上,第三个彻底与目标和工厂解耦了。在生成的代理类的方法中加入系统功能和调用目标类的相应方法,系统功能的代理以。
2023-06-06 23:43:01
73
原创 Request对象的主要方法:
获得客户端传送给服务器端的所有参数的名字,结果是一个枚举的实例。:获取客户端向服务器端传送数据所依据的协议名称。对象所有属性的名字集合,结果是一个枚举的实例。:返回请求的输入流,用于获得请求中的数据。:获得客户端向服务器端传送数据的方法。:获取客户端所请求的脚本文件的路径。:获取发出请求字符串的客户端地址。的所有值,结果是一个枚举的实例。:获得客户端传送给服务器端的有。的名字,结果是一个枚举的实例。:返回请求中的字符编码方式。:删除请求中的一个属性。协议定义的文件头信息。:获取服务器的端口号。
2023-05-19 12:02:59
91
原创 递归算法题1
一个整数,大于0,不用循环和本地变量,按照n,2n,4n,8n的顺序递增,当值大于5000时,把值按照指定顺序输出来。提示:写程序时,先致谢按递增方式的代码,写好递增的以后,再增加考虑递减部分。
2023-05-19 12:00:44
78
原创 编写一个程序,将a.txt文件中的单词与b.txt文件中的单词交替合并到c.txt文件中,a.txt文件中的单词用回车符分隔,b.txt文件中用回车或空格进行分隔。
null ){if(bWord!= null)= null){c.close();}else{
2023-05-19 11:56:19
172
原创 HashMap和Hashtable的区别
由于非线程安全,在只有一个线程访问的情况下,效率要高于。条理上还需要整理,也是先说相同点,再说不同点)的轻量级实现(非线程安全的实现),他们都完成了。算法都大概一样,所以性能不会有很大的差异。时,不需要自己为它的方法实现同步,而。是线程安全的,也就是说是同步的,而。可以让你将空值作为一个表的条目的。是线程序不安全的,不是同步的。方法容易让人引起误解。就必须为之提供外同步。不是,在多个线程访问。
2023-05-19 11:49:33
79
原创 线程的基本概念、线程的基本状态以及状态之间的关系
一个程序中可以有多条执行线索同时执行,一个线程就是程序中的一条执行线索,每个线程上都关联有要执行的代码,即可以有多段程序代码同时运行,每个程序至少都有一个线程,即。在同时执行,好比大家在同一个办公室上网,只有一条链接到外部网线,其实,这条网线一会为。方法后线程进入就绪状态,线程调度系统将就绪状态的线程转为运行状态,遇到。方法转为挂起状态,当线程关联的代码执行完后,线程变为结束状态。传数据,由于切换时间很短暂,所以,大家感觉都在同时上网。这是从宏观上来看的,获得锁后,由阻塞转为运行,在这种情况可以调用。
2023-05-19 11:48:24
80
原创 下面这条语句一共创建了多少个对象:String s=“a“+“b“+“c“+“d“;
编译可以对字符串常量直接相加的表达式进行优化,不必要等到运行期去进行加法运算处理,而是在编译时去掉其中的加号,直接将其编译成一个这些常量相连的结果。题目中的第一行代码被编译器在编译时优化后,相当于直接定义了一个。的字符串,所以,上面的代码应该只创建了一个。最终打印的结果应该为true。,第二条语句打印的结果为。第一条语句打印的结果为。
2023-05-19 11:47:06
130
原创 面向对象的特征有哪些方面
一个更便于理解的例子就是,司机将火车刹住了,刹车的动作是分配给司机,还是分配给火车,显然,应该分配给火车,因为司机自身是不可能有那么大的力气将一个火车给停下来的,只有火车自己才能完成这一动作,火车需要调用内部的离合器和刹车片等多个器件协作才能完成刹车这个动作,司机刹车的过程只是给火车发了一个消息,通知火车要执行刹车动作而已。面向对象的封装就是把描述一个对象的属性和行为的代码封装在一个“模块”中,也就是一个类中,属性用变量定义,行为用方法进行定义,方法可以直接访问同一个对象中的属性。
2023-05-19 11:44:23
120
原创 ==和equals的区别
另外,equals()方法存在于Object类中,而Object类是所有类的直接或间接父类,所以说所有类中的equals()方法都继承自Object类,在没有重写equals()方法的类中,调用equals()方法其实和使用==的效果一样,也是比较的是引用类型的变量所指向的对象的地址,不过,Java提供的类中,有些类都重写了equals()方法,重写后的equals()方法一般都是比较两个对象的值,比如String类。如果作用于引用类型的变量,则比较的是所指向的对象的地址是否相等。
2023-05-19 11:43:32
74
原创 Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?
表示子类中的方法可以与父类中的某个方法的名称和参数完全相同,通过子类创建的实例对象调用这个方法时,将调用子类中的定义方法,这相当于把父类中定义的那个完全相同的方法给覆盖了,这也是面向对象编程的多态性的一种表现。子类覆盖父类的方法时,只能比父类抛出更少的异常,或者是抛出父类抛出的异常的子异常,因为子类可以解决父类的一些问题,不能比父类有更多的问题。例如,不同的参数类型,不同的参数个数,不同的参数顺序(当然,同一方法内的几个参数类型必须不一样,例如可以是。、覆盖的方法的返回值必须和被覆盖的方法的返回一致;
2023-05-19 11:43:28
103
原创 Windows注册表
如果注册表受到了破坏,轻则使windows的启动过程出现异常,重则可能会导致整个windows系统的完全瘫痪。是windows操作系统中的一个核心数据库,其中存放着各种参数,直接控制着windows的启动、硬件驱动程序的装载以及一些windows。与应用程序的关联,硬件部件的描述、状态和属性,性能记录和其他底层的系统状态信息,以及其他数据等。3、通过注册表,管理人员和用户可以在网络上检查系统的配置和设置,使得远程管理得以实现。这些作用包括了软、硬件的相关配置和状态信息,比如注册表中保存有应用程序和。
2023-05-18 11:59:34
222
原创 磁盘的结构(盘片、磁道、扇区、柱面)
在“文件的物理结构”小节中,我们经常提到文件数据存放在外存中的几号块(逻辑地址),这个块号就可以转换成(柱面号,盘面号,扇区号)的地址形式。所有的磁头都是连在同一个磁臂上的,因此所有磁头只能“共进退”。一个磁盘(如一个 1T 的机械硬盘)由多个盘片(如下图中的 0 号盘片)叠加而成。③ 磁盘旋转的过程中,指定的扇区会从磁头下面划过,这样就完成了对指定扇区的读/写。由上,可用(柱面号,盘面号,扇区号)来定位任意一个“磁盘块”。其中,最内侧磁道上的扇区面积最小,因此数据密度最大。② 激活指定盘面对应的磁头;
2023-05-18 11:51:16
508
原创 对比BIOS和EFI系统引导的区别?
最后,要知道这些都是BIOS做不到的。而在UEFI下,这些统统都不需要,不再需要主引导记录,不再需要活动分区,不需要任何工具,只要复制安装文件到一个FAT32(主)分区/U盘中,然后从这个分区/U盘启动,安装Windows就是这么简单。BIOS的启动流程是,在系统上电后,CPU运行于实模式工作环境中,数据位宽为16位,最大物理地址寻址范围是01MB,其中的物理地址0x0C00000x0FFFFF保留给BIOS使用。由此可见,UEFI取代BIOS是时间因素,那么,你的电脑现在配置的是UEFI还是BIOS呢?
2023-05-18 11:45:38
722
原创 sleep() 和 wait() 有什么区别?
是指在一个已经进入了同步锁的线程内,让自己暂时让出同步锁,以便其他正在等待此锁的线程可以得到同步锁并运行,只有其他线程调用了。)的方法,导致此线程暂停执行指定时间,给执行机会给其他线程,但是监控状态依然保持,到时后会自动恢复。方法的线程可以去参与获得锁的竞争了,但不是马上得到锁,因为锁还在别人手里,别人还没释放。方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出。方法后面的代码还有很多,需要这些代码执行完后才会释放锁,可以在。才会回到这个线程上继续往下执行,如果当前线程进入了同步锁,
2023-04-11 16:54:02
58
原创 Java中的异常处理机制的简单原理和应用。
表示程序还能够克服和恢复的问题,其中又分为系统异常和普通异常,系统异常是软件本身缺陷所导致的问题,也就是软件开发人员考虑不周所导致的问题,软件使用者无法克服和恢复这种问题,但在这种问题下还可以让软件系统继续运行或者让软件死掉,例如,数组脚本越界(普通异常是运行环境的变化或异常所导致的问题,是用户能够克服的问题,例如,网络断线,硬盘空间不够,发生这样的异常后,程序不应该死掉。使用面向对象的方式来处理异常,它把程序中发生的每个异常也都分别封装到一个对象来表示的,该对象中包含有异常的信息。
2023-04-11 16:43:11
327
原创 abstract class和interface有什么区别?
比较两者语法细节区别的条理是:先从一个类中的构造方法、普通成员变量和方法(包括抽象方法),静态变量和方法,继承性等。而抽象类在代码实现方面发挥作用,可以实现代码的重用,例如,模板方法设计模式是抽象类的一个典型应用,假设某个项目的所有。抽象类和接口中都可以包含静态成员变量,抽象类中的静态成员变量的访问类型可以任意,但接口中定义的变量只能是。抽象类中可以包含非抽象的普通方法,接口中的所有方法必须都是抽象的,不能有非抽象的普通方法。)可以说成是抽象类的一种特例,接口中的所有方法都必须是抽象的。
2023-04-11 16:37:39
142
原创 方法覆盖和重载
Java的方法重载,就是在类中可以创建多个方法,它们可以有相同的名字,但必须具有不同的参数,即或者是参数的个数不同,或者是参数的类型不同。一、重载方法:方法重载是指在一个类中定义多个同名的方法,但要求每个方法具有不同的参数的类型或参数的个数。方法重写又称方法覆盖。覆盖方法:覆盖又称重写,在Java中,是子类可继承父类中的方法,而不需要重新编写相同的方法。重载方法:在Java中,有函数或者方法有相同的名称,但是参数列表不相同的情形,这样的同名不同参数的函数或者方法之间,互相称之为重载函数或者方法。
2023-04-11 16:35:03
1523
原创 本质上理解面向对象的编程思想
再比如,Linux的文件系统接口也是非常好的“封装”的例子,它提供了open,close,read,write和seek这几个简单的接口,却封装了大量的磁盘驱动,文件系统,一个典型的反面的例子是从数据库里读取出来的数据,几乎所有的字段都是要被处理和使用的,还有新的字段可能在处理过程中被添加进来。我们在以为我们在OOP时,其实很多时候都是在处理编码的细节工作,而非OOP提倡的“独立”,“通讯”。其中前两种和OOP的设计思想有关,而其他都是编写具体代码的工具,有的是为了代码得到更好的组织,有的就是为了方便。
2023-04-11 15:50:12
137
原创 JavaScript和jQuery的关系
jQuery 则是 JavaScript 的一个代码库(或习惯性叫类库),它将一些在 JavaScript 开发中经常用到的功能集合起来,以方便开发者直接使用,而不需要再用原生 JavaScript 语句写大量代码,同时可在不同浏览器间实现一致的效果。jquery基于JavaScript语言,封装JavaScript的原生方法,提供了简便的函数接口,简化了JS的操作。jquery封装JavaScript的原生方法,提供了简便的函数接口,简化了JS的操作。1、Js对象转化为Jquery对象。
2023-04-11 15:30:16
315
原创 java中的MAP
Map是一个集合,一种依照键(key)存储元素的容器,键(key)很像下标,在List中下标是整数。Map中不能有重复的键(Key),每个键(key)都有一个对应的值(value)。HashMap原理:在数据量小的(JDK1.8后阈值为8)时候,HashMap是按照链表的模式存储的;java中的map是一种依照键存储元素的容器。map中不能有重复的键,每个键都有一个对应的值。Map中的元素是两个对象,一个对象作为键,一个对象作为值。一个键(key)和它对应的值构成map集合中的一个元素。
2023-04-11 15:27:29
237
原创 JVM简介
JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。JVM屏蔽了与具体操作系统平台相关的信息,使Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。JVM在执行字节码时,实际上最终还是把字节码解释成具体平台上的机器指令执行。
2023-04-11 15:20:26
563
原创 java字符串池
为了提升性能和减少内存开销,避免字符串的重复创建,其维护了一块特殊的内存空间,这就是我们今天要讨论的核心,即。类是我们使用频率非常高的一种对象类型。
2023-04-11 15:14:40
277
原创 AOP与OOP有什么区别
但是也有它的缺点,最明显的就是关注点聚焦时,面向对象无法简单的解决这个问题,一个关注点是面向所有而不是单一的类,不受类的边界的约束,因此OOP无法将关注点聚焦来解决,只能分散到各个类中。,是软件开发中的一个热点,也是很多框架如 java中的Spring框架中的一个重要内容,是函数式编程的一种衍生范型。将日志记录,性能统计,安全控制,事务处理,异常处理等代码从业务逻辑代码中划分出来,通过对这些行为的分离,我们希望可以将它们独立到非指导业务逻辑的方法中,进而改变这些行为的时候不影响业务逻辑的代码。
2023-04-04 17:12:50
1616
原创 Web Services
我们会在本教程后面章节讲解这些主题。Web Services 是应用程序组件Web Services 使用开放协议进行通信Web Services 是独立的(self-contained)并可自我描述Web Services 可通过使用UDDI来发现Web Services 可被其他应用程序使用XML 是 Web Services 的基础。
2023-03-28 16:54:05
64
原创 HTTP 请求方法
HTTP1.1 新增了六种请求方法:OPTIONS、PUT、PATCH、DELETE、TRACE 和 CONNECT 方法。HTTP1.0 定义了三种请求方法: GET, POST 和 HEAD 方法。根据 HTTP 标准,HTTP 请求可以使用多种请求方法。
2023-03-28 16:49:33
56
原创 HTTP/HTTPS 简介
HTTP 协议是 Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网( WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。HTTP 是一个基于 TCP/IP 通信协议来传递数据(HTML 文件、图片文件、查询结果等)。HTTPS 协议是 HyperText Transfer Protocol Secure(超文本传输安全协议)的缩写,是一种通过计算机网络进行安全通信的传输协议。
2023-03-28 16:46:26
58
转载 MyBatis-Plus框架简介
采用代码或者 Maven 插件可快速生成 Mapper 、 Model 、 Service 、 Controller 层代码,支持模板引擎,更有超多自定义配置等您来使用。:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求。:支持 MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、Postgre、SQLServer 等多种数据库。支持自定义全局通用操作。分页插件支持多种数据库。
2023-03-16 10:56:32
247
原创 认证和授权区别
身份验证是关于验证您的凭据,如用户名/用户ID和密码,以验证您的身份。系统确定您是否就是您所说的使用凭据。例如,当您将ATM卡输入ATM机时,机器会要求您输入您的PIN。在您正确输入引脚后,银行会确认您的身份证明该卡真正属于您,并且您是该卡的合法所有者。通过验证您的ATM卡引脚,银行实际上会验证您的身份,这称为身份验证。另一方面,授权发生在系统成功验证您的身份后,最终会授予您访问资源(如信息,文件,数据库,资金,位置,几乎任何内容)的完全权限。验证成功后,系统验证您的身份后,即可授权您访问系统资源。
2023-03-16 10:10:38
131
原创 Shiro的主要功能和构成
可以有一个或多个Realm,可以认为是安全实体数据源,即用户获取安全实体的;即判断用户是否能做事情,常见的如:验证某个用户是否拥有某个角色.或者细粒度的验证某个用户对某个资源是否具有某个权限。会话管理,即用户登陆后就是一次会话,在没有退出之前,它的所有信息都在会话中;Shiro可以非常容易的开发出足够好的应用,其不仅可以用在JavaSE环境,也可以用在JavaEE环境。,这个用户不一定是一个具体的人,与当前应用交互的任何东西都是Subject,如网络爬虫、机器人等;,来管理如用户、角色、权限等的缓存的;
2023-03-16 10:06:52
135
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人