9.异常、隐式转换和泛型
第 9 章 异常语法处理上和 Java 类似,但是又不尽相同。
9.1 Java 异常处理12345678910111213141516public class ExceptionDemo { public static void main(String[] args) { try { int a = 10; int b = 0; int c = a / b; }catch (ArithmeticException e){ // catch 时,需要将范围小的写到前面 e.printStackTrace(); }catch (Exception e){ e.printStackTrace(); }finally { System.out.println("finally"); ...
8.模式匹配
第 8 章 模式匹配Scala 中的模式匹配类似于 Java 中的 switch 语法
12345678910111213int i = 10switch (i) { case 10 : System.out.println("10"); break; case 20 : System.out.println("20"); break; default : System.out.println("other number"); break;}
但是 scala 从语法中补充了更多的功能,所以更加强大。
8.1 基本语法模式匹配语法中,采用 match 关键字声明,每个分支采用 case 关键字进行声明,当需 要匹配时,会从第一个 case 分支开始,如果匹配成功,那么执行对应的逻辑代码,如果匹 配不成功,继续执行下一个分支进行判断。如果所有 case 都不匹配,那么会执行 case _分支, 类似于 Java 中 default 语句。
1) ...
7.集 合
第 7 章 集 合7.1 集合简介
Scala 的集合有三大类:序列 Seq、集 Set、映射 Map,所有的集合都扩展自 Iterable 特质。
对于几乎所有的集合类,Scala 都同时提供了可变和不可变的版本,分别位于以下两 个包
不可变集合:scala.collection.immutable
可变集合: scala.collection.mutable
Scala 不可变集合,就是指该集合对象不可修改,每次修改就会返回一个新对象,而 不会对原对象进行修改。类似于 java 中的 String 对象
可变集合,就是这个集合可以直接对原对象进行修改,而不会返回新的对象。类似 于 java 中 StringBuilder 对象
建议:在操作集合的时候,不可变用符号,可变用方法
7.1.1 不可变集合继承图
1)Set、Map 是 Java 中也有的集合
2)Seq 是 Java 没有的,我们发现 List 归属到 Seq 了,因此这里的 List 就和 Java 不是同一个 概念了
3)我们前面的 for 循环有一个 1 to 3,就是 IndexedSe ...
Linux安装Mysql
直接从网易开源镜像站下载镜像(可以用阿里,华为,清华大学等等许多)我随便选了一个
http://mirrors.163.com/mysql/Downloads/MySQL-5.7
下载之后上传到自己的服务器。或者直接1
1wget http://mirrors.163.com/mysql/Downloads/MySQL-5.7/mysql-5.7.32-1.el7.x86_64.rpm-bundle.tar
1 安装MySQL解压
1234567891011121314151617181920212223242526tar -xvf mysql-5.7.33-1.el7.x86_64.rpm-bundle.tar -C ./mysql-5.7.33mysql-community-embedded-devel-5.7.21-1.el7.x86_64.rpmmysql-community-minimal-debuginfo-5.7.21-1.el7.x86_64.rpmmysql-community-common-5.7.21-1.el7.x86_64.rpmmysql-comm ...
使用ShardingJdbc实现Mysql数据库主从复制
Mysql主从原理图
1. 创建两个Mysql实例Docker安装模拟MySQL集群(和本地安装没啥区别,我为了方便直接Docerk了)
1、下载mysql镜像
1docker pull mysql:5.7
2、创建Master实例并启动
12345678910111213docker run -p 3306:3306 --name mysql-master \-v /mydata/mysql/master/log:/var/log/mysql \-v /mydata/mysql/master/data:/var/lib/mysql \-v /mydata/mysql/master/conf:/etc/mysql \-e MYSQL_ROOT_PASSWORD=root \-d mysql:5.7 参数说明 -p 3306:3306:将容器的3306端口映射到主机的3306端口 -v /mydata/mysql/master/conf:/etc/mysql:将配置文件夹挂在到主机 -v /mydata/mysql/master/log:/var/log/mysql:将日志文件 ...
6.面向对象
第 6 章 面向对象Scala 的面向对象思想和 Java 的面向对象思想和概念是一致的。
Scala 中语法和 Java 不同,补充了更多的功能。
6.1 Scala 包6.1.1 包的命名1) 命名规则只能包含数字、字母、下划线、小圆点.,但不能用数字开头,也不要使用关键字。
2) 案例实操123demo.class.exec1 //错误,因为 class 关键字demo.12a //错误,数字开头
3) 命名规范123一般是小写字母+小圆点com.公司名.项目名.业务模块名
4) 案例实操123com.atguigu.oa.model com.atguigu.oa.controllercom.sohu.bank.order
6.1.2 包说明(包语句)1)说明Scala 有两种包的管理风格,一种方式和 Java 的包管理风格相同,每个源文件一个包(包名和源文件所在路径不要求必须一致),包名用“.”进行分隔以表示包的层级关系,如 com.atguigu.scala。另一种风格,通过嵌套的风格表示层级关系,如下
123456package com{ pack ...
5.函数式编程
第 5 章 函数式编程 面向对象和面向过程都属于同一类,命令式编程,函数式编程和命令式编程是整体完全不同的思路,命令式编程指的是不管你是拆解对象也好,还是直接按照步骤,按照过程把程序定义好。我们最终落脚点都是计算机具体执行程序的具体命令。函数式编程并不管计算机底层是怎么处理这件事,最关心的是我们整个数据的映射关系是什么样的。之前的命令式编程不管是面向对象还是面向过程,在做编程设计的时候,我们用到的那些语法,都是面向计算机硬件的抽象,比如在java或者C中,定义一个变量,这个变量是什么概念呢, int a =1; 并不是数学意义上的 a=1;因为数学上a=1;那接下来a和1完全就是等价的关系,而在计算机编程中a=1;之后还可以a=2;还可以在改变他的值,这在数学上是完全不可思议的事情。所以这个a并不是数学意义上的a,是一个变量,对应的是计算机底层的一块内存空间。所以a=1,对应的是计算机底层把一条数据写入到对应的内存空间的一条指令。所以后面再给a赋别的值就是更改内存空间中的数据。所以命令式编程的每一行代码,都能翻 ...
4.流程控制
第 4 章 流程控制4.1 分支控制 if-else让程序有选择的的执行,分支控制有三种:单分支、双分支、多分支
4.1.1 单分支1)基本语法123if (条件表达式) { 执行代码块}
说明:当条件表达式为 ture 时,就会执行{ }的代码。
2)案例实操123if (age >= 18){ println("成年")}
4.1.2 双分支1)基本语法12345if (条件表达式) { 执行代码块 1} else { 执行代码块 2 }
2)案例实操12345if (age >= 18){ println("成年")} else { println("未成年")}
4.1.3 多分支1)基本语法1234567891011if (条件表达式 1) { 执行代码块 1 }else if (条件表达式 2) { 执行代码块 2 ...
3.运算符
第 3 章 运算符Scala 运算符的使用和 Java 运算符的使用基本相同,只有个别细节上不同。
3.1 算术运算符1)基本语法
运算符
运算
范例
结果
+
正号
+3
3
-
负号
b=4; -b
-4
+
加
5+5
10
-
减
6-4
2
*
乘
3*4
12
/
除
5/5
1
%
取模(取余)
7%5
2
+
字符串相加
“hel”+”lo”
“hello”
对于除号“/”,它的整数除和小数除是有区别的:整数之间做除法时,只保留整数部分而舍弃小数部分。
对一个数取模 a%b,和 Java 的取模规则一样.
2)案例实操123456789101112// 1. 算术运算符val result1: Int = 10 / 3println(result1)val result2: Double = 10 / 3println(result2)val result3: Double = 10.0 / 3println(result3.formatted("%5.2f") ...
2.变量和数据类型
第 2 章 变量和数据类型2.1 注释Scala 注释使用和 Java 完全一样。
注释是一个程序员必须要具有的良好编程习惯。将自己的思想通过注释先整理出来,再 用代码去体现。
1)基本语法12345(1)单行注释:// (2)多行注释:/* */ (3)文档注释:/** * */
2) 代码规范
使用一次 tab 操作,实现缩进,默认整体向右边移动,用 shift+tab 整体向左移
或者使用 ctrl + alt + L 来进行格式化
运算符两边习惯性各加一个空格。比如:2 + 4 * 5。
一行最长不超过 80 个字符,超过的请使用换行展示,尽量保持格式优雅
2.2 变量和常量(重点)常量:在程序执行的过程中,其值不会被改变的变量
0)回顾:Java 变量和常量语法变量类型 变量名称 = 初始值
int a = 10
final 常量类型 常量名称 = 初始值
final int b = 20
1)基本语法var 变量名 [: 变量类型] = ...




