摘要:
简介 1) 高层模块不应该依赖低层模块,二者都应该依赖其抽象 2) 抽象不应该依赖细节,细节应该依赖抽象 3) 依赖倒转(倒置)的中心思想是面向接口编程 4) 依赖倒转原则是基于这样的设计理念:相对于细节的多变性,抽象的东西要稳定的多。以抽象为基础搭建的架构比以细节为基础的架构要稳定的多。在java 阅读全文
摘要:
简介 客户端不应该依赖它不需要的接口,即一个类对另一个类的依赖应该建立在最小的接口上 案例1 类A通过接口Interface1依赖类B,类C通过接口Interface1依赖类D,如果接口Interface1对于类A和类C来说不是最小接口,那么类B和类D必须去实现他们不需要的方法。 代码案例 pack 阅读全文
摘要:
简介 对类来说的,即一个类应该只负责一项职责。如类A负责两个不同职责:职责1,职责2。 当职责1需求变更而改变A时,可能造成职责2执行错误,所以需要将类A的粒度分解为A1,A2 注意事项和细节 1) 降低类的复杂度,一个类只负责一项职责。 2) 提高类的可读性,可维护性 3) 降低变更引起的风险 4 阅读全文
摘要:
2-1 # 案例1 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> </head> <body> <h1>静夜思</h1> <h2>李白</h2> <p>床前明月光</p> <p>疑是地上霜</p> <p>举头望明月</p> <p>低头思故乡 阅读全文
摘要:
简介 软件工程中,设计模式(design pattern)是对软件设计中普遍存在(反复出现)的各种问题,所提出的解决方案。这个术语是由埃里希·伽玛(Erich Gamma)等人 在1990年代从建筑设计领域引入到计算机科学的 设计模式的目的 编写软件过程中,程序员面临着来自 耦合性,内聚性以及可维护 阅读全文
摘要:
发送post请求,并使用Authorization Basic + application/json @GetMapping("/test4") @ResponseBody public String test4() throws IOException { String url ="http:// 阅读全文
摘要:
案例1 public class TestLambda1 { //原来的匿名内部类 @Test public void test1(){ Comparator<Integer> com = new Comparator<Integer>(){ @Override public int compare 阅读全文
摘要:
错误1 # 错误信息 C:\Users\ychen>ssh -p 22 root@xxx.xxx.xxx.xxx @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOTE HOST IDENTIFICA 阅读全文
摘要:
参考1 参考2 解决方案 # 点击安装源 协议选择 http:// 路径填写 mirrors.aliyun.com/centos/8.3.2011/BaseOS/x86_64/os URL类型 软件库URL 其他路径 # 版本 7 mirrors.aliyun.com/centos/7/os/x86 阅读全文
摘要:
旧的写法:没有break,则匹配的case后⾯会⼀直输出, value类型 可以是 byte、short、int 、char、String 类型 # 案例1 public void testOldSwitch1(){ int i = 1; switch(i){ case 0: System.out. 阅读全文
摘要:
旧的写法:在java代码⾥⾯编写多⾏源码带有特殊字符则需要转义,如HTML,sql等 # 案例1 public class Main{ public static void main(String [] ags){ String html = "<html>\n" + " <body>\n" + " 阅读全文
摘要:
OpenJDK和OracleJDK版本区别 OpenJDK是JDK的开放源码版本,以GPL协议的形式发布(General Public License) Oracle JDK采⽤了商业实现 LTS Long Term Support ⻓期⽀持的版本,如JDK8、JDK11都是属于LTS JDK9 和 阅读全文
摘要:
编写Main.java public class Main{ public static void main(String [] ags){ String text = "xdclass.net "; //String 类新增的repeat(int num) 方法,用于字符串循环输出 System. 阅读全文
摘要:
HTTP2协议的强制要求https,如果⽬标URI是HTTP的,则⽆法使⽤HTTP 2协议 测试 -> https://http2.akamai.com/demo 判断⽹站是否是http2协议 浏览器 -> network⾯板 -> 右键名称 -> 选择protocol 浏览器 -> network 阅读全文
摘要:
发送post请求,json格式 public class Main { public static void main(String[] args) throws Exception { testPost(); } private static final String targetUrl1 = " 阅读全文
摘要:
JDK11新增HttpClient,⽀持 HTT/1.1, HTTP/2 常⽤类和接⼝讲解 HttpClient.Builder HttpClient 构建⼯具类 HttpRequest.Builder HttpRequest 构建⼯具类 HttpRequest.BodyPublisher 将jav 阅读全文
摘要:
Java是⼀种强类型, 许多流⾏的编程语⾔都已经⽀持局部变量类型推断,如js,Python,C++等 JDK10 可以使⽤var作为局部变量类型推断标识符 Local-Variable Type Inference(局部变量类型推断),顾名思义只能⽤做为局部变量 仅适⽤于局部变量,如 增强for循环 阅读全文
摘要:
下载链接 直接解压,配置环境变量 JAVA_HOME = C:\Program Files\jdk-11.0.16 CLASSPATH = .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar; Path = %JAVA_HOME%\bin Path 阅读全文
摘要:
takeWhile 有序的集合中使用 从 Stream 中获取⼀部分数据, 返回从头开始的尽可能多的元素, 直到遇到第⼀个false结果, 如果第⼀个值不满⾜断⾔条件,将返回⼀个空的 Stream dropWhile 有序集合中使用 从 Stream 中获取⼀部分数据, 遇到第⼀个false结果,则 阅读全文
摘要:
jdk9之前创建只读集合 public class Main { public static void main(String[] args)throws Exception { List<String> list = new ArrayList<>(); list.add("SpringBoot课 阅读全文
摘要:
增强try-with-resource 在JDK9中,改进了try-with-resources语句,在try外进⾏初始化,在括号内引⽤,即可实现资源⾃动关闭,多个变量则⽤分号进⾏分割 不需要声明资源 out 就可以使⽤它,并得到相同的结果 代码案例 public class Main { publ 阅读全文
摘要:
代码案例 public interface OrderPay { void pay(); default void defaultPay(){ privateMethod(); } //接口的私有方法可以在Jdk9中使用 private void privateMethod(){ System.ou 阅读全文
摘要:
从java9开始,jdk引⼊了交互式 REPL(Read-Eval-Print-Loop,读取-求值-输出-循环) 官⽅⽂档 进入jshell # 打开cmd jshell 帮助命令 jshell> /help | 键入 Java 语言表达式, 语句或声明。 | 或者键入以下命令之一: | /lis 阅读全文
摘要:
jdk7之前的操作 public static void main(String[] args) throws IOException { String path = "/Users/jack/Desktop/t.txt"; test(path); } private static void tes 阅读全文
摘要:
JVM 种类有很多,⽐如 Oralce-Sun Hotspot, Oralce JRockit, IBM J9, Taobao JVM,Hotspot有MetaSpace,JRockit以及J9是没有这个区域 JVM内存知识 在JDK8之前的HotSpot JVM,有个区域叫做“永久代(perman 阅读全文
摘要:
需求描述:电商订单数据处理,根据下⾯的list1和list2 共11个订单 统计出同时被两个⼈购买的商品列表(交集) 统计出两个⼈购买商品的差集 统计出全部被购买商品的去重并集 统计两个⼈的分别购买订单的平均价格 统计两个⼈的分别购买订单的总价格 代码案例 public class VideoOrd 阅读全文
摘要:
作⽤:可以⼀个⽅法把统计相关的基本上都完成 分类 summarizingInt summarizingLong summarizingDouble 案例 # 统计学⽣的各个年龄信息 public class Main { public static void main(String[] args) 阅读全文
摘要:
partitioningBy分组 案例 # 根据list⾥⾯进⾏分组,字符串⻓度⼤于4的为⼀组,其他为另外⼀组 public class Main { public static void main(String[] args) throws Exception { List<String> lis 阅读全文
摘要:
collect()⽅法的作⽤ ⼀个终端操作, ⽤于对流中的数据进⾏归集操作,collect⽅法接受的参数是⼀个Collector 有两个重载⽅法,在Stream接⼝⾥⾯ //重载⽅法⼀ <R> R collect(Supplier<R> supplier, BiConsumer<R, ? super 阅读全文
摘要:
并⾏流parallelStream 集合做重复的操作,如果使⽤串⾏执⾏会相当耗时,因此⼀般会采⽤多线程来加快, Java8的paralleStream⽤fork/join框架提供了并发执⾏能⼒ 底层原理 线程池(ForkJoinPool)维护⼀个线程队列 可以分割任务,将⽗任务拆分成⼦任务,完全贴合 阅读全文
摘要:
简介 Stream 中⽂称为 “流”,通过将集合转换为这么⼀种叫做 “流”的元素队列,通过声明性⽅式,能够对集合中的每个元素进⾏⼀系列并⾏或串⾏的流⽔线操作 元素是特定类型的对象,所以元素集合看作⼀种流, 流在管道中传输, 且可以在管道的节点上进⾏处理, ⽐如 排序,聚合,过滤等操作 数据元素便是原 阅读全文
摘要:
简介 ⽅法引⽤是⼀种更简洁易懂的lambda表达式,操作符是双冒号::,⽤来直接访问类或者实例 已经存在的⽅法或构造⽅法 通过⽅法引⽤,可以将⽅法的引⽤赋值给⼀个变量 语法:左边是容器(可以是类名,实例名),中间是" :: ",右边是相应的⽅法名 静态⽅法,则是ClassName::methodNa 阅读全文
摘要:
Function接⼝ Lambda表达式必须先定义接⼝,创建相关⽅法之后才可使⽤,这样做⼗分不便,其实java8已经内置了许多接⼝, 例如下⾯四个功能型接⼝,所以⼀般很少会由⽤户去定义新的函数式接⼝ Java8的最⼤特性就是函数式接⼝,所有标注了@FunctionalInterface注解的接⼝都是 阅读全文
摘要:
定义⼀个函数式接⼝ 需要标注此接⼝ @FunctionalInterface,否则万⼀团队成员在接⼝上加了其他⽅法则容易出故障 编写⼀个⽅法,输⼊需要操做的数据和接⼝ 在调⽤⽅法时传⼊数据 和 lambda 表达式,⽤来操作数据 案例:定义⼀个可以使⽤加减乘除的接⼝ # 自定义接口 @Functio 阅读全文
摘要:
jdk8之前创建线程 public class Main { public static void main(String[] args) throws Exception { new Thread(new Runnable() { @Override public void run() { Sys 阅读全文
摘要:
作用 主要解决的问题是空指针异常(NullPointerException) 本质是⼀个包含有可选值的包装类,这意味着 Optional 类既可以含有对象也可以为空 of() # null 值作为参数传递进去,则会抛异常 import java.util.Optional; public class 阅读全文
摘要:
JDK8之前:SimpleDateFormat来进⾏格式化,但SimpleDateFormat并不是线程安全的 JDK8之后:引⼊线程安全的⽇期与时间DateTimeFormatter 案例 import java.time.Duration; import java.time.LocalDateT 阅读全文
摘要:
核心类 LocalDate:不包含具体时间的⽇期。 LocalTime:不含⽇期的时间。 LocalDateTime:包含了⽇期及时间。 LocalDate 常⽤API //getYear() int 获取当前⽇期的年份 //getMonth() Month 获取当前⽇期的⽉份对象 //getMon 阅读全文
摘要:
jdk8之前 import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; public class Main { public static void main(String[] args) throws Exception { BAS 阅读全文
摘要:
IDE历史版本下载 安装参考 双击安装 插件 jetbrains-agent One Dark Theme 设置字体 控制台字体 阅读全文