scala言语基础学习五】的更多相关文章

extends override 和super方法 override field 父类不是val对象不能覆盖field isInstanceOf和asInstanceOf(isInstanceOf是用来判断对象,asInstanceOf用来转换对象) getClass和classOf 使用模式匹配进行类型判断 protected 抽象类 抽象field…
trait的学习 1.将trait作为接口来使用 trait中可以实现一些方法,子类只要extends 了trait就可以直接使用父trait里面的方法 普通继承的话父类和子类之间的field是通过引用访问,而trait之间的继承scala编译器会直接用同一个field trait的抽象filed 继承者必须实现 为实例混入trait trait调用链 在trait中覆盖抽象方法 此时不能调用因为是抽象方法 混合使用trait的具体方法和抽象方法 trait的构造机制 在具有继承和with多个t…
类型参数 泛型函数 多个参数 使用泛型参数时候,不给类型scala也能自己判断 上边界bounds 下边界bounds 专门用于打包泛型数组…
模式匹配 case _ =>不能放在函数的中间必须放在最后,否则scala会编译不通过 在case 里面使用if守卫 在模式匹配中获取输入的数据(在匹配不到的情况下) 对类型进行匹配 case class的使用 会自动伴生对象生成apply不用new 而且自动生成类似javaBean东西…
伴生对象 object方法构造函数只会执行一次.伴生对象和对象之间private对象可以互相访问 让object继承抽象类 apply方法 可以不new就构造对象 类似于var s = ArrayBuffer[Int]; scala main方法可以通过def main(args:Array[String])作为函数入口或者继承app方法 scalac + filename.scala 编译文件 然后通过scala class文件名字进行执行 利用拓扑…
定义一个简单的类 //定义类,包含field以及方法 自定义的getter 和setter 仅仅暴露field的getter和setter方法 private[this]的使用 (只能在当前实例中使用超出范围不行) java风格的getter和setter  scala.beans.BeanProperty 导入包…
scala变长参数: 递归累加: scala异常的使用: array和arraybuffer的使用 定长array: arraybuff:…
隐式转换 使用隐式转换加强现有的类型的功能-类似于设计模式的装饰模式…
一.将函数赋值给变量 二.匿名函数 三.高阶函数 高阶函数好像调用不打印是看不到赋值 和普通函数区别 高阶函数的类型推断 reduce操作 相当于1*2*3*4*5*6*7*8*9 def getName(msg:String)=(name:String)=>{println(msg + "," + name)} 相当于一个匿名函数放到getName函数中…
map的操作 访问fangwemap元素 修改map元素 遍历map sortmap和linkmap map元素类型tuple…
使用yield和函数式编程转化数组 算法案例(移除第一个负数之后的所有负数) 改良高校方案…
Python基础学习五 迭代 for x in 变量: 其中变量可以是字符串.列表.字典.集合. 当迭代字典时,通过字典的内置函数value()可以迭代出值:通过字典的内置函数items()可以迭代出键值对. for key in dict: #迭代键 for val in dict.value(): #迭代值 for k,v in dict.items(): #迭代键值对 当迭代列表时,通过内置函数enumerate()可以迭代出索引加值. for i in list #迭代列表 for i…
一.单向n-1 单向n-1关联只需从n的一端可以访问1的一端. 域模型: 从Order到Customer的多对一单向关联.Order类中定义一个Customer属性,而在Customer类不用存放Order对象的引用.      Order.java public class Order{ private Integer uid; private String name; private Customer cus; //省略get.set方法 } Customer.java public cla…
1.Scala基础语法 区分大小写 类名 - 对于所有的类名的第一个字母要大写.如果需要使用几个单词来构成一个类的名称,每个单词的第一个字母要大写. 方法名称 - 所有的方法名称的第一个字母用小写. 如果若干单词被用于构成方法的名称,则每个单词的第一个字母应大写. 程序文件名 - 程序文件的名称应该与对象名称完全匹配(新版本不需要了,但建议保留这种习惯).保存文件时,应该保存它使用的对象名称(记住Scala是区分大小写),并追加".scala"为文件扩展名. (如果文件名和对象名称不匹…
一.Collection概述 1.数组和集合的区别 (1)长度区别      数组长度是固定的,集合长度是可变的. (2)存储内容区别      数组只能存放同一种类型的元素(基本类型/引用类型).      集合可以存储不同类型的对象.   二.集合的体系 Collection Collection是集合体系的根接口,它包含了集合的基本操作和属性. Collection包含了List和Set两大分支. (1)List是一个有序的队列,每一个元素都有它的索引,第一个元素的索引值是0.     L…
今天继续学习Django,今天主要掌握两个小点 一.如果为Django项目中引入静态文件 1.先要在project目录下创建static的目录,然后将jquery文件拷贝这个目录下就可以了 2.在project的settings文件中静态文件的路径,注意,这里的逗号千万不可省略,不然Django会报错的 3.在html文件就可以引入这个jquery文件了 二.下面我们学习下如何前台提交数据到后台 1.先在html文件中写一个form表单,用来提交数据,我们就提交db这个url中,用post的方式…
bootstrap表格 Bootstrap 提供了一个清晰的创建表格的布局.下表列出了 Bootstrap 支持的一些表格元素: 标签 描述 <table> 为表格添加基础样式. <thead> 表格标题行的容器元素(<tr>),用来标识表格列. <tbody> 表格主体中的表格行的容器元素(<tr>). <tr> 一组出现在单行上的表格单元格的容器元素(<td> 或 <th>). <td> 默认的…
1.列表(list) 列表是Python的一种内置数据类型,list是一种有序的集合,可以随时添加和删除其中的元素,就像动态数组一样.获取list中的元素用角标获取,角标可以使用正角标,也可以使用负角标,list中的元素的数据类型也可以不一样,也可以在list内放另外一个list,这样也就形成了一个多维集合.用方括号[]扩起来. list常见的方法: len(list) #获取lest长度 list.append() #末尾追加元素 list.pop() #弹出末尾元素 del list[x]…
多表查询:查询结果需要用到两个或者以上表,此时需要多表连接,产生多表查询 1.内连接(等值连接) 示例:将两个表内容连接显示 select * from dept d, emp e where d.deptno = e.deptno; 注意:只有当d.deptno = e.deptno条件满足,内容才会显示,否则不显示 2 .外连接:让等值判断左右两边有一边的数据可以全部显示出来,使用外连接方式时使用”(+)” 格式:   左外连接:字段=字段(+) 右外连接:字段(+)=字段 示例:显示雇员的…
一.概述     Redis的主从复制策略是通过其持久化的rdb文件来实现的,其过程是先dump出rdb文件,将rdb文件全量传输给slave,然后再将dump后的操作实时同步到slave中.让从服务器(slave server)成为主服务器(master server)的精确复制品. 以下是关于 Redis 复制功能的几个重要方面: (1)Redis 使用异步复制.从Redis 2.8 开始,从服务器会以每秒一次的频率向主服务器报告复制流(replication stream)的处理进度. (…
一.概述      mybatis提供查询缓存,如果缓存中有数据就不用从数据库中获取,用于减轻数据压力,提高系统性能.           一级缓存是SqlSession级别的缓存.在操作数据库时需要构造sqlSession对象,在对象中有一个数据结构(HashMap)用于存储缓存数据.不同的sqlSession之间的缓存数据区域(HashMap)是互相不影响的.      二级缓存是mapper级别的缓存,多个SqlSession去操作同一个Mapper的sql语句,多个SqlSession可…
一.事务基本认识 1.事务的概述      为了保证数据库中数据的一致性,数据的操作应当是离散的成组的逻辑单元.当它全部完成时,数据的一致性可以保持,而当这个单元中的一部分操作失败,整个事务应当全部视为错误,所有从起始点以后的操作应全部回退到开始状态.      事务的操作: 先定义开始一个事务,然后对数据做修改操作,这时如果提交(commit),这些数据就永久的保存下来,如果回退(rollback),数据库管理系统就放弃所有的修改而回到开始事务的状态.   2.事务的属性 (1)原子性(Atm…
一.概述 1.初识拦截器      Interceptor 拦截器类似前面学过的过滤器,是可以在action执行前后执行的代码,是我们做Web开发经常用到的技术.比如:权限控制.日志等.我们也可以将多个Interceptor 连在一起组成Interceptor 栈.     Struts2拦截器,每个拦截器类只有一个对象实例,即采用单例模式,所有引用这个拦截器的Action都共享这一拦截器类的实例,因此在拦截器中如果使用类变量,要注意同步的问题.      注意:              (1…
     JavaScript定义了两个内置对象: Global和Math. 一.Global对象 1.URI编码方法      Global对象的encodeURI()和encodeURIComponent()方法可以对URI进行编码,以便发送给浏览器.有效的URI不能包含某些字符,例如空格,这个两个URI编码方法可以对URI进行编码,用特殊的UTF-8编码替换所有无效的字符,从而让浏览器能够接受和理解.      这两个方法的主要区别是: encodeURI()不会对本书属于URI的特殊字符…
一.批处理介绍      当需要成批插入或者更新记录时.可以采用Java的批量更新机制,这一机制允许多条语句一次性提交给数据库批量处理.通常情况下比单独提交处理更有效率. JDBC的批量处理语句包括下面两个方法:      addBatch(String): 添加需要批量处理的SQL语句或是参数.         executeBatct(): 执行批量处理语句. 二.批处理的使用 1.使用事务没有批处理 @Test public void testBatch(){ Connection con…
9.HTML表单设计(主要内容<form><input><select>标记) 表单标记 <form>...</form> <form></form>定义表单的开始位置和结束位置,表单提交时的内容就是<form>表单中的内容 基本格式 <form action="服务器端地址(接受表单内容的地址)" name="表单名称" method="post|get…
上一篇介绍了lightning component events的简单介绍.此篇针对上一篇进行深入,主要讲的内容为component event中的阶段(Phase). 一. 阶段(Phase)的概念 lightning对于 component event提供了两种Phase方式,Capture(捕获阶段)以及Bubble(冒泡阶段).这两种方式和javascript中针对事件处理的Capture以及Bubble很相似.先以javascript中的针对DOM结构事件监听进行描述. 以一个demo…
1.数值测试 参数 说明 -eq 等于则为真 -gt 大于则为真 -lt 小于则为真 -nq 不等于则为真 -ge 大于等于为真 -le 小于等于为真 示例: num1= num2= if test $[num1] eq $[num2] then echo '二个数相等' else echo '二个数不相等' fi 输出:二个数相等 2.字符串测试 参数 说明 = 等于则为真 != 不等于为真 -z 字符串长度为零为真 -n 字符串长度不为零位真 示例: string1='liupf' stri…