设计模式代码实现
单例模式
懒汉式单例
12345678910public class Hunger { //构造方法私有 private Hunger(){} //私有静态变量 private static final Hunger INSTANCE = new Hunger(); public static Hunger getInstance(){ return INSTANCE; }}
这种单例模式消耗资源,占用内存
饿汉式单例
1234567891011121314public class Lazy { private Lazy() { System.out.println(Thread.currentThread().getName() + "ok"); } private static Lazy INSTANCE; public static Lazy getInstance() { ...
总结
总结基础
修饰符范围
修饰符
范围
private
只允许本类访问
缺省(default)
允许本类,同包访问
protected
允许本类,同包,子类访问
public
允许本类,同包,子类,全局访问
包装类型的缓存
Byte,Short,Integer,Long存在[-128,127]的缓存,Character存在[0,127]的缓存,Boolean直接返回True、False
自动拆箱装箱
12Integer i = 10 //等价于 Integer i = Integer.valueof(10)int n = i //等价于 int n = i.intValue()
静态变量、成员变量、局部变量
静态变量:被static修饰的成员变量,全局只有一份(指的内存分配),所有实例共享,只分配一次内存,类加载时分配
成员变量:成员变量如果被static修饰则为静态变量属于类,反之属于实例,实例化时分配内存,存放在堆中,可以被public,private,static 等修饰符所修饰
局部变量:局部变量则存在于栈内存,局部变量不能被访问控 ...
Docker相关知识点
Docker实用篇0.学习目标1.初识Docker1.1.什么是Docker微服务虽然具备各种各样的优势,但服务的拆分通用给部署带来了很大的麻烦。
分布式系统中,依赖的组件非常多,不同组件之间部署时往往会产生一些冲突。
在数百上千台服务中重复部署,环境不一定一致,会遇到各种问题
1.1.1.应用部署的环境问题大型项目组件较多,运行环境也较为复杂,部署时会碰到一些问题:
依赖关系复杂,容易出现兼容性问题
开发、测试、生产环境有差异
例如一个项目中,部署时需要依赖于node.js、Redis、RabbitMQ、MySQL等,这些服务部署时所需要的函数库、依赖项各不相同,甚至会有冲突。给部署带来了极大的困难。
1.1.2.Docker解决依赖兼容问题而Docker确巧妙的解决了这些问题,Docker是如何实现的呢?
Docker为了解决依赖的兼容问题的,采用了两个手段:
将应用的Libs(函数库)、Deps(依赖)、配置与应用一起打包
将每个应用放到一个隔离容器去运行,避免互相干扰
这样打包好的应用包中,既包含应用本身,也保护应用所需要的Libs、Deps,无需再操作 ...
闭包相关知识点
闭包的定义
闭包是指有权限访问其他函数作用域的局部变量的一个函数
在JS中,变量的作用域属于函数的作用域,函数执行后作用域被清理、内存随之回收,由于闭包是建立在一个函数内部的子函数,由于其可访问上级作用域的原因,即使上级函数执行完,作用域也不会随之销毁,这时的子函数也就是闭包,拥有了访问上级作用域的变量的权限,即使上级函数执行完毕,作用域的值也不会被销毁。
本质上,闭包就是将函数内部和外部连接的桥梁
可以读取函数内部的变量
变量的值始终保存在内存
使用场景:
AJAX请求的成功回调
事件绑定回调方法
setTimeout的延时回调
函数内部返回了另一个匿名函数
12345678910function a(){ function b(){ var bb = 666 console.log(aa); //输出:333 } var aa = 333 return b}var demo = a()demo()
闭包的用途1.封装私有变量
123456789101112function add ...
JS-WEBAPI学习笔记
JS-WEBAPI学习笔记day1
const和let的使用
默认都使用const,除非你明确知道值会发生改变
123456789101112const num = 1num = 2 //不可改const arr = ['1','2','3']arr.push('4') //可以改,因为实际数组存放在堆,arr保存的是在数组在堆中的地址arr = [] //不可改const person = { name: 张三, age: 18}person.gender = 男 //可改,同理存放的地址
介绍
知道 ECMAScript 与 JavaScript 的关系,Web APIs 是浏览器扩展的功能。
严格意义上讲,我们在 JavaScript 阶段学习的知识绝大部分属于 ECMAScript 的知识体系,ECMAScript 简称 ES 它提供了一套语言标准规范,如变量、数据类型、表达式、语句、函数等语法规则都是由 ECMAScript 规定的。浏览器将 ECMAScr ...
CSS学习笔记
CSS学习笔记CSS样式添加方式
css样式添加方法
使用html标签样式化1234567891011121314151617181920<style> p, li { color: green; }</style><body> <h1>I am a level one heading</h1> <p>This is a paragraph of text. In the text is a <span>span element</span> and also a <a href="http://example.com">link</a>.</p> <p>This is the second paragraph. It contains an <em>emphasized</em> element.</p> <ul> ...