Java
蜉蝣撼大树
敏于思 讷于言
展开
-
Java线程(一)
线程同步:synchronized方法和synchronized代码块 一个synchronized方法在它执行前得到一个监视器锁。 (1).对于类方法(static方法),使用与该方法的类的类对象相关联的锁。 (2).对于实例方法,使用与this(为之调用该方法的对象)相关联的锁。 (3).synchroni...原创 2011-04-14 11:29:29 · 75 阅读 · 0 评论 -
ClassLoader
当运行Java程序时,首先运行JVM(java虚拟机),然后再把java class加载到JVM里头运行。类装载就是寻找一个类或接口的字节码文件并通过解析该字节码来构造代表这个类或接口的class对象的过程。类装载器把一个类装入Java虚拟机要经过三个步骤成:装载、链接和初始化,其中链接又可以分成校验、准备和解析三步,除了解析外,其它步骤是严格按照顺序完成的,各个步骤的主要工作如下: ...原创 2011-04-12 16:58:48 · 68 阅读 · 0 评论 -
NIO第二部分复用和编码
public abstract class Selector 可通过调用此类的 open 方法创建选择器,也可通过调用自定义选择器提供者SelectorProvider的openSelector 方法来创建选择器。通过选择器的 close 方法关闭选择器之前,它一直保持打开状态。 Charset...原创 2011-04-08 14:46:46 · 50 阅读 · 0 评论 -
NIO第一部分缓冲区和通道
系统运行的性能瓶颈通常在IO读写,包括对端口和文件的操作上,在打 开一个IO通道后,read()将一直等待在端口一边读取字节内容,如果没有内容进来,read()一直等待下去,改进做法就是开设线程,让线程去等待,但是这样做相当耗费资源(传统socket通讯服务器设计模式)。 在 Java 编程中,所有 IO 都被视为单个的字节的移动,通过一个称为 Stream 的对象一次移...原创 2011-04-08 14:40:47 · 117 阅读 · 0 评论 -
CLASSPATH和PATH
J2SDK(Software Development Kit for Java 2) ,简称JDK.它包括了JDK(Java Development Kit),JRE(Java Runtime Enviroment),Java Plug-in. JDK (Java Development Kit), Java开发工具包(C:\Java\jdk1.6.0_18\).JDK...原创 2011-04-06 13:45:14 · 86 阅读 · 0 评论 -
JavaMail(一)
[size=medium][color=darkred][b]浅谈邮件传输协议[/b][/color][/size] [color=red]SMTP(Simple Mail Transfer Protocol)[/color]即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。SMTP协议属于TCP/IP协议族,它帮助每台计算机在发送或中转...原创 2011-04-26 18:04:27 · 87 阅读 · 0 评论 -
Tomcat配置SSL的双向认证
[color=darkred][b]证书保存在服务器端,用户通过浏览器访问时,需要将证书下载保存到本地,表示信任服务器。同样浏览器中的证书也需要保存到服务器的证书库中,表明当前浏览器的证书是可信的。[/b][/color] 环境:tomcat-6.0.18、jdk1.6.0_18 [color=darkred]1. 为服务器生成证书[/color...原创 2011-04-26 16:58:57 · 133 阅读 · 0 评论 -
Tomcat配置SSL的客户端认证
[color=red][b]证书保存在服务器端,用户通过浏览器访问时,需要将证书下载保存到本地,表示信任服务器站点。[/b][/color] 环境:tomcat-6.0.18、jdk1.6.0_18 [color=darkred]1. 生成密钥库[/color][code="java"]keytool -genkeypair -v -ke...原创 2011-04-26 16:41:42 · 121 阅读 · 0 评论 -
Java实现国际化
[color=red]1.根据不同语言环境使用不同文件[/color] 我们可以准备多个string_zh_CN.properties、string_en_US.properties等,然后根据Locale去判断当前用户的语言环境,根据不同的语言环境来使用不同的资源文件。[code="java"]public class TestLocale { publ...原创 2011-04-20 15:15:01 · 94 阅读 · 0 评论 -
Java动态编译(二)
在上一篇([color=red]Java动态编译(一)[/color])中我们提到了动态编译的三种方法,在这篇文章中讲解一些扩展的知识。[code="java"]public abstract class Process extends Object[/code] ProcessBuilder.start() 和 Runtime.exec 方法创建一个本机进程...原创 2011-04-19 17:16:18 · 61 阅读 · 0 评论 -
Java动态编译(一)
一般情况下对java源文件的编译均是在代码完成后使用javac编译的,不管是使用IDE还是直接使用命令行。这里要说的情况是比较特别的,就是在代码内动态的编译一些代码。比如你想通过在某个目录下通过放置一些源代码的方式来实现对程序功能的动态扩展,那么你的程序就需要具有一种对源代码的编译、加载、运行的能力,可能就需要本文介绍的3种方法。 [color=red]可以和JA...原创 2011-04-18 18:10:09 · 107 阅读 · 0 评论 -
Java抽象类和接口
一个Java接口(Interface)是一些方法特征的集合,一个接口只有方法的特征,而没有方法的实现,因此当这些方法在不同的地方被实现时,可以具有完全不同的行为。 比如java.lang.Runnable是一个接口,其源代码为:[code="java"]public interface Runnable { public abstract void run...原创 2011-04-18 15:34:40 · 83 阅读 · 0 评论 -
Java线程(三)
浅谈synchronized应何时使用 实现同步是要很大的系统开销作为代价的,甚至可能造成死锁,所以尽量避免无谓的同步控制。由于synchronized关键词实现方式的缘故,常常导致无谓的同步控制,造成并发度(concurrency)的降低。public class HelloRunnable implements Runnable { public void ...原创 2011-04-15 11:51:40 · 56 阅读 · 0 评论 -
Java线程(二)
浅谈synchronized应用于类方法和类字面量之上 当调用一个synchronized static函数时,获得的lock将与定义该方法的class的Class对象相关联,而不是与调用方法的那个实例对象相关联。当你对一个class literal调用其synchronized代码块时,获得的也是同样那个lock,与特定Class对象相关联的lock,类的所有实例共享 。...原创 2011-04-15 10:23:45 · 89 阅读 · 0 评论 -
闷葫芦的世界
工作几年,零零散散也整理了不少东西,但都是东一榔头西一棒槌的,没有形成系统化的学习记录,对于很多技术的认识也仅仅停留在听说过、会使用的简单层面,一段时间之后再接触仍然是全新的。让成长有迹可循,2015年11月26日,北京终于晴天了!!![url=/blog/2269627]ZooKeeper-3.4.6学习笔记[/url][url=/blog/2269710]Impala学...原创 2016-01-09 22:57:29 · 95 阅读 · 0 评论