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"); //加斜杆为项目根路径,不加斜杆为当前路径 ...
尚硅谷王泽Sharding-Sphere
Apache ShardingSphere1. 基本概念什么是 Sharding SphereApache ShardingSphere(Incubator) 是一套开源的分布式数据库中间件解决方案组成的生 态圈,它由 Sharding-JDBC、Sharding-Proxy 和 Sharding-Sidecar(规划中)这 3 款相互 独立,却又能够混合部署配合使用的产品组成。它们均提供标准化的数据分片、分布式事 务和数据库治理功能,可适用于如 Java 同构、异构语言、云原生等各种多样化的应用场景。
ShardingSphere 定位为关系型数据库中间件,旨在充分合理地在分布式的场景下利用关系 型数据库的计算和存储能力,而并非实现一个全新的关系型数据库。它通过关注不变,进 而抓住事物本质。关系型数据库当今依然占有巨大市场,是各个公司核心业务的基石,未 来也难于撼动,我们目前阶段更加关注在原有基础上的增量,而非颠覆。
什么是分库分表数据库中的数据量不一定是可控的,在未进行分库分表的情况下,随着时间和业务的发展, 库中的表会越来越多,表中的数据量也会越来越大,相应地,数据操作,增删改 ...
手写LinkList
链表目的
链表的介绍
手写单链表&双链表
LinkedList 源码阅读
LinkedList 并发修改异常
LinkedList 多线程安全问题的产生和解决
一、ArrayList引发的思考
优点:查询快
缺点
1、增删慢,消耗cpu的性能
情况一、指定索引上的添加
情况二、如果原数组中的元素已经不够了
2、比较浪费内存空间
有没有一种数据结构可以用多少个空间就申请多少个空间,并且又能够提高他的增删速度呢?
二、链表链表的分类:单链表,双链表,循环链表
链表:由链将一个个元素连接,每一个元素我们通常将其称之为Node 节点
Node 节点:由两部分组成
数据值的变量
Node next 用来存放下一个节点的Node 对象
链表和数组的区别
链表查询慢(因为链表没有索引),但是增删快,
三、自定义单向链表设计接口
目的:为了体系的完整,以及代码的复用,设计出以下结构
需要实现的方法
1234567891011public int si ...
容器管理工具
3 容器管理工具Rancher3.1 什么是Rancher Rancher是一个开源的企业级全栈化容器部署及管理平台。Rancher为容器提供一揽 子基础架构服务:CNI兼容的网络服务、存储服务、主机管理、负载均衡、防护墙…… Rancher让上述服务跨越公有云、私有云、虚拟机、物理机环境运行,真正实现一键式应 用部署和管理。
3.2 Rancher安装(1)下载Rancher 镜像
1docker pull rancher/server
(2)创建Rancher容器
1docker run -di --name=rancher -p 9090:8080 rancher/server
(3)在浏览器输入地址: http://192.168.184.136:9090 即可看到高端大气的欢迎页
点击Got It 进入主界面
(4)切换至中文界面
点击右下角的English 在弹出菜单中选择中
切换后我们就可以看到亲切的中文界面啦~
3.3 Rancher初始化3.3.1 添加环境Rancher 支持将资源分组归属到多个环境。 每个环境具有自己独立的基础架构资源及服 务 ...







