一、什么是ClassLoader 大家都知道,当各位同行写好一个Java程序之后,不是管是CS还是BS应用,都是由若干个.class文件组织而成的一个完整的Java应用程序,当程序在运行时,即会调用该程序的一个入口函数来调用系统的相关功能,而这些功能都被封装在不同的cla...
JAVA
ASCII码艺术是一种技术,它利用ASCII标 准中的可打印字符来产生视觉艺术效果。在历史上它有其存在的目的,当时的打印机还无法打印图片,并且当时在邮件中嵌入图像还无法实现,所以它也用于邮件 中。ITJS的这篇文章中,本人将为你呈现一个非常简单的ASCII码艺...
ArrayList是最常用的一种java集合,在开发中各位同行常常需要从ArrayList中删除特定元素。有几种常用的方法: 最朴实的方法,使用下标的方式: ArrayList<String> al = new ArrayList<String>(); al.add('a'); al.add('b'); //al.add('b'); /...
大家知道,Java中string.intern()方法调用会先去字符串常量池中查找相应的字符串,如果字符串不存在,就会在字符串常量池中创建该字符串然后再返回。 字符串常量池是一个固定大小的HashMap,桶的数量默认是1009, 从Java7u40开始,该默认值增大到60013。在Jav...
该文章内容文章主要介绍了SQL Server需要监控的计数器,从而来监控服务器当前的运行情况以及性能问题,全文如下: 常规计数器 收集操作系统服务器的服务器性能信息,包括Processor、磁盘、网络、内存 Processor 处理器 1.1 % Processor Time指处理器用来执...
编写一个像 HelloWorld 这样的简单程序, 用记事本基本就可以完成了, 但如果是开发一个工程项目, 就需要一个强大的集成开发环境 (IDE). 当然开发 Java 项目的 IDE 有很多, 比较有名的当数 Eclipse, 以及它的一个重要扩展 MyEclipse, 然而, 今天各位同行要介绍...
很多常见的面试题都会出诸如抽象类和接口有什么区别,什么情况下会使用抽象类和什么情况你会使用接口这样的问题。ITJS的这篇文章各位同行将仔细讨论这些话题。 在讨论它们之间的不同点之前,各位同行先看看抽象类、接口各自的特性。 抽象类 抽象类是用来捕捉...
在面试中各位同行经常被问到:Java中抽象类和接口的区别是什么? 然后,各位同行就大说一通抽象类可以有方法,接口不能有实际的方法啦;一个类只能继承一个抽象类,却可以继承多个接口啦,balabala一大堆,就好像把标准答案熟练的说出来一样。 抽象类和接口...
每一个Java开发者都是通过Hello World敲开面向对象世界的大门。但是在一开始,各位同行考虑的只是这个语言是什么样的,各位同行如何更好的编码,却很少有人关心他内部是怎么运行的。看下面一个简单的hello world。 package com.wordpress.kkarthikeyanblog; p...
Lambda表达式是自Java SE 5引入泛型以来最重大的Java语言新特性,ITJS的这篇文章是2012年度最后一期Java Magazine中的一篇文章,它介绍了Lamdba的设计初衷,应用场景与基本语法。 Lambda表达式,这个名字由该项目的专家组选定,描述了一种新的函数式编程结构...
并发本来就是个有意思的问题,尤其是现在又流行这么一句话:“高帅富加机器,穷矮搓搞优化”。从这句话可以看到,无论是高帅富还是穷矮搓都需要深入理解并发编程,高帅富加多了机器,需要协调多台机器或者多个CPU对共享资源的访问,因此需要了解并发,穷矮搓搞...
首先要声明一下,这个案例在<深入理解JVM虚拟机>这本书中也提到过. 这本书是本人曾经学习JVM的第一本书.里面关于Heap的优化思想,来源于此.建议大家想学JVM原理的,可以找来此书看看. 写这篇文章,是因为最近在给一个社交网站服务器做调优,突然觉得本人机器...
其实对于各位同行一般理解的计算机内存,它算是CPU与计算机打交道最频繁的区域,所有数据都是先经过硬盘至内存,然后由CPU再从内存中获取数据进行处理,又将数据保存到内存,通过分页或分片技术将内存中的数据再flush至硬盘。那JVM的内存结构到底是如何呢?JV...
在这篇文章里本人将教会你如何分析JVM的线程堆栈以及如何从堆栈信息中找出问题的根因。在本人看来线程堆栈分析技术是Java EE产品支持工程师所必须掌握的一门技术。在线程堆栈中存储的信息,通常远超出你的想象,各位同行可以在工作中善加利用这些信息。 本人...
死锁是指,两个或多个动作一直在等待其他动作完成而使得所有动作都始终处在阻塞的状态。想要在开发阶段检测到死锁是非常困难的,而想要解除死锁往往需要重新启动程序。更糟的是,死锁通常发生在负载最重的生产过程中,而想要在测试中发现它,十分不易。之所以...
这是对MySQL进行加密性能测试的两篇文章系列之二。在第一篇中,我专门使用MySQL的内置的对SSL的支持来 做压力测试,产生了一些令人惊讶的结果。当然,使用SSL查询的吞吐性能要比不使用SSL的性能低这也在意料之中,但是我相当惊讶的是,主要的性能瓶颈是 花费...
ITJS的这篇文章是Neward & Associates的总裁Ted Neward为developerworks独家撰稿“你不知道5个……”系列中的一篇,JVM是多数开发人员视为理所当然的Java功能和性能背后的重负荷机器。然而,各位同行很少有人能理解JVM是如何进行工作的—像任务分配和垃圾...
ITJS的这篇文章是一些最实用、最齐全、最省时间的 Eclipse 快捷键总结,这些快捷键可以让帮助你完成工作中的任罕救嘶个操作。欢迎参考。 1. ctrl+shift+r:打开资源 这可能是所有快捷键组合中最省时间的了。这组快捷键可以让你打开你的工作区中任罕救嘶个文件...
Java 8支持default方法,ITJS的这篇文章也主要来讲解一下Java 8中default方法的使用方法,比较详细。 什么是default方法? Java 8发布以后,可以给接口添加新方法,但是,接口仍然可以和它的实现类保持兼容。这非常重要,因为你开发的类库可能正在被多个开发...
很多程序员在解决JVM性能问题的时候,花开了很多时间去调优应用程序级别的性能瓶颈,当你读完这本系列文章之后你会发现本人可能更加系统地看待这类的问题。本人说过JVM的自身技术限制了Java企业级应用的伸缩性。首先各位同行先列举一些主导因素。 主流的硬件...
ITJS的这篇文章主要来介绍一下Java中的不可变对象,以及Java中String类的不可变性,那么为什么Java的String类是不可变对象?让各位同行一起来分析一下。 答案一: 最流行的Java面试题之一就是:什么是不可变对象(immutable object),不可变对象有什么好处,...
ITJS的这篇文章非常适合初学Java的程序员,主要是来了解一下Java中的几种for循环用法,分析得十分详细,一起来看看。 J2SE 1.5提供了另一种形式的for循环。借助这种形式的for循环,可以用更简单地方式来遍历数组和Collection等类型的对象。ITJS的这篇文章介...
生产过程中出现的问题正逐渐得到中层和最高管理层的重视。不管是身为开发人员还是架构师,下列的事项都应该得到你足够的重视以避免陷入未来的尴尬境地。你也可以把它作为排查问题的便签。 #1、不在属性文件或 XML 文件中外化配置属性。比如,没有把批处理使用...
最全面的Java多线程用法解析,如果你对Java的多线程机制并没有深入的研究,那么ITJS的这篇文章可以帮助你更透彻地理解Java多线程的原理以及使用方法。 1.创建线程 在Java中创建线程有两种方法:使用Thread类和使用Runnable接口。在使用Runnable接口时需要建立...
除了lambda表达式,stream以及几个小的改进之外,Java 8还引入了一套全新的时间日期API,在本篇教程中各位同行将通过几个简单的任务示例来学习如何使用Java 8的这套API。Java对日期,日历及时间的处理一直以来都饱受诟病,尤其是它决定将java.util.Date定义为...