09 2020 档案
摘要:原理: 1-从启动类入口的run方法进入: public ConfigurableApplicationContext run(String... args) { -SpringApplicationRunListeners listeners = getRunListeners(args); -C
阅读全文
摘要:####世界大坑: 如果仅是使用 <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </
阅读全文
摘要:public class User { private Integer id; private String username; private String note; public User(Integer id, String username, String note) { this.id
阅读全文
摘要:在jdk8之后之前的方法区有叫做元数据。 每个JVM只有一个Runtime实例,即为运行时环境,相当于内存结构种的运行时数据区 线程 线程是一个程序里的运行单元,JVM允许一个应用有多个线程并行的执行 在Hotspot JVM里,每个线程都与操作系统的本地线程直接映射。 当一个java线程准备好执行
阅读全文
摘要:是什么 工作原理 例子 优势 什么是沙箱安全机制 其他知识 对类加载器的引用 类的主动使用和被动使用
阅读全文
摘要:public class ClassLoaderTest { public static void main(String[] args) { //获取系统类加载器 ClassLoader systemClassLoader = ClassLoader.getSystemClassLoader();
阅读全文
摘要:类加载子系统的作用 类加载器ClassLoader角色 类的加载过程(广义加载) 加载 加载.class文件的方式 连接Linker 初始化 注意:如果类种没有变量赋值动作和静态代码块的语句是不会有类构造器方法<clinit>
阅读全文
摘要:JVM整体结构: java代码的执行流程 JVM的架构模型 public class StackStruTest { public static void main(String[] args) { int i = 2 + 3; } } /* 反编译: javap -v StackStruTest.
阅读全文
摘要:因为父类里面的计算面积方法因为不同形状不同计算方法。所以父类里面不知道怎么写, 如果父类当中方法不确定如何进行方法体的实现,那么这就应该是一个抽象方法 /** * 抽象方法:加上abstract关键字,然后去掉大括号,直接分号结束 * 抽象类:抽象方法所在类,必须抽象类才行,再class之前写上ab
阅读全文
摘要:迪米特法则 迪米特法则(Law of Demeter,LoD)又叫作最少知识原则(Least Knowledge Principle,LKP) 只与你的直接朋友交谈,不跟“陌生人”说话 (Talk only to your immediate friends and not to strangers
阅读全文
摘要:接口隔离原则: 接口隔离原则(Interface Segregation Principle,ISP)要求程序员尽量将臃肿庞大的接口拆分成更小的和更具体的接口, 让接口中只包含客户感兴趣的方法。 客户端不应该被迫依赖于它不使用的方法 (Clients should not be forced to
阅读全文
摘要:单一职责原则 单一职责原则(Single Responsibility Principle,SRP)又称单一功能原则 规定一个类应该有且仅有一个引起它变化的原因,否则类应该被拆分 (There should never be more than one reason for a class to c
阅读全文
摘要:依赖倒置原则 依赖倒置原则(Dependence Inversion Principle,DIP) 原始定义: 高层模块不应该依赖低层模块,两者都应该依赖其抽象;抽象不应该依赖细节,细节应该依赖抽象 (High level modules shouldnot depend upon low leve
阅读全文
摘要:里氏替换原则 里氏替换原则(Liskov Substitution Principle,LSP) 继承必须确保超类所拥有的性质在子类中仍然成立 (Inheritance should ensure that any property proved about supertype objects al
阅读全文
摘要:什么是开闭原则 开闭原则(Open Closed Principle,OCP),软件实体应当对扩展开放,对修改关闭(Software entities should be open for extension,but closed for modification),这就是开闭原则的经典定义。 软件
阅读全文
摘要:什麽是設計模式?? 软件设计中常见问题的典型解决方案。 能根据需求进行调整的预制蓝图, 可用于解决代码中反复出现的设计问题。 模式并不是一段特定的代码, 而是解决特定问题的一般性概念。 你可以根据模式来实现符合自己程序实际所需的解决方案。 模式包含什麽 意图部分简单描述问题和解决方案。 动机部分将进
阅读全文
摘要:生成器模式Bulider 使你能够分步骤创建复杂对象。 该模式允许你使用相同的创建代码生成不同类型和形式的对象。 将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示。 将一个复杂的对象分解为多个简单的对象,然后一步一步构建而成。它将变与不变相分离, 即产品的组成部分是不变的,但每
阅读全文
摘要:抽象工廠模式AbstractFactory 一种创建型设计模式, 它能创建一系列相关的对象, 而无需指定其具体类。 工廠方法模式中考虑的是一类产品的生产,如畜牧场只养动物、电视机厂只生产电视机,同种类称为同等级 抽象工厂模式是工厂方法模式的升级版本,工厂方法模式只生产一个等级的产品,而抽象工厂模式可
阅读全文
摘要:工廠方法: 一种创建型设计模式, 其在父类中提供一个创建对象的方法, 允许子类决定实例化对象的类型。 定义一个创建产品对象的工厂接口,将产品对象的实际创建工作推迟到具体子工厂类当中。 这满足创建型模式中所要求的“创建与使用相分离”的特点。 解析: 被创建的对象称为“产品” 把创建产品的对象称为“工厂
阅读全文
摘要:原型模式 是一种创建型设计模式, 使你能够复制已有对象, 而又无需使代码依赖它们所属的类。 問題: 如果我們要複製一個類實例: 首先, 你必须新建一个属于相同类的对象。 然后, 你必须遍历原始对象的所有成员变量, 并将成员变量值复制到新对象中。 但是:并非所有对象都能通过这种方式进行复制, 因为有些
阅读全文
摘要:單例模式 一种创建型设计模式, 让你能够保证一个类只有一个实例, 并提供一个访问该实例的全局节点。 一个类只有一个实例,且该类能自行创建这个实例的一种模式。 簡單的對比就是: 例如,Windows 中只能打开一个任务管理器,这样可以避免因打开多个任务管理器窗口而造成内存资源的浪费,或出现各个窗口显示
阅读全文
摘要:@EventListener简单描述 简化我们编写监听类的步骤,不需要再继承ApplicationListener接口去实现onApplicationEvent了。 例子: @Component public class TestEventListener { @EventListener(clas
阅读全文
摘要:平常我们如何将Bean注入到容器当中 @Configuration @EnableConfigurationProperties(HelloProperties.class) public class HelloServiceAutoConfiguration { @Autowired HelloP
阅读全文
摘要:/** * System.getenv()是获取 环境变量(environment variables), * 系统层面的,好比我linux系统里的.bash_profile文件里面的变量 * 返回一个只读的 Map,不能进行添加或者修改 * * * System.getProperty()是获取
阅读全文
摘要:为什么需要ThreadLocal 多个线程对一个变量进行写入的时候,为了保证线程安全,一般使用者在访问共享变量的时候需要进行额外的同步措施才能保证线程安全性。 而线程安全是指 当多个线程访问某个方法时,不管你通过怎样的调用方式或者说这些线程如何交替的执行,我们在主程序中不需要去做任何的同步, 这个类
阅读全文
摘要:什么是BSD协议: BSD是"Berkeley Software Distribution"的缩写,意思是"伯克利软件发行版"。 BSD开源协议是一个给于使用者很大自由的协议。可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布 Redis 是基于内存的,所以运行速度很快,大约
阅读全文
摘要:处理器映射 11spring启动阶段就会将@RequestMapping所配置的内容保存到处理器映射HandlerMapping机制中去 22等待请求,通过拦截器拦截请求信息与HandlerMapping进行匹配并找到对应的处理器 33将处理器和按揭器保存到HandlerExecutionChain
阅读全文
摘要:什么是REST风格: Representational State Transfer :表现层状态转换,实际上是一种风格。标准,约定 首先需要有资源才能表现, 所以第一个名词是“ 资源”。有了资源也要根据需要以合适的形式表现资源,这就是第二个名词一一表现层。最后是资源可以被新增、修改、删除等,也就是
阅读全文
摘要:下载两个安装包并解压: 配置jdk环境变量: [root@VM-0-10-centos zookeeper]# cat /root/.bash_profile # .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; t
阅读全文
摘要:什么是一致性: 要站在集群的角度去思考问题: 一致性的分类: 强一致性:它要求系统写入什么,读出来的 弱一致性:不承诺立即可以读到写入的值,也不久承诺多久之后数据能够达到一致,但会尽可能地保证 到某个时间级别(比如秒级别)后,数据能够达到一致状态。 最终一致性: 系统会保证在一定时间内,能够达到一个
阅读全文
摘要:什么是测试?? 测试的分类?? 黑盒测试:不需要些代码,给输入值,看程序是否能够输出期望的值白盒测试:需要写代码,关注程序的具体的执行流程 Junit单元测试-百合测试 我们以前的测试: 要测试这个类的方法ok不 public class Calculator { public int add(in
阅读全文
摘要:/** * 方法引用格式: * 双冒号:: 引用运算符,它所在的表达式被称为方法引用。如果Lambda表达式 * 的函数方案已经存在于某个地方的实现中, * 》那么可以通过双冒号来引用改方法作为Lambda表达式的代替者 */ 例子: public class Demo01Print { priva
阅读全文
摘要:是什么?? 有且只有一个抽象方法的接口 场景: 适用于函数式编程场景(使用lambda表达式编程)的接口,函数式接口可以适用于lambda使用的接口。 只有确保接口中有且只有一个抽象方法,java中的lambda才能顺利推到 格式 /** * 函数式接口:有且之哟一个抽象方法的接口 * 接口中可以包
阅读全文
摘要:在哪里?? java.util.regex包下有两个用于正则表达式的类, 一个是Matcher类, 另一个Pattern 简单例子 public class RegexLeaning { public static void main(String[] args) { Pattern p = Pat
阅读全文
摘要:为什么需要引用; Java的内存回收不需要程序员负责,JVM会在必要时启动Java GC完成垃圾回收。 Java以便我们控制对象的生存周期,提供给了我们四种引用方式,引用强度从强到弱分别为:强引用、软引用、弱引用、虚引用。 强引用: StrongReference是Java的默认引用形式,使用时不需
阅读全文
摘要:第一种模式=直连 P:生产者,也就是要发送消息的程序 C:消费者:消息的接受者,会一直等待消息到来。 queue:消息队列,图中红色部分。类似一个邮箱,可以缓存消息;生产者向其中投递消息,消费者从其中取出消息。 producer: package com.quan.rabbitmq.producer
阅读全文
摘要:索引==数据库 类型==表 文档==表里面的记录 属性==表里面的列 使用RestFul风格elasticSearch进行操作 添加一个索引为megacorp,类型为employee,——id为1的文档 获得一个索引: 跟新文档,实际上也是用PUT 注意箭头的地方,每次对文档进行任何操作都会改变版本
阅读全文
摘要:什么是SPI 一种服务加载方式,全名为Service Provider Interface,Service提供者接口 如果我们要抽象里面的模块,在面对对象编程当中,我们模块之间,一般推荐模块之间基于接口编程,模块之间不对实现类进行硬编码。 一旦代码里涉及具体的实现类,就违反了可拔插的原则,如果需要替
阅读全文
摘要:Springboot扩展了Spring的ApplicatoionContextEvent,提供了事件: ApplicationStartingEvent:框架启动事件 ApplicationEnvironmentPreparedEvent: springboot 对应Evironment已经准备完毕
阅读全文

浙公网安备 33010602011771号