自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

原创 Java(十)静态代理和动态代理

一、代理的作用代理模式是一种设计模式,简单说即是在不改变源码的情况下,实现对目标对象的功能扩展。举个例子来说明代理的作用:明星与经纪人之间就是被代理和代理的关系,明星出演活动的时候,明星就是一个目标对象,他只要负责活动中的节目,而其他琐碎的事情就交给他的代理人(经纪人)。但是往往你又不能直接对源代码进行修改,可能是你希望原来的对象还保持原来的样子,又或许你提供的只是一个可插拔的插件,甚至你有可...

2020-02-21 18:28:05 199

原创 Java(九)lambuda表达式

lambuda表达式是java的闭包。lambuda表达式是一个可以传递的代码块。由于java万物皆为对象,所以如果要给一个对象传递一段代码块,必须要构造一个对象,这个对象的类的某个方法包含所需要的代码块,这样增加了代码的繁琐。lambuda表达式可以直接传递所需的代码块而不需要构造对象。lambuda表达式传递的是一段代码,是传递给某个类并且让这个类调用的,而不是传递这个代码运行后的返回值。...

2020-02-21 17:52:02 1010

原创 SpringBoot(三)jar和war

一、Jar1.Jar包的作用简单来说,jar包就是别人已经写好的一些类,然后对这些类进行打包。所以jar包本质上是一个类的工具包,引入这个jar包后就可以用这个包的类了,Maven的dependency引入的都是其他项目的jar包。可以将这些jar包引入到你的项目中,可以直接使用这些jar包中的类和属性,这些jar包一般放在lib目录下(IdeaJ中引入的maven依赖的jar包都在Exter...

2020-02-20 22:40:31 249

原创 Maven(一)多模块管理

一、Maven多模块的意义当我们的项目模块很多的时候,我们使用Maven管理项目非常方便,帮助我们管理构建、文档、报告、依赖、scms、发布、分发的方法。可以方便的编译代码、进行依赖管理、管理二进制库等等。由于我们的模块很多,所以我们又抽象了一层,抽出一个父项目来管理子项目的公共的依赖。为了项目的正确运行,必须让所有的子项目使用依赖项的统一版本,必须确保应用的各个项目的依赖项和版本一致,才能保...

2020-02-20 22:39:19 229

原创 数据库(一)数据库优化方式

一、数据表切分和数据库切分(一)纵向分割(分割列),也叫纵向分表,垂直切分通常,随着开发过程的推进,系统中主表的字段数会越来越多。但是一个表的字段个数,是受数据库规范和性能限制的。例如,SQL Server数据库中一个表最多可以包含1024个字段,而实际应用中一般不能超过246个字段,每行数据可以存储8060字节,另外,对于大数据表来说,列的数量直接影响存取速度。数据的存储结构对行的存取更加优...

2020-02-20 22:35:16 171

原创 Java(八)线程池

为什么要使用线程池?(阿里巴巴开发手册推荐使用线程池)在执行一个异步任务或并发任务时,往往是通过直接new Thread()方法来创建新的线程,这样做弊端较多,更好的解决方案是合理地利用线程池,线程池的优势很明显,如下:1.降低系统资源消耗,通过重用已存在的线程,降低线程创建和销毁造成的消耗;2.提高系统响应速度,当有任务到达时,无需等待新线程的创建便能立即执行;3.方便线程并发数的管控,...

2020-02-20 22:25:39 147

原创 Java(七)Volatile关键字

一、内存模型的相关概念计算机在执行程序时,每条指令都是在CPU中执行的,而执行指令过程中,势必涉及到数据的读取和写入。由于程序运行过程中的临时数据是存放在主存(物理内存)当中的,这时就存在一个问题,由于CPU执行速度很快,而从内存读取数据和向内存写入数据的过程跟CPU执行指令的速度比起来要慢的多,因此如果任何时候对数据的操作都要通过和内存的交互来进行,会大大降低指令执行的速度。因此在CPU里面就...

2020-02-20 22:23:40 56

原创 Java(六)线程的同步

一、synchronized关键字 (synchronize:使同步的意思)总结一下有关锁和条件的关键之处:(1)锁用来保护代码片段, 任何时刻只能有一个线程执行被保护的代码。(2)锁可以管理试图进入被保护代码段的线程。(3)锁可以拥有一个或多个相关的条件对象。(4)每个条件对象管理那些已经进入被保护的代码段但还不能运行的线程。1.synchronized标记方法在Java中,可...

2020-02-20 22:21:54 103

原创 Java(五)线程的创建、睡眠、暂停和终止

一、线程的创建(有四种方式)1.继承Thread类创建一个线程的第一个方式是创建一个新的类,该类继承 Thread 类,然后创建一个该类的实例。继承类必须重写 run() 方法,该方法是新线程的入口点。它也必须调用 start() 方法才能进入就绪态(Thread类的对象调用start()方法,则自动执行重写的run()方法,Thread类的线程都用这个方法来调用run()方法)。publi...

2020-02-20 22:20:58 695 1

原创 Redis(四)事务

一、MySQL事务MySQL事务主要用于处理操作量大,复杂度高的数据。比如说,在人员管理系统中,你删除一个人员,你即需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,这样,这些数据库操作语句就构成一个事务。(1)Innodb支持事务:在 MySQL 中只有使用了 Innodb 数据库引擎的数据库或表才支持事务。(2)事务处理可以用来维护数据库的完整性,保证成批的 SQL ...

2020-02-20 22:16:40 91

原创 Redis(三)RDB和AOF

一、RDB和AOF比较1.RDB优点和缺点:RDB优点:能存大数据(AOF文件比RDB大很多,大数据推荐RDN),数据恢复速度快RDB缺点:数据完整性不能保证,可能丢失最后一次修改的数据;fork时比较耗CPU资源,可能会导致Redis在毫秒级别不能响应客户端请求。2.AOF优缺点AOF优点:数据完整性好,最多丢失一秒的数据;文件可读性较好,可以手动修改文件。AOF缺点:数据恢复速度慢...

2020-02-20 22:15:28 2298

原创 Redis(二)Redis持久化

一、什么叫持久化?用一句话可以将持久化概括为:将数据(如内存中的对象)保存到可永久保存的存储设备中。持久化的主要应用是将内存中的对象存储在数据库中,或者存储在磁盘文件中、 XML 数据文件中等等。从应用层与系统层理解持久化同时,也可以从应用层和系统层这两个层面来理解持久化:应用层:如果关闭( Close )你的应用然后重新启动则先前的数据依然存在。系统层:如果关闭( Shutdown )...

2020-02-20 22:14:03 104

原创 Redis(一)为什么Redis很快

一、为什么redis能很快?1、完全基于内存,绝大部分请求是纯粹的内存操作,非常快速。数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1);(这个是根本原因)2、数据结构简单,对数据操作也简单,Redis中的数据结构是专门进行设计的;3、采用单线程,避免了不必要的上下文切换和竞争条件,也不存在多进程或者多线程导致的切换而消耗 CPU(线程切换需要进...

2020-02-20 22:11:44 322

原创 SpringBoot(二)SpringMVC自动配置

一、SpringMVC自动配置根据SpringBoot官方所说的,SpringBoot为SpringMVC做了如下的默认配置:Inclusion of ContentNegotiatingViewResolver and BeanNameViewResolver beans.SpringBoot自动装配了视图解析器,ContentNegotiatingViewResolver是用来组合所...

2020-02-20 22:07:56 81

原创 SpringBoot(一)SpringBoot自动配置和加载

一、SpringBoot自动配置我们开发任何一个Spring Boot项目,都会用到如下的启动类@SpringBootApplicationpublic class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}}从上面代码可以...

2020-02-20 22:06:00 524

原创 java系列(四)反射和Class类

一、Class类1.Class类对象:Class类也是类的一种,只是名字和class关键字高度相似。Java是大小写敏感的语言。Class类的对象内容是你创建的类的类型信息,比如你创建一个shapes类,那么,Java会生成一个内容是shapes的Class类的对象(也就是Class类的对象是一个类的类型信息)。Class类的对象不能像普通类一样,以 new shapes() 的方式创建,它的...

2019-10-14 11:51:51 137

原创 java系列(三)多态

一、多态的基本概念1.多态的定义:指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。(发送消息就是函数调用)2.多态的发生条件:(1)有继承(2)重写(3)父类引用指向子类对象(就是用子类的对象给父类的引用赋值)father f =new son();3.多态的作用:(1).可替换性(substitutability)。多态对已存在...

2019-10-14 11:48:44 131

原创 java系列(二)类加载时机和顺序

java没有规定类加载的时机,但是规定了类初始化的时机,一般认为类初始化的时候就加载。一、类初始化的时机1.创建类的实例,也就是new一个对象2.访问某个类或接口的静态变量和静态方法 (直接用类名访问,没有new一个实体对象),注意访问类的静态域所导致的初始化,只初始化这个类,不会初始化这个类的父类。3.反射(Class.forName(“com.lyj.load”)) 比如类Class中...

2019-10-14 11:46:25 121

原创 Java系列(一)类加载机制

一.类加载的机制:类加载(Class Loading)是一种机制,他描述的是将字节码以文件形式加载到内存再经过连接、初始化后,最终形成可以被虚拟机直接使用的Java类型地过程。Class Loading 包含了加载(Loading)、连接(Linking)、初始化(Initialization)三大部分,其中Linking又包含了三个部分:校验(Verification)、准备(Prepara...

2019-10-14 11:45:04 118

原创 中断,异常和系统调用

一、中断1.中断的概念CPU对外设的中断信号的响应,CPU暂停正在执行的程序,保留环境,执行中断程序,执行完毕后,再回到断点。中断是由外部设备引起,也称为外中断。由CPU内部事件引起的中断。如溢出、非法指令、地址越界、电源故障等。也称为内中断。与中断一样,系统如果发现陷入时间,CPU也将暂停正在执行的程序,保留环境,执行该陷入事件的处理程序,执行完毕后,再回到断点。2.中断号,中断向量表和...

2019-07-03 16:14:26 787

原创 操作系统是如何启动的

OS的启动流程操作系统启动过程分为BIOS执行和BootLoader执行两个步骤一、BIOS程序执行过程执行过程:在CPU加电之后,会把CPU所有寄存器的值设为默认值,除了CS寄存器的值改为0xFFFF,其他寄存器的值都为0,这样,根据CS 和 IP的值就可以找到指令的物理地址0xFFFF:0x0000。这时CPU就开始执行在这个位置开始执行,这里存放的一条无条件跳转指令跳转到BIOS...

2019-07-03 11:50:08 1404

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除