截止到2013年,核心Java帖子

随着2013年即将结束,我最近发现了几篇与我认为“核心Java”知识有关的帖子。 该帖子列出了三个帖子,并提供了一个简短说明的论坛。 我这样做有两个目的:(1)帮助他人意识到这些优秀职位的存在;(2)当我想再次找到这些职位时,充当自己的荣耀“书签”。 这些帖子和论坛足以证明我花时间将它们作为PDF“ 打印 ”(保存)到我的硬盘中。

热点JVM标志

柯克·佩珀丁 ( Kirk Pepperdine )的“ JVM HotSpot标志案例研究 ”是有关HotSpot JVM标志的实际分析和应用的极佳资源。 Pepperdine演示了使用-XX:+ PrintFlagsFinal标志(我也已在其上进行博客 )以“通过弄清楚默认设置是什么来识别冗余标志”,以便他可以删除不推荐使用的标志和简单地显式设置为无论如何他们都会有默认值。 然后,Pepperdine分析在删除不赞成使用的标记和删除仅重新设置默认值的标记之后剩余的一些标记。 他分析了它们之间的相互作用,有时甚至相互取代。 Pepperdine的结论段落明确表达了以下建议:


我认为我们拥有如此可配置,如此灵活的技术真是太棒了。 但是这种灵活性是一把双刃剑,不应只是盲目地跳入使用所有这些可配置性。 我确实知道一件事,即您的应用程序性能确实取决于其配置方式。 即使只有一个标志,也会对应用程序的性能造成不利影响,而弄错了错误要比弄好它容易得多。 而且很多时候,JVM确实可以立即使用它。

远程Java调试

亚当·比恩 ( Adam Bien )的文章“ 远程调试的选项是什么 ……”简要回顾了可用于调试 远程Java进程 (如应用程序服务器)的关键选项 。 在本文中,他引用了连接和调用详细信息以获取更多详细信息,但提供了可用传输的简要摘要( dt_shmem用于套接字和 Windows共享内存访问的dt_socketdt_shmem ), suspend=y 与 suspend = n和server=yserver=n

Java标准库/语言愿望清单

问题“ Java标准库迫切需要什么功能? 最近在Reddit上被问到。 由于各种原因,我发现答复(到目前为止有72篇)很有趣。 在在线论坛上,评论作者有一些例子展示了他们的高超知识,却牺牲了其他人的知识,但是大多数评论都很有见地,并且为Java开发人员希望看到的语言提供了有趣的视角。 (在少数情况下)或SDK(在答复中更常见,可能是因为与问题更加紧密地结合在一起)。 答案包括番石榴的所有子集, Apache Commons的全部或子集,不赞成使用和删除大量未使用的功能和库,以及属性注释或其他用于替换获取/设置方法(或Project Lombok )的机制。

我以为Tillerino发表了有见地的评论 ,一些Java开发人员可能对Apache Commons(特别是Lang)和Guava之类的“公共”库没有意识到。 蒂勒里诺说:


每个定义的commons-lang提供了Java API中没有的那些类。 commons-lang提供的功能出现在Java API中然后从commons-lang中删除是很常见的。 我使用了其他两个软件包,尽管commons-lang可能是所有项目的90%的一部分,但其他软件包只是专门成为Java API一部分的方式。 对于Java开发人员来说,知道哪些功能可以通过公用区轻松访问很重要,但是我认为这条线已经很划清了。

Java SE采用和标准化流行库功能的最新示例包括Java 7添加了Objects类和Java 8添加了Optional类,这两个类均与Guava的Objects类和Optional类有明显的相似之处。 我们在Java EE世界中也看到了这一点,其中最主要的例子之一就是近年来受Spring Framework启发的Java EE的许多新功能。

这是我在《 标准化工作:开源的危险关系》一书中写的一个普遍原则。 我们的开发人员应该对此原则感到“满意”,因为开源似乎有助于完善最好的创意,一旦这些功能的流行性和实用性得到证明,组织可以将缓慢发展的标准纳入标准。 这些开源产品的实现使我们能够在标准实现中使用该功能。

感谢Nikita Salnikov-Tarnovski最近发布的RMI强制每小时运行Full GC的原因有以下三个:

  1. 他在这篇文章中谈到的最终问题是我遇到的一个问题。
  2. 我同意他关于我们追逐的错误的开场白,“随着时间的流逝,它们正在演变并变得更加卑鄙和丑陋。”
  3. Salnikov-Tarnovski不仅阐述了解决该漏洞的方法,还描述了隔离漏洞并确定其原因的过程。

由于设置了名为sun.rmi.dgc.server.gcInterval的HotSpot RMI属性, sun.rmi.dgc.server.gcInterval -Tarnovski遇到的问题与“每小时发生一次完整GC” sun.rmi.dgc.server.gcInterval 。 在Java SE 6中,针对JDK-6200091错误的修复(“默认情况下RMI gcInterval太短”)将sun.rmi.dgc.server.gcIntervalsun.rmi.dgc.server.gcInterval的设置延长了一小时。 作为参考,与常规定期分布式垃圾收集相关的其他感兴趣的帖子包括:我们如何解决–在Tomcat上每1分钟进行一次 GC,为Sun Hotspots,JVM 6分析GC日志, 由于远程方法调用(RMI)导致无法解释的System.gc()调用)或公开垃圾收集 , 如果不这样做,JBoss的运行会很慢 。

我喜欢Salnikov-Tarnovski记录了他解决问题的步骤,而不是简单地指出解决方案。 尽管在这种情况下,解决方案是使用Google搜索引擎搜索其他人解决该问题的方法,但是之前尝试的几个步骤可以向其他人说明如何缩小问题并磨练缺陷。 我在此博客上被问到的最大问题之一是,当有人留下评论询问我如何找到该帖子中记录的修复程序时。 在我发布并阅读此评论时,我已经忘记了解决该棘手问题的步骤,因此并没有真正的帮助。

在本文中Salnikov-Tarnovski的案例中,所提供的几乎全部是“有时系统运行缓慢”(我敢肯定,我们当中很多人已经多次接受了该系统)。 诊断问题的步骤包括监视响应时间以查看常规模式,排除此类情况下的常见嫌疑人,增加日志记录输出并最终求助于Google。

结论

每周都有成千上万的新职位,为软件开发人员详细介绍各种新技术和工具。 这些是有价值的帖子,可以帮助我们所有人学习新事物,但是我也非常感谢那些关注“核心概念”的帖子和论坛。 尽管核心概念可能不像新事物那样令人兴奋或浮华,但核心概念可帮助我们更好地交付和管理软件,以使客户受益。

参考:在Inspired by Actual Events博客中,我们的JCG合作伙伴 Dustin Marx 用Core Java帖子结束了2013 。

翻译自: https://www.javacodegeeks.com/2014/01/closing-2013-with-core-java-posts.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/365969.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jQuery 超屏加载

jQuery 超屏加载,当文档超出屏幕的高度时,加载最新下个列数据 $(window).scroll(function () {var height $(document).height(); //页面的高度var keheight $(window).height(); //浏览器可视的高度var sheight $(document).scrollTop(); //滚动的高…

爱是怎么产生的

怎么说你还是对你自己挺了解的 1. 你知道单身为什么最终都轮成单身狗吗?因为单身就是一种退化,连人类最基本的技能都忘干净了,活该你四角着地 2.你知道爱是怎么发生的吗?爱情这个词,绝对不是虚幻的,精神的&…

计算机二级c语言选择题范围,计算机二级C语言考点选择结构

C语言的运算符包含的范围很广泛,共有34种运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理。以下是关于计算机二级C语言考点选择结构,希望大家认真阅读!【考点1】关系运算关系运算符有6个,分别是>,>,…

Mac OS下面安装mysql以及mysql常用命令

使用brew安装mysql brew install mysql 安装成功后使用下面命令启动/关闭服务 brew services start mysql brew services stop mysql 为mysql.bin设置软连接 ln -s /usr/local/Cellar/mysql/5.7.21/bin/mysql /usr/bin // /usr/local/Cellar/mysql为mysql的安装目录 进入mysql …

pytorch如何定义损失函数_对比PyTorch和TensorFlow的自动差异和动态模型

使用自定义模型类从头开始训练线性回归,比较PyTorch 1.x和TensorFlow 2.x之间的自动差异和动态模型子类化方法,这篇简短的文章重点介绍如何在PyTorch 1.x和TensorFlow 2.x中分别使用带有模块/模型API的动态子类化模型,以及这些框架在训练循环…

Gradle命令行便利

在我的《用Gradle构建Java的gradle tasks 》一文中,我简要地提到了使用Gradle的“ gradle tasks ”命令来查看特定Gradle构建的可用任务。 在这篇文章中,我将对这一简短提及进行更多的扩展,并查看一些相关的Gradle命令行便利。 Gradle可以轻松…

精读《setState 做了什么》

1 引言 setState 是 React 框架最常用的命令,它是用来更新状态的,这也是 React 框架划时代的功能。 但是 setState 函数是 react 包导出的,他们又是如何与 react-dom react-native react-art 这些包结合的呢? 通过 how-does-setst…

java封装实现Excel建表读写操作

对 Excel 进行读写操作是生产环境下常见的业务,网上搜索的实现方式都是基于POI和JXL第三方框架,但都不是很全面。小编由于这两天刚好需要用到,于是就参考手写了一个封装操作工具,基本涵盖了Excel表(分有表头和无表头&a…

c语言程序中注释的格式化,格式化C语言命令indent

indent是linux下一个能力极强的代码整理软件,使用他,可以轻松的写出代码风格十分精良的代码。但是indent的参数太多,使用起来不是很容易,怎么办呢?查看/usr/src/linux-headers-/scripts/Lindent文件 ,可以看…

argmax函数_1.4 TensorFlow2.1常用函数

1.4 TF常用函数tf.cast(tensor,dtypedatatype)可以进行强制类型转换。tf.reduce_min(tensor)和tf.reduce_max(tensor)将计算出张量中所有元素的最大值和最小值。import tensorflow as tfx1 tf.constant([1., 2., 3.], dtypetf.float64)print("x1:", x1)x2 tf.cast(…

休眠:DDL模式生成

不久前,我必须使用内存数据库。 该活动与集成测试有关。 如您所知,通常将内存数据库用于集成测试。 造成这种情况的原因有很多:可移植性,完善的环境基础结构,高性能,原始数据库的一致性。 问题在于如何将生…

分析jQuery源码时记录的一点感悟

分析jQuery源码时记录的一点感悟 1. 链式写法 这是jQuery语法上的最大特色,也许该改改POJO里的set方法,和其他的非get方法什么的,可以把多行代码合并,减去每次敲打对象变量的麻烦 2. 动态参数 偶尔使用Java…

设计模式---数据结构模式之迭代器模式(Iterate)

一:概念 迭代模式是行为模式之一,它把对容器中包含的内部对象的访问委让给外部类,使用Iterator(遍历)按顺序进行遍历访问的设计模式。 在应用Iterator模式之前,首先应该明白Iterator模式用来解决什么问题。…

识别Gradle约定

通过约定进行配置具有许多优点,尤其是在简洁方面,因为开发人员不需要显式配置通过约定隐式配置的内容。 但是,在利用约定进行配置时,需要了解约定。 这些约定可能已经记录在案,但是当我可以编程方式确定约定时&#xf…

jQuery函数的等价原生函数代码示例

选择器 jQuery的核心之一就是能非常方便的取到DOM元素。我们只需输入CSS选择字符串,便可以得到匹配的元素。但在大多数情况下,我们可以用简单的原生代码达到同样的效果。 .代码如下://----得到页面的所有div--------- /* jQuery */ $("div") …

高校c语言题库,C语言-中国大学mooc-题库零氪

第1 周 程序设计与C语言简介1.1 程序设计基础随堂测验1、计算机只能处理由人们编写的、解决某些问题的、事先存储在计算机存储器中的二进制指令序列。第1周单元测验1、通常把高级语言源程序翻译成目标程序的程序称为( )。A、编辑程序B、解释程序C、汇编程序D、编译程序2、一个算…

python图形化编程实验_转换图像RGB-实验室与python

自2010年以来, linked question被问到相应的代码从scipy移动到一个单独的工具包: http://scikit-image.org/ 所以这里是我实际寻找的代码: from skimage import io,color rgb io.imread(filename) lab color.rgb2lab(rgb) 还应该注意&#…

一个页面同时发起多个ajax请求,会出现阻塞情况

ajax请求设置为同步解决转载于:https://www.cnblogs.com/johnblogs/p/10245218.html

场景法设计测试用例

在面向对象的软件开发中,事件触发机制是编程中经常遇到的。 (一)场景法原理 现在的软件几乎都是用事件触发来控制流程的。像GUI软件、游戏等。事件触发时的情景形成了场景,而同一事件不同的触发顺序和处理结果就形成了事件流。这种…

JQuery让input从disabled变成enabled

设置input框可用:0.document.getElementById("removeButton").disabled false; //普通Js写法 1.$("#input").attr("disabled",true) 2.$("#input").removeAttr("disabled") 3.$("#input").attr(&q…