日常小知识随笔
文章平均质量分 55
时间太短,我打算把回忆留下
_大木_
所有的付出没有亏欠, 只为不负遇见.~
展开
-
DDD设计概念汇总
文章目录DDD设计概念汇总1. 聚合根2. 如何判断标记领域3. 如何创建好的聚合?4. 实体5. 值对象PS : 谨慎使用值对象6. 界限上下文7. 限界上下文之间的映射关系8. 领域服务9. 领域事件10. 术语11. DDD的战略建模与战术建模战略建模-Strategic Modeling:战术建模-Tactical Modeling:DDD设计概念汇总1. 聚合根对领域概念做静态建模的时候都一类概念被视为聚合根(root), 他有自己的生灭过程, 数据和行为聚合于其上面, 聚合根中有一个唯一的原创 2021-06-28 13:35:22 · 684 阅读 · 1 评论 -
Mac 电脑中 jdk多版本的切换配置
1.在Mac上安装不同的版本, 比如jdk8和jdk11vim ~/.bash_profile #添加下面的代码 export JAVA_8_HOME="$(/usr/libexec/java_home -v 1.8)" export JAVA_11_HOME="$(/usr/libexec/java_home -v 11)" alias jdk8='export JAVA_HOME=$JAVA_8_HOME' alias jdk11='export JAVA_HOME=$JAVA_11_H原创 2021-06-24 15:35:56 · 239 阅读 · 0 评论 -
架构师成长记_第六周_12_Redis 无磁盘化复制原理解析
Redis 无磁盘化复制 (socket 方式)1. 原理:Redis Master节点会创建一个新的线程用于把 RDB文件写入 sockets, 而从不接触磁盘.当使用了这种模式后, 主节点会等待一段时间(可以在redis.conf里设置, 下面介绍), 等待从节点到达我们的master的连接, 等都到达后, 再进行传输.适用于磁盘的配置很低(普通磁盘), 但是有很高的网速, 那么可以考虑适用这种无磁盘化复制的备份方式.2. 开启无磁盘化复制进入从节点的redis的核心配置文件 redis原创 2021-04-18 20:24:03 · 230 阅读 · 5 评论 -
架构师成长记_第六周_02_Redis 操作工具类 (可以进行日后扩展)
文章目录使用工具类的原因RedisOperator.java项目中使用该工具类使用工具类的原因为了更加匹配我们Redis的操作API, 我们一般会使用类似如下的工具类进行项目的开发原生的开发不容易, 且易发生乱码, 如上节内容我们的使用中, 即可看到如下的乱码, 使用工具类进行封装后可以避免该情况的发生.RedisOperator.javapackage com.beyond.utils;import org.springframework.beans.factory.annotation.原创 2021-04-17 16:36:02 · 200 阅读 · 0 评论 -
架构师成长记_第五周_04_Redis 五大数据类型的使用
文章目录Redis 五大数据类型PS1 : [Redis 命令API](http://redisdoc.com/index.html)PS2: redis 数据默认有 16 个库, 默认是 DB 0切换到库DB 1 `select 1`每个库都是单独的个体, 数据之间不进行共享数据清空数据库`flushdb` 清除当前库`flushall` 清除所有库1. String2. hash3. list (一个列表下可以存放相同的值)4. set (一个列表下不可以存放相同的值, 会自动去除)5. zset (原创 2021-04-16 19:56:07 · 202 阅读 · 1 评论 -
SQL练习: 多表查询
/*1. 查出至少有一个员工的部门, 显示部门编号, 部门名称, 部门位置, 部门人数.列: d.deptno , d.dname , d.loc, 部门人数表: dept d, emp e 条件: e.deptno = d.deptno*/SELECT d.*, z1.cntFROM dept d, (SELECT deptno, COUNT(*) cnt FROM emp GROUP BY deptno) z1WHERE d.deptno = z1.deptno /*2. 列出原创 2021-04-13 20:20:20 · 204 阅读 · 1 评论 -
CentOS 7 安装 JDK 和 Tomcat9
CentOS 7 安装 JDK1. 通过工具将JDK上传2. 检测系统是否带有自带的jdk, 如果有要进行卸载rpm -qa|grep openjdk -i 为检测命令, 检测到卸载即可rpm -e --nodeps 需要删除的软件 为删除命令3. 开始安装JDK创建jdk的安装目录 mkdir /usr/java/解压jdk tar -zxvf 你jdk的tar包例如: tar -zxvf jdk-8u191-linux-x64.tar.gz将解压后的jdk移动到原创 2021-04-04 15:42:34 · 240 阅读 · 3 评论 -
CentOS 永久修改主机名
CentOS 永久修改主机名1. 执行命令 vi /etc/hostname设置自己喜欢的主机名2. 重启机器 reboot原创 2021-04-03 21:05:14 · 267 阅读 · 1 评论 -
玩转集群服务器 之 Centos 7 虚拟机快速安装及安装后无法查看到ip地址的解决
文章目录VMware 安装Centos 71. 下载centos 7 镜像2. 进行安装3. 查看ip地址 (ip addr)解决无法查看ip地址问题执行以下命令执行命令 `cd /etc/sysconfig/network-scripts/ `执行命令 `ll`执行命令 `vi ifcfg-ens33 `执行命令 `service network restart` 重启网卡服务使用远程工具测试连接连接成功为了方便后续内外网互通, 这里就可以直接关闭centos的防火墙1 `systemctl status原创 2021-04-03 20:11:33 · 1584 阅读 · 3 评论 -
Git 版本控制, 看这一篇就入门啦
文章目录什么是GitGit 安装Git 浅谈(四步)第一步: 进入要管理控制的文件夹第二步: 进行初始化第三步: 管理`git add read.txt` 添加管理 read.txt 文件`git add . ` 添加管理所有之前为管理的文件第四步: 生成版本`git commit -m '第一个版本'`我们修改文件内容继续使用之前命令进行处理(如下所示)查看版本记录 `git log`小结一下(注意第一次使用要配置一下个人信息)小结个人信息配置:Git 三大区域工作区暂存区版本库回滚操作`git rese原创 2021-03-20 18:17:25 · 357 阅读 · 1 评论 -
栈和队列 方法复盘
栈耍一耍package com.beyond;import java.util.Stack;public class StackTest { public static void main(String[] args) { Stack<String> stack = new Stack<>(); Stack<String> stack1 = new Stack<>(); stack.push原创 2021-03-12 09:22:52 · 111 阅读 · 1 评论 -
java.lang.Math 复盘
耍不动了…package com.beyond;import javax.sound.midi.Soundbank;public class MathTest { public static void main(String[] args) { System.out.println(Math.E); // 自然对数的底数 e。 System.out.println(Math.PI); // 圆周率 System.out.println(.原创 2021-03-11 22:28:16 · 105 阅读 · 0 评论 -
LinkedList 方法吐血大汇总
耍起来package com.beyond;import java.util.*;public class LinkedListTest { public static void main(String[] args) { List<Integer> list = new LinkedList<>(); List<Integer> list1 = new ArrayList<>(); list.原创 2021-03-10 21:17:59 · 438 阅读 · 5 评论 -
cookie 与 session 深度区别
文章目录概述:Cookie注意:设置一个cookie : 在登录controller里使用cookie工具类设置, 并且将cookie加密即可Session注意:案例: 设置 一个 session 会话 (前端的若是html页面则是使用不了的, jsp 能行)概述:Session 和 cookie 都是会话(Session)跟踪技术.会话(Session)跟踪是Web程序中常用的技术, 用来跟踪用户的整个会话, 常用的会话跟踪技术是 Cookie 与 Session. Cookie 通过在客户端记录信原创 2021-03-07 16:57:30 · 243 阅读 · 4 评论 -
ArrayList, HashMap 方法汇总
文章目录HashMap 玩法案例ArrayList 玩法案例HashMap 玩法案例package com.beyond;import java.util.*;class Person{ private String name; private Integer age; public Person(String name, Integer age){ this.name = name; this.age = age; }原创 2021-03-06 20:59:26 · 687 阅读 · 9 评论 -
Java : 网络编程
文章目录Java 网络编程java网络编程基本概念基本网络程序模型(开发一个基本的 C/S 程序)编写一个服务器端程序编写客户端程序ECHO 程序范例: 编写服务器端范例: 客户端实现以上完成了一个基础的程序, 但是程序有一个问题, 本程序为单线程, 因为所有的操作都是在主方法中进行的.要想解决这个问题, 就必须进行多线程的处理, 把每一个连接的用户都封装在一个线程里面, 这样就不会限制在单线程里面了.改进的服务器端代码总结:Java 网络编程java网络编程基本概念网络: 将地理上分开的主机连接在一原创 2021-02-03 01:36:06 · 174 阅读 · 2 评论 -
Java : volatile 关键字
Volatile单例设计模式的本质在于构造方法被私有化, 而后通过类内部的 static 方法取得实例化对象, 而单例设计有两种模式: 懒汉式(使用时才进行实例化对象), 饿汉式(在类加载时候进行对象实例化).范例: 观察懒汉式单例设计模式的问题package com.beyond.dhl;class Singleton { private static Singleton instance; // 懒汉式所以不会进行实例化对象 private Singleton() {原创 2021-02-02 23:29:53 · 279 阅读 · 10 评论 -
Java 排序算法: 基数排序
基数排序基本思想:基数排序(radixSort)属于"分配式排序", 又称为"桶子法" 或 bin sort, 顾名思义, 它是通过键值的各个位的值, 将要排序的元素分配到某些’桶’中, 达到排序的目的.特点如下:(1)通过键值得各个位的值,将要排序的元素分配至一些桶中,达到排序的作用(2)基数排序法是属于稳定性的排序,基数排序法是效率高的稳定排序法(3)基数排序是桶排序的扩展代码实现package com.com.beyond.dhl.utils.sort;import java.ut原创 2021-02-02 20:59:47 · 287 阅读 · 1 评论 -
Java 排序算法: 归并排序
归并排序归并排序的思想:归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer)策略, 分治法将问题分(divide)成一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得到的各答案合并在一起,即分而治之)实现:package com.com.beyond.dhl.utils.sort;import javax.sound.midi.MidiChannel;import java.util.Arrays;p原创 2021-02-02 16:59:22 · 205 阅读 · 7 评论 -
Java 排序算法: 插入排序 (简单插入排序 和 希尔排序)
五大排序内部算法:选择排序简单选择排序堆排序插入排序简单插入排序希尔排序交换排序冒泡排序快速排序归并排序基数排序简单插入排序插入排序(Insertion Sorting) 的基本思想:把n个待排序的元素看成为一个有序表和一个无序表, 开始时有序表中只包含一个元素, 无序表中包含有 n-1 个元素, 排序过程中每次从无序表中取得第一个元素, 把它的排序码依次与有序元素表元素的排序码进行比较, 将它插入到有序表中的适当位置, 使之成为新的有序表....原创 2021-02-02 16:16:08 · 225 阅读 · 1 评论 -
Java : Stream 数据流 (Collection 接口扩充, Stream基本操作, MapReduce 模型)
文章目录Collection 接口改进范例: 使用foreach 输出范例: 观察 StreamStream 数据流的基本操作范例: 数据过滤 filter()Stream 接口里有两个重要的操作方法:MapReduce 基础模型范例: 编写一个简单的数据统计操作范例: 实现订单信息的保存, 随后进行一个总量的统计从 JDK 1.8 发起的时候实际上就是世界上大数据兴起的时候, 在大数据开发里面有一个最经典的模型: MapReduce, 实际上这属于数据的两个操作阶段:Map : 处理数据Redu原创 2021-01-30 00:13:10 · 608 阅读 · 5 评论 -
Java : Collections 工具类
Collection 是集合的接口, 而Collections 是一个集合的操作工具类.在这个类中里面提供有集合的基础操作: 如 反转, 排序等.范例: 创建空集合(可以作为标记)package com.beyond.nothing;import java.util.Collections;import java.util.List;public class test { public static void main(String[] args) throws Exception原创 2021-01-28 19:35:51 · 173 阅读 · 2 评论 -
Java : Properties 属性操作
Properties 属性操作在涉及国际化操作的时候, 我们涉及过一种属性文件(资源文件: *.properties), 在这种文件里面, 其内容的保存格式为: "key=value"的形式, 实际上是通过 ResourceBundle 类读取的时候只能够读取内容, 而如果想要编辑内容, 那么就要通过 Properties 类来完成了, 也就是说这个类专门做属性处理的.Properties 是 Hashtable 的子类, 并且这个类定义:public class Properties exten原创 2021-01-28 18:49:09 · 282 阅读 · 6 评论 -
Java 类集框架: Stack 栈 与 Queue 队列
文章目录栈 Stack简介栈的核心方法:范例: 观察出入栈队列 Queue简介:Queue 接口主要是进行先进先出的时候, 在这个接口里面有如下的方法:范例: 使用 Queue范例: 利用队列实现生产者与消费者栈 Stack简介栈是一种先进后出的数据结构. 比如是浏览器上的后退, 以及各个编辑器上的撤销操作都属于栈的功能, 而在整个的类集里面, 提供有Stack, 这个类是 Vector 的子类. 但是需要注意的是使用这个子类的时候, 可不是使用 Vector 类的方法, 同样, 使用这个类的时候,原创 2021-01-28 17:20:12 · 228 阅读 · 3 评论 -
Java 类集框架: TreeMap 子类
TreeMap 表示可以排序的Map子类, 它是按照key的内容进行排序的范例: 观察 TreeMap的使用package com.beyond.nothing;import java.util.Map;import java.util.TreeMap;public class test { public static void main(String[] args) { Map<Integer, String> map = new TreeMap<原创 2021-01-28 15:19:52 · 261 阅读 · 6 评论 -
Java 类集框架 : Map 中的 key实现说明
关于 Map 中 key 的说明在使用 Map 集合的时候之前使用的都是系统类作为了 KEY(Integer), 那么实际上用户也可以采用自己的类作为 Key.那么这个时候一定要记得覆写 Object 中的 hashCode() 与 equals() 方法package com.beyond.nothing;import java.util.HashMap;import java.util.Map;import java.util.Objects;class Person { p原创 2021-01-28 14:55:17 · 697 阅读 · 9 评论 -
Java 使用Iterator输出Map 集合
在实际开发之中, 如果你存储数据是为了输出, 那么优先考虑的一定是 Collection, 使用 Map 的主要操作就是设置我们的内容, 然后使用 get()进行查找的.使用Map迭代输出的需求会有, 但是不多. 要明确的是:Map 接口没有iterator()方法在Map 接口里有一个重要的方法, 将 Map 集合转换成 Set 集合:public Set<Map.Entry<K,V>> entrySet()范例: 通过 Iterator输出Map 集合 (要重点掌握原创 2021-01-25 23:27:36 · 511 阅读 · 9 评论 -
Java 集合框架: ConcurrentHashMap
文章目录ConcurrentHashMap首先来观察 ConcurrentHashMap 的子类定义:范例: 使用 ConcurrentHashMapConcurrentHashMapConcurrentHashMap 的特点 = Hashtable 的线程安全性 + HashMap 的高性能在使用 ConcurrentHashMap 处理的时候既可以保证多个线程更新数据的同步, 又可以保证很高效的查询速度.首先来观察 ConcurrentHashMap 的子类定义:public class Co原创 2021-01-25 23:10:12 · 173 阅读 · 1 评论 -
Java 排序算法: 选择排序 (简单选择排序+堆排序)
文章目录五大类内部排序算法简单选择排序: SelectSort算法思路实现简单选择排序 测试80000个随机数据的排序效率堆排序: HeapSort算法思路:实现:堆选择排序 测试八百万个随机数据的排序效率 (还是快排更胜一筹)五大类内部排序算法插入排序交换排序选择排序简单选择排序堆排序归并排序基数排序简单选择排序: SelectSort算法思路选择排序一共有[数组大小-1]轮排序每一轮排序, 又是一个循环, 循环的规约如下先设定当前的这个数是最小值与后面的数据原创 2021-01-25 19:53:25 · 294 阅读 · 1 评论 -
Java : 类集框架 (Map 接口概述) (HashMap + Hashtable)
文章目录Map 接口Map 接口里面的常用方法HashMap 子类 (90%) (无序)范例: Map 基本处理面试题: 请解释 HashMap 原理Hashtable 子类 (1%)范例: 观察 Hashtable (无序)HashMap 与 Hashtable 区别面试题: 请解释 HashMap 与 Hashtable 的区别Map 接口public interface Map<K, V>Collection 集合的特点是每次进行单个对象的保存, 那么如果现在要进行一对对象的保存(偶原创 2021-01-24 21:53:01 · 237 阅读 · 3 评论 -
Java 集合的输出 (Iterator, ListIterator, Enumeration, foreach)
文章目录1. 迭代输出 : Iterator (95%)案例: 标准的 Iterator 使用案例: 删除元素`以后见到了结合输出的问题, 不需要思考直接使用 Iterator 接口`2. ListIterator 双向迭代接口 (0.01%)观察 ListIterator 接口的使用3. Enumeration 枚举输出 (4.8 %)==但是要如果取得这个接口的实例化对象, 是不可能依靠 Collection, List, Set 等接口的, 只能够依靠 Vector 子类, 因为 Enumeratio原创 2021-01-23 22:28:08 · 467 阅读 · 6 评论 -
IntelliJ Idea 常用快捷键列表
Ctrl+Shift + Enter,语句完成“!”,否定完成,输入表达式时按 “!”键Ctrl+E,最近的文件Ctrl+Shift+E,最近更改的文件Shift+Click,可以关闭文件Ctrl+[ OR ],可以跑到大括号的开头与结尾Ctrl+F12,可以显示当前文件的结构Ctrl+F7,可以查询当前元素在当前文件中的引用,然后按 F3 可以选择Ctrl+N,可以快速打开类Ctrl+Shift+N,可以快速打开文件Alt+Q,可以看到当前方法的声明Ctrl+P,可以显示参数信息C转载 2021-01-23 18:28:10 · 107 阅读 · 0 评论 -
Java 递归: 八皇后问题(回溯算法)
八皇后问题, 是一个古老而著名的问题, 是回溯算法的典型案例. 该问题是国际棋棋手马克斯·贝瑟尔于1848年提出: 在 8 ×8格的国际象棋上摆放八个皇后, 使其不能互相攻击即 : 任意两个皇后都不能处于同一行, 同一列 或 同一斜线上, 问有多少种摆法 (92)?思路分析第一个皇后先放到第一行第一列第二个皇后放在第二行第一列, 然后判断是否OK[即判断是否冲突], 如果不OK, 继续放在该行第二列, 第三列, 依次把所有列都放完, 找到一个合适的位置, 执行第三步继续第三个皇后, 还是第一列,原创 2021-01-23 01:32:31 · 287 阅读 · 1 评论 -
Java : Set集合接口 (重复元素的判断)
文章目录`在使用 TreeSet 子类进行数据保存的时候, 重复元素的判断依靠的是 Comparable 接口完成的, 且可以去掉重复元素.``但是, 当我们换成 HashSet 后, 重复数据并不会被去掉.``所以,由于 HashSet 子类与Comparable接口没有任何关系, 所以它判断重复的方式依赖的是 Object 类的两个方法: 这两个方法必须共同完成 `1. hash 码 : public int hashCode();2. 对象比较: public boolean equals(Objec原创 2021-01-20 18:16:26 · 1256 阅读 · 4 评论 -
Java : Set 集合接口(集合排序说明)
TreeSet 排序分析既然 TreeSet子类可以进行排序, 所以下面编写一个自己的类, 希望可以通过 TreeSet实现我们的排序操作.范例: 使用TreeSet排序package com.nothing.dhl;import java.util.Set;import java.util.TreeSet;class Person { private String name; private int age; public Person(String name, int age)原创 2021-01-20 16:39:14 · 259 阅读 · 1 评论 -
Java : Set 集合接口
Set 接口常用子类Set 接口与 List 接口的最大不同在于 Set 接口中的内容是不允许重复的, 同时也需要注意一点, Set 与 List 还有一个最大的不同在于 : Set 接口并没有对 Collection 接口进行扩充, 而 List 进行了扩充, 比如 get() 方法由于是 jdk 1.8的原因, 所以在 Collection 接口里面也提供有一些default方法, 而这些方法并没有在Set接口里出现. 也就是说, Set 接口里面是不可能使用 get() 方法进行处理的, 而在 S原创 2021-01-20 16:11:20 · 142 阅读 · 4 评论 -
Java : List 集合接口 : LinkedList 子类
LinkedList 子类 ( 5 %)在List 接口里面还有一个 LinkedList 子类, 这个子类如果向父接口转型的话, 使用的形式和之前的接口没有任何的区别.案例: 使用 LinkedListpackage com.beyond.dhl;import java.util.LinkedList;import java.util.List;public class TestDemo { public static void main(String[] args) { List&原创 2021-01-16 14:56:24 · 234 阅读 · 5 评论 -
Java : List 集合接口 : Vector 子类
文章目录List 旧的子类: Vector ( 5 %)范例: 使用 Vector面试题: 解释 ArrayList 与 Vector 区别?在以后使用的过程之中优先考虑 ArrayListList 旧的子类: Vector ( 5 %)Vactor 这个类是从 JDK1.0 的时候就提出的, 而 ArraryList 是在 JDK 1.2 提出的, 最初的 Java 在开发类集的时候曾经考虑取消Vactor, 因为它的机制太古老了, 可是后来又考虑有许多的人已经习惯于使用 Vactor了, 那么于是原创 2021-01-16 14:12:17 · 220 阅读 · 3 评论 -
Java : List集合接口
文章目录`在实际的开发过程中, List 集合接口的使用比率可以达到 Collection 系类的 80%, 在进行集合处理的时候, 优先考虑 List 集合接口.`在这个List接口里面有两个重要的扩充方法:ArrayList 子类 (90% 使用)范例: 观察List 基本操作范例: 观察 List 的 get() 操作注意:范例: 通过 Collection 进行输出处理 (`Collection 可没有 get() 方法` )List 与 简单Java 类范例: 向集合保存简单 java类对象注意:原创 2021-01-16 11:54:09 · 270 阅读 · 5 评论 -
Java 类集框架 : Collection 集合接口
文章目录Collection 接口定义总结`add(), iterator() 子接口都有这两个方法`在java的类集里面(java.util 包)提供有两个最为核心的操作接口, Collection, Map 接口, 其中 Collection 接口的操作形式与之前编写链表的操作形式类似, 即每一次进行数据操作的时候只能够对单个对象进行处理.所以 Collection 是单个集合保存的最大父接口Collection 接口定义public interface Collection<E>原创 2021-01-16 10:07:20 · 146 阅读 · 1 评论