摘要: Java语言以其面向对象、跨平台、可移植性好、安全性高等优点,受到众多编程人员的青睐,越来越多的人将其作为应用软件开发语言的首选。 在Java应用程序运行时,特别是需要在跨平台工作环境下运行时,需要确定操作系统类型、用户JDK版本和用户工作目录等随工作平台变化的信息,来保证程序正确运行。一般情况下,可以利用JDK提供的系统属性类(Properties)中的方法,快速地获取工作环境信息。 另外,程序开发人员还可以定义与应用程序相关的系统属性文件,在用户程序执行过程中动态地加载程序员定义的属性文件来控制程序运行。 本文通过对系统属性类的分析,结合实际例子介绍如何定义系统属性文件,并讨论安全策略文件 阅读全文
posted @ 2011-03-10 20:13 Java爱 阅读(285) 评论(0) 推荐(1) 编辑
摘要: Java的变量类型之间可以进行转换,对象之间也可以。 子类对象转为父类对象,可以不进行强制转换,因为子类继承父类对象。 但是,当父类对象转换为子类对象时(当且仅当父类对象本来是由子类默认转换过去的情况),可以对父类对象进行强制转换。public class TestObject { public static void main(String[] args) { // TODO Auto-generated method stub Animal a = new Animal(); Dog d = new Dog("yellow"); d.name = "bigYe 阅读全文
posted @ 2011-03-09 17:01 Java爱 阅读(300) 评论(0) 推荐(0) 编辑
摘要: 首先为了举例方便,先来个java的类package simple.example;class TestWildcard{ private String userName; private String city; private void setUserName(String name) { username = name; } private void setCity(String city) { this.city = city; } public void setInfo(String name, String city) { setUserName(name); setCity(cit 阅读全文
posted @ 2011-03-08 15:04 Java爱 阅读(269) 评论(0) 推荐(0) 编辑
摘要: Java内存分配与管理是Java的核心技术之一,之前我们曾介绍过Java的内存管理与内存泄露以及Java垃圾回收方面的知识,今天我们再次深入Java核心,详细介绍一下Java在内存分配方面的知识。一般Java在内存分配时会涉及到以下区域: ◆寄存器:我们在程序中无法控制 ◆栈:存放基本类型的数据和对象的引用,但对象本身不存放在栈中,而是存放在堆中 ◆堆:存放用new产生的数据 ◆静态域:存放在对象中用static定义的静态成员 ◆常量池:存放常量 ◆非RAM存储:硬盘等永久存储空间 Java内存分配中的栈 在函数中定义的一些基本类型的变量数据和对象的引用变量都在函数的栈内存中分配。 当在一段. 阅读全文
posted @ 2011-03-07 19:51 Java爱 阅读(262) 评论(0) 推荐(1) 编辑
摘要: 1.static修饰一个属性字段,那么这个属性字段将成为类本身的资源,public修饰为共有的,可以在类的外部通过test.a来访问此属性;在类内部任何地方可以使用.如果被修饰为private私有,那么只能在类内部使用. public class Test{ public static int a; private Test(){ a=0; } } 如果属性被修饰为static静态类资源,那么这个字段永远只有一个,也就是说不管你new test()多少个类的对象,操作的永远都只是属于类的那一块内存资源.例如: Test t1=new Test(); t1.a=10; Test t2=new T 阅读全文
posted @ 2011-03-05 17:35 Java爱 阅读(301) 评论(0) 推荐(1) 编辑
摘要: 最近需要在 Linux 系统上对 Java 的应用系统进行监测,就用到了 JDK1.5 附带的工具 jps ( Java Virtual Machine Process Status Tool ,查看 JVM 进程状态的工具), jstat(Java Virtual Machine Statistics Monitoring Tool ,运行数据监测工具 ) 以及 jstatd ( jstat 的 daemon 程序,利用 RMI 进行远程监控)。(建议可以使用 jvmstat 包,可视化的 jstat 监控工具,可以在 http://java.sun.com/performance/jvm. 阅读全文
posted @ 2011-03-04 18:46 Java爱 阅读(253) 评论(0) 推荐(1) 编辑
摘要: 简单的来说,Java NIO 提供了一种异步非阻塞模型,使得网络请求都可以并发执行。 服务器端采用这种模型,响应速度将大大提高,Apache,Nginx 都是这种模型。 本文介绍的是客户端如何采用这种模型来提高客户端访问网络的速度。 1. 使用范例1. public static void main(String[] args) throws Exception {2. //初始化3. NHttpClient httpClient = new NHttpClient();4. httpClient.init();5. //调用的url6. String url = "http://w 阅读全文
posted @ 2011-03-03 16:49 Java爱 阅读(779) 评论(0) 推荐(2) 编辑
摘要: 1.JDK能对实现了接口的实例来生成代理,因此首先创建一个接口. //interface person package cn.edu.hld; public interface Person { public void info() ; public void run() ; } 2.为了在后面实现动态代理,因此提供一个Person接口的实现类. //类PersonImpl .java package cn.edu.hld; public class PersonImpl implements Person { public void info() { // TODO Auto-generat 阅读全文
posted @ 2011-03-02 17:39 Java爱 阅读(290) 评论(0) 推荐(1) 编辑
摘要: 一、下载Linux JDK 1. 下载从这里可以找到最新的 Linux JDK:http://java.sun.com/根据自己的机器来下载对应的版本,例如jdk-1_5_0_05-linux-i586.bin这是 J2SE Development Kit 1.5 update 5 for Linux 的 sh 自解压执行脚本。里面已经包含安装压缩包。 2、释放软件包查看当前目录下所有文件[root@localhost sunjava]# lsjre-1_5_0_04-linux-i586.bin执行 sh 自解压脚本 1.[root@localhost sunjava]# sh jre-1. 阅读全文
posted @ 2011-03-01 18:56 Java爱 阅读(409) 评论(0) 推荐(1) 编辑
摘要: 对于Java开发人员,多线程应该是必须熟练应用的知识点,特别是开发基于Java语言的产品。本文将深入浅出的表述Java多线程的知识点,在后续的系列里将侧重于Java5由Doug Lea教授提供的Concurrent并行包的设计思想以及具体实现与应用。 如何才能深入浅出呢,我的理解是带着问题,而不是泛泛的看。所以该系列基本以解决问题为主,当然我也非常希望读者能够提出更好的解决问题的方案以及提出更多的问题。由于水平有限,如果有什么错误之处,请大家提出,共同讨论,总之,我希望通过该系列我们能够深入理解Java多线程来解决我们实际开发的问题。 作为开发人员,我想没有必要讨论多线程的基础知识,比如什么. 阅读全文
posted @ 2011-02-28 17:03 Java爱 阅读(233) 评论(0) 推荐(1) 编辑
摘要: 在正式介绍如何使用Java的输入/输出相关类来进行文件存取前,先简单地通过使用java.io.RandomAccessFile来存取文件,以认识一些文件存取时所必须注意的概念与事项。 文件存取通常是循序的,每在文件中存取一次,文件的读取位置就会相对于目前的位置前进一次。然而有时必须指定文件的某个区段进行读取或写入的动作,也就是进行随机存取(Random Access),即要能在文件中随意地移动读取位置。这时可以使用RandomAccessFile,使用它的seek()方法来指定文件存取的位置,指定的单位是字节。 为了移动存取位置时的方便,通常在随机存取文件中会固定每一个数据的长度。例如长度固. 阅读全文
posted @ 2011-02-27 15:04 Java爱 阅读(310) 评论(0) 推荐(1) 编辑
摘要: JDK6中提供了java.io.Console类专用来访问基于字符的控制台设备. 你的程序如果要与Windows下的cmd或者Linux下的Terminal交互,就可以用Console类代劳. 但我们不总是能得到可用的Console, 一个JVM是否有可用的Console依赖于底层平台和JVM如何被调用. 如果JVM是在交互式命令行(比如Windows的cmd)中启动的,并且输入输出没有重定向到另外的地方,那么就可以得到一个可用的Console实例. 下面代码演示了Console类的用法: /*** @author chinajash*/public class ConsoleTest { . 阅读全文
posted @ 2011-02-26 20:08 Java爱 阅读(2430) 评论(0) 推荐(1) 编辑
摘要: 一 调整 虚拟机参数 二 立即 释放无用的对象 三 利用序列化和反序列化技术 下面是具体的代码实现 package com.free; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import jav. 阅读全文
posted @ 2011-02-25 17:07 Java爱 阅读(300) 评论(0) 推荐(0) 编辑
摘要: 不同的操作系统对于文件系统路径的设置各有差别。例如在Windows中,一个路径的表示法可能是: "C:\\Workspace\\CH14\\" 而在Linux下的路径设置可能会像是: "/home/justin/workspace/ch14" Windows的路径指定是使用UNC (Universal Naming Convention)路径名,以\\开始表示硬盘根目录。如果没有以\\开始表示相对于当前工作目录的路径,C是可选的硬盘指定,后面跟随着:字符。而 UNIX-Like系统没有Windows系统的C、D、E这样的硬盘驱动器概念,UNIX-Like 阅读全文
posted @ 2011-02-24 19:09 Java爱 阅读(355) 评论(0) 推荐(1) 编辑
摘要: 很多人不能够很好的进行JAVA编程,原因就在于对JAVA运行环境的不了解或是了解得不够透彻。如果连一个普通的JAVA程序运行环境都搭建不好。就更不要说理解J2EE的运行环境搭建了。故本文首先介绍如何搭建普通JAVA程序的运行环境,再介绍如何在这个基础上进一步搭建J2EE运行环境。 一、什么是JDK? 学JAVA的人都应该知道SUN公司的JAVA 技术平台按其应用环境的不同有三个非常著名的版本,他们是J2SE(用于普通桌面应用程序的开发),J2EE(用于企业级应用程序的开发)和J2ME(用于移动设备及其他消费类电子产品的应用程序开发),SUN公司为这三个版本分别提供了相应的开发工具包(SDK:. 阅读全文
posted @ 2010-11-23 19:56 Java爱 阅读(647) 评论(0) 推荐(1) 编辑