自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 里氏替换原则

LSP的原定义比较复杂,我们一般对里氏替换原则 LSP的解释为:子类对象能够替换父类对象,而程序逻辑不变。里氏替换原则有至少以下两种含义:1. 里氏替换原则是针对继承而言的,如果继承是为了实现代码重用,也就是为了共享方法,那么共享的父类方法就应该保持不变,不能被子类重新定义。子类只能通过新添加方法来扩展功能,父类和子类都可以实例化,而子类继承的方法和父类是一样的,父类调用方法的地方,子类也可以调用同一个继承得来的,逻辑和父类一致的方法,这时用子类对象将父类对象替换掉时,当然逻辑一致,相安无事。

2021-12-27 19:57:10 477

原创 什么是可重入锁

1、这个是 JDK @since 1.5 添加的一种颗粒度更小的锁,它完全可以替代 synchronized 关键字来实现它的所有功能,而且 ReentrantLock 锁的灵活度要远远大于 synchronized 关键字。2、从类结构图看出,ReentrantLock 实现了 Lock 接口,ReentrantLock 只是 Lock 接口的一个实现而已。它是 java.util.concurrent 包里面的内容(俗称 JUC、并发包),也都是 JDK 1.5 开始加入的。===.

2021-12-26 10:51:31 326

原创 设计模式出现的目的

设计模式的目的编写软件过程中,程序员面临着来自耦合性,内聚性以及可维护性,可扩展性,重用性,灵活性等多方面的挑战,设计模式是为了让程序(软件)具有更好的1)代码重用性(即:相同功能的代码,不用多次编写)2)可读性(即:编程规范性,便于其他程序员的阅读和理解3)可扩展性(即:当需要增加新的功能时,非常的方便,称为可维护4)可靠性(即:当我们增加新的功能后,对原来的功能没有影响5)使程序呈现高内聚,低耦合的特性分享金句:设计模式包含了面向对象的精髓,“懂了设计模式,你就懂了面向对

2021-12-25 17:17:18 652

原创 我们来理解一下这个synchronized锁是何方神圣

1、通过对一个对象进行加锁来实现同步2、对一个方法进行synchronized声明,进而对一个方法进行加锁来实现同步。3、无论是对一个对象进行加锁还是对一个方法进行加锁,实际上,都是对对象进行加锁也就是说,对于方式2,实际上虚拟机会根据synchronized修饰的是实例方法还是类方法,去取对应的实例对象或者Class对象来进行加锁。4、刚才我们说,锁实际上是加在对象上的,那么被加了锁的对象我们称之为锁对象,在java中,任何一个对象都能成为锁对象。java对象在内存中的存储结构主要有一

2021-12-25 17:12:54 303

原创 线程和进程的区别

1、进程的概念指在系统中正在运行的一个应用程序,程序一旦运行就是一个进程,进程是计算机系统进行资源分配的最小单位。2、线程的概念线程是操作系统能够进行运算调度的最小单位,被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。注意:一定要区分资源分配的最小单位和运算调度的最小单位的区别,这是很多的初学者容易搞混的地方。3、线程和进程的区别:(1)、定义不一样,进程是执行中的段程序,而一个进程中执行中的

2021-12-08 11:13:38 217

原创 th标签内的Cannot resolve ‘msg‘爆红出现的问题

msg下 有红色问题提示解决办法:在该代码的上一行添加一句<!--@thymesVar id="msg" type="String"--> 注释即可如下图·:

2021-05-29 15:09:33 3306 4

空空如也

空空如也

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

TA关注的人

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