这里简单记录一下SSM里的各种配置文件,简单记录一下,作为基础。注意,xml中某些配置是有顺序要求的。 web.xml 引入约束:约束是作为其子标签的编写规范,可以作为提示和规范。 12345<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xml...
float最全最根本解析
前置知识要想真正得用好浮动,以及清除浮动。必须首先要理解几个概念作为前置知识。 Normal flow (正常流)这个名词在国内一般被翻译为文档流,这个被很多人吐槽,就不再说了。 这个正常流就是我们HTML初始的流模型。也就是整个文档内,如果你不添加其他属性(浮动和绝对定位)那么整个文档就属于正常流。 格式化上下文(formatting context)一个格式化上下文(下文称FC)就是一系列相关的元素排布的环境。不同的FC有不同的排布规则。 正常流中的一个盒子模型,都必然属于一个格式化上...
Vue首屏优化全解析
Vue首屏优化全解析打开GZIP直接打包称为xxx.gz文件在前端打包过程中即生成gz文件可以减少部署服务器的打包过程,可以减少服务器的性能压力,提高响应时间。 使用webpack插件CompressionWebpackPlugin来实现gzip打包。 在vue项目根目录新建webpack.config.js来增加webpack配置。 下面是一个基本配置,具体详细见其文档。 123456789101112131415161718192021222324252627282930const C...
基于java的脚本语言hair的开发思路3-执行
执行经过上面的操作,我们已经根据程序生成了一个抽象语法树。此时我们需要让程序达到其预期的结果。即需要我们翻译为Java可执行的代码。实际上执行的过程很简单,既然我们已经生成了抽象语法树。我们只需要将每个节点的结果得到,最后得到根节点的结果,即为该程序的结果。所以这实际上也是一个树的遍历工作,从左边的叶节点开始遍历。依次得到上层的非叶节点的值。 针对不同的节点,我们的实现方法不同,但是我们都将其定义为eval方法,意为evaluate,即得到结果。 下面简单介绍几种类型的节点的实现: 实现基...
基于java的脚本语言hair的开发思路2-语法分析
语法分析在经过上一步的词法分析之后,我们已经将程序字符串分以上三种token。要想让程序运行起来,我们还必须将其构造为抽象语法树(Abstract Syntax Tree)。 它是用来表示程序结构的树形结构。其中树的节点也分为不同的类型。 具体的树节点类型后面介绍。 在我们得到AST之后,想要得到结果,就很简单了:我们只需要自底而上活得每个树节点的对应的值。其根节点的值就是最终的程序结果。 所以问题的关键是如何通过token队列来获得AST。这里我们首先引入BNF的概念。 BNFBNF即巴...
基于java的脚本语言hair的开发思路1-词法分析
申明:本脚本语言前面的开发思路基本是《两周自制脚本语言》中Stone语言的模型,后期将逐渐分离,添加更多特征。这本书作为入门读物确实不错,但是其设计规范还是有待商榷,一是没有给出一个确定的项目架构、二是部分的结构的成分不够规范(比如token的定义,运算优先级的处理等)。 词法分析一个程序片段被编译器解析的时候是一个很长的字符串。我们的目标是通过一定的手段分析将这个字符串分开来。 而这个被分割后的子字符串我们一般称为Token,Token有很多类型。在V8中定义的部分代码如下: 12345...
java的正则表达式
APIPattern类pattern 对象是一个正则表达式的编译表示。Pattern 类没有公共构造方法。要创建一个 Pattern 对象,你必须首先调用其公共静态编译方法,它返回一个 Pattern 对象。该方法接受一个正则表达式作为它的第一个参数。 示例12private String regexPat = "\\abc"private Pattern pattern = Pattern.compile(regexPat); Matcher 类Matcher 对象...
Tensorflow2.0-data模块的使用
Tensorflow-dataTesorflow官方提供了一些数据集来供我们使用。其地址为Tensorflow-data,我们可以在这里查看数据集的详细细节Tensorflow-data-catalog。 其API地址为API。 简单使用Tensorflow-data有137个API,一般不会全部使用。我们需要了解的第一个API是: tfds.load:从本地或网络载入数据集,并生成tf.data.Dataset对象。 其基本形式为: 1234567891011121314151617tf...
西瓜书总结3-线性模型
基本形式线性模型(linear model)顾名思义即通过线性函数来进行预测的模型。 大部分机器学习算法的本质都是寻找一个函数来将输入进行处理得到预测结果。这里最简单的线性模型是这样,最复杂的神经网络模型也是如此。 线性模型的一般形式为: f(x) = w1x1+w1x1+…+wdxd+b 向量形式则为: f(x) = wTx + b 其中w = (w1; w1; …;wd;), w和b学得之后,模型就得以确定。 线性模型形式简单、易于构造,但却蕴含着机器学...
西瓜书总结2-模型评估与选择
经验误差与过拟合概念错误率:分类错误的样本数占样本总数的比例。 精度:1 - 错误率。 训练误差(经验误差):学习器在训练集上的误差。 泛化误差:学习器在新样本上的误差。 过拟合:把训练样本自身的一些特点当作了所有潜在样本都具有的一般特征。一般无法彻底避免,只能缓解。 欠拟合:与过拟合相反,即对训练样本的一般性质未学习好。 评估方法留出法留出法(hold-out)直接将数据集D划分为两个互斥的集合,其中一个集合用作训练集S,另一个作为测试集T。即D=S∪T,S∩T=Ø。...