AngularJS权威教程 (8) 更多

  • 第41页
    /代码内容已省略/ /代码内容已省略/ 现在,在 {{ previewText }} 内部的文本中可以将 {{ to }} 当做一个变量来使用,并对文本的变化进行..
  • 第40页
    /代码内容已省略/ /代码内容已省略/ 输入 例如:1+2-3+9,便会自动计算出结果。
  • 第38页
    默认情况下,AngularJS在当前作用域中无法找到某个属性时,便会在父级作用域中进行查找。如果AngularJS找不到对应的属性,会顺着父级作用域一直向上寻找,直到抵达 $rootScope为止。 /代码...
  • 第32页
    将应用的业务逻辑都放在控制器中,而将相关的数据都放在控制器的作用域中,这是非常完美的架构。 AngularJS启动并生成视图时,会将根 ng-app 元素同 $rootScope 进行绑定。 $rootScope 是所有 $scope 对象的最上层。...
  • 第30页
    /代码内容已省略/ /代码内容已省略/ module方法的第一个参数对应ng-app="app",而且一个js文件只能有一个module方法与ng-app对应...
  • 第28页
    通常认为,在视图中通过对象的属性而非对象本身来进行引用绑定,是Angular中的最佳实践。 /代码内容已省略/
  • 第26页
    正 如 ng-app 声 明 所 有 被 它 包 含 的 元 素 都 属 于 AngularJS 应 用 一 样 , DOM 元 素 上的ng-controller 声明所有被它包含的元素都属于某个控制器。 /代码内容已省略/
  • 第25页
    如果没有创建任何自定义的JavaScript组件,视图只会体现它渲染时模型暴露出的数据。 也就是说,没有用JS组件的情况下,浏览器渲染之后才会把数据显示在页面上,并不灵活。 AngularJS则采用了完全不同的解决方案。...

Java 8函数式编程 (33) 更多

  • 第90页
    1. 重构遗留代码时考虑如何使用Lambda表达式,有一些通用的模式。 2. 如果想要对复杂一点的Lambda表达式编写单元测试,将其抽取成一个常规的方法。 3. peek方法能记录中间值,在调试时非常有用。
  • 第80页
    2. 例6-11中的代码把列表中的数字相乘,然后再将所得结果乘以5。顺序执行这段程序没有问题,但并行执行时有一个缺陷,使用流并行化执行该段代码,并修复缺陷。 例6-11 把列表中的数字相乘,然后再将所得结果乘以5...
  • 第78页
    数组上的并行化操作 1. parallelPrefix 任意给定一个函数,计算数组的和 2. parallelSetAll 使用Lambda表达式更新数组元素 3. parallelSort 并行化对数组元素排序 例6-8 使用并行化数组...
  • 第75页
    影响并行流性能的主要因素有5个。 1. 数据块大小 输入数据的大小会影响并行化处理对性能的提升。将问题分解之后并行化处理,再将结果合并会带来额外的开销。因此只有数据足够大、每个数据处理管道花费的时间足够多...
  • 第75页
    要使用并行化运算必须遵守一些规则和限制。 reduce三个参数的方法中,如果是串行化运算就不会出现问题,但是并行化运算会出现初始值和每个元素进行运算。 /代码内容已省略/ ...
  • 第73页
    例6-3 使用蒙特卡洛模拟法并行化模拟掷骰子事件 /代码内容已省略/ 运行结果: resultMap1: {2=0.02780246, 3=0.05556867, 4=0.08336466000000001, 5=0.11114840999999999, 6=...
  • 第69页
    并发:在一个CPU上,一个时间段,执行多个任务,利用不断切换任务让人误以为同时执行。 并行:在多个CPU上,每个CPU上分别执行自己的任务,这是真正意义上的同时。 数据并行化是指将数据分成块,为每块数据分..
  • 第67页
    并没有认真做。
  • 第66页
    新增一些对Map对象操作的方法。 /代码内容已省略/ 运行结果: str1: A_Article str2: J_Jack 对Map对象的迭代,用key和value同时迭代。
  • 第66页
    在collect方法中使用reducing方法,写法恶心,而且效率底下,so 暂时不研究。
  • 第61页
    将一串字符串串在一起,原本在collect方法中使用joining方法分分钟解决,但是为了练习,使用reduce方法解决。 /代码内容已省略/ /代码内容已省略...
  • 第58页
    1. 先对一系列字符串进行分组,分组的结果是key(字符串首字母): value(字符串) 2. 对每个key对应的value计算个数,返回结果是key(字符串首字母): value(个数) 一般完成上述操作需要分成两次,但是在coll...
  • 第57页
    在collect方法中使用joining方法可以将流中的值串成一个字符串。 /代码内容已省略/ 运行结果: friends: [ Jack, Linda, Mark, JJ, M ]
  • 第56页
    在collect方法中使用groupingBy方法进行分组。 其实数据分块更像是数据分组的子集,如下用groupingBy实现与partitioningBy一样效果的代码。 /代码内容已省略/ 数据分组更加...
  • 第55页
    在collect方法中使用partitioningBy方法进行分块。 通过判断true或false,将数据分成两块。 /代码内容已省略/ 运行结果: partitionMap: {false=[JJ, M], true=[Jack, Lin...
  • 第55页
    /代码内容已省略/ 收集器collect方法中使用maxBy方法,但是,与直接使用max方法的效果完全一样。 /代码内容已省略/ 收集器collect方...
  • 第54页
    例5-5 使用toCollection,用定制的集合收集元素 /代码内容已省略/
  • 第52页
    在一个有序集合中创建一个流时,流中的元素就按出现顺序排列。 如果集合本身就是无序的,由此生成的流也是无序的。 List是有序的,HashSet是无序的。 一些操作在有序的流上开销更大,调用unordered方法消除...
  • 第51页
    /代码内容已省略/ 以上String[]类型也行,具体怎么用之后再考虑。
  • 第48页
    使用Optional对象有两个目的:首先,Optional对象鼓励程序员适时检查变量是否为空,以避免代码缺陷;其次,它将一个类的API中可能为空的值文档化,这比阅读实现代码要简单很多。 /代码...
  • 第45页
    其实应该称作多重实现。 例4-19 Jukebox /代码内容已省略/ 例4-20 Carriage /代码内容已省略/ 例4-21 实现rock方法
  • 第44页
    类中重写的方法优先级高于接口中定义的默认方法。 简言之,类中重写的方法胜出。这样的设计主要是由默认方法的目的决定的,增加默认方法的目的是为了在接口上向后兼容。让类中重写方法的优先级高于默认方法能简化...
  • 第40页
    该注解会强制javac检查一个接口是否符合函数接口的标准。如果该注释添加给一个枚举类型、类或另一个注释,或者接口包含不止一个抽象方法,javac就会报错。 也可以看出,被@FunctionalInterface注解的接口也可以有...
  • 第36页
    Java 8提供了类型转换的函数接口。 ToIntFunction接口: /代码内容已省略/ IntFunction接口: /代码内容已省略/ 在Java 8中,仅...
  • 第33页
    1.只用reduce和Lambda表达式写出实现Stream上的map操作的代码,如果不想返回Stream,可以返回一个List。 /代码内容已省略/ 2.只用reduce和Lambda表达式写出实现Stream上的...
  • 第31页
    本章介绍的概念能够帮助用户写出更简单的代码,因为这些概念描述了数据上的操作,明确了要达成什么转化,而不是说明如何转化。这种方式写出的代码,潜在的缺陷更少,更直接地表达了程序员的意图。 明确要达成什么...
  • 第31页
    高阶函数是指接受另外一个函数作为参数,或返回一个函数的函数。 如果函数的参数列表里包含函数接口,或该函数返回一个函数接口,那么该函数就是高阶函数。 Stream接口中几乎所有函数都是高阶函数。
  • 第19页
    3.3.1 collect(toList()) /代码内容已省略/ 3.3.2 map 如果有一个函数可以将一种类型的值转换成另外一种类型,map操作就可以使用该函数,将一个流中的值转换成一个新的流...
  • 第13页
    2.ThreadLocal Lambda表达式。Java有一个ThreadLocal类,作为容器保存了当前线程里局部变量的值。Java 8为该类新加了一个工厂方法,接受一个Lambda表达式,并产生一个新的ThreadLocal对象,而不用使用继承,语法上更...
  • 第10页
    例 2-10 使用菱形操作符,根据方法签名做推断 /代码内容已省略/ Java 8中对类型推断系统的改善值得一提。上面的例子将new HashMap<>()传给userHashmap方法,即使编译器..
  • 第9页
    函数接口是只有一个抽象方法的接口,用作Lambda表达式的类型。 这就是函数接口,接口中单一方法的命名并不重要,只要方法签名和Lambda表达式的类型匹配即可。
  • 第8页
    Lambda表达式引用的是值,而不是变量。 如果Lambda表达式引用表达式外部的变量,那这个变量只能是一个既成事实上的final变量。 /代码内容已省略/ 以上代码无法通过编译,na...
  • 第1页
    Q: 为什么要会有Java 8? A: 适应现代多核CPU,让代码在多核CPU上高效运行。 面向对象编程是对数据进行抽象,而函数式编程是对行为进行抽象。 以前传递行为的方式是传递拥有具有某种行为的对象,Java 8有了Lamb...