摘要: 在前面我们已经了解到如何创建线程,要么就重写Thread类的run方法,要么就实现Runnable接口的run方法,然后调用Thread类的start方法去启动它,可能我们发现了,最终执行的其实还是run方法里面的代码,那么为什么一定要通过start方法来调用呢?我直接调用run方法不就好了吗,正常思维情况下,确实是这样的,但是到底对不对,我们来做个试验;代码如下:public static vo... 阅读全文
posted @ 2020-04-14 20:09 那时候,车马慢 阅读(585) 评论(0) 推荐(0)
摘要: 这里我就直接给出答案实现Runnanle接口,并实现它的run方法继承Thread类,并重写它的run方法为什么说是两种,可能有小伙伴在网上搜索,发现可能各种说法都有,但是在Oracle的官方文档中明确的写了,创建线程的方式是两种,也就是我上面说的这两种。我们来看看这两种方式具体的用法Runnable方式/** * 使用Runnable方式创建线程 */public class RunnableS... 阅读全文
posted @ 2020-04-11 21:58 那时候,车马慢 阅读(703) 评论(0) 推荐(0)
摘要: 什么是池,我们在开发中经常会听到有线程池啊,数据库连接池等等。那么到底什么是池?其实很简单,装水的池子就叫水池嘛,用来装线程的池子就叫线程池(废话),就是我们把创建好的N个线程都放在一个池子里面,如果有需要,我们就去取,不用额外的再去手动创建了为什么要用线程池按照正常的想法是,我们需要一个线程,就去创建一个线程,这样的想法是没错的,但是如果需要有N多个线程呢?那把创建线程的代码复制N多份?或者用f... 阅读全文
posted @ 2020-03-12 01:09 那时候,车马慢 阅读(328) 评论(0) 推荐(0)
摘要: 我们这里就不说定义了,定义太抽象,说了也不一定能明白,我自己其实也记不住,我就直接说说我个人的理解,用白话文来表述打个比方,你要盖一栋房子,你得找个会盖房子的人来,它就是建造者,但是盖一栋什么样的房子呢,那就由你自己决定,比如,我要盖一栋3层高的房子,好,它就给你盖3层高,你说我不要电梯,只要楼梯,那就只有楼梯,你说房顶要尖的,那就是尖的,你说窗户要是圆形的,那窗户就圆形的适用场景对象内部组成过于... 阅读全文
posted @ 2020-03-11 20:47 那时候,车马慢 阅读(187) 评论(0) 推荐(0)
摘要: 定义抽象工厂提供一个创建一系列相关或相互依赖的对象的接口适用场景适合一系列产品同一产品族一起使用创建的场景产品族的概念可以到我写的另一篇关于工厂方法的博客中查看优点将一个系列的产品统一到一起进行创建缺点在规定了所有可能被创建的产品集合,想在产品集合中添加新的产品较困难,需要修改接口中的内容,违反了开闭原则增加了系统的抽象性与理解难度我们用具体的代码来看看抽象工厂到底是怎么样的吧我们用电子产品来举例... 阅读全文
posted @ 2020-03-10 22:33 那时候,车马慢 阅读(194) 评论(0) 推荐(0)
摘要: 定义定义一个创建对象的接口,但让实现这个接口的类来决定实例化哪个类,工厂方法让类的实例化推迟到子类中进行,光看定义肯定还不够明白到底是什么意思,别急,下面我们会用代码来告诉你工厂方法到底是怎么个一回事,我们先看看它的优缺点及使用场景优点完全符合开闭原则,对扩展是开放的,对修改是关闭的用户/应用层/客户端不再关心对象具体的实例化,其中具体细节对用户隐藏,很大程度上进行了代码的解耦缺点类的个数容易过多... 阅读全文
posted @ 2020-03-10 22:06 那时候,车马慢 阅读(327) 评论(0) 推荐(0)
摘要: 简单工厂其实不属于23种设计模式之中的,它只是工厂方法的一个相对简易的实现。优点相对简单不关心对象的具体创建,只要告诉工厂你需要什么即可缺点违反了开闭原则,在新增需求时还要去修改其内部代码适用场景适合需求新增或变更不频繁的业务,例如对接网络运营商,第三方支付公司这种只有几个,可控的范围内的,像英雄联盟这种就不适合了,经过这么多年的发展,已经有100多个英雄了,如果用简单工厂模式,那不得写100多个... 阅读全文
posted @ 2020-03-06 22:13 那时候,车马慢 阅读(254) 评论(0) 推荐(0)
摘要: RedisRedis官网:https://redis.io为什么需要引入redis?redis的主要作用,就是用来降低数据库的压力,将系统常用到的数据缓存到redis,那么下次用户再次进行访问的时候就可以直接从redis中获得数据并返回回去,就不用去请求数据库了redis命令行客户端的基本操作:redis-cli -a password shutdown: 关闭red... 阅读全文
posted @ 2020-03-06 13:28 那时候,车马慢 阅读(259) 评论(0) 推荐(0)
摘要: Nginx 什么是Nginx Nginx是一个高性能的HTTP服务器和反向代理web服务器,主要功能就是反向代理,通过配置文件可以实现负载均衡和集群,静态资源虚拟化 什么是反向代理 正向代理:客户端 > 代理服务器 > 目标服务器 > 内容返回 反向代理:用户请求目标服务器,由代理服务器决定将请求分 阅读全文
posted @ 2020-03-05 22:38 那时候,车马慢 阅读(399) 评论(0) 推荐(2)
摘要: Java的反射JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。简单来说,就是在程序运行期间,我们可以通过Java的反射机制来获取任意一个类的属性和方法,并且进行调用三种方式获取类的信息1.调用对象的getClass方法Users users = n... 阅读全文
posted @ 2020-03-01 20:21 那时候,车马慢 阅读(94) 评论(0) 推荐(0)