接口

第四、五周总结来啦~(四:2.24-2.28 五:3.2-3.6)

て烟熏妆下的殇ゞ 提交于 2020-03-08 20:25:00
这是一篇补的总结,上周没有写。 细数一遍第四、五周学过的知识: 第四周: 1.三大修饰符 abstract 抽象类、抽象方法 static 静态成员、类加载 final 最终类、方法,常量 2.接口 什么是接口、接口与类的异同、接口的应用、接口的规范、常量接口、接口回调 3.内部类与常用类 内部类、Object类、Object类常用方法、 第五周: 1.内部类与常用类 包装类、String类、BigDecemal类 2.集合框架 集合的概念、Collection体系结构、List接口与实现类、Set接口与实现类、Map接口与实现类、泛型集合与工具类。 小结: 1.上周学的知识,从接口的部分起就开始慢慢变难,虽然说代码层面的东西不多,但是理解层面的很多。现在第五周已经学完了,再看第四周学过的知识,就会有更深层次的理解。 2.近期出现的小问题: 上课有点无法跟上老师的节奏。我想可能是我之前没有学过这些新知识,第一次听然后就要达到听懂会用的效果是不可能的。打算优化一下自我学习体系。坚持预习。 3.准备把每个小事做好,定期复盘,看看自己哪些地方是没掌握的,查漏补缺。 4.春老师上课说的一句话记忆犹新,“我们学的不仅仅是编程,我们也可以将编程思维用在生活中去,将生活中的事情进行优化。” 在大学期间我们学习过很多与计算机相关的课程,很多都有提到过面向对象,但是老师也基本上是一笔带过,告诉我们

函数式接口作为方法的参数案例

会有一股神秘感。 提交于 2020-03-08 17:50:50
使用Lambda作为参数和返回值 如果抛开实现原理不说,Java中的Lambda表达式可以被当作是匿名内部类的替代品。如果方法的参数是一个函数式接口类型,那么就可以使用Lambda表达式进行替代。使用Lambda表达式作为方法参数,其实就是使用函数式接口作为方法参数。 例如java.lang.Runnable 接口就是一个函数式接口,假设有一个startThread 方法使用该接口作为参数,那么就可以使用Lambda进行传参。这种情况其实和Thread 类的构造方法参数为Runnable 没有本质区别。 package com.learn.demo03.LambdaTest; /* 例如java.lang.Runnable接口就是一个函数式接口, 假设有一个startThread方法使用该接口作为参数,那么就可以使用Lambda进行传参。 这种情况其实和Thread类的构造方法参数为Runnable没有本质区别。 */ public class Demo01Runnable { //定义一个方法startThread,方法的参数使用函数式接口Runnable public static void startThread(Runnable run){ //开启多线程 new Thread(run).start(); } public static void main(String[]

Java 新特性—— 内置函数式接口

回眸只為那壹抹淺笑 提交于 2020-03-08 12:12:44
核心函数式接口 由于lambda表达式是来实现函数式接口的,所以使用之前需要先定义对应的函数式接口,大量使用会导致代码文件琐碎繁复,因此Java8针对常见的使用的场景,已经内置了大部分函数式接口,只有少部分需要我们自己单独定义; Java内置了四大核心函数式接口 其他接口 结合lambda表达式和内置函数式接口的代码示例 public void checkSalary(List<Employee> employees, Predicate<Employee> p){ for(Employee employee:employees){ if (p.test(employee)) { System.out.println(employee.getName()); } } } @Test public void testLambda(){ List<Employee> employeeList = Arrays.asList( new Employee("张三",2500,34), new Employee("李四",4500,45), new Employee("lisi",3500,35), new Employee("zhangsan",3000,30)); // 筛选出所有薪水在3000元以上的员工姓名 checkSalary(employeeList,(e)->e

Java设计模式之适配器模式(Adapter模式)

拜拜、爱过 提交于 2020-03-08 10:41:22
在现实生活中,经常出现两个对象因接口不兼容而不能在一起工作的实例,这时需要第三者进行适配。例如,讲中文的人同讲英文的人对话时需要一个翻译,用直流电的笔记本电脑接交流电源时需要一个电源适配器。 在软件设计中也可能出现:需要开发的具有某种业务功能的组件在现有的组件库中已经存在,但它们与当前系统的接口规范不兼容,如果重新开发这些组件成本又很高,这时用适配器模式能很好地解决这些问题。 适配器模式(Adapter)的定义如下:将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作。适配器模式分为类结构型模式和对象结构型模式两种,前者类之间的耦合度比后者高,且要求程序员了解现有组件库中的相关组件的内部结构,所以应用相对较少些。 模式的结构与实现 类适配器模式可采用多重继承方式实现,如 C++ 可定义一个适配器类来同时继承当前系统的业务接口和现有组件库中已经存在的组件接口; Java 不支持多继承,但可以定义一个适配器类来实现当前系统的业务接口,同时又继承现有组件库中已经存在的组件。 对象适配器模式可釆用将现有组件库中已经实现的组件引入适配器类中,该类同时实现当前系统的业务接口。现在来介绍它们的基本结构。 1. 模式的结构 适配器模式(Adapter)包含以下主要角色。 目标(Target)接口:当前系统业务所期待的接口,它可以是抽象类或接口。 适配者

Windows 10 IoT Serials 1 - 针对Minnow Board MAX的Windows 10 IoT开发环境搭建

久未见 提交于 2020-03-08 08:36:14
目前,微软针对Windows IoT计划支持的硬件包括树莓派2,Minnow Board MAX 和Galileo (Gen 1和Gen 2)。其中,Galileo (Gen 1和Gen 2)运行的是剪裁的Windows 8.1,而且官方声明目前没有对其升级到Windows 10 IoT的计划。所以,对于Windows 10 IoT,目前可选的硬件有树莓派2和Minnow Board MAX。有关树莓派2的Windows 10 IoT,可以参考叶帆的 博客 : 【Window 10 IoT - 1】Window 10系统安装(树莓派 Pi2) 。 相比于Minnow Board MAX,树莓派2拥有更大的用户群,更好的性价比,和更广的硬件社区支持率。但是,如果对于性能有要求的场景,也可以考虑Minnow Board MAX,毕竟,其核心是64位 Intel® Ato E38xx Series SoC(虽然目前Windows IoT也是32位的)。本文详细介绍了Minnow Board MAX的Windows 10 IoT开发环境搭建过程。 1、硬件及环境 1.1 一台运行Windows 10 PC系统的电脑,本人使用的是Surface Pro 2,版本Windows 10 Pro Insider Preview Build 10122. 1.2 Minnow Board Max一块

面向对象设计的SOLID原则

落爺英雄遲暮 提交于 2020-03-08 08:24:50
S.O.L.I.D是面向对象设计和编程(OOD&OOP)中几个重要编码原则(Programming Priciple)的首字母缩写。 SRP The Single Responsibility Principle 单一责任原则 OCP The Open Closed Principle 开放封闭原则 LSP The Liskov Substitution Principle 里氏替换原则 DIP The Dependency Inversion Principle 依赖倒置原则 ISP The Interface Segregation Principle 接口分离原则 Steve Smith 在5月份的微软TechED 2009上有个 SOLIDify Your ASP.NET MVC 的讲座, derick.bailey 的 SOLID Development Principles – In Motivational Pictures 很好的解释了SOLID原则。 单一责任原则: 当需要修改某个类的时候原因有且只有一个(THERE SHOULD NEVER BE MORE THAN ONE REASON FOR A CLASS TO CHANGE)。换句话说就是让一个类只做一种类型责任,当这个类需要承当其他类型的责任的时候,就需要分解这个类。 开放封闭原则 软件实体应该是可扩展

【规范】alibaba编码规范阅读

冷暖自知 提交于 2020-03-08 07:58:55
一、编程规范 (一)命名规范 1、代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束 2、代码中的命名严禁使用评语与英文混合的方式,更不允许直接使用中文的方式 3、类名使用UpperCamelCase风格,必须遵从驼峰形式,但是:DO BO DTO VO AO除外 4、方法名、参数名、成员变量、局部变量都统一使用lowerCamelCase风格,必须遵从驼峰格式 5、常量名全部大写,单词间用下划线隔开,力求词义表达清楚,不要嫌名字长 6、抽象类命名使用Abstract或Base开头:异常类命名使用Exception结尾:测试类命名以它要测试的类的名称开始,以Test结尾。 7、中括号是数组类型的一部分,使用String[] args 不要使用String args[]的方式 8、POJO类中布尔类型的变量,都不要加is,否则部分框架解析会引起序列化错误。 定义基本类型Boolean isDeleted的属性,它的方法也是isDeleted(),RPC框架在反向解析的时候,以为对应的属性名称是deleted,导致属性获取不到,进而抛出异常。 9、包名统一使用小写,点分隔符有且仅有一个自然语义的英文单词,包名统一使用单数形式。但是类名如果有复数含义,类名可以使用复数形式。 10、杜绝完全不规范的缩写,避免望文生义。 11、为了达到代码自解释的目标

Java入门 - 高级教程 - 02.集合

妖精的绣舞 提交于 2020-03-08 07:42:20
原文地址: http://www.work100.net/training/java-collection.html 更多教程: 光束云 - 免费课程 集合 序号 文内章节 视频 1 概述 - 2 集合接口 - 3 集合实现类(集合类) - 4 集合算法 - 5 如何使用迭代器 - 6 如何使用比较器 - 7 总结 - 请参照如上 章节导航 进行阅读 1.概述 早在 Java 2 中之前,Java 就提供了特设类。比如: Dictionary , Vector , Stack , 和 Properties 这些类用来存储和操作对象组。 虽然这些类都非常有用,但是它们缺少一个核心的,统一的主题。由于这个原因,使用 Vector 类的方式和使用 Properties 类的方式有着很大不同。 集合框架被设计成要满足以下几个目标: 该框架必须是高性能的。基本集合(动态数组,链表,树,哈希表)的实现也必须是高效的 该框架允许不同类型的集合,以类似的方式工作,具有高度的互操作性 对一个集合的扩展和适应必须是简单的 为此,整个集合框架就围绕一组标准接口而设计。你可以直接使用这些接口的标准实现,诸如: LinkedList , HashSet , 和 TreeSet 等,除此之外你也可以通过这些接口实现自己的集合。 从上面的集合框架图可以看到,Java 集合框架主要包括两种类型的容器,一种是集合(

第九章、接口开发

僤鯓⒐⒋嵵緔 提交于 2020-03-08 04:22:24
注意:在第八章博客的基础上开发 一、查询接口开发 第八章已经写好了查询的接口,启动SpringBoot后,在PostMan中访问如下 若localhost:8080/get/book/novel?id=0 或 localhost:8080/get/book/novel 则返回 二、增加接口开发 //添加接口 @PostMapping("/add/book/novel") public ResponseEntity add( @RequestParam(name = "title") String title, @RequestParam(name = "author") String author, @RequestParam(name = "word_count") int wordCount, @RequestParam(name = "publish_date") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date publish_date){ try { XContentBuilder content = XContentFactory.js 来源: CSDN 作者: 荒-- 链接: https://blog.csdn.net/wangqing84411433/article/details/104641291

面向接口编程与注入理解

狂风中的少年 提交于 2020-03-08 04:21:29
在JAVA中类与对象是常见的两个名词。通常,人们喜欢把类比喻为蓝图,而对象比喻为用蓝图生成的产品。这样的比喻是有一定的缺陷的,因为当两个类有协作关系时,通常的做法是在其中一个类中生成另一个类的对象,然后再调用这个对象的方法完成相应的组合功能。如果套用蓝图与产品,我们就会发现,一种产品居然在另一产品的图纸中产生。这样的视觉效果让人产生迷惑。此时设计模式或者框架来解决了这个问题。在工厂模式中,类的对象的生成不再是随处,而是固定在一个工厂类中。通过工厂类,可以很方便生成想要的对象,同时又不会混淆图纸与产品的关系,虽然产品是在工厂图纸,也就是工厂类中生成,但也比通常的做法要好很多。spring框架也是利用了工厂模式的原理来达到减少复杂度的目的,通过把spring的配置,所有的类,也就是产品类都会被注册到bean 工厂中,当需要使用的时候只需要从工厂容器中取出相应名称的对象即可。当开始使用工厂,也就是不在图纸上面建造依赖类,那么依赖关系如何继续呢?通过接口继续这种依赖关系。一个类依赖了一个接口,意味这个类可以在自己的方法中使用所有接口中定义的方法,同时也意味着这个类可以接纳所有实现了这个接口的类的进入,或者说是注入。而实现了接口,意味着它可以被当成这个接口看待,可以注入到依赖这个接口的类中。这就是面向接口编程与DI的实际意义。 来源: CSDN 作者: 奈树 链接: https://blog