JAVA

应用性能管理(APM)是一种即时监控以实现对应用程序性能管理和故障管理的系统化解决方案。目前主要指对企业的关键业务应用进行监测、优化,最终达到提高企业应用的可靠性和质量,保证用户得到良好的服务,降低IT成本的目标。 虽然很多人都曾预言Java将一蹶...

数年前,当和一个软件团队一起用 Java 语言编写一个应用程序时,本人体会到比一般程序员多知道一点关于 Java 对象序列化的知识所带来的好处。 关于本系列 您觉得自己懂 Java 编程?事实上,大多数程序员对于 Java 平台都是浅尝则止,只学习了足以完成手头上...

一天,本人在改进多线程代码时被Future.get()卡住了。 public void serve() throws InterruptedException, ExecutionException, TimeoutException {final Future<Response> responseFuture = asyncCode();final Response response = responseFutu.....

什么是继承? 多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那个类即可。 多个类可以称为子类,单独这个类称为父类、超类或者基类。 子类可以直接访问父类中的非私有的属性和行为。 通过 ex...

本篇对HashMap实现的源码进行简单的分析。 所使用的HashMap源码的版本信息如下: /* * @(#)HashMap.java 1.73 07/03/13 * * Copyright 2006 Sun Microsystems, Inc. All rights reserved. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms....

一.Java并发基础 当一个对象或变量可以被多个线程共享的时候,就有可能使得程序的逻辑出现问题。 在一个对象中有一个变量i=0,有两个线程A,B都想对i加1,这个时候便有问题显现出来,关键就是对i加1的这个过程不是原子操作。要想对i进行递增,第一步就是获取i...

在 java 的 bin 目录下,jdk 提供了很多使用的工具,下面学习一些监控和故障处理的工具。 名称 作用 jps JVM process status tool,显示指定系统内所有的 HotSpot 虚拟机进程jstat JVM statistics monitoring tool,用于收集 HotSpot 虚拟机各方面的运行数据...

Java内存模型(Java Memory Model) Java内存模型(JMM),不同于Java运行时数据区,JMM的主要目标是定义程序中各个变量的访问规则,即在虚拟机中将变量存储到内存和从内存中读取数据这样的底层细节。JMM规定了所有的变量都存储在主内存中,但每个线程还有自...

Java中对象的创建 clone顾名思义就是复制, 在Java语言中, clone方法被对象调用,所以会复制对象。所谓的复制对象,首先要分配一个和源对象同样大小的空间,在这个空间中创建一个新的对象。那么在java语言中,有几种方式可以创建对象呢? 1 使用new操作符创...

在该系列的上一篇文章中本人演示了NIO.2的三个方法:文件拷贝、文件和目录的删除和文件移动。在这篇文章中,本人将向大家展示路径相关的方法(如获取路径、检索路径信息)、文件和目录测试方法(如文件或目录的存在性测试)以及面向属性的方法。 获取路径 问...

ITJS的这篇文章摘自各位同行几周后即将出版的Garbage Collection Handbook一书的样章。同时也让你能熟悉下垃圾回收的基础知识——这选自该书的第一章。 乍一看,垃圾回收所做的事情应当恰如其名——查找并清除垃圾。事实上却恰恰相反。垃圾回收会跟踪所有仍...

Memcached由Danga Interactive开发,用来提升LiveJournal.com网站性能。Memcached分布式架构支持众多的社交网络应用,Twitter、Facebook还有Wikipedia。在接下来的两部分教程中,Sunil Patil介绍了Memcached分布式哈希表架构,以及利用它帮助你为数据驱动Java...

回复者:Cameron Purdy,Oracle中间件高级工程师。 这是根据本人同时使用C++和Java工作超过20年所学到的,其实使用Java比C++还要早几年: 1、根据本人的经验,当你把优化过的C++代码转换成Java代码,代码的速度会慢大约三倍。 2、根据本人的经验,把Java代...

本人用过Servlets、JSP、JAX-RS、 Spring框架、Play框架、带Facelets的JSF以及Spark Framework。在本人看来,这些框架并没有很好地实现面向对象设计。它们充斥着静态方法、未经测试的数据结构以及不够美观的解决方式。因此一个月前本人决定开始编写自己的Java...

习惯了eclipse开发java程序,公司最近的项目都是idea开发的,同时android studio也是idea原型开发的,在学android开发,所以脱离eclipse转向idea看来是一个趋势了。,开发工具的使用就是一个习惯的问题, 习惯了开发效率就高,不习惯工具使用问题,还得去百度...

最近几年Lambda表达式风靡于编程界。很多现代编程语言都把它作为函数式编程的基本组成部分。基于JVM的编程语言如Scala、Groovy及Clojure把它作为关键部分集成在语言中。而如今,(最终)Java 8也加入了这个有趣的行列。 Lambda表达式最有意思的地方在于,在J...

CXF和sping具有很好的结合性,所以CXF是Java 程序员开发web service最佳的选择,ITJS的这篇文章是一个入门的例子,基本是Writing a service with Spring 的一个拷贝,希望能给那些不想去倒腾CXF官方例子的同仁一点帮助, 服务端的开发步骤: 1、新建maven工...

通常,各位同行希望能够在lambda表达式的闭合方法或类中访问其他的变量,例如: package java8test; public class T1 { public static void main(String[] args) { repeatMessage('Hello', 20); } public static void repeatMessage(Str...

许多事件都可能会导致JVM暂停所有的应用线程。这类暂停又被称为'stop-the-world'(STW)暂停。触发STW暂停最常见的原因就是垃圾回收了(github中的一个例子),但不同的JIT活动(例子),偏向锁擦除(例子),特定的JVMTI操作,以及许多场景也可能会导致应用程...

以前经常谈论的Java对比c++的一个优势是Java中没有多继承的问题。 因为Java中子类只能继承(extends)单个父类, 尽管可以实现(implements)多个接口,但是接口中只有抽象方法,方法体是空的,没有具体的方法实现,不会有方法冲突的问题。 这些都是久远的说法了...

ITJS的这篇文章通过介绍Java的新/旧内存模型,来展示Java技术的历史变迁。 旧的Java内存模型 Java使用的是共享内存的并发模型,在线程之间共享变量。Java语言定义了线程模型规范,通过内存模型控制线程与变量的交互,从而实现Java线程之间的通信。在JDK5之前...

从简单I/O到异步非阻塞channel的Java Socket模型演变之旅 上世纪九十年代后期,本人在一家在线视频游戏工资工作,在哪里本人主要的工作就是编写Unix Unix Berkley Socket和Windows WinSock代码。本人的任务是确保视频游戏客户端和一个游戏服务器通信。很幸运...

问题: 本人需要使用JMX连接本地JVM的Java程序。换句话说,本人想开发一个JMX的客户端来配置一个本地Java程序。 请不要推荐使用JConsole!JConsole不合适,因为JConsole是一个通用的JMX客户端,对主程序的性能存在负面影响。 Oracle网站上有一个使用RMIConne...

当存储基于文档的 JSON 数据的时候,MongoDB 是本人最喜欢的数据库。基于 JVM 的语言在与 MongoDB 交互上有很多种选择。本人觉得拿四个最流行的解决方案并且都实现一个用例,对本人来说不失为一个好的练习。用例:创建一个可以获取一个城市和距其最近的城市的...

1. 华为电信软件技术架构演进 1.1. 电信软件 从广义上看电信软件的范围非常广,细分实际可以分为两大类:系统软件和业务应用软件。 系统软件包括路由器底层的信令机软件、手机操作系统等,业务应用软件主要包括客户关系管理CRM、网上营业厅、融合计费OCS和各...