您正在查看:标签 JAVA学习笔记 下的文章

DQL查询、约束、多表之间关系、范式、数据库备份

今日总结

  1. DQL查询语句

    1. 排序查询
    2. 聚合函数
    3. 分组查询
    4. 分页查询
  2. 约束
  3. 多表之间的关系
  4. 范式
  5. 数据库的备份和还原

1 DQL 查询语句

1.1 排序查询

  • 语法:order by 子句

    -- 通过ORDER BY子句,可以将查询出的结果进行排序(排序只是显示方式,不会影响数据库中数据的顺序)
    SELECT 字段名 FROM 表名 WHERE 字段=值 ORDER BY 字段名 [ASC|DESC];
    ASC: 升序,默认值
    DESC: 降序
    
    eg:
    -- 查询所有数据,使用年龄降序排序
    SELECT * FROM student ORDER BY age DESC;
    
    -- 查询所有数据,在年龄降序排序的基础上,如果年龄相同再以数学成绩升序排序
    SELECT * FROM student ORDER BY age DESC, math ASC;
  • 注意:

    • 如果有多个排序条件,第1个条件相等时,按第2个条件进行排序,依次类推

- 阅读剩余部分 -

数据库基本概念、MySQL数据库、SQL语句

今日总结

  • 数据库基本概念
  • MySQL数据库软件
  • SQL语句

1 数据库基本概念

1.1 数据的储存方式

储存位置优点缺点
内存速度快数据是临时状态,不能永久保存
文件数据可以永久保存操作数据不方便
数据库1) 数据可以永久保存
2) 查询速度快
3) 对数据的管理方便
占用资源,需要购买

1.2 什么是数据库?

  • 数据库 是用于存取和管理数据的仓库
  • 数据库 英文单词:DataBase 简称:DB
  • 数据库本质上是一个文件系统,数据还是以文件的方式存在服务器的电脑上的

1.3 数据库的特点

  • 持久化的储存数据,其实数据库本质上就是一个文件系统
  • 可以方便的进行数据的存取和管理
  • 使用了统一的方式对数据进行存取和管理,就是SQL语句

    • SQL语句:DBMS DataBase Management System

1.4 常见的数据库管理软件

  • Oracle:Oracle公司的,收费,大型的数据库
  • MySQL:Oracle公司的,6.x之前是免费的,之后是收费的,小型的数据库
  • SQL Server:微软公司,收费,大型的数据库,C#,.net语言中使用较多
  • DB2:IBM公司的,收费,大型的数据库,多用于银行系统
  • Java常用的数据库有:Oracle、MySQL

- 阅读剩余部分 -

Junit单元测试、反射、注解

今日总结

  • Junit单元测试
  • 反射
  • 注解

1 Junit单元测试

  • @Test注解

    • 它不是JDK提供的注解,是Junit提供的,所以要将Junit的依赖先导入到模块中才可以使用
    • @Test注解是加在方法之上的
1.1 测试分类
  • 黑盒测试:不需要写代码,给输入值,看程序是否能够输出期望的值。
  • 白盒测试:需要写代码的。关注程序具体的执行流程。
1.2 Junit使用:白盒测试
* 步骤:
    1. 定义一个测试类(测试用例)
        * 建议:
            * 测试类名:被测试的类名Test CalculatorTest
            * 包名:xxx.xxx.xx.test cn.noisky.test

    2. 定义测试方法:可以独立运行
        * 建议:
            * 方法名:test测试的方法名 testAdd()  
            * 返回值:void
            * 参数列表:空参

    3. 给方法加@Test
    4. 导入junit依赖环境

* 判定结果:
    * 红色:失败
    * 绿色:成功
    * 一般我们会使用断言操作来处理结果
        * Assert.assertEquals(期望的结果,运算的结果);

* 补充:
    * @Before:
        * 修饰的方法会在测试方法之前被自动执行
    * @After:
        * 修饰的方法会在测试方法执行之后自动被执行

- 阅读剩余部分 -

Java中的函数式接口、Stream流

今日总结

  • 函数式接口
  • Stream流

1 函数式接口

  • 概念

    有且仅有一个抽象方法的接口

  • 如何检测一个接口是不是函数式接口

    @FunctionalInterface

    放在接口定义的上方:如果接口是函数式接口,编译通过;如果不是,编译失败

  • 注意事项

    我们自己定义函数式接口的时候,@FunctionalInterface是可选的,就算我不写这个注解,只要保证满足函数式接口定义的条件,也照样是函数式接口。但是,建议加上该注解

1.1 常用函数式接口之Supplier

  • Supplier接口

    Supplier接口也被称为生产型接口,如果我们指定了接口的泛型是什么类型,那么接口中的get方法就会生产什么类型的数据供我们使用。

  • 常用方法

    只有一个无参的方法

    方法名说明
    T get()按照某种实现逻辑(由Lambda表达式实现)返回一个数据
  • 代码演示

    public class SupplierDemo {
        public static void main(String[] args) {
    
            String s = getString(() -> "林青霞");
            System.out.println(s);
            
            Integer i = getInteger(() -> 30);
            System.out.println(i);
        }
    
        //定义一个方法,返回一个整数数据
        private static Integer getInteger(Supplier<Integer> sup) {
            return sup.get();
        }
    
        //定义一个方法,返回一个字符串数据
        private static String getString(Supplier<String> sup) {
            return sup.get();
        }
    
    }

- 阅读剩余部分 -

函数编程、Lambda表达式、接口更新、方法引用

今日总结

  • 函数编程
  • Lambda表达式
  • 接口更新
  • 方法引用

1 函数编程

  • 函数式编程思想概述

    函数式思想则尽量忽略面向对象的复杂语法:“强调做什么,而不是以什么形式去做”

    Lambda表达式就是函数式思想的体现

2 Lambda表达式

  • 用于简化匿名内部类
  • 也可以把Lambda表达式看成是接口的实现类对象

2.1 Lambda表达式的标准格式

  • 标准格式:

    ​ (形式参数) -> {代码块}

    • 形式参数:接口中抽象方法的参数列表,如果有多个参数,参数之间用逗号隔开;如果没有参数,留空即可
    • ->:由英文中画线和大于符号组成,固定写法。代表指向动作,表示参数传递
  • 代码块:是我们具体要做的事情,也就是以前我们写的方法体内容,实现了抽象方法之后的方法体
  • 组成Lambda表达式的三要素:

    • 形式参数,箭头,代码块
  • Lambda表达式的使用前提

    • 一个接口中有且只有一个抽象方法,这种接口称之为函数式接口,可以通过一个注解来验证:@FunctionalInterface
  • 接口中有且仅有一个抽象方法

- 阅读剩余部分 -

Java中的网络编程

今日总结

  • 网络编程

    • 网络编程的三要素
    • UDP编程
    • TCP编程

1 网络编程(Socket)

  • 编写的程序可以在实现了网络互联的不同地理位置的计算机之间进行数据的交换。

1.1 网络编程概述

  • 计算机网络

    是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统

  • 网络编程

    在网络通信协议下,实现网络互连的不同计算机上运行的程序间可以进行数据交换

- 阅读剩余部分 -

多线程和线程同步

今日总结

  • 实现多线程
  • 线程同步
  • 生产者与消费者案例

1 实现多线程

1.1 进程和线程

  • 进程:是正在运行的程序

    ​ 是系统进行资源分配和调用的独立单位

    ​ 每一个进程都有它自己的内存空间和系统资源

  • 线程:是进程中的单个顺序控制流,是进程中的一条执行路径

    ​ 单线程:一个进程如果只有一条执行路径,则称为单线程程序

    ​ 多线程:一个进程如果有多条执行路径,则称为多线程程序

  • 如果一个进程一个线程都没有,则该进程也会随之结束

1.2 实现多线程的两种方式

- 阅读剩余部分 -

Java中的其他流、Properties集合

今日总结

  • 其他流

    • 标准输入输出流
    • 打印流
    • 对象序列化流
  • Properties集合

1 IO特殊操作流

1.1 标准输入输出流

  • System类中有两个静态的成员变量

    • public static final InputStream in:标准输入流。通常该流对应于键盘输入或由主机环境或用户指定的另一个输入源,默认指向的是键盘,从键盘读取数据,可以改变其指向
    • public static final PrintStream out:标准输出流。通常该流对应于显示输出或由主机环境或用户指定的另一个输出目标,默认指向的是控制台,将数据输出到控制台,可以改变其指向
  • 输出语句的本质:是一个标准的输出流

    • PrintStream ps = System.out;
    • PrintStream类有的方法,System.out都可以使用

- 阅读剩余部分 -

Java中的字节缓冲流、字符流

今日总结

  • 字节流
  • OutputStream 字节输出流 超类

    • FileOutputStream 基本流
    • FilterOutputStream

      • BufferedOutputStream 字节缓冲输出流(高效)
  • InputStream 字节输入流 超类

    • FileInputStream 基本流
    • FilterInputStream

      • BufferedInputStream 字节缓冲输入流(高效)
  • 字符流
  • Writer 字符输出流 超类

    • OutputStreamWriter 转换流

      • FileWriter 基本流
    • BufferedWriter 字符输出缓冲流(高效)
  • Reader 字符输入流 超类

    • InputStreamReader 转换流,字节输入流+指定编码表

      • FileReader 基本流,字节输入流+默认编码表
    • BufferedReader 字符输入缓冲流(高效)

- 阅读剩余部分 -

Java中的File类、递归、IO字节流

今日总结

  • File类
  • 递归
  • 字节流

1 File类

1.1 File类概述和构造方法

  • File类介绍

    • 它是文件和目录路径名的抽象表示
    • 文件和目录是可以通过File封装成对象的
    • 对于File而言,其封装的并不是一个真正存在的文件,仅仅是一个路径名而已。它可以是存在的,也可以是不存在的。将来是要通过具体的操作把这个路径的内容转换为具体存在的
  • File类的构造方法

    方法名说明
    File(String pathname)通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例
    File(String parent, String child)从父路径名字符串和子路径名字符串创建新的 File实例
    File(File parent, String child)从父抽象路径名和子路径名字符串创建新的 File实例
    • 反斜杠 \ 在字符串中有特殊含义,它是一个转义字符,用于转变原字符的意思。
    • 在路径中使用到的 \ 不是希望它起转义作用,而是起分割作用。

- 阅读剩余部分 -

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5