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 变量名 [: 变量类型] = ...
1.Scala 入门
第 1 章 Scala 入门1.1 概述1.1.1 为什么学习 Scala
1)Spark—新一代内存级大数据计算框架,是大数据的重要内容。
2)Spark就是使用Scala编写的。因此为了更好的学习Spark, 需要掌握Scala这门语言。
3)Spark的兴起,带动Scala语言的发展。(大数据内行业重器 -Spark)
1.1.2 Scala 发展历史联邦理工学院的马丁·奥德斯基(Martin Odersky)于2001年开始设计Scala。
马丁·奥德斯基是编译器及编程的狂热爱好者,长时间的编程之后,希望发明一种 语言,能够让写程序这样的基础工作变得高效,简单。所以当接触到JAVA语言后,对 JAVA这门便携式,运行在网络,且存在垃圾回收的语言产生了极大的兴趣,所以决定 将函数式编程语言的特点融合到JAVA中,由此发明了两种语言(Pizza & Scala)。
Pizza和Scala极大地推动了Java编程语言的发展。
JDK5.0 的泛型、增 强for循环、自动类型转换等,都是从Pizza引入的新特性。
JDK8.0 的类型推断、Lambda表 ...
Log4j日志
Log4j Log4j是Apache的- -个开放源代码项目,通过使用Log4j,可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器等;也可以控制每- - 条日志的输出格式;通过定义每一条日志信息的级别,能够更加细致地控制日志的生成过程。这些可以通过一一个配置文件来灵活地进行配置,而不需要修改应用的代码。
一句话: 以什么样的格式,按照日志的优先级,将日志输出到哪?
目的地[ appender ]
布局[ layout ]
控制单元[ logger ]
级别[ level ]
1. 常见Appender, 前3个常用
org.apache.log4j.ConsoleAppender (控制台)
org.apache.log4j.FileAppender (文件)
org.apache.log4j.DailyRollingFileAppender (每天产生-一个日志文件)
org.apache.log4j.RollingFileAppender (文件大小到达指定尺寸的时候产生- - 个新的文件)
org.apache. ...
Vagrant教程
Vagrant笔记1. Vagrant简介1.1 是什么vagrant是依赖于虚拟机软件进行工作的
vagrant是构建在虚拟机技术上的虚拟机运行环境管理工具
vagrant用于创建和部署虚拟机运行环境的
用VirtualBox举例,VirtualBox会开放一个创建虚拟机的接口,Vagrant会利用这个接口创建虚拟机,并且通过Vagrant来管理,配置和各种安装虚拟机。
好处是可以提供一个可配置,可移植和可复用的软件环境
Vagrant简单的配置,丰富的自动化脚本资源以及分享的便捷性都是我们应该学习的思想
1.2 能干啥Vagrant是开发者的福音,摆脱了重复配置环境的处境,用它来方便快捷的管理自己的开发环境,自动部署无需人工参与
Vagrant可以统一开发环境
Vagrant是构建在虚拟机上的虚拟化运行环境管理工具
建立和删除虚拟机
配置虚拟机运行参数
管理虚拟机运行状态
自动化配置和安装开发环境
打包和分发虚拟机运行环境
2. Vagrant安装2.1 前提在BIOS开启VT-x/AMD-v虚拟化技术支持
Hypervisor是一种运行在物理服务器和操作系统之间的 ...
Gradle教程
课程导学会Ant,会Maven,为什么还要学会Gradle
一款最新的 ,功能最强大的构建 工具,用它逼格更高
使用程序代替传统的XML配置,项目构建更灵活
丰富的第三方插件,让你随心所欲使用
完善Android,Java开发技术体系
提升自动化构建技术深度
进阶为高级工程师
1. Gradle相关介绍及开发环境搭建领域特定语言DSL介绍
全称domain specific language
有哪些常见的DSL语言及特点.
SQL,CSS,HTML,Shell,JSON等等
DSL语言有别于其他通用语言如:C++,Java,C#,DSL常在特殊的场景或领域中使用
通用语言大而全,DSL语言小而细
◆核心思想: 求专不求全 解决特定问题
groovy介绍
是一种基于JVM的敏捷开发语言
结合 了Python、Ruby和Smalltalk的许 多强大的特性
groovy可以 与Java完美结合,而且可以使用java所有的库
groovy特性
语法上支持动态类型,闭包等新一代语言特性
无缝集成所有已经存在的Java类库
即支持面向对 象编程也支持面向过程编程
groovy优势
...
SpringSecurity
SpringSecurity内容大纲
1. SpringSecurity框架简介1.1 概要 Spring 是非常流行和成功的 Java 应用开发框架,Spring Security 正是 Spring 家族中的 成员。Spring Security 基于 Spring 框架,提供了一套 Web 应用安全性的完整解决方 案。
正如你可能知道的关于安全方面的两个主要区域是“认证”和“授权”(或者访问控 制),一般来说,Web 应用的安全性包括用户认证(Authentication)和用户授权 (Authorization)两个部分,这两点也是 Spring Security 重要核心功能。
(1)用户认证指的是:验证某个用户是否为系统中的合法主体,也就是说用户能否访问 该系统。用户认证一般要求用户提供用户名和密码。系统通过校验用户名和密码来完成认 证过程。通俗点说就是系统认为用户是否能登录
(2)用户授权指的是验证某个用户是否有权限执行某个操作。在一个系统中,不同用户 所具有的权限是不同的。比如对一个文件来说,有的用户只能进行读取,而有的用户可以 ...
动态sql
主键生成方式
若数据库支持自动生成主键的字段(比如 MySQL 和 SQL Server),则可以设置 useGeneratedKeys=”true”,然后再把 keyProperty 设置到目标属性上。
1234567891011<!-- public int insertEmployee(Employee employee); --><!-- 让MyBatis自动的将自增id赋值给传入的employee对象的id属性 useGeneratedKeys="true":原生jdbc获取自增主键的方法; keyProperty="":将刚才自增的id封装给哪个属性 --><insert id="insertEmployee" useGeneratedKeys="true" keyProperty="id"> INSERT INTO t_employee(empname,gender,email) VALUES(#{empName& ...
动态sql
12345678910111213141516171819202122// 获取项目根路径 String configPath=System.getProperty("user.dir")+"/config/config.json";String filePath =new ClassPath new ClassPathResource("/").getFile().getAbsolutePath(); new ClassPathResource("").getFile().getAbsolutePath(); //获取src目录 Test t = new Test(); InputStream resourceAsStream = t.getClass().getResourceAsStream("/a.txt"); //加斜杆为项目根路径,不加斜杆为当前路径 ...






