结构型模式笔记
适配器模式思维导图
大概流程:
代码实现
这里情景是 ChinaLapTop 需求 Electric220V 但是没有,只有现成的 Electric110V,那么我们就建立一个适配器 Adapter,将被适配者 Electric110V 适配为 Electric220V。
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253public class UseComputer { public static void main(String[] args) { ChinaLapTop laptop=new ChinaLapTop(); // 这里模拟从中国带去美国的笔记本,需要 220V 的电源(ChinaElectric) // 但是没有,只有 110V 的电源(AmericaElectric) // 使用适配器将已有的资源转化为需要的资源 Ele ...
创建型模式笔记
概述
创建型模式的核心就是通过将创建对象和使用对象分离开来,去关注于怎样去创建一个对象。
单列模式思维导图
UML 图
懒汉式单列实现代码12345678910111213class LazyXorex { private static volatile LazyXorex instance=null; // instance 一定要通过 volatile 即使写入内存中! private LazyXorex() { } // 方法也要被锁住,方式多创建了实例 public static synchronized LazyXorex getInstance() { if(instance==null) { instance=new LazyXorex(); } return instance; }}
饿汉式单列实现代码12345678910class HungryXorex { p ...
笔记计划 2.0
关于笔记记录的一点思考今天在记录创建型模式的时候发现这种需要大段文字描述的知识点并不适合使用思维导图,所以后面讲解设计模式具体的案例的时候,会重新回归笔记的方式,emmmm,或者说是,笔记+思维导图。
自己以前好像一直在滥用思维导图,现在想想思维导图应该是为了帮助自己更加清晰的梳理关系,归纳知识点,而不是一味的将所有的学习内容都用思维导图罗列表示出来。
所以应该两者一起使用,并再多学习一些 XMind 的模板,主要将思维导图作为关系展示图。而对于详细某些知识点的理解,应该还是要用文字和代码一起说明。
新的笔记应该聚焦于一些核心知识点的记录,而不是用来引导萌新的新手教程,尽可能写的简练而又全面。笔记的目的是为了自己以后遗忘了某块知识,需要查阅的时候,可以快速定位并快速提取出来需要的信息。
目前的打算是,对于一个全新的知识点,首先有一个概览笔记,主要是梳理所有内容的联系和一些基本名词的解释,然后再用若干篇小文章来分别阐述不同的具体知识。而对于一些类的方法的列出,或者命令的集合,还是使用思维导图比较合适归纳。
设计模式原则思维导图
设计模式原则一句话概括:
设计原则
一句话归纳
目的
开闭原则
对扩展开放,对修改关闭
降低维护带来的新风险
依赖倒置原则
高层不应该依赖低层,要面向接口编程
更利于代码结构的升级扩展
单一职责原则
一个类只干一件事,实现类要单一
便于理解,提高代码的可读性
接口隔离原则
一个接口只干一件事,接口要精简单一
功能解耦,高聚合、低耦合
迪米特法则(最小认知原则)
不该知道的不要知道,一个类应该保持对其它对象最少的了解,降低耦合度
只和朋友交流,不和陌生人说话,减少代码臃肿
里氏替换原则
不要破坏继承体系,子类重写方法功能发生改变,不应该影响父类方法的含义
防止继承泛滥
合成复用原则
尽量使用组合或者聚合关系实现代码复用,少使用继承
降低代码耦合
中文编码与开发
前言
其实原本是想写一个 Java 脚本来帮我处理下载视频的名字更改,但是因为编码的问题让我非常生气,Windows 文件用 GBK 编码,再加上和 char 的 Unicode、String 的 byte[] 以及输入法输入的编码问题,直接把我搞蒙了,String 自带的一些方法用的云里雾里,能否正确全看玄学。为了能够一劳永逸的解决中文编码问题,于是此文就这样诞生了。
编码发展历史ASCII 编码时代最开始的开始,因为计算机发明在美国,所以计算机的字符是使用 ASCII 作为编码方式的,这让英语系国家们用的很开心,只需要 1 个字节就可以轻松的表示自己所有的字符,只占用 0-127,其中有 33 个控制字符,94 个可显字符。
后来,为了加入一些其他必要的符号,比如带重音的字母(法国人狂喜),希腊字母(希腊人狂喜),特殊的拉丁符号(罗马人狂喜),特殊的计算符号(科学家狂喜)等等等等。欧洲的发达国家开始打 ASCII 没有使用到的 128-255 这个区间的主意,出现了一堆各种各样的 EASCII 编码方式,即拓展 ASCII,用的比较多的有两个:OEM EASCII 和 ANSI ...
Java 函数式编程
函数式编程
搞了两天的函数式编程终于弄完了,也明白了这种设计方法和理念,下一步,Java 设计模式!
JDBC 思维导图
JDBC 思维导图
在 Java 中,如何用代码和数据库进行交互呢?JDBC 告诉你答案!
CallableStatement这里补充一个语句执行的方法,CallableStatement,这个是继承于 PreparedStatement,表示通过调用数据库里面保存的 存储过程 执行语句的。
数据库中的存储过程其实就是一段抽出来的 SQL 语句,封装成一个 SQL 固定方法,被叫做存储过程。
而 CallableStatement 就是用来执行这些被封装起来的 SQL 语句的。
SQL 基本语句思维导图
SQL 基本语句思维导图
其实暑假学习安全的时候,就学过一部分 SQL 的相关语句,但是都忘了,好在有了前面的基础,很快就复习好了,并且完成了这个思维导图,感觉更清晰了一点。
MySQL 数据库概念思维导图
MySQL 数据库概念思维导图
还是要了解一下什么是数据库才好啊!!!
TodoList:2021-03
关于我寒假里面学习效率过低的问题
因为想了想自己好像年后基本上就没怎么学东西了,即使看上去学习时间很长,但是效率真的是有些惨不忍睹,所以想了想还是需要努力提高自己的效率问题。那么大概总结了以后在学习的过程中,一些需要注意的方面。而每天结束的时候,都要看一看自己是否做到了下面的注意事项,最后将一天的学习内容和完成度记录下来,不断的提高自己的学习能力。加油,要成为一名优秀的软件工程师啊!
保证清醒的时间
寒假光睡觉估计快把自己给睡傻了。所以以后作息必须严格要求自己,晚上 12:00 必须准时睡觉,寝室里小伙伴们在打游戏的话那可以适当的推迟睡觉的时间,然后按照保证大概 7.5 小时的晚上睡眠时间来规划早上起床的时间,保证不赖床!!!
要有足够的休息。
因为常常因为在出现问题的时候,会忍不住尝试一口气解决它,然后就会盯着屏幕看好几个小时,眼睛感到酸涩,头晕脑胀也舍不得停下来。但这实际上是降低了解决问题的效率的,还会有损身体健康,所以必须在软件绿屏的时候,停下来自己手头正在做的事情,去休息一小段时间。(刚刚在写下这段文字的时候就做到了,好耶!)
要真正学懂里面的内容
其实就是对 ...