单例模式
单例模式 - 大话设计模式*每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。*
单例模式(Singleton)
保证一个类仅有一个实例, 并提供一个访问的全局访问点[^ DP]
为了不实例化出多个对象,让类自身负责保存他的唯一实例. 这个类可以保证没有其他实例可以被创建, 并且他可以提供一个访问该实例的方法
单例模式
单例模式因为Singleton类封装了他唯一的实现类, 可以严格控制客户怎样访问以及何时访问它.—对唯一实例的受控访问
示例代码:
java
1234567891011public class Singleton { private static Singleton instance; // private的实例变量 private Singleton() { System.out.println("you win!!!"); } // 私有的构造方法 让其他类不能访问 public static Singleton getInstance() ...
Java8新特性
[toc]
image-20200923231111293
Java8新特性Lamda表达式
λ表达式:
本质上也是函数式编程:
java
123(params) -> expression[表达式](params) -> statement[语句](params) -> {statements}
使用原因
避免匿名内部类过多
代码看上去简洁
去掉了冗余的代码,留下核心逻辑
使用前提:
一定是Function Interface(函数式接口) — Function Interface定义: 任何接口如果只包含唯一一个抽象方法, 那么这就是个函数式接口. 例如 Runnable
例子:
java
123456789101112131415161718192021222324// 写一个函数式接口public Interface TestInterface{ public void testmethod();}// 用lamda创建接口对象public static void main(String[] ar ...
JAVA反射机制
反射反射概述动静态语言
动态语言
运行时可以改变其结构的语言:Object-c, C#, JavaScript, PHP, Python等
静态语言
运行时结构不可变的语言:Java,C,C++
但是! Java虽不是动态语言, 但可以称为“准动态语言”. 因为Java有一定的动态性,可以利用Java的反射机制获得动态语言的特性. 可以让编程更灵活
Reflection
Reflection(反射) 是Java被视为动态语言的关键.反射机制是程序执行期间借助于Reflection API获取到任何类的内部信息,并能直接操作任意对象的内部属性和方法
加载完类之后, 在堆内存的方法去中就产生了一个Class类型的对象(对于每个类是唯一一个), 这个对象包含了完整的类的结构信息. 通过这个对象看到类的结构. 这个对象像个镜子, 透过这个镜子看到了类的结构 ,所以我们叫反射
image.png
JAVA反射机制的优缺点
优点: 很明显它实现了动态创建和编译, 大大增加灵活性
缺点: 对性能有影响,. 因为反射是一个解释操作, 告诉JVM,我们需要做什么来完成操作. 肯定慢于 ...
JAVA注解
注解基本概述
Annotation(注解):
作用:
对程序作出解释(和注释(comment)一样)
可以被其他程序读取(编译器等)
格式 – @注释名(参数)
作用于package/class/method/field等上, 给他们添加了额外的辅助信息,可以通过反射机制对这些元数据进行访问
部分常见注解
@Override: 重写超累的方法
@Deprecated: 定义为废弃的,不推荐使用, 或者有更好的选择
SuppressWarnings:
用来抑制编译时 的警告信息(强迫症福利??) 有参数:
(“all”)/(“Unchecked”)/(value = {“unchecked”,”deprecation”})
元注解
元注解(Meta-Annotation) 用来注解其他注解, java提供了四个标准元注解
这些类型和支持的类在(java.lang.annotation)包中
@Target: 描述作用范围
@Retention: 表示保存注释的级别, 描述注释的生命周期(SOUR ...
pe系统盘解锁密码(开启安全引导后密码错误)
pe系统盘解锁密码(开启安全引导后密码错误)
经历呢就是为了删掉某垃圾管家顽固的残留文件, 百度很多都说可以更改安全引导; 然后就登陆不进去了:sob:
登录的用户id变成了我的微软账户名; 输入什么密码都不对(贴吧很多人说是微软密码; 但是无法联网,也没法验证对不对)
于是贴吧里的一个帖子: 博主名字:山月
img
找出一个U盘,把U盘文件备份
用另一台电脑,插入U盘,下载微pe系统到U盘,具体可见百度经验https://jingyan.baidu.com/article/6fb756ec44a2cb241858fbfe.html
你的那台忘记密码的电脑,重启,进入bios菜单,进入满屏幕英文—然后选择USB storage device,回车
进入微pe系统界面,点dism+,,出现什么都点接受,然后进入专家模式,选择另一个盘,——恢复功能,引导修复
你会神奇的发现—它能用PIN码进入了
JAVA的JUC
[toc]
JUCJUC是啥 / 为什么要用JUC
image-20200903222641670
JUC是在线程的基础上 为了高效解决并发问题 并且充分利用cpu
并发: 多个线程操作一个共同资源 – cpu, 模拟出来多个线程, 只要切换执行的快 那就是牛逼!!!! (本质是交替执行)
并行: 和串行相反 大家并排一起走 – 多核cpu
java
12// java代码看一下自己的 处理器数量System.out.println(Runtime.getRuntime().availableProcessors());
image.png
线程的基础可以看这里
LOCK锁例子:
java
12345678910// 用lock代替synchronizedprivate Lock lock = new ReentrantLock();lock.lock();try { // 业务逻辑} catch (Exception e) { e.printStackTrace();} finally { lo ...
Spring事务
事务事务说明
什么是事务
事务式代表单个工作单元的一组SQL语句.
所有这些语句都应该成功完成, 否则事务会运行失败.
我们在需要对数据库进行多次更改的情况下使用事务
四大特性(ACID)
Atomicity: 原子性 每个事物不可分割
Consistency: 一致性 : 使用事务 数据库始终保持一致的状态
完整约束
Isolation: 隔离性 事物之间不可干扰
锁行
如果多个事务想要更新相同的数据
受影响的行会被锁定
因此只有一个事务可以更新行
Durability: 持续性 一旦提交 事务的更改是永久的
Mysql对事务处理
mysql会封装我们写的sql 如果检查无误自动提交
mysql自动提交属性
mysql innodb引擎已经通过MVCC、间隙锁&临键锁解决了可重复读隔离级别下的幻读问题
事务实现技术/原理
image.png
事务的实现原理
事务的
原子性 通过undo log
实现
undo log : 操作任何数据之前,将数据备份到一个地方 (Undo log). 然后进行数据修改. 如果出现错误或者执行Rol ...
xx-net 访问Google
xx-net 访问Google访问google
下载XX-net: github地址
下载稳定版解压(尽量不要有中文)运行 Star.bat/star.vbs
然后 提示安装证书 – 就入了浏览器 – 点击状态 – 如果未连接:
设置ipv6(
也可以先造作这步骤
)
打开 xx-Net/code/default/gae_proxy/local/ipv6_tunnel 下的enable_ipv6 打开自动设置
如果状态时链接那么就可以使用了
当然用的是共有的appid 会有限制 可以自己配置Google appid: 点击这里是官方教程 我没有信用卡就先将就了:sob:
maven
mavenMaven1.Maven是啥
Maven还是很强大的:
项目继承(在多个模块的项目中很好用的)
解决jar冲突
自动导入jar(从本地库寻找如果没有–会自动去中央仓库下载)
依赖配置地址
生命周期
Maven生命周期
2. 安装安装看这个 把镜像和本地库地址配置了就好
3. 自动配置
常用的三中模式
java
1231、cocoon-22-archetype-webapp -- 2、maven-archetype-quickstart -- 73、maven-archetype-webapp -- 10
其他的可以看这里
java
1234'groupId': 公司名'artifactId': 项目名字'version': 版本 (默认是 1.0-SNAPSHOT)'package': com.sjs:包名
Maven通过’groupId’, ‘artifactId’, ‘version’来定位 项目/类库 坐标
4. cmd配置(命令自动生 ...
观察者模式
观察者模式观察者例子一个气象台 想要几个显示器 , 数据从weather对象中获取 如果 weather 数据更新 显示器要更新对应数据
显示器就是观察者 而气象台的数据weather 就是通知者(主题对象)
java
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354/** * @author SunJusong * 观察者部分 * @date 2020年 08月27日 23:17:48 */public class Obs implements Observer, DisPlay { float temp; // 温度 float humidity; // 湿度 float pressur; // 气压 private Subject weather; // 天气对象 public Obs(Subject sub) { this.weather = sub; ...