2021/07/27笔记

我们于2021/07/27 的学习目标是:java8新特性和数据库,核心任务为:

1、学习技术:

1)、引用

2)、Stream流

3)、数据库

2、文档总结

1)、引用

方法引用:

可以通过方法引用的方式简化Lambda表达式()->{}

语法:

对象::成员方法名

public static void test1(List list){

PrintStream ps = System.out;

list.forEach(ps::println);

list.forEach(System.out::println);

}

类名::静态方法名

public static void test2(Integer i1,Integer i2){

BiFunction<Integer,Integer,Integer> function = Math::max;

System.out.println(function.apply(i1,i2));

}

类名::成员方法名

public static void test3(String s1,String s2){

BiPredicate<String,String> pre = String::equals;

System.out.println(pre.test(s1,s2));;

}

Lambda体的实现是否通过调用了另外一个方法实现

内部所引用方法的返回值是否与Lambda的返回值保持一致

特殊:

Lambda参数列表的第一个参数作为内部引用成员方法的对象存在

Lambda参数列表的第二个参数开始(如果有)作为内部引用方法的参数列表

构造器引用:

类名::new

//Supplier<Employee> sup = ()-> new Employee();

Supplier<Employee> sup = Employee::new;

        System.out.println(sup.get());



        Function<String,Employee> fun = s -> new Employee(s);

        fun = Employee::new;

        System.out.println(fun.apply("yinwei"));

数组引用:

类型[]::new

Function<Integer,Integer[]> fun2 = i -> new Integer[i];

         fun2 =Integer[]::new;



        System.out.println(Arrays.toString(fun2.apply(5)));

2)、Stream流

概念:根据数据源所产生的元素序列

数据源是集合和数组,侧重点在数据的存储。

Stream流:关注数据的计算

注意:

流本身不能存储数据

流不能修改数据源中的数据

流是一次性的流,流式操作的每一步都会返回一个持有结果的新流

延迟执行|惰性加载:当不进行终止行为的时候,不会执行流式中间操作

过程:

  1. 获取|创建新stream
  2. 流式中间操作
  3. 终止行为(返回的结果不在stream)
import java.util.ArrayList;

import java.util.Arrays;

import java.util.List;

import java.util.stream.IntStream;

import java.util.stream.Stream;

public class Class001_Stream {

    public static void main(String[] args) {

        //1.Collection--> stream

        List<Integer> list = new ArrayList<>();

        //顺序流

        Stream<Integer> stream = list.stream();

        //并行流

        Stream<Integer> stream2 = list.parallelStream();



        System.out.println(stream2);



        //2) Arrays.stream(array)

        Stream stream3 = Arrays.stream(new String[]{"1"});

        System.out.println(stream3);



        //3)Stream.of(数据1,数据2,数据3...)

        Stream stream4 = Stream.of("a","b");

        stream4.forEach(System.out::println);



        //4)Stream.of(数组)

        Stream stream5 =  Stream.of(new String[]{"abc","bcd"});

        stream5.forEach(System.out::println);



    }

}

3)、数据库

概念:数据库是按照数据结构来组织、存储和管理数据的仓库。数据库现在已经成为数据管理的重要技术。

DBMS:数据库管理系统,是操纵和管理数据库的大型软件。它对数据库进行统一的管理和控制,以保证数据库的安全与完整。

根据存储模型可将数据库划分为关系型数据库和非关系型数据库。

关系型数据库指二维表格模型及其之间的联系组成的数据组织。

Oracle RDBMS|Pracle Database是甲骨文公式的数据库管理系统。

SQL是数据库语言,通用,功能更强的关系型数据库语言。

DDL:数据定义系统

DML:数据管理语言

   DQL:数据查询语言

   DML:数据管理语言

DCL:数据库控制语言

关系型数据库以表为单位

对表的理解:

表是属于用户的

表是逻辑表(概念表),不是物理表

表结构:表名、字段(名称+类型+约束)、记录

重要的系统服务:OracleServiceXE,OracleXETNSListener

查询语句select * from emp

三范式:在设计数据库时,存在行业标准,也称范式。一般遵循三个条件(三范式)。

1NF:指数据库表每一列都是不可分割的基本数据项

2NF:先满足1NF,要求数据表的每个数据必须唯一被区分。

3NF:先满足2NF,要求一个数据库表中不包含已在其他表中已包含的非关键字信息。即属性不依赖其他非主属性。

简而言之,最终的目的是避免数据重复冗余。

1NF:à列不可再分的最小原子(避免重复)

2NF:à主键依赖(确定唯一)

3NF:à消除传递依赖(建立主外键关系,拆分表)

约束:主外键约束

主表:具有主键字段

从表:添加一个外键字段

外键字段关联主表的主键字段

外键字段中能够出现的值,必须是在主表的主键字段中已有的值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值