再议JAR文件(转)
再议JAR文件(转)[@more@]前些天,看了一本清华大学《JAVA使用教程(第二版)》,里面有一些关于介绍JAR文件方面的内容,现摘抄如下,以供大家参考:1.将应用程序压缩为jar文件可以使用jar.exe把一些文件压缩成一个JAR文件,来发布我们的应用程序。我们可以把java应用程序中涉及到的类压缩成一个JAR文件,比如Tom.jar,然后使用java解释器(使用参数-jar)执行这个压缩文件,或用鼠标双击该文件,执行这个压缩文件。java -jar Tom.jar假设应用程序中有两个类A、B,其中A是主类,生成一个JAR文件的步骤如下:(1)首先,用文本编辑器(比如Windows下
整数类型(转)
整数类型(转)[@more@]Java 定义了4个整数类型:字节型(byte),短整型(short),整型(int),长整型(long )。这些都是有符号的值,正数或是负数。Java 不支持仅仅是正的无符号的整数。许多其他计算机语言,包括C/C++ ,支持有符号或无符号的整数。然而,Java 的设计者感到无符号整数是不必要的。具体地说,他们感到无符号(unsigned )概念主要被用来指定高位(high-order bit )状态,它定义了当int 表示一个数字时的符号。你将在第4章中看到,Java 对高位含义的管理是不同的,它通过增加一个专门的“无符号右移”运算符来管理高位。
菜鸟必须了解的两个常识(转)
菜鸟必须了解的两个常识(转)[@more@]一,对象(object)与引用(reference)有许多书籍,对于对象与引用之间的关系一直语焉不详,甚至有的干脆是错误的说法,我们必须对这个问题有个清晰的了解.我们知道:A a = new A();产生一个A类型的对象,a是这个对象的的一个引用,即a指向heap中真正的对象,而a和其他基本数据类型一起存放在stack中.也就是object通过reference操控,在底层的话,a更象一个指针.对于有些书本所说,a就是对象,初学者的话也没什么大问题,因为对a的操作,就是对a指向的对象的操作.问题是,当a的指向发生改变时,a就是对象的说法就不能适应程
浮点型(Floating-Point Types)(转)
浮点型(Floating-Point Types)(转)[@more@]浮点数字,也就是人们知道的实数(real),当计算的表达式有精度要求时被使用。例如,计算平方根,或超出人类经验的计算如正弦和余弦,它们的计算结果的精度要求使用浮点型。Java 实现了标准(IEEE-754 )的浮点型和运算符集。有2种浮点型,单精度浮点型(float )及双精度(double )浮点型。他们的长度和变化范围如表3-2 所示:表3-2 浮点型分类及其特性名称 位数 数的范围DOUBLE 64 1.7E–308~1.7E+308float 32 3.4E–038~3.4E+038下面讨论浮点型的每一种类型。3.4.1 单精度浮点型(float
java的运行流程(转)
java的运行流程(转)[@more@]一,我们所看不到的:1,如果java文件没有package,就默认给文件加上"无名"package;2,默认导入java.lang包,所以我们的java程序中可以使用Sting,Math,Integer等类,包括一些异常类;3,如果生成的类没有父类,则为这个类隐式加上父类:Object;因此,包括Object中的许多方法可以使用;4,字段的初始化;二,我们所看的到的:既然看的到,就先看程序运行结果:public class JRun1 {public JRun1() {System.out.println(" 构造函数");}static{System.out.println("static{}");}{System.out.println("{}");}public static void main(S
对synchronized(this)的一些理解(转)
对synchronized(this)的一些理解(转)[@more@]一、当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。二、然而,当一个线程访问object的一个synchronized(this)同步代码块时,另一个线程仍然可以访问该object中的非synchronized(this)同步代码块。三、尤其关键的是,当一个线程访问object的一个synchronized(this)同步代码块时,其他线程对object中所有其它synchronized(this)同步代码块的访问将被阻塞。四
布尔型(转)
布尔型(转)[@more@]Java 有一种表示逻辑值的简单类型,称为布尔型。它的值只能是真或假这两个值中的一个。它是所有的诸如a 下面的程序说明了布尔类型的使用:// Demonstrate boolean values.class BoolTest {public static void main(String args[]) {boolean b;b = false;System.out.println("b is " + b);b = true;System.out.println("b is " + b);// a boolean value can control the if statementif(b) System.out.println("This is executed.");b = false;if(b) System.out.println("This is not executed.");// outcome of a relat
java_util_test(转)
java_util_test(转)[@more@]package com.diegoyun.apiLearning;import java.util.*;/*** User: diegoyun* Date: 2005-1-30* Time: 19:03:29*/public final class UtilTutorial{public static void collectionRetainTest(){System.out.println("**********collectionRetainTest begin:");Collection c1 = new ArrayList();Collection c2 = new ArrayList();c1.add("aaa");c1.add("bbb");c1.add("ccc");c2.add("ddd");c2.add("ccc");c2.add("eee");boolean isRetainSucceed = false;isRetainSucceed = c2.retainAll(c1);System.out.println(
进一步研究字面量(转)
进一步研究字面量(转)[@more@]在第2章中曾简要地提及字面量,现在已经讲述了内置的类型,让我们进一步研究它们。3.7.1 整数字面量整数可能是在典型的程序中最常用的类型。任何一个数字的值就是一个整数字面量。例如1,2,3和42。这些都是十进制的值,这意味着对他们的描述基于数字 10。还有另外2 种进制被整数字面量使用,八进制(octal,基数是8)和十六进制(hexadecimal,基数是16)。在Java 中对八进制的值通过在它的前面加一个前导0来表示。正常的十进制的数字不用前导零。这样,看起来有效的值09将从编译器产生一个错误,因为9超出了
Java_util_package(转)
Java_util_package(转)[@more@]CollectionRetainAll :保留两个Collection的交集。注意,如果该Collection是由Arrays.asList转换而来,那么这个方法会失败。因为转换来的List接口不支持这个方法Samples:public static void collectionTest(){Collection c1 = new ArrayList();Collection c2 = new ArrayList();c1.add("aaa");c1.add("bbb");c1.add("ccc");c2.add("ddd");c2.add("ccc");c2.add("eee");boolean isRetainSucceed = false;isRetainSucceed = c2.retainAll(c1);System.out.println("isRetainSucceed = " + isRetainSucceed);S
深入浅出Java多线程程序设计(转)
深入浅出Java多线程程序设计(转)[@more@]一:理解多线程多线程是这样一种机制,它允许在程序中并发执行多个指令流,每个指令流都称为一个线程,彼此间互相独立。线程又称为轻量级进程,它和进程一样拥有独立的执行控制,由操作系统负责调度,区别在于线程没有独立的存储空间,而是和所属进程中的其它线程共享一个存储空间,这使得线程间的通信远较进程简单。多个线程的执行是并发的,也就是在逻辑上“同时”,而不管是否是物理上的“同时”。如果系统只有一个CPU,那么真正的“同时”是不可能的,但是由于CPU的速度非常快,用户感觉不到其
Java学习过程的一些重点(转)
Java学习过程的一些重点(转)[@more@] 主要说说Java的几大块吧,无法说得很细,因为其实每一块拿出来都能说很多,我就说一下这几块学习的时候的重点或者应该注意的东西。数值类型: 虽然是面向对象的语言,但是在使用上数值类型还是必不可少的,如果在C的学习中已经掌握了C的数值计算和转换规则,那我想这里应该没有什么问题,只有两点需要注意:1、14.0这样的浮点常量被认为是double型,只有加上f后缀才是float型的;2、整数常量说起来被认为是int型,但是在编译时,可以认为编译器将其看作能表示该数的最小数值,因此byte b = 100;
用RMI实现基于Java的分布式计算(转)
用RMI实现基于Java的分布式计算(转)[@more@]Java 2 Enterprise Edition(J2EE)远程方法调用(Remote Method Invocation,RMI)框架允许你创建透明的、分布式的服务和应用程序。基于RMI的应用程序由Java对象构成,这些对象相互调用,同时忽略对方的位置。换言之,一个Java对象可调用另一个虚拟机上的某个Java对象的方法,整个过程和调用同一个虚拟机上的某个Java对象的方法无异。驻留在不同虚拟机上的对象为了相互获得引用,可以使用RMI的查找服务,或者将对象引用作为方法调用的一个参数或者返回值来接收。参数和返回值借助Java的对象序列
java类型转换与强制类型转换(转)
java类型转换与强制类型转换(转)[@more@]如果你以前有编程经验,那么你已经知道把一种类型的值赋给另外类型的一个变量是相当常见的。如果这2种类型是兼容的,那么Java 将自动地进行转换。例如,把int 类型的值赋给long 类型的变量,总是可行的。然而,不是所有的类型都是兼容的,因此,不是所有的类型转换都是可以隐式实现的。例如,没有将double 型转换为byte 型的定义。幸好,获得不兼容的类型之间的转换仍然是可能的。要达到这个目的,你必须使用一个强制类型转换,它能完成两个不兼容的类型之间的显式变换。让我们看看自动类型转换和强
this 关键字的理解--java学习笔记(转)
this 关键字的理解--java学习笔记(转)[@more@]彻底理解this 关键字的含义this关键字再java里面是一个我认为非常不好理解的概念,:)也许是太笨的原因this 关键字的含义:可为以调用了其方法的那个对象生成相应的句柄。怎么理解这段话呢?thinking in java里面有这么一个例子有两个同一个类型的对象,分别叫做a和b,那我们怎样区别在调用方法f()的时候,是谁再调用这个方法呢?例如:class Banana {void f(int i){/***方法主体*****/}}Banana a = new Banana();//生成Banana的对象aBanana b= new Banana();//生成Banana的对象ba
java 变量(转)
java 变量(转)[@more@]变量是Java 程序的一个基本存储单元。变量由一个标识符,类型及一个可选初始值的组合定义。此外,所有的变量都有一个作用域,定义变量的可见性,生存期。接下来讨论变量的这些元素。3.8.1 声明一个变量在Java 中,所有的变量必须先声明再使用。基本的变量声明方法如下:type identifier [ = value][,identifier [= value] ...] ;type 是Java 的基本类型之一,或类及接口类型的名字(类和接口类型在本书第1部分的后部讨论)。标识符(identifier )是变量的名字,指定一个等号和一个值来初始化变量。请记住初始化表达
JBuilder 9 常见快捷键(转)
JBuilder 9 常见快捷键(转)[@more@]1.工作区: (显隐)项目面板:ctrl + Alt + p (Project)设计面板: ctrl + Alt + c (content)结构面板: ctrl + Alt + s (Structure)信息面板: ctrl + Alt + M (Message)状态面板: ctrl + Alt + Z2.主面板:(代码面板和设计面板)激活代码模块: ctrl + J (@1)参数提示信息的激活: ctrl + shift + H打开查询、替换窗口: ctrl + F类的查询: ctrl + -3.F 键的用法F1: 帮助快捷F4: 运行多行F5: 加入断点F7: 当遇到方法时会运行方法内的代码F8: 逐步运行代码F12: 代码面板和设计面板切换4. Shift 键的用法添加多个相
java 数组(转)
java 数组(转)[@more@]数组(array)是相同类型变量的集合,可以使用共同的名字引用它。数组可被定义为任何类型,可以是一维或多维。数组中的一个特别要素是通过下标来访问它。数组提供了一种将有联系的信息分组的便利方法。注意:如果你熟悉C/C++ ,请注意,Java 数组的工作原理与它们不同。3.11.1 一维数组一维数组(one-dimensional array )实质上是相同类型变量列表。要创建一个数组,你必须首先定义数组变量所需的类型。通用的一维数组的声明格式是:type var-name[ ];其中,type 定义了数组的基本类型。基本类型决定了组成数组的每
java字符串的简单介绍(转)
java字符串的简单介绍(转)[@more@]你可能注意到了,在前面关于数据类型和数组的讨论中没有提到字符串或字符串数据类型。这不是因为Java 不支持这样一种类型,它支持。只是因为Java 的字符串类型,叫做字符串(String ),它不是一种简单的类型,它也不是简单的字符数组(在C/C++ 中是)。字符串(String )在Java 中被定义为对象,要完全理解它需要理解几个和对象相关的特征。因此,有关字符串(String )的讨论被放到本书的后面,在对象被描述后再讲字符串(String )。但是,为了在例子程序中使用简单的字符串,下面简单的按顺序介绍。字
java表达式中类型的自动提升(转)
java表达式中类型的自动提升(转)[@more@]除了赋值,还有另外一种类型变换:在表达式中。想要知道原因,往下看。在表达式中,对中间值的精确要求有时超过任何一个操作数的范围。例如,考虑下面的表达式: byte a = 40; byte b = 50; byte c = 100; int d = a * b / c; 中间项结果a*b 很容易超过它的任何一个byte 型操作数的范围。为处理这种问题,当分析表达式时,Java 自动提升各个byte 型或short型的操作数到int 型。这意味着子表达式a*b 使用整数而不是字节型来执行。这样,尽管变量a和b都被指定为byte 型,50*40 中间表达式的结果2000