首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏Java Web

    Java 8——行为参数化

    Java 8中新增的功能是自Java 1.0发布以来18年以来,发生变化最大的一次。 (1)用行为参数化把代码传递给方法 Java 8中增加了通过API来传递代码的能力,但这实在听起来太绕了,这到底在说什么! 在Java 8中,这样做起来(不止于匿名类)远远比你想象的要来得更加清晰、简洁。 这就是行为参数化:让方法接受多种行为(或战略)作为参数,并在内部使用,完成不同的行为。 你现在在灵活性和简洁性之间找到了最佳平衡点,这在Java 8之前是不可能做到的!

    1.2K70发布于 2018-04-26
  • 来自专栏胡琦

    vue和deno的结晶--vno来了

    众所周知,Vue 是一个非常容易上手的 Javascript 框架,具有令人兴奋的生态系统,并具有易用、灵活、高效的特点,Deno 是一个 JavaScript/TypeScript 的运行时,默认使用安全环境执行代码,有着卓越的开发体验,那 Vue 和 Deno 能擦出怎么样的火花?于是社区便有开发者造了 deno 运行时环境中使用 vue 框架的这里轮子-- vno 。

    2.3K20发布于 2021-09-09
  • 来自专栏技术文献

    Java8——行为参数化传递代码

    匿名类还是不够好,第一,它往往很笨重,占用了很多的空间,第二,使用起来让人费解,导致代码可读性不高,即使匿名类处理在某种程度上改善了为一个接口声明好几个实体类的啰嗦问题,但是还是不能令人满意,自java8引入的 Apple apple)-> "red".equals(apple.getColor())); 不得不承认,使用lambda表达式改写之前的代码确实干净很多,因为它看起来更像问题陈诉本身了,解决了啰嗦的问题 8、 9、小结 行为参数化,就是一个方法接收不同的行为作为参数,并在内部使用他们,完成不同行为的能力。 行为参数化可以让代码更好的适应不断变化的要求,减轻未来的工作量。 传递代码,就是将新行为作为参数传递给方法,但是在java8之前实现起来很啰嗦。为接口声明许多只用一次的实体类而造成的啰嗦代码,在java8之前可以用匿名类来减少。 java API 包含很多可以用不同行为进行参数化的方法,包括排序、线程等。

    63130发布于 2020-09-02
  • 来自专栏java一日一条

    暴露程序猿身份的8行为

    近年来,在Stack Exchange和Quora上也有过类似的讨论,我们这里总结了程序员日常生活中经常表现出来的8个编程思维。你有没有同感呢? 当然,还有一些约定俗成的编程规范,如代码缩进(是缩进4个字符还是8个字符)、注释风格,采用骆驼式(CamelCase)或帕斯卡式(Pascal)来命名变量或函数等等。 日常行为:这些编程习惯可能就会影响到程序员的日常文档书写习惯,比如写邮件时会用分号来结束一行内容等。 日常行为:这些快捷键有时在程序员的行为和话语中表现的很常见,这也会在一些场合引起尴尬。 例子: "Mentally trying to Ctrl-Z on things I just said. 日常行为:常常不以10进制而是以2进制进行计算。一些平常的日子在程序员眼里也变得很神奇,如程序员日就是每年的第256天(2^8),也有人推荐将每年的10月24日作为程序员日(2^10)。

    48510发布于 2018-09-18
  • 来自专栏Java架构师历程

    Java 8:1行为参数化

    18 次查看 行为参数化本质上是一块代码并使其可用而不执行它。例如,它可以传递给方法。由于Java 8引入了lambdas(最后),现在可以使用匿名函数来参数化方法的行为。 将行为作为参数传递可以帮助减轻变化的痛苦。 不幸的是,有些应用程序无法升级以与最新版本的Java一起运行。因此,我将介绍可用于Java 8之前的运行时的替代解决方案。 Java 8 lambdas 最新版本带来了一些新功能,可以提高代码的可读性,并帮助语言在未来保持竞争力。让我们看看书籍过滤示例,看看行为参数化如何与语言中内置的lambdas一起使用。 迭代由Streams API处理,由于lambda,行为是可参数化的。因此,Java 8不是编写大量的样板代码,而是处理常见的任务,只需一行代码即可解决手头的问题。 行为参数化很好,因为它使您能够将迭代集合的代码与应用于集合的每个元素的行为分开。这样可以更好地重用代码,并帮助您编写更灵活的API。

    2K20发布于 2019-03-08
  • 来自专栏博文视点Broadview

    集体智慧的结晶:个性化推荐系统

    2用户行为建模 基于用户历史行为的进行挖掘分析,得到刻画用户本质需求的一组属性集合,即得到用户模型,个性化推荐的准确性很大程度上依赖于对用户属性刻画的准确性。 用户偏好分析 结合用户历史行为和物品信息,可以得到每种行为下的用户偏好数据,包括偏好的维度及偏好程度,如偏好的物品、品牌、类别、标签等。 ? 再将各种行为的偏好数据合并,最终得到用户在物品、品牌、类别、标签等各个维度上的偏好程度。合并不同维度的数据时,需要考虑到不同的行为类型反应用户偏好程度是不同的。 比如购买行为比点击行为更能反映用户的偏好,则由购买行为计算得到的偏好数据在合并时赋予的权重要高一些。 ? 要保证各种行为的各个维度的数据具有可比性,需要进行归一化,而且同纬度的要采用相同的归一化方法。 时间维度上的考量 在处理各个维度的偏好数据时,需要考虑用户行为的有价值程度是随时间衰减的,即行为发生时间距当前的时间越近,得到的数据越能表征用户将来的行为

    1.4K30发布于 2020-06-12
  • 来自专栏C/C++基础

    设计模式(8)——命令模式(Command Pattern,行为型)

    命令模式(Command Pattern)属行为型,将请求封装成对象,以便使用不同的请求、请求日志或请求队列等来参数化其他对象。命令模式也支持撤销操作。 4.小结 (1)命令模式属行为型,将请求封装成对象,以便使用不同的请求、请求日志或请求队列等来参数化其他对象。命令模式也支持撤销操作。

    64420发布于 2018-08-03
  • 来自专栏Devops专栏

    8--Gradle进阶 - Gradle任务的入门、任务行为

    8--Gradle进阶 - Gradle任务的入门、任务行为 Gradle Task Gradle 项目工程的管理 实质上是 Task 对象的集合。 hello task2...." } // 自定义的任务3 task task3 { // 任务的配置阶段执行 println "hello task3...." // 任务的行为 **提示 3:**区分任务的配置段和任务的行为,任务的配置段在配置阶段执行,任务的行为在执行阶段执行 任务的行为 doFirst、doLast 两个方法可以在任务内部定义,也可以在任务外部定义: // 自定义的任务3 task task3 { // 任务的配置阶段执行 println "hello task3...." // 任务的行为:在执行阶段执行,doFirst会在doLast 任务可以定义多个参数,我们再传入一个参数如下: // 定义map def map = new HashMap<String, Object>(); //action属性可以设置为闭包,设置task自身的行为

    64740编辑于 2023-09-01
  • 来自专栏晓月寒·

    java8行为参数化,你用了吗?

    java8行为参数化,你用了吗? java8新增加了方法引用::语法(将方法作为参数)。将方法的引用传递进去,可以极大地简化你的代码。 需求1,将库存中的苹果按照重量排序: 在java8之前应该是这么写: Collections.sort(inventory, new Comparator<Apple>(){ public int compare(Apple a1, Apple a2) { return a1.getWeight().compareTo(a2.getWeight()); } }) 在java8中 在java8中,可以这么实现: File[] hiddenFiles = new File(".").listFiles(File::isHidden); 直接传递方法引用。 选苹果 选出仓库中所有的绿苹果 在java8之前应该是这么写: public static List<Apple> filterGreenApple(List<Apple> inventory){

    63140发布于 2019-05-23
  • 来自专栏圆圆的算法笔记

    8篇论文详解用户历史行为序列建模方法

    这其中,用户历史行为序列是一个重要特征,经过很多场景的验证,用户历史行为序列会对模型效果带来较大提升。用户历史行为序列,指的是用户历史曾经点击过的商品,按照点击的时间顺序组成的序列。 本文汇总了8篇推荐系统中对用户历史行为序列建模的方法,包括DIN、DIEN等经典模型。 接下来,获取这些其他用户的历史行为序列,选择查找这些用户的历史行为序列中是否包含当前待打分商品。 5 总结 本文我们介绍了8篇推荐系统或广告系统中的用户历史行为建模方法。 除了使用用户本身的行为序列进行建模外,使用一些相似用户的行为序列辅助学习,也会进一步取得不错的效果。 END

    4.3K20编辑于 2022-09-22
  • 来自专栏我和未来有约会

    转向行为 - 寻找行为

    寻找行为只是把机车移动到指定点。 现在给出寻找行为的一个例子: <UserControl xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x 仅仅是让场景上一个有转向行为的机车在每帧去寻找鼠标。试着改变机车的最大速率和最大力度,或者改变其质量(mass)来感受一 下这些因素对转向行为的影响。 myStar.seek(new Vector2D(mouseX, mouseY)); myStar.update(); 到此,应该已经见识了转向机车如何寻找鼠标或者另一辆机车,当对这些工作有了很好的理解后,我们进入下一个行为

    1.5K70发布于 2018-01-16
  • 来自专栏我和未来有约会

    转向行为 - 追捕行为

    对于追捕行为,它非常类似寻找行为。其实追捕的最后一个动作就是调用寻找。追捕的本质是预测目标所要到达的位置并事先赶到。 那么,该如何预测目标的位置呢? 而实际上,寻找行为就是一个预测时间为零的追捕行为。 一个策略是基于两机车间的距离来判断预测时间。如果目标太远,需要花一段时间才能赶上,就预测长一点,如果很接近,马上就能达到,就预测短一点。 一个是只顾移动的机车,其作为目标,另外两个转向机车,一个用寻找行为,一个用追捕行为。如果一切正常,追捕者靠着优越的算法会胜出。  接下来的行为是:躲避。 

    1.6K100发布于 2018-01-16
  • 来自专栏我和未来有约会

    转向行为 - 到达行为

    到达行为在很多场合都可以被当作是寻找行为。实际上,它们之间的算法和处理方式都一样。唯一不同的是,在到达模式中,一辆机车在到达目标的某一距离时,会变成一种精确模式慢慢地靠近目标点。 为了了解到达行为的必要性,可以先运行一下SeekTest类,然后移动鼠标到某处让机车过来“抓住”它。会看到机车快速的越过了鼠标,接着它发现过头了,又返回来,还是过头了....于是会一直循环下去。 到达行为通过减速接近目标,解决了这个问题: public void arrive(Vector2D target) { Vector2D desiredVelocity 最终速度会趋向于0(假设只有一个行为作用于该机车)。 如果愿意可以再试着玩玩增加多辆机车,或者现在就进入下一个行为:追捕。 

    1.5K60发布于 2018-01-16
  • 来自专栏我和未来有约会

    转向行为 - 躲避行为

    躲避就是追捕的反行为。就像追捕类似于寻找,躲避类似于避开。 本质上讲,是预测出机车将要去到的位置并远离它。在这里所有的原则都和追捕相同。

    1.4K80发布于 2018-01-16
  • 来自专栏须臾之余

    Java8实战——通过行为参数化传递代码 顶

    匿名类还是不够好,第一,它往往很笨重,占用了很多的空间,第二,使用起来让人费解,导致代码可读性不高,即使匿名类处理在某种程度上改善了为一个接口声明好几个实体类的啰嗦问题,但是还是不能令人满意,自java8引入的 apple)-> "red".equals(apple.getColor())); 不得不承认,使用lambda表达式改写之前的代码确实干净很多,因为它看起来更像问题陈诉本身了,解决了啰嗦的问题 8、 9、小结 行为参数化,就是一个方法接收不同的行为作为参数,并在内部使用他们,完成不同行为的能力。 行为参数化可以让代码更好的适应不断变化的要求,减轻未来的工作量。 传递代码,就是将新行为作为参数传递给方法,但是在java8之前实现起来很啰嗦。为接口声明许多只用一次的实体类而造成的啰嗦代码,在java8之前可以用匿名类来减少。 java API 包含很多可以用不同行为进行参数化的方法,包括排序、线程等。

    86630发布于 2020-08-11
  • 来自专栏我和未来有约会

    转向行为 - 避开行为

    避开行为与寻找行为彻底相反。实际上,除了代码最后一行用相减代替了相加以外,其它都一样。 现在我们有了一对正反行为,接下来要做的是为这对行为创建一对机车来看看情况。 我们还可以把两个行为同时用于一辆机车上。下面的例子中,机车A同时寻找和避开机车B,机车B同时寻找和避开机车C,机车C同时的寻找和避开机车A。这三辆机车会因为追捕各自的目标而形成一个圆。 如果这些都没问题了,那就开始探索下一个行为:到达。

    1.3K70发布于 2018-01-16
  • 来自专栏我和未来有约会

    转向行为 - 漫游行为

    漫游行为就像它的名字一样,角色在场景中毫无目的的移动。这通常用来模拟巡视和觅食,也有纯粹是为了漫游而漫游的。 漫游行为在实现上不像听起来那么容易。

    1.5K80发布于 2018-01-16
  • 来自专栏ATYUN订阅号

    谷歌大脑研究:AI识别蛋白质结晶,准确率高达94%

    谷歌大脑团队的成员今天宣布开发了用于识别蛋白质结晶的深层卷积神经网络,准确率约为94%。蛋白质结晶决定了细胞的形状,可以在发现治疗各种疾病的药物中发挥作用。 MARCO计划是几家制药公司和学术研究中心之间的一个联合项目,旨在汇集和托管大型策划结晶图像库,并将其提供给社区,以帮助开发更好的图像分析工具。

    59730发布于 2018-07-27
  • 来自专栏麒思妙想

    通过UDR扩展GBase8s查询行为的工程实践

    的相关参数 1)VPCLASS开启jvp,用于处理Java UDR,默认不开启,取消前面的注释符'#' VPCLASS jvp,num=1 2)JVPARGS增加 -Dfile.encoding=UTF-8( 根据实际需要增加与否,即直接java执行的参数) JVPARGS -Dcom.ibm.tools.attach.enable=no;-Dfile.encoding=UTF-8 3)JVPCLASSPATH

    1K30编辑于 2021-12-24
  • 来自专栏翎野君

    Dating Java8系列之通过行为参数化传递代码

    3.价格大于8k的手机有哪些? 通过这个例子我们知道了,不要对产品经理抱有任何的幻想,在代码设计上我应该从需求层面进行更宏观的角度进行考量,对行为进行抽象,进行标准化建模。 行为参数化 下面就让我们一起探究一下行为参数化吧 初始化手机列表 public static List<Phone> initPhoneList() { List<Phone> phones = phonePredicate.test(phone)) { filteredPhones.add(phone); } }return filteredPhones;} 上面的这个方法,就完成了行为参数化要做的事情 ,把过滤这个动作看做一个行为,把这个行为用接口的形式进行参数化传递。 总结 行为参数化,就是一个方法接受多个不同的行为作为参数,并在内部使用它们,完成不同行为的能力。 行为参数化可让代码更好地适应不断变化的要求,减轻开发的工作量。

    26910编辑于 2024-01-06
领券