<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[哇哈哈]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/LJHABC1982</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; LJHABC1982]]></copyright><item><title><![CDATA[sqlparser]]></title><link>https://blog.youkuaiyun.com/LJHABC1982/article/details/112761442</link><guid>https://blog.youkuaiyun.com/LJHABC1982/article/details/112761442</guid><author>LJHABC1982</author><pubDate>Mon, 18 Jan 2021 08:57:06 +0800</pubDate><description><![CDATA[https://github.com/alibaba/druid/wiki/Druid_SQL_AST
https://github.com/alibaba/druid/wiki/SQL-Parser
https://www.cnblogs.com/lay2017/p/9840394.html
https://blog.youkuaiyun.com/prestigeding/article/details/72318482
https://blog.youkuaiyun.com/zhxdick/article/details/51]]></description><category></category></item><item><title><![CDATA[第11章 Scala的继承关系]]></title><link>https://blog.youkuaiyun.com/LJHABC1982/article/details/106306792</link><guid>https://blog.youkuaiyun.com/LJHABC1982/article/details/106306792</guid><author>LJHABC1982</author><pubDate>Sat, 23 May 2020 21:49:01 +0800</pubDate><description><![CDATA[第11章 scala的继承关系
1 scala的类继承关系
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200523214804501.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0xKSEFCQzE5ODI=,size_16,color_FFFFFF,t_70#pic_center
scala继承关系的顶]]></description><category></category></item><item><title><![CDATA[第10章 组合和继承]]></title><link>https://blog.youkuaiyun.com/LJHABC1982/article/details/106109828</link><guid>https://blog.youkuaiyun.com/LJHABC1982/article/details/106109828</guid><author>LJHABC1982</author><pubDate>Wed, 13 May 2020 23:48:21 +0800</pubDate><description><![CDATA[第10章 组合和继承
组合的意思是一个类可以包含对另一个类的引用，利用这个被引用类来帮助他完成任务，而继承是超类/子类的关系
1 一个二维的布局类库
2 抽象类
abstract class Element {
  def contents: Array[String];
}


一个方法只要没有实现，那么它就是抽象的，跟 Java 不同并不需要(也不能)在方法上加上 abstract 修饰符
一个包含抽象成员的类本身也要声明为抽象的，做法是在 class 关键字前加上 abstract 修饰符

3 定义]]></description><category></category></item><item><title><![CDATA[第09章 控制抽象]]></title><link>https://blog.youkuaiyun.com/LJHABC1982/article/details/106064813</link><guid>https://blog.youkuaiyun.com/LJHABC1982/article/details/106064813</guid><author>LJHABC1982</author><pubDate>Mon, 11 May 2020 22:54:19 +0800</pubDate><description><![CDATA[第09章 控制抽象
1 减少代码重复
import java.io.File

object FileMatcher {
  private def fileHere: Array[File] = new File(".").listFiles();

  //以query结尾的文件或文件夹
  def fileEndWidth(query: String) = {
    for {file &lt;- fileHere
         if file.getName().endsWith(query)]]></description><category></category></item><item><title><![CDATA[第08章 函数和闭包]]></title><link>https://blog.youkuaiyun.com/LJHABC1982/article/details/105695695</link><guid>https://blog.youkuaiyun.com/LJHABC1982/article/details/105695695</guid><author>LJHABC1982</author><pubDate>Wed, 22 Apr 2020 23:02:25 +0800</pubDate><description><![CDATA[第08章 函数和闭包
1 方法
object LongLines {
  def main(args: Array[String]): Unit = {
    val width = args(0).toInt
    for (arg &lt;- args.drop(1))
      processFile(arg, width)
  }

  def processFile(filenam...]]></description><category></category></item><item><title><![CDATA[第07章 内嵌的控制结构]]></title><link>https://blog.youkuaiyun.com/LJHABC1982/article/details/105645762</link><guid>https://blog.youkuaiyun.com/LJHABC1982/article/details/105645762</guid><author>LJHABC1982</author><pubDate>Mon, 20 Apr 2020 21:52:57 +0800</pubDate><description><![CDATA[第7章 内嵌的控制结构
scala所有的控制结构都返回某种值作为结果，程序员可以通过这些返回值来简化代码，缺少了这个机制，程序员必须创建临时的变量，这些变量仅仅是用来保持那些在控制结构内部计算出来的结果，去掉这些临时变量不仅让代码变得更简单，同时还避免了很多由于在某个分支设置了变量而在另一个分支中忘记设置带来的bug
1 if 表达式
//指令式编程
var filename = "default...]]></description><category></category></item><item><title><![CDATA[第06章 函数式对象]]></title><link>https://blog.youkuaiyun.com/LJHABC1982/article/details/105525179</link><guid>https://blog.youkuaiyun.com/LJHABC1982/article/details/105525179</guid><author>LJHABC1982</author><pubDate>Wed, 15 Apr 2020 00:19:36 +0800</pubDate><description><![CDATA[第6章 函数式对象
1 Rational类的规则定义
有理数用 n/d表示
2 构建Rational
//n,d为类参数
class Rational(n: Int, d: Int)


如果一个类没有定义体，并不需要给出空的花括号
圆括号中的 n , d 称作类参数，scala 编译器将创建一个主构造方法，主构造方法也会接收这两个参数
不可变对象的设计取舍，不可变对象可以安全的用作哈希表里的键。...]]></description><category></category></item><item><title><![CDATA[第5章 基础类型和操作]]></title><link>https://blog.youkuaiyun.com/LJHABC1982/article/details/105499876</link><guid>https://blog.youkuaiyun.com/LJHABC1982/article/details/105499876</guid><author>LJHABC1982</author><pubDate>Mon, 13 Apr 2020 22:43:52 +0800</pubDate><description><![CDATA[第5章 基础类型和操作
1 一些基础类型
数值类型：Float，Double  整数类型：Byte，Short，Int，Long，Char
除了位于java.lang的String，java的基本类型都有与之对应的scala的基础类型
2 字面量
scala不支持八进制字面量和以0开头的整数字面量。如031，将无法编译通过
整数字面量
以0x或0X开头为16进制
整数字面量以L或 l 结尾，那么它...]]></description><category></category></item><item><title><![CDATA[第04章 类和对象]]></title><link>https://blog.youkuaiyun.com/LJHABC1982/article/details/105459890</link><guid>https://blog.youkuaiyun.com/LJHABC1982/article/details/105459890</guid><author>LJHABC1982</author><pubDate>Sat, 11 Apr 2020 21:21:30 +0800</pubDate><description><![CDATA[第4章 类和对象
1 类、字段和方法
class ChecksumAccumulator {
  //不加修饰符默认是public
  private var sum = 0;
  //b 是 val 类型
  def add(b: Byte): Unit = sum += b;
  //
  def checksum(): Int = ~(sum &amp; 0xFF) + 1
}


publ...]]></description><category></category></item><item><title><![CDATA[第03章scala入门续]]></title><link>https://blog.youkuaiyun.com/LJHABC1982/article/details/105399264</link><guid>https://blog.youkuaiyun.com/LJHABC1982/article/details/105399264</guid><author>LJHABC1982</author><pubDate>Wed, 08 Apr 2020 22:36:48 +0800</pubDate><description><![CDATA[第三章scala入门续
第7步 用类型参数化数组
数组是内容是可变的
当你用scala实例化对象时，可以用值和类型来对其参数化
用值来参数化
var big = new BigInteger("12345")

用类型来参数化，用方括号括起来类型
var greetStrings = new Array[String](3);
//greetStrings.update(0, "Hello")
g...]]></description><category></category></item><item><title><![CDATA[第02章scala入门]]></title><link>https://blog.youkuaiyun.com/LJHABC1982/article/details/105399214</link><guid>https://blog.youkuaiyun.com/LJHABC1982/article/details/105399214</guid><author>LJHABC1982</author><pubDate>Wed, 08 Apr 2020 22:35:09 +0800</pubDate><description><![CDATA[第二章scala入门
第1步 使用scala解释器
所有的Java的基本类型在scala包中都有对应的类
scala.Boolean对应Java的boolean，scala.Float对应Java的float，当scala代码编译成java字节码是，scala编译器会尽量使用java的基本类型
第2步 定义变量
var与val，val跟Java的final变量类型，变量名和类型直接用冒号（:）隔开...]]></description><category></category></item><item><title><![CDATA[词法与文法简介]]></title><link>https://blog.youkuaiyun.com/LJHABC1982/article/details/103991298</link><guid>https://blog.youkuaiyun.com/LJHABC1982/article/details/103991298</guid><author>LJHABC1982</author><pubDate>Wed, 15 Jan 2020 16:11:36 +0800</pubDate><description><![CDATA[https://zhuanlan.zhihu.com/p/19878087
https://segmentfault.com/a/1190000015568992
词法简介
所谓的源代码，我们可以将其视为一段长长的字符串。所谓字符串，即是字符的有序集。但是，字符本身作为编译器的输入单位，粒度实在太小了，因此，我们往往需要对编译器进行第一层封装，即分割出一个称之为 Tokenizer （词法分析器）...]]></description><category></category></item><item><title><![CDATA[Java 日志框架解析]]></title><link>https://blog.youkuaiyun.com/LJHABC1982/article/details/103974954</link><guid>https://blog.youkuaiyun.com/LJHABC1982/article/details/103974954</guid><author>LJHABC1982</author><pubDate>Tue, 14 Jan 2020 16:08:35 +0800</pubDate><description><![CDATA[Java 日志框架解析
https://zhuanlan.zhihu.com/p/24272450
https://zhuanlan.zhihu.com/p/24275518
https://www.cnblogs.com/chanshuyi/p/something_about_java_log_framework.html
https://www.jianshu.com/p/7b5860be19...]]></description><category></category></item><item><title><![CDATA[6.elasticsearch动态映射]]></title><link>https://blog.youkuaiyun.com/LJHABC1982/article/details/102805354</link><guid>https://blog.youkuaiyun.com/LJHABC1982/article/details/102805354</guid><author>LJHABC1982</author><pubDate>Tue, 29 Oct 2019 17:46:10 +0800</pubDate><description><![CDATA[elasticsearch动态映射
动态字段映射与动态模板映射
动态字段映射
默认情况下， Elasticsearch会将新字段添加到类型映射中 ，通过将dynamic参数设置为false（忽略新字段）或strict（如果遇到未知字段，则引发异常），可以在文档和对象级别上禁用此行为。
字段类型自动映射规则




json格式数据
自动推测字段类型




null
没有字段被添加


true ...]]></description><category></category></item><item><title><![CDATA[5.elasticsearch 映射元字段]]></title><link>https://blog.youkuaiyun.com/LJHABC1982/article/details/102805140</link><guid>https://blog.youkuaiyun.com/LJHABC1982/article/details/102805140</guid><author>LJHABC1982</author><pubDate>Tue, 29 Oct 2019 17:40:42 +0800</pubDate><description><![CDATA[elasticsearch 映射元字段
elasticsearch 映射用来定义一个文档以及其包含的的字段如何被存储和索引
一个映射包含元字段和字段列表
###元字段
描述文档本身的字段
_index、_type、_id、_source、_size、_field_names、_ignored、_routing、_meta
文档属性字段




属性名
作用




_index
文档所属索引


...]]></description><category></category></item><item><title><![CDATA[kerberos]]></title><link>https://blog.youkuaiyun.com/LJHABC1982/article/details/102804003</link><guid>https://blog.youkuaiyun.com/LJHABC1982/article/details/102804003</guid><author>LJHABC1982</author><pubDate>Tue, 29 Oct 2019 17:17:43 +0800</pubDate><description><![CDATA[https://www.cnblogs.com/artech/archive/2007/07/05/807492.html
https://www.cnblogs.com/-qing-/p/11349134.html
https://ieevee.com/tech/2016/06/07/kerberos-1.html
https://blog.youkuaiyun.com/czz1141979570/arti...]]></description><category></category></item><item><title><![CDATA[4.elasticsearch join type]]></title><link>https://blog.youkuaiyun.com/LJHABC1982/article/details/102685091</link><guid>https://blog.youkuaiyun.com/LJHABC1982/article/details/102685091</guid><author>LJHABC1982</author><pubDate>Tue, 22 Oct 2019 16:21:10 +0800</pubDate><description><![CDATA[Elasticsearch join type
https://blog.youkuaiyun.com/laoyang360/article/details/79774481
join数据类型是一个特殊字段，可在相同索引的文档中创建父/子关系。
relations属性定义了一组可能的关系，每个关系都是父名称和子名称。
创建join类型的文档必须在源文档中通过name指定关系。
PUT my_index
{
 ...]]></description><category></category></item><item><title><![CDATA[3.elasticsearch字段类型]]></title><link>https://blog.youkuaiyun.com/LJHABC1982/article/details/102523802</link><guid>https://blog.youkuaiyun.com/LJHABC1982/article/details/102523802</guid><author>LJHABC1982</author><pubDate>Sat, 12 Oct 2019 16:59:42 +0800</pubDate><description><![CDATA[3.elasticsearch字段类型
https://blog.youkuaiyun.com/chengyuqiang/article/details/79048800
https://cloud.tencent.com/developer/article/1443630
https://blog.youkuaiyun.com/smilepasta035/article/details/79550400
https:/...]]></description><category></category></item><item><title><![CDATA[WebApplicationInitializer]]></title><link>https://blog.youkuaiyun.com/LJHABC1982/article/details/100295282</link><guid>https://blog.youkuaiyun.com/LJHABC1982/article/details/100295282</guid><author>LJHABC1982</author><pubDate>Mon, 02 Sep 2019 15:36:43 +0800</pubDate><description><![CDATA[ServletContainerInitializer
深入了解WebApplicationInitializer是如何消除web.xml和springMVC的配置文件
https://www.nonelonely.com/article/1552475062917
servlet3.0 8.2.4 Shared libraries / runtimes pluggability 章节中规定：为了...]]></description><category></category></item><item><title><![CDATA[docker swarm安装jenkins]]></title><link>https://blog.youkuaiyun.com/LJHABC1982/article/details/100134798</link><guid>https://blog.youkuaiyun.com/LJHABC1982/article/details/100134798</guid><author>LJHABC1982</author><pubDate>Thu, 29 Aug 2019 11:43:48 +0800</pubDate><description><![CDATA[docker swarm安装与配置jenkins
安装jenkins
1.创建jenkins本地目标
mkdir -p /usr/local/jenkins
chmod -R 777 /usr/local/jenkins

2.创建docker swarm配置文件
jenkins绑定宿主机java、maven
version: "3.6"
services:
  jenkins:
    imag...]]></description><category></category></item></channel></rss>