JAVA坎坷之路(10 day)

编程开发   © 文章版权由 admin 解释,禁止匿名转载

#楼主# 2022-6-29


import java.util.ArrayList;
import java.util.Comparator;
import java.util.Optional;
import java.util.stream.Stream;

public class Huluxia{

public static void main(String[] args) throws Exception{

/**
* 流式操作
* 1.什么是Stream
* Stream是数据渠道 用于操作各种数据源所生成的元素序列 它可以实现对集合的复杂操作
* Stream是用于计算的 通过cpu实现计算
* Stream自己不会存储数据 Stream不会改变源对象 而是返回一个新的持有结果的Stream(不可变性)
* Stream操作是延迟执行的
* 流式操作的执行流程
* 创建Stream-中间操作-终止操作
*/
ArrayList list = new ArrayList<>();
list.add("a");
list.add("b");
list.add("c");
list.add("d");
list.add("e");
list.add("f");
list.add("g");
list.add("h");

// Stream的创建
// 通过集合获取串行Stream对象
Stream stream = list.stream();
// 通过集合获取并行Stream对象
Stream stringStream = list.parallelStream();
// 它们的区别是 串行流从集合中取数据是按照集合的顺序的
// 并行流是并行操作的 获取的数据是无序的
// 通过Stream的of方法创建Stream对象 注意这里的参数是一个泛型 可以接收任意类型
Stream a = Stream.of("a");
// 创建无限流 可以使用iterate和generate创建无限流 了解即可
// filter 接收lambda 从流中清除某些元素
Stream stringStream1 = stream.filter(String -> list.size() > 4)
// 筛选 通过流生成元素的hashCode和equals方法去除重复元素
.distinct()
// 截断流 使其元素不超过给定数量
.limit(3)
// 跳过元素 返回一个前n个元素的流 若流中元素不足n个 则返回一个空流
.skip(1);
// 触发终止操作才能执行中间操作 遍历列表并打印
stringStream1.forEach(System.out::println);

至此
吾已练气圆满
只待突破筑基
突破筑基有三法
普通筑基
地道筑基
天道筑基
吾自知天赋有限
只能无奈普通筑基
有天赋者可天道筑基
日后成就大道
[滑稽][滑稽][滑稽][滑稽]
// 映射
// 接收一个方法作为参数 该方法会被应用到每个元素上 并将其映射成一个新的元素
// 也就是这个集合里的每一个元素 都会调用toUpperCase这个方法 之前学过 这里不说
list.stream().map(String::toUpperCase)
.forEach(System.out::println);
// 排序
// 产生一个新流 其中按照自然顺序排序
list.stream().sorted()
.forEach(System.out::println);
// 产生一个新流 其中按照比较器顺序排序
list.stream().sorted(Comparator.naturalOrder())
.forEach(System.out::println);
// 匹配与查找 终止操作
// 检查是否匹配所有元素
list.stream().sorted()
.allMatch(s->s.length()>0);
// 检查是否至少匹配一个元素
list.stream()
.anyMatch(s->s.length()==2);
// 检查是否没有匹配所以元素
list.stream()
.noneMatch(s->s.isEmpty());
// 返回第一个元素
list.stream()
.findFirst();
// 返回当前流中的任意元素
list.stream()
.findAny();
// 返回流中元素总和
list.stream()
.count();
// 返回流中最大值
Optional max = list.stream()
.max(String::compareTo);
// 返回流中最小值
Optional min = list.stream()
.min(String::compareTo);
// 内部迭代
list.stream()
.forEach(System.out::println);

}
}
/**
* Optional类
* 是一个可以为null的容器对象
*/
// 创建Optional对象 参数必须非空
Optional o = Optional.of("null");
// 创建一个空的Optional实例
Optional empty = Optional.empty();
// 创建一个Optional对象 参数可以为null
Optional o1 = Optional.ofNullable(null);
// 常用方法
// 判断是否包含对象
boolean present = o1.isPresent();
// 如果有值就执行Consumer接口实现代码 并且返回该值作为参数传递给它
// o1.ifPresent;
System.out.println(present);
4楼
呵呵二爷爷 2022-6-29
-- 数据库的概念

-- 数据库是一个长期存储在计算机内 有组织 有共享 同一管理的数据集合

-- 目前常用的数据库分为开源MySQL数据库

-- 包括官方版MySQL percona MySQL MariDB 和商业版数据库 SQL server Oracle DB12

-- 数据库分类 按照是否采用关系模型划分

-- 关系型数据库 非关系型数据库

-- 关系型数据库 是指采用了关系模型来组织数据的数据库

-- 非关系型数据库 NoSQL(non-relational) 也可以理解为 not only sql 不只是数据库

-- 新型数据库 是对各种新的可扩展/高性能数据库的简称

-- MySQL优缺点

-- MySQL优点 运行速度快 MySQL体积小 命令执行的速度快

-- 使用成本低 MySQL是开源的 且提供了免费版本 对大多数用户来说大大降低了使用成本

-- 使用容易 与其他大型数据库的设置和管理相比 其复杂程度较低 易于使用
5楼
呵呵二爷爷 2022-6-29
-- MySQL下载安装 去官网下载安装包 本地解压到自己的安装目录 并新建my.ini

-- 初始化my.ini配置文件

[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录 ----------是你的文件路径-------------
basedir=D:downloadmysql8mysql
# 设置mysql数据库的数据的存放目录 ---------是你的文件路径data文件夹自行创建
datadir=D:downloadmysql8data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。
max_connect_errors=10
# 服务端使用的字符集默认为utf8mb4
character-set-server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
#mysql_native_password
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8mb4

-- 初始化MySQL 在MySQL解压的bin目录 打开命令行 输入 mysqld --initalize --console 初始化MySQL环境 耐心等待

-- 等待root@localhost:xxxxx 出现 保存xxxx就是你的初始化密码

-- 安装MySQL服务 mysqld install

-- MySQL启动和关闭命令 启动 net start mysql 关闭net sopt mysql

-- 卸载MySQL 在安装目录的bin目录打开命令行 mysqld remove 表示移除MySQL服务

-- 当然注册表也可能有残余 我这里不解释 不然有的兄弟可能导致电脑崩溃了
6楼
呵呵二爷爷 2022-6-29
-- 命令行连接MySQL

-- mysql -uroot -p -P3306 -hlocalhost -u后面表示用户名 -P后面表示端口号 -h后面表示主机地址 -p后面表示密码 我们不推荐直接写在-p后面 回车后 下面自然会有一行让你输入密码

-- 将刚才我们初始化得到的密码粘贴或者自己手动输入进去

-- 修改密码 alter user 'root'@'localhost' IDENTIFIED WITH mysql_native_password by 'xxxxxx你的密码'; 后面这个分号必须有啊 还得是英文的 注意了

-- 使用root账号创建子账号 CREATE USER 'haha'@'localhost' IDENTIFIED by 'xxxxx子账号的密码';

-- 退出MySQL exit;
7楼
呵呵二爷爷 2022-6-29
消化一会[滑稽][滑稽][滑稽]
8楼
呵呵二爷爷 2022-6-29
晚上有点事
明天继续[滑稽][滑稽]
9楼
呵呵二爷爷 2022-6-29
-- MySQL多实例配置

-- 把下载好的安装包复制重命名 进入复制的安装包 新建my.ini文件并且端口不能与第一份的3306端口冲突

-- 其他的路径配置就改为新复制的安装包路径

-- 然后还是bin目录打开命令行 输入 mysqld --initialize --console 初始化

-- 安装MySQL服务 mysqld install mysql888 因为之前已经安装 防止冲突 需要区分

-- 启动MySQL net start mysql888

-- 登录测试 mysql -uroot -p -P3308

-- 继续添加实例也是如此配置

-- 创建数据库

-- 查看已有数据库 show databases;

-- 新建数据库 create database 新建数据库的名字;

-- 删除数据库 drop database 要删除数据库的名称;

-- 选中数据库(切换数据库) use 要选中的数据库名称;

-- MySQL数据类型

-- 整型类型 TINYINT 1字节 0-255 SMALLINT 2字节 0-65535 MEDIUMINT 3字节 0-16777215

-- INT 4字节 0-49294967295 BIGINT 8 字节 0-18446744073709551615

-- 浮点类型 FLOAT 4字节 DOUBLE 8字节 DECIMAL 每4个字节存储9个数字 小数点占一个字节

-- 时间类型 DATE 3字节 格式 yyyy-MM-dd TIME 3-6字节 格式 HH::MM::SS YEAR 1字节 格式 YYYY

-- DATETIME 5-8字节 YYYY-MM-DD HH::MM::SS TIMESTAMP 4-7字节 YYYY-MM-DD HH::MM::SS

-- 字符串类型 CHAR 1-255个字节 固定长度 VARCHAR 字段存储所占字节数不能超过65535个字节 可变长度

-- TINYTEXT 最大长度255字节 可变长度 TEXT 最大长度65535个字节 可变长度 MEDIUMTEXT 最大长度16777215个字节 可变长度

-- LONGTEXT 最大长度4294967295个字节 可变长度

-- 枚举类型 ENUM 几何数最大65535

-- 二进制类型 TINYBLOB 最大长度255个字节 BLOB 最大长度65535个字节 MEDIUMBLOB 最大长度16777215个字节

-- LONGBLOB 最大长度4294967295个字节

-- 设计数据库表

-- 一个数据表主要包含 表名 主键 字段 数据类型 索引

-- 数据表的命名规范 是小写字母和下划线组成 用来分割不同单词之间的含义

-- 新建数据表 primary key 设置主键 auto_increment表示自增

/*
CREATE TABLE 表名(
id INT(10) primary key auto_increment,
name VARCHAR(50) NOT NULL
);
*/

-- ALTER命令修改表

-- 修改表名 ALTER TABLE 旧表名 RENAME TO 新表名;

-- 查看建表sql语句 show CREATE ALTER 表名;

-- 修改表字段数据类型 ALTER TABLE 表名 MODIFY COLUMN 表的字段 字段的数据类型 其他约束;

-- 新增表字段 ALTER TABLE 表名 ADD COLUMN 表的字段 字段的数据类型 其他约束;

-- 删除表字段 ALTER TABLE 表名 DROP COLUMN 表的字段;

-- 修改字段名称 ALTER TABLE 表名 CHANGE COLUMN 旧字段 新字段 字段的数据类型 其他约束;
10楼
昵称477848 2022-6-29
虽然我啥都看不懂但我还是点个赞[滑稽]

评论

登录后才可发表内容
  • 主题

    23

  • 帖子

    325

  • 关注者

    0

Copyright © 2019 凯特网.   Powered by HYBBS 2.3.4  

Runtime:0.0530s Mem:2149Kb