自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 收藏
  • 关注

转载 Gradle 下载速度慢的问题

Gradle 下载速度慢的问题2020-10-12 深圳尝试使用国内的代理仓库"https://maven.aliyun.com/repository/jcenter""https://maven.aliyun.com/repository/google""https://maven.aliyun.com/nexus/content/groups/public"完整片段repositories {// google()// mavenLocal() maven

2020-10-12 08:58:48 265 3

原创 Java 浅拷贝和深拷贝

在Java中, 类可以通过实现 Cloneable 接口来实现.但是由此方法拷贝的对象是浅拷贝. 具体地说, 对于对象内部的基本类型是深拷贝, 而引用类型是浅拷贝.查看以下代码: (省略constructor, getter, setter, toString…)1 package prototype;2 3 import java.io.Serializable;4 5 public class Bar implements Serializable {6 private Stri

2020-08-26 08:34:07 115

原创 SpringBoot 整合 Mybatis

SpringBoot 整合 Mybatis深圳 20200817开发环境: mysql 8.0.21, maven文章目录SpringBoot 整合 Mybatis1 逆向工程1.1 导包1.2 生成代码的 plugin1.3 写配置文件1.4 运行生成2. 使用2.1 加注解后使用1 逆向工程1.1 导包导包是一个很简单的环节除了一些其他功能的包, 与本主题相关的包为mysql 包spring 整合 mybatis 的包<dependency> <group

2020-08-17 11:29:10 152

原创 设计模式 - 工厂方法模式

设计模式 - 工厂方法模式佛山 2020-08-09简单工厂 vs 工厂方法简单工厂模式的最大优势在于工厂类中包含了必要的判断逻辑,根据客户端的选择条件动态实例化相关的类,对于客户端来说,去除了与具体产品中的依赖。工厂方法克服了简单工厂违背开放-封闭原则的缺点,又保持了封装对象创建过程的优点。工厂方法的缺点:每加一个产品,就需要加一个产品工厂的类,增加了额外的开发量。基本定义工厂方法模式(Factory Method):定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使

2020-08-09 11:49:27 84

转载 软件版本号定义规范

软件版本号定义规范GNU 风格的版本号命名格式版本格式:主版本号.子版本号[.修正版本号[.编译版本号]]主版本号:做了不兼容的 API 修改子版本号:做了向下兼容的功能性新增修订号:做了向下兼容的问题修正编译版本号:编译器在编译过程中自动生成;其中包含日期版本号和希腊字母版本号日期版本号 和 希腊字母版本号日期版本号:记录修改的当前日期希腊字母版本号:标注当前版本的软件处于哪个开发阶段α\alphaα:内测版 - 此版本表示该软件在此阶段主要是以实现软件功能为主,通常只在软件开

2020-08-03 14:57:44 393

转载 MySQL 中 ON DELETE 的默认行为

http://codingdict.com/questions/20830On DELETE 后可以有5中行为:SET NULLNO ACTIONRESTRICTCASCADESET DEFAULT其中 NO ACTION 和 RESTRICT 会做相同的事情:防止破坏FK的任何数据库更改。如果省略ON DELETE子句,则表示NO ACTION(或RESTRICT -是相同的操作)。...

2020-08-03 10:50:00 302

原创 设计模式 - 代理模式

设计模式 - 代理模式深圳 2020/08/02UML图代理模式 ( Proxy ), 为其他对象提供一种代理以控制对这个对象的访问.package proxy.generic;public interface Subject { void request();}package proxy.generic;public class RealSubject implements Subject { @Override public void reques

2020-08-02 23:27:02 89

转载 Mac 使用 brew 安装 OpenJDK

Mac 使用 brew 安装 OpenJDK参考资料:https://blog.csdn.net/bucketli1987/article/details/99707475假设已经安装了 brew更新库brew tap AdoptOpenJDK/openjdk搜索brew search /adoptopenjdk/选择一个版本安装brew cask install adoptopenjdk{versionNumber}默认安装目录是 /Library/Java/JavaVirtu

2020-08-01 00:11:53 3172

原创 Mybatis - 简单使用

Mybatis 使用开发环境: maven 项目, mysql 数据库, java 8.项目结构project: pom.xml src: main: java: ca.wd4.learn: entity: User.java mapper: UserMapper.java UserMapperTest.java resources: mapper: UserMapper.xml mybatis

2020-07-28 21:48:57 89

原创 设计模式 - 装饰模式

设计模式 - 装饰模式动态地给一个对象添加一些额外的职责. 就增加功能来说, 装饰模式比生成子类更加灵活.UML 图巧变如果只有一个 ConcreteComponent 类(, 没有抽象类), 那 Decorator 类可以直接继承这个 ConcreteComponent 类.同理, 如果只有一个 ConcreteDecorator 类, 则可以省略抽象的 Decorator 类.代码示例抽象一点的Component 类package decorator.general;pu

2020-07-28 21:13:56 123

原创 设计模式 - 依赖倒置原则

设计模式 - 依赖倒置原则抽象不应该依赖细节, 细节应该依赖抽象.要针对接口编程, 不要对实现编程.

2020-07-28 21:12:25 76

原创 设计模式 - 单一职责原则 & 开放-封闭原则

单一职责原则 & 开放-封闭原则单一职责原则“一个产品简单一些, 职责单一一些, 或许是更好的选择.”单一职责原则, 就一个类而言, 应该仅有一个引起它变化的原因.如果一个类承担的职责过多, 就等于把这些职责耦合在一起, 一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力. 这种耦合会导致脆弱的设计, 当发生变化时, 设计会遭受到意想不到的破坏.软件设计真正要做的许多内容, 就是发现职责并把这些职责相互分离.开放-封闭原则“对于扩展开放, 对于更改封闭”无论模块是多么的

2020-07-27 19:29:12 123

原创 设计模式 - 策略模式

设计模式 - 策略模式类图解析策略模式是一种定义一系列算法的方法, 从概念上看, 所有的这些算法完成的都是相同的工作, 只是实现不同. 他可以用同样的方式调用任意的一个算法, 减少了算法类与使用算法类之间的耦合.策略模式中的 Strategy 类层为 Context 定义了一系列可供重用的算法或行为. 继承有处于析取这些算法中的公共功能.简化了单元测试, 因为每个算法都有自己的类, 可以通过自己的接口单独测试.只要在分析的过程中听到需要在不同时间应用不同的业务规则, 就可以考虑

2020-07-24 23:24:15 67

原创 Java 并发 - 初步了解线程池

Java 并发 - 初步了解线程池20200721佛山线程池解决了什么问题?显著减少了处理器单元的闲置时间, 增加处理器单元的吞吐能力.假设一个服务器完成一项任务的时间为创建线程的时间(T1)+在线程中执行任务的时间(T2)+销毁线程的时间(T3) 创建线程的时间 (T_1) + 在线程中执行任务的时间 (T_2) + 销毁线程的时间 (T_3) 创建线程的时间(T1​)+在线程中执行任务的时间(T2​)+销毁线程的时间(T3​)如果 T1+T2≫T3T_1+T_2\gg T_3T1

2020-07-21 18:44:32 72

转载 Java 序列化和反序列化

一直对 Java 中的序列化和反序列化有疑惑:序列化和反序列化有什么用?怎么进行对象的序列化和反序列化?被序列化的类代码中的 serialVersionUID 有什么用?下面的这篇来自CodeSheep的文章很好地回答了这些问题。我来做一个小小的总结:序列化和反序列化有什么用?序列化可以把一个对象转换成字节序列,然后存储在磁盘中。反序列化顾名思义就是序列化的一个逆过程,即将一个字节序列还原成一个对象。那么为什么要把一个对象以字节序列的格式存储在磁盘中呢?那是因为,首先,我们可以永久地存储一个对象的信息

2020-07-18 18:39:23 86

原创 Java 反射 - 调用任意方法和构造器

Java 反射 - 调用任意方法和构造器反射机制使得我们调用任意的方法.Method 类中有一个 invoke 方法, 允许我们调用包装在该对象中的方法.Object invoke(Object obj, Object… args)对于静态方法, 第一个参数可以省略, 也就是设成 null使用示例Employee e = new Employee("lalala");Method m = e.getClass().getMethod("getName");System.out.print

2020-07-15 15:58:06 216

原创 Java 反射 - 使用反射编写泛型数组代码

Java 反射 - 使用反射编写泛型数组代码复制一个数组, 可以使用 Arrays 类的 copyOf 方法.var employees = new Employee[] { new Employee("lalala"), new Employee("hehehe")};var newEmployees = (Employee[]) Arrays.copyOf(employees, 4); for (Employee e : newEmployees) { Syst

2020-07-15 15:14:48 183

原创 Java 反射 - `Class` 类

Java 反射 - Class 类在程序运行期间, 系统始终为所有对象维护一个 运行时类型标识. 这个信息会跟踪每个对象所属的类. 虚拟机利用运行时类型信息选择要执行的正确的方法.Class 类被用于访问这些信息.Employee e;...Class cl = e.getClass();Class 对象会描述一个特定类的属性.获得 Class 对象的三种方法public final native Class<?> getClass();static Class<?&

2020-07-15 15:13:13 126

原创 Java 反射 - 在运行时分析对象

Java 反射 - 在运行时分析对象获取值先看一段获取字段信息的代码:var harry = new Employee("harry hacker", 50000);Class cl = harry.getClass();Field f = cl.getDeclaredField("name");Object obj = f.get(harry); // 个人理解: 通常访问一个字段, 要求从一个具体的对象出发; // 而现在从类出发, 先获取类对象, 然后获取我们想要获取的字段(在类中的

2020-07-15 15:12:36 203

原创 Java 反射 - 利用反射分析类的能力

Java 反射 - 利用反射分析类的能力在 java.lang.reflect 包中有三个类: Field, Method, Constructor,分别用于描述类的字段, 方法和构造器.三个类都有 getName() 方法, 用来返回字段, 方法和构造器的名称.Field 类有一个 getType 方法java.lang.reflect.Fieldpublic Class<?> getType(); // 返回描述字段类型的一个对象Method 类和 Constru

2020-07-15 15:12:02 291

原创 Java 反射 - 总览

Java 反射 - 总览反射是 Java 的一个库, 提供了工具集, 可以用来编写 动态操作 java 代码 的程序.能够分析类能力的程序成为 反射.反射能够做到:在运行时分析类的能力在运行时检查对象实现泛型数组操作代码主要是开发工具的程序员对它感兴趣....

2020-07-15 15:11:16 87

原创 Java IO 流 - BufferedReader/Writer 用法

Java IO - BufferedReader/Writer20200711 佛山使用示例package july11;import java.io.*;public class BufferedFileReaderWriterDemo { public static void main(String[] args) { var srcFile = new File("hello.txt"); var desFile = new File("hel

2020-07-11 11:29:02 109

原创 Java IO 流 - 缓冲流

BufferedInputStream;BufferedOutputStream;BufferedReader;BufferedWriter;提高读写的效率.能够提高读写速度的原因: 内部提供了一个缓冲区.BufferedInputStream 源码private static int DEFAULT_BUFFER_SIZE = 8192; 以下代码可以复制一个文件package july11;import java.io.*;public class BufferedStre

2020-07-11 11:17:55 148

原创 Java IO 流 - 使用 `FileReader` 和`FileWriter` 实现文本的复制

20200709 杭州package july09;import java.io.*;public class FileCopyer { //定义一个缓冲数组的大小 private static int BUFFER_SIZE = 1024; /** * * 将一个文本文件复制到一个新的文件. 新文件的绝对路径不可以和源文件的绝对路径相同. * 如果目标文件不存在, 就会创建新文件. 如果复制成功, 就返回 true, 否则返回 false. *.

2020-07-11 07:15:35 171

原创 Java IO 流 - FileWriter

20200706 大雨 上海建国宾馆/*** Writes a string.** @param str* String to be written** @throws IOException* If an I/O error occurs*/public void write(String str) throws IOException;20200708 阵雨 上海使用示例# 用以下方式构造的writer对象在每次写文件会覆盖原有的.

2020-07-08 17:58:34 107

原创 Java IO 流 - FileReader

Java IO 流 - FileReader20200706 大雨 上海建国宾馆/*** 一个字符一个字符地读, 如果是流的末尾, 返回-1, 否则返回一个字符的值.**/public int read() throws IOException;FileReader reader = null;try { File file = new File("hello1.txt"); reader = new FileReader(file); int data;

2020-07-07 07:41:59 80

原创 Java IO 流 -总览

Java IO 流20200706 大雨https://www.bilibili.com/video/BV1Qb411g7cz?p=584输入: 读取外部数据到内存中输出: 将程序数据输出到磁盘, 光盘等设备中流的分类按操作数据单位, 可以分为: 字节流 (8bit = 1byte), 字符流 (16bit = 1char);按数据流的流向, 可以分为: 输入流, 输出流按流的角色, 可以分为: 节点流, 处理流字节流字符流输入流InputStr

2020-07-07 07:41:13 108

原创 Java IO 流 - File 类

Java IO 流 - File 类File 类的一个对象, 代表一个文件或者目录, 在 java.io 包中.1 构造器File(String pathname);// pathname 如果是相对路径, 那么该相对路径指的是当前module的路径File(File parent, String child);File(String parent, String child);2 常量路径分隔符public static final String separator; //根据操作系统

2020-07-07 07:40:12 72

原创 “金枝玉叶“ 观后感

2020/07/04/08:00这是一部由 陈可辛 导演, 由 张国荣, 刘嘉玲, 袁咏仪 主演的爱情片 (, 有同性的成分).之所以会有看这部电影的想法, 是因为个人比较喜欢 张国荣 的歌曲 "追". 当时我在刷百度贴吧, 看到了这部电影的一个片段. 剧情大概是林子颖 (袁咏仪 饰) 用食指在钢琴上敲击了一段简单的旋律, 家明 (张国荣 饰) 听后, 灵感迸发, 随即坐在子颖的身边, 开始在这段旋律的基础上进行即兴创作. 当时的我真的被深深地吸引了, 原来钢琴弹唱**可以如此帅气…电影整体是偏.

2020-07-04 09:38:47 242

原创 Spring in Action 5th edition Chapter 4

Chapter 4How to enable securityConfig User AuthenticationConfig UrlHow to get the current userHow to enable securityadd the following dependency<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-b

2020-07-01 18:20:28 125

原创 Spring in Action 5th edition Chapter 1 & 2

Chapter I & IIHow to write a controllerHow to write a templateHow to add attributes to Model objectHow to perform validationHow to write a “controller” which does simple thingsHow to write a controller@Controller@RequestMapping("/path")publi

2020-07-01 18:19:34 115

原创 Spring in Action 5th edition Chapter 3

Chapter 3Core QuestionsHow to use JdbcTemplateinsertselectHow to use SimpleJdbcInsertHow to get the generated keyusing JdbcTemplateusing SimpleJdbcInsertWhat is the difference between JDBC and JPA.How to use JdbcTemplate@Repositorypubli

2020-07-01 18:17:48 151 1

原创 剑指Offer : 面试题 3 - 数组中重复的数字

剑指Offer : 面试题 3 - 数组中重复的数字题目找出数组中重复的数字在一个长度为 nnn 的数组里的所有的数字都在 n−1n-1n−1 的范围内. 数组中某些数字是重复的, 但不知道有几个数字重复了, 也不知道每个数字重复了几次. 请找出数组中任意一个重复的数字.例,​ 输入: {2, 3, 1, 0, 2, 5, 3}​ 输出: 2 或 3我的解法思路一创建一个长度为 nnn 数组 aux, 下标 iii 表示数字 iii 出现过的次数. 遍历数组, 如果 aux[i] 的值

2020-07-01 16:33:55 116

原创 算法第四版 第二章 快速排序

5 快速排序5.1 原理快速排序是一种 分治 的排序算法. 它将一个数组分成两个子数组, 将两部分独立地排序.快速排序和归并排序是互补的:归并排序将数组分成两个子数组分别排序, 并将有序的子数组归并以将整个数组排序;快速排序将数组排序的方式则是当两个子数组都有序时整个数组也就自然有序了.在第一种情况中, 递归调用发生在处理整个数组之前;在第二种情况中, 递归调用发生在处理整个数组之后.在归并排序中, 一个数组被等分为两半;在快速排序中, 切分 (partition) 的位置取决于数组的内

2020-06-28 21:00:04 197

原创 算法第四版 第二章 归并排序

4 归并排序 merge sort4.1 原理需要将一个数组排序, 可以先 (递归地) 将它分成两半分别排序, 然后将结果归并起来.4.1.1 优点能够保证将任意长度 NNN 的数组排序所需时间和 Nlog⁡NN\log NNlogN 成正比.4.1.2 缺点所需的额外空间和 NNN 成正比.4.2 归并实现public static void merge(Comparable[] a, int lo, int mid, int hi) { int i=lo, j = mid+1;

2020-06-28 09:52:44 138

原创 i++和 ++i

i++ 和 ++i++i : 先加1再做别的事情; (自私的人, 自己的事情优先)i++ : 先做别的事情再加1.例:int i = 0;System.out.println(++i); //输出 1int i = 0;System.out.println(i++); //输出 0

2020-06-28 09:03:18 122

原创 算法第四版 第二章 初级排序算法

第二章 排序1 总览1.1 排序算法的模板public class Example { public static void sort(Comparable[] a) { /*排序代码*/ } private static boolean less(Comparable v, Comparable w) { return v.compareTo(w)<0; } private static void exch(Comparable[] a, int i, int j) { C

2020-06-27 15:56:51 233

原创 XorLinkedList C 实现

这是我的GitHub关于XorLinkList的链接:https://github.com/Darin1123/XorLinkedList有兴趣的话可以看一下

2019-06-29 23:03:51 151

原创 PHP localhost

PHP 手册链接:https://www.php.net/manual/en/features.commandline.webserver.php在终端输入以下命令:MyMac:~ Darin$ mkdir localhost_repoMyMac:~ Darin$ cd localhost_repoMyMac:~ Darin$ touch index.phpMyMac:~ Da...

2019-06-29 22:42:51 1402

原创 Java 编程思想练习9 fib数字

Java 编程思想 练习9 fib数字题目:创建一个方法,接受一个整数,并显示从第一个元素开始总共由该参数制定个数的所构成的所有fib数字。fib数字:每一个数字(从第三个开始)都是前两个数字的和。 1 1 2 3 5 8 。。。用switch实现。public class Fib { public static void fib(int n) { int a=1; i...

2018-12-21 15:01:00 347

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除