Java开发人员应该知道的三件事

对于那些长期关注JavaOne 2012会议的读者来说,这是一篇有趣的文章。 我最近对Java冠军Heinz Kabutz的采访引起了我的注意; 包括他的Java内存难题程序,从Java内存管理的角度来看,这很有启发性。
采访中有一个特别的部分吸引了我的注意:Java开发人员应该知道而当前却不知道的事情。 亨氏在采访中提出了一些非常好的观点。

本文将回顾并扩展其中的一些内容。

Heinz还表达了他对删除 HotSpot VM PermGen空间的担忧,该空间现在更多地用于Java 8版本。

Java并发原则:您是否应该关心?

正如Heinz所指出的,这通常是一些Java开发人员希望避免的话题​​。 除非您正在开发单个线程主程序,否则您必须担心线程并发以及所有相关问题。 作为Java EE开发人员,您的代码将在高并发线程环境中运行。 简单的Java编码错误会使您的代码面临严重的线程竞争状况,稳定性和性能问题。 缺少关键线程知识也可能阻止您正确调整Java EE容器线程池层。
从我的角度来看,每个Java开发人员都应该尝试从开发和故障排除的角度(例如JVM Thread Dump分析)理解基本的Java并发原理。

将您的IDE技能提升到一个新水平:学习快捷键

Heinz的下一个建议是对Java IDE环境有更深入的了解。 对于某些人来说,此技巧听起来似乎很明显,但实际上您会惊讶地发现,有这么多Java开发人员可以快速“稳定”其IDE的使用和生产率。 这样的“高原”通常是由于缺乏对IDE快捷键和功能的更深入的研究。
DZone的这篇文章是学习使用Eclipse IDE的有用快捷方式的不错的起点。

Java内存管理:了解如何读取GC日志

最后但并非最不重要的一点:学习如何读取GC日志。 这是我所有海因(Hein)建议的最爱。
从上一教程中可以看到,JVM GC日志包含一些有关Java VM内存占用和垃圾回收运行状况的重要信息。 在执行JVM调优或对OutOfMemoryError:Java Heap Space相关问题进行故障排除时,此数据尤其重要。 在这里说实话,您需要花费一些时间才能获得大约一半的Java Champion知识,例如Kirk Pepperdine,但是开始分析和理解您的应用程序GC日志以及Java内存管理基础知识是一个理想的起点。

别忘了分享!

参考: Java开发人员应从 Java EE支持模式和Java教程博客的JCG合作伙伴 Pierre-Hugues Charbonneau那里了解三件事 。


翻译自: https://www.javacodegeeks.com/2012/10/3-things-java-developers-should-know.html

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

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

相关文章

android怎么垂直居中且靠右,placeholder 靠右垂直居中/位置兼容

1.input输入框文字靠右垂直居中。2.placehoder提示同样靠右垂直居中。( placeholder是HTML5 input的新属性,英文意思是占位符,它一般表示input输入框的默认提示值。)css代码input {text-align: right;font-size:0.3rem;width:100%;height:0.78rem;line-…

Python-Matplotlib 18 注释

Python-Matplotlib 18 注释 EG1: import numpy as np import matplotlib.pyplot as plty np.arange(-5, 6,1) plt.plot(y, y*y) plt.annotate(Annotate , xy(0,1) , xytext(0,5) ,arrowpropsdict(facecolorr , frac0.2 ))plt.show()转载于:https://www.cnblogs.com/zsr0401/p/…

while和for循环

循环结构图: 循环结构主要分为两种:有while和for两种循环,while又分为do{...}while和while{...},do...while表示先执行后判断,而while循坏表示先判断后执行,如果循环条件都不满足的情况下,do...while至少执…

通过beforeClass和afterClass设置增强Spring Test Framework

如何允许实例方法作为JUnit BeforeClass行为运行 JUnit允许您在所有测试方法调用之前和之后一次在类级别上设置方法。 但是,通过有意设计,他们将其限制为仅使用BeforeClass和AfterClass批注的静态方法。 例如,此简单的演示显示了典型的Junit设…

华为鸿蒙出来正当时,关于华为鸿蒙操作系统,中兴率先表态

原标题:关于华为鸿蒙操作系统,中兴率先表态 来源:科技数码迷进入2021年之后中兴这个品牌的存在感越来越强了,并且还学会了借势营销。每当国内智能手机领域有大事之时总会看到中兴或红魔手机的身影。这说明在5G过渡期中兴要借个机会…

条件变量(Condition Variable)详解

转载于:http://blog.csdn.net/erickhuang1989/article/details/8754357 条件变量(Condtion Variable)是在多线程程序中用来实现“等待->唤醒”逻辑常用的方法。举个简单的例子,应用程序A中包含两个线程t1和t2。t1需要在bool变量test_cond为true时才能…

C++中的深拷贝和浅拷贝 QT中的深拷贝,浅拷贝和隐式共享

下面是C中定义的深,浅拷贝 当用一个已初始化过了的自定义类类型对象去初始化另一个新构造的对象的时候,拷贝构造函数就会被自动调用。也就是说,当类的对象需要拷贝时,拷贝构造函数将会被调用。以下情况都会调用拷贝构造函数&#…

使用PowerMock模拟构造函数

我认为,依赖项注入的主要好处之一是可以将模拟和/或存根对象注入代码中,以提高可测试性,增加测试覆盖率并编写更好,更有意义的测试。 但是,有时候您会遇到一些不使用依赖注入的传统代码,而是通过组合而不是…

Brackets (区间DP)

个人心得:今天就做了这些区间DP,这一题开始想用最长子序列那些套路的,后面发现不满足无后效性的问题,即(,)的配对 对结果有一定的影响,后面想着就用上一题的思想就慢慢的从小一步一步…

android生成aar无效,android studio生成aar包并在其他工程引用aar包的方法

1.aar包是android studio下打包android工程中src、res、lib后生成的aar文件,aar包导入其他android studio 工程后,其他工程可以方便引用源码和资源文件2.生成aar包步骤:①.用android studio打开一个工程,然后新建一个Module&#…

《剑指offer》— JavaScript(3)从尾到头打印链表

从尾到头打印链表 题目描述 输入一个链表,从尾到头打印链表每个节点的值。 实现代码 /*function ListNode(x){this.val x;this.next null; }*/ function printListFromTailToHead(head) {var res[];while(head){res.unshift(head.val);headhead.next;}return res;…

JUnit测试Spring Service和DAO(带有内存数据库)

这篇文章描述了如何为Spring Web Application的Services和DAO实现JUnit测试。 它建立在Spring MVC-Service-DAO-Persistence Architecture Example的基础上 。 从Github的Spring-Web-JPA-Testing目录中可以找到该示例。 提醒 测试装置 –固定状态,用作运行测试的基…

c# 正则获取html标签内容,c# – 使用正则表达式在多个HTML标记之间获取文本

使用正则表达式,我希望能够在多个DIV标记之间获取文本.例如,以下内容:first html taganother tag输出:first html taganother tag我使用的正则表达式模式只匹配我的最后一个div标签并错过了第一个.码:static void Main(string[] args){string…

Android之外部存储(SD卡)

*手机的外部存储空间,这个我们可以理解成电脑的外接移动硬盘,U盘也行。所有的Android设备都有两个文件存储区域:“内部”和“外部”存储器。这两个名称来自早期的Android,当时大多数设备都提供内置的固定的内存(内置存…

通用并发对象池

在本文中,我们将介绍如何在Java中创建对象池。 近年来,JVM的性能成倍增加,大多数类型的对象几乎都变得多余,从而提高了对象池的性能。 从本质上讲,对象的创建不再像以前那样昂贵。 但是,有些对象在创建时肯…

圆周率的代码表示,以及对其的理解。

转载的简书,for 记录以及记忆。 http://www.jianshu.com/p/7208e4a58310 Thanks again! 转载于:https://www.cnblogs.com/xiapeng0701/p/7538281.html

华为NOVa8Pr0是用鸿蒙系统吗,华为Nova8即将发布,采用麒麟芯片,高端平板适配鸿蒙系统...

大家好,我是老孙自从华为Mate40系列发布后,下一步新机动态备受外界关注,华为究竟会不会继续生产手机呢?答案是肯定,华为Nova8系列将于本月发布,华为P50系列也在积极筹备,而且都少不了麒麟芯片&a…

使用路标的Scala和Java的Twitter REST API

如果您已阅读此博客上的其他文章,您可能会知道我喜欢创建各种数据集的可视化。 我刚刚开始一个小项目,在这里我想可视化来自Twitter的一些数据。 为此,我想直接从Twitter检索有关关注者的信息和个人资料信息。 我实际上开始寻找一组所有推特帐…

大话设计模式读书笔记--11.抽象工厂模式

定义 抽象工厂模式定义: 提供一个创建一系列相关或相关依赖对象的接口,而无需指定他们具体的类 抽象工厂模式通常是用于创建一族产品,并且这族产品分不同的等级;不同的具体工厂类生产不同等级的一族产品 比如下图(来源于网络) 两厢车和三厢车称为两个不同…

在线压缩html,JS代码压缩 - javascript代码压缩 - jsmin在线js压缩工具

输入代码:// is.js// (c) 2001 Douglas Crockford// 2001 June 3// The -is- object is used to identify the browser. Every browser edition// identifies itself, but there is no standard way of doing it, and some of// the identification is deceptive. T…