当前位置: 首页 > news >正文

cms网站管理怎么做网站的营销

cms网站管理,怎么做网站的营销,福建省华荣建设集团有限公司网站,嘉兴 网站 制作这篇文章可能不会使我成为任何新朋友。 哦#xff0c;好吧#xff0c;无论如何我从来没有真正在学校受到欢迎。 但是#xff0c;让我们说清楚。 就语言而言#xff0c;Java 8的最大特色无疑是Lambda表达式。 几年来#xff0c;它一直是功能语言#xff08;例如Scala和Clo… 这篇文章可能不会使我成为任何新朋友。 哦好吧无论如何我从来没有真正在学校受到欢迎。 但是让我们说清楚。 就语言而言Java 8的最大特色无疑是Lambda表达式。 几年来它一直是功能语言例如Scala和Clojure的旗舰功能现在Java终于加入了。 第二大功能当然取决于您问谁是Nashorn –新的JVM JavaScript引擎可以使Java与其他JS引擎例如V8和它的node.js容器相提并论。 但是这些新功能对他们不利。 我会解释。 Java平台由两个主要组件构建而成。 JIT编译并执行字节码的JREJDK包含开发工具和javac源代码编译器。 这两个组件是完全但不是完全分离的这使人们能够编写自己的JVM语言而Scala在最近几年中日益受到关注。 其中存在一些问题。 JVM被构建为与语言无关只要它可以转换为字节码就可以执行以任何语言编写的代码。 字节码规范本身是完全面向对象的旨在与Java语言紧密匹配。 这意味着从Java源代码编译的字节码在结构上将非常类似于它。 但是与Java的距离越远距离就越远。 当您查看Scala是一种功能语言时源代码与执行的字节码之间的距离就很大。 编译器添加了大量合成类方法和变量以使JVM执行该语言所需的语义和流控制。 当您查看完全动态的语言例如JavaScript时 这种距离变得很大。 而现在有了Java 8它也开始渗透到Java中。 那我为什么要在乎呢 我希望这是一个理论性的讨论尽管有趣但对我们的日常工作没有实际意义。 不幸的是它确实以很大的方式做到了。 随着向Java中添加新元素的推动代码与运行时之间的距离越来越大这意味着您正在编写的内容和正在调试的内容将是两件事。 要了解让我们如何重新访问下面的示例。 Java 6和7 这是传统的方法通过该方法我们可以遍历一串字符串以映射其长度。 // simple check against empty strings public static int check(String s) {if (s.equals()) {throw new IllegalArgumentException();}return s.length(); }//map names to lengthsList lengths new ArrayList();for (String name : Arrays.asList(args)) {lengths.add(check(name)); } 如果传递一个空字符串这将引发异常。 堆栈跟踪看起来像– at LmbdaMain.check(LmbdaMain.java:19) at LmbdaMain.main(LmbdaMain.java:34) 在这里我们看到了所看到的堆栈跟踪与所编写的代码之间的11关系这使得调试此调用堆栈非常简单。 这就是大多数Java开发人员所习惯的。 现在让我们看一下Scala和Java 8。 斯卡拉 让我们看看Scala中的相同代码。 在这里我们有两个重大变化。 第一个是使用Lambda表达式映射长度第二个是迭代是由框架执行的即内部迭代。 val lengths names.map(name check(name.length)) 在这里我们真的开始注意到您编写的代码外观与JVM以及您在运行时如何看到它们之间的区别。 如果抛出异常则调用堆栈会长一个数量级 并且很难理解。 at Main$.check(Main.scala:6) at Main$$anonfun$1.apply(Main.scala:12) at Main$$anonfun$1.apply(Main.scala:12) at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244) at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244) at scala.collection.immutable.List.foreach(List.scala:318) at scala.collection.TraversableLike$class.map(TraversableLike.scala:244) at scala.collection.AbstractTraversable.map(Traversable.scala:105) at Main$delayedInit$body.apply(Main.scala:12) at scala.Function0$class.apply$mcV$sp(Function0.scala:40) at scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:12) at scala.App$$anonfun$main$1.apply(App.scala:71) at scala.App$$anonfun$main$1.apply(App.scala:71) at scala.collection.immutable.List.foreach(List.scala:318) at scala.collection.generic.TraversableForwarder$class.foreach(TraversableForwarder.scala:32) at scala.App$class.main(App.scala:71) at Main$.main(Main.scala:1) at Main.main(Main.scala) *请记住此示例非常简单。 使用现实世界中的嵌套Lambda和复杂结构您将需要更长的综合调用堆栈您需要从中了解发生了什么。 长期以来Scala一直是一个问题这也是我们构建Scala Stackifier的原因之一。 现在在Java 8中 直到现在Java开发人员都对此免疫。 随着Lambda表达式成为Java不可或缺的一部分这种情况将会改变。 让我们看一下相应的Java 8代码以及生成的调用堆栈。 Stream lengths names.stream().map(name - check(name));at LmbdaMain.check(LmbdaMain.java:19) at LmbdaMain.lambda$0(LmbdaMain.java:37) at LmbdaMain$$Lambda$1/821270929.apply(Unknown Source) at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) at java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948) at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:512) at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:502) at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708) at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.util.stream.LongPipeline.reduce(LongPipeline.java:438) at java.util.stream.LongPipeline.sum(LongPipeline.java:396) at java.util.stream.ReferencePipeline.count(ReferencePipeline.java:526) at LmbdaMain.main(LmbdaMain.java:39) 这与Scala变得非常相似。 我们为更短更简洁的代码更复杂的调试和更长的综合调用堆栈付出了代价。 原因是尽管javac已扩展为支持Lambda函数但JVM仍然对它们不了解 。 这是Java人士的一项设计决策目的是保持JVM在较低级别运行而又不会在其规范中引入新的元素。 尽管您可以辩论此决定的优缺点但这意味着作为Java开发人员无论我们是否愿意当我们拿到罚单时弄清楚这些调用堆栈的成本现在都落在我们肩上。 Java 8中JavaScript Java 8引入了全新JavaScript编译器。 现在我们终于可以以高效直接的方式集成Java JS。 但是我们编写的代码与我们调试的代码之间的不协调之处比这里更大。 这与Nashorn中的功能相同– ScriptEngineManager manager new ScriptEngineManager(); ScriptEngine engine manager.getEngineByName(nashorn);String js var map Array.prototype.map \n; js var a map.call(names, function(name) { return Java.type(\LmbdaMain\).check(name) }) \n; js print(a); engine.eval(js); 在这种情况下字节代码是在运行时使用Lambda表达式的嵌套树动态生成的 。 我们的源代码与由JVM执行的结果字节码之间几乎没有关联。 现在调用堆栈要长两个数量级 。 用T先生的凄美的话语- 我可怜那些需要调试调用堆栈的傻瓜 您将到达这里。 有任何疑问吗 假设您可以一直滚动到此调用堆栈下方。 在评论部分让我知道。 LmbdaMain [Java Application] LmbdaMain at localhost:51287 Thread [main] (Suspended (breakpoint at line 16 in LmbdaMain)) LmbdaMain.wrap(String) line: 16 1525037790.invokeStatic_L_I(Object, Object) line: not available 1150538133.invokeSpecial_LL_I(Object, Object, Object) line: not available 538592647.invoke_LL_I(MethodHandle, Object[]) line: not available 1076496284.invokeStatic_LL_L(Object, Object, Object) line: not available LambdaForm$NamedFunction.invokeWithArguments(Object...) line: 1147 LambdaForm.interpretName(LambdaForm$Name, Object[]) line: 625 LambdaForm.interpretWithArguments(Object...) line: 604 2150540.interpret_I(MethodHandle, Object, Object) line: not available 538592647.invoke_LL_I(MethodHandle, Object[]) line: not available 1076496284.invokeStatic_LL_L(Object, Object, Object) line: not available LambdaForm$NamedFunction.invokeWithArguments(Object...) line: 1147 LambdaForm.interpretName(LambdaForm$Name, Object[]) line: 625 LambdaForm.interpretWithArguments(Object...) line: 604 92150540.interpret_I(MethodHandle, Object, Object) line: not available 38592647.invoke_LL_I(MethodHandle, Object[]) line: not available 1076496284.invokeStatic_LL_L(Object, Object, Object) line: not available LambdaForm$NamedFunction.invokeWithArguments(Object...) line: 1147 LambdaForm.interpretName(LambdaForm$Name, Object[]) line: 625 LambdaForm.interpretWithArguments(Object...) line: 604 731260860.interpret_L(MethodHandle, Object, Object) line: not available LambdaForm$NamedFunction.invoke_LL_L(MethodHandle, Object[]) line: 1108 1076496284.invokeStatic_LL_L(Object, Object, Object) line: not available LambdaForm$NamedFunction.invokeWithArguments(Object...) line: 1147 LambdaForm.interpretName(LambdaForm$Name, Object[]) line: 625 LambdaForm.interpretWithArguments(Object...) line: 604 2619171.interpret_L(MethodHandle, Object, Object, Object) line: not available 1597655940.invokeSpecial_LLLL_L(Object, Object, Object, Object, Object) line: not available LambdaForm$NamedFunction.invoke_LLLL_L(MethodHandle, Object[]) line: 1118 1076496284.invokeStatic_LL_L(Object, Object, Object) line: not available LambdaForm$NamedFunction.invokeWithArguments(Object...) line: 1147 LambdaForm.interpretName(LambdaForm$Name, Object[]) line: 625 LambdaForm.interpretWithArguments(Object...) line: 604 2619171.interpret_L(MethodHandle, Object, Object, Object) line: not available 1353530305.linkToCallSite(Object, Object, Object, Object) line: not available Script$\^eval\_._L3(ScriptFunction, Object, Object) line: 3 1596000437.invokeStatic_LLL_L(Object, Object, Object, Object) line: not available 1597655940.invokeSpecial_LLLL_L(Object, Object, Object, Object, Object) line: not available LambdaForm$NamedFunction.invoke_LLLL_L(MethodHandle, Object[]) line: 1118 1076496284.invokeStatic_LL_L(Object, Object, Object) line: not available LambdaForm$NamedFunction.invokeWithArguments(Object...) line: 1147 LambdaForm.interpretName(LambdaForm$Name, Object[]) line: 625 LambdaForm.interpretWithArguments(Object...) line: 604 484673893.interpret_L(MethodHandle, Object, Object, Object, Object, Object) line: not available LambdaForm$NamedFunction.invoke_LLLLL_L(MethodHandle, Object[]) line: 1123 1076496284.invokeStatic_LL_L(Object, Object, Object) line: not available LambdaForm$NamedFunction.invokeWithArguments(Object...) line: 1147 LambdaForm.interpretName(LambdaForm$Name, Object[]) line: 625 LambdaForm.interpretWithArguments(Object...) line: 604 282496973.interpret_L(MethodHandle, Object, Object, Object, long, Object) line: not available 93508253.invokeSpecial_LLLLJL_L(Object, Object, Object, Object, Object, long, Object) line: not available 1850777594.invoke_LLLLJL_L(MethodHandle, Object[]) line: not available 1076496284.invokeStatic_LL_L(Object, Object, Object) line: not available LambdaForm$NamedFunction.invokeWithArguments(Object...) line: 1147 LambdaForm.interpretName(LambdaForm$Name, Object[]) line: 625 LambdaForm.interpretWithArguments(Object...) line: 604 282496973.interpret_L(MethodHandle, Object, Object, Object, long, Object) line: not available 293508253.invokeSpecial_LLLLJL_L(Object, Object, Object, Object, Object, long, Object) line: not available 1850777594.invoke_LLLLJL_L(MethodHandle, Object[]) line: not available 1076496284.invokeStatic_LL_L(Object, Object, Object) line: not available LambdaForm$NamedFunction.invokeWithArguments(Object...) line: 1147 LambdaForm.interpretName(LambdaForm$Name, Object[]) line: 625 LambdaForm.interpretWithArguments(Object...) line: 604 1840903588.interpret_L(MethodHandle, Object, Object, Object, Object, long, Object) line: not available 2063763486.reinvoke(Object, Object, Object, Object, Object, long, Object) line: not available 850777594.invoke_LLLLJL_L(MethodHandle, Object[]) line: not available 1076496284.invokeStatic_LL_L(Object, Object, Object) line: not available LambdaForm$NamedFunction.invokeWithArguments(Object...) line: 1147 LambdaForm.interpretName(LambdaForm$Name, Object[]) line: 625 LambdaForm.interpretWithArguments(Object...) line: 604 82496973.interpret_L(MethodHandle, Object, Object, Object, long, Object) line: not available 220309324.invokeExact_MT(Object, Object, Object, Object, long, Object, Object) line: not available NativeArray$10.forEach(Object, long) line: 1304 NativeArray$10(IteratorAction).apply() line: 124 NativeArray.map(Object, Object, Object) line: 1315 1596000437.invokeStatic_LLL_L(Object, Object, Object, Object) line: not available 504858437.invokeExact_MT(Object, Object, Object, Object, Object) line: not available FinalScriptFunctionData(ScriptFunctionData).invoke(ScriptFunction, Object, Object...) line: 522 ScriptFunctionImpl(ScriptFunction).invoke(Object, Object...) line: 207 ScriptRuntime.apply(ScriptFunction, Object, Object...) line: 378 NativeFunction.call(Object, Object...) line: 161 1076496284.invokeStatic_LL_L(Object, Object, Object) line: not available 1740189450.invokeSpecial_LLL_L(Object, Object, Object, Object) line: not available LambdaForm$NamedFunction.invoke_LLL_L(MethodHandle, Object[]) line: 1113 1076496284.invokeStatic_LL_L(Object, Object, Object) line: not available LambdaForm$NamedFunction.invokeWithArguments(Object...) line: 1147 LambdaForm.interpretName(LambdaForm$Name, Object[]) line: 625 LambdaForm.interpretWithArguments(Object...) line: 604 2619171.interpret_L(MethodHandle, Object, Object, Object) line: not available LambdaForm$NamedFunction.invoke_LLL_L(MethodHandle, Object[]) line: 1113 1076496284.invokeStatic_LL_L(Object, Object, Object) line: not available LambdaForm$NamedFunction.invokeWithArguments(Object...) line: 1147 LambdaForm.interpretName(LambdaForm$Name, Object[]) line: 625 LambdaForm.interpretWithArguments(Object...) line: 604 323326911.interpret_L(MethodHandle, Object, Object, Object, Object) line: not available LambdaForm$NamedFunction.invoke_LLLL_L(MethodHandle, Object[]) line: 1118 1076496284.invokeStatic_LL_L(Object, Object, Object) line: not available LambdaForm$NamedFunction.invokeWithArguments(Object...) line: 1147 LambdaForm.interpretName(LambdaForm$Name, Object[]) line: 625 LambdaForm.interpretWithArguments(Object...) line: 604 323326911.interpret_L(MethodHandle, Object, Object, Object, Object) line: not available 263793464.invokeSpecial_LLLLL_L(Object, Object, Object, Object, Object, Object) line: not available LambdaForm$NamedFunction.invoke_LLLLL_L(MethodHandle, Object[]) line: 1123 1076496284.invokeStatic_LL_L(Object, Object, Object) line: not available LambdaForm$NamedFunction.invokeWithArguments(Object...) line: 1147 LambdaForm.interpretName(LambdaForm$Name, Object[]) line: 625 LambdaForm.interpretWithArguments(Object...) line: 604 1484673893.interpret_L(MethodHandle, Object, Object, Object, Object, Object) line: not available 587003819.invokeSpecial_LLLLLL_L(Object, Object, Object, Object, Object, Object, Object) line: not available 811301908.invoke_LLLLLL_L(MethodHandle, Object[]) line: not available 1076496284.invokeStatic_LL_L(Object, Object, Object) line: not available LambdaForm$NamedFunction.invokeWithArguments(Object...) line: 1147 LambdaForm.interpretName(LambdaForm$Name, Object[]) line: 625 LambdaForm.interpretWithArguments(Object...) line: 604 484673893.interpret_L(MethodHandle, Object, Object, Object, Object, Object) line: not available LambdaForm$NamedFunction.invoke_LLLLL_L(MethodHandle, Object[]) line: 1123 1076496284.invokeStatic_LL_L(Object, Object, Object) line: not available LambdaForm$NamedFunction.invokeWithArguments(Object...) line: 1147 LambdaForm.interpretName(LambdaForm$Name, Object[]) line: 625 LambdaForm.interpretWithArguments(Object...) line: 604 323326911.interpret_L(MethodHandle, Object, Object, Object, Object) line: not available 2129144075.linkToCallSite(Object, Object, Object, Object, Object) line: not available Script$\^eval\_.runScript(ScriptFunction, Object) line: 3 1076496284.invokeStatic_LL_L(Object, Object, Object) line: not available 1709804316.invokeExact_MT(Object, Object, Object, Object) line: not available FinalScriptFunctionData(ScriptFunctionData).invoke(ScriptFunction, Object, Object...) line: 498 ScriptFunctionImpl(ScriptFunction).invoke(Object, Object...) line: 207 ScriptRuntime.apply(ScriptFunction, Object, Object...) line: 378 NashornScriptEngine.evalImpl(ScriptFunction, ScriptContext, ScriptObject) line: 544 NashornScriptEngine.evalImpl(ScriptFunction, ScriptContext) line: 526 NashornScriptEngine.evalImpl(Source, ScriptContext) line: 522 NashornScriptEngine.eval(String, ScriptContext) line: 193 NashornScriptEngine(AbstractScriptEngine).eval(String) line: 264 LmbdaMain.main(String[]) line: 44翻译自: https://www.javacodegeeks.com/2014/03/the-dark-side-of-lambda-expressions-in-java-8.html
http://wiki.neutronadmin.com/news/168569/

相关文章:

  • 网站备案升级怎样制作微信网站链接
  • 网站建设平台卜先明深圳市营销策划有限公司
  • 威海住房和城乡建设厅网站教育网站前置审批
  • 黑龙江建设教育网站网络工程师证书考取条件
  • 网站设计网站开发优化在手机上自己制作游戏软件
  • react做前台网站农业公司网站源码
  • 网站设计术语微信公众号平台登陆
  • 深圳做微信商城网站建设杭州 高端网站 开发
  • ipad做网站服务器望京做网站
  • 韶关市网站建设招标十大推广app平台
  • 汉邦未来网站开发淮北建设工程交易网
  • 好的深圳网站页面设计中职网站建设与管理
  • 网站自动跳转wordpress批量删除函数
  • 如何查找做网站的服务商怎样做建网站做淘客
  • 湘潭公司网站建设网站开发语言字典
  • 达县网站制作有那个网站可以做免费的投票
  • 我是做性视频网站个人主页空间申请
  • 怎么做好营销网站开发wordpress 图片 本地化
  • 长沙设计网站多少钱wordpress列表页模板
  • 网站这么绑定到域名上海怎么建设网站
  • 出国做博士后网站赤峰网站开发公司
  • 单页企业网站模板涂料网站源码
  • 西昌做网站沪尚茗居全包价格
  • 信息展示网站系统中煤建设集团网站
  • 邯郸网站制作设计玉器珠宝做网站
  • 在线学习平台网站建设有什么功能网站架构的重要性
  • 建筑装饰网站模板免费的舆情网站入口在哪
  • 网站做邮箱吗怎么设置网站支付功能
  • 做企业网站的流程wordpress微信登录设置
  • 焦作专业做网站公司哪家好怎么看网站是哪家公司做的