javase基础知识
IT人.阿标
人生难得几今日,今日不为真可惜。
展开
-
java静态代理和动态代理
一、代理模式 代理模式是常用的Java设计模式,它的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代理类的对象本身并不真正实现服务,而是通过调用委托类的对象的相关方法,来提供特定的服务。 按照代理类的创建时期,代理类可分为两种。 静态代理类: 由程序员创建或由特定工具自动生成源代码,再对其编译。在程序运行前,代理类的.class文件就已经存在了。原创 2011-05-13 00:40:00 · 915 阅读 · 0 评论 -
用java遍历所有当前运行环境
Properties 类表示了一个持久的属性集。Properties 可保存在流中或从流中加载。属性列表中每个键及其对应值都是一个字符串。 一个属性列表可包含另一个属性列表作为它的“默认值”;如果未能在原有的属性列表中搜索到属性键,则搜索第二个属性列表。 因为 Propertie原创 2011-07-27 20:02:50 · 900 阅读 · 0 评论 -
设置JAVA的环境变量
set JAVA_HOME=C:\Program Files\Java\jdk1.6.0_20\ set PATH=%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin set CLASSPATH=.;%JAVA_HOME%\lib;%JAVA_HOME%\原创 2011-07-26 11:52:55 · 778 阅读 · 0 评论 -
java中CharSequence接口
最近在学习Android但是在学习过程中发现CharSequence这个数据类型,自己真的是不了解,在上网找了找,原来这是一个接口:在JDK1.4中,引入了CharSequence接口,实现了这个接口的类有:CharBuffer、String、StringBuffer、Strin原创 2011-08-12 20:28:05 · 21999 阅读 · 7 评论 -
多线程下载文件
使用多线程下载文件可以更快完成文件的下载,多线程下载文件之所以快,是因为其抢占的服务器资源多。如:假设服务器同时最多服务100个用户,在服务器中一条线程对应一个用户,100条线程在计算机中并非并发执行,而是由CPU划分时间片轮流执行,如果A应用使用了99条线程下载文件,那么相当于原创 2011-08-23 20:59:09 · 3655 阅读 · 1 评论 -
理解wait()与notify()的例子
我们来解释一下. "wait()允许我们将线程置入“睡眠”状态",也就是说,wait也是让当前线程阻塞的,这一点和sleep或者suspend是相同的.那和sleep,suspend有什么区别呢? 区别在于"(wait)同时又“积极”地等待条件发生改变",这一原创 2011-10-14 13:26:31 · 255 阅读 · 1 评论 -
getField getDeclaredField
getFields()获得某个类的所有的公共(public)的字段,包括父类。 getDeclaredFields()获得某个类的所有申明的字段,即包括public、private和proteced,但是不包括父类的申明字段。 同样类似的还有getConstruc原创 2011-10-15 19:58:39 · 2781 阅读 · 0 评论 -
用递归列出文件夹所有文件夹和文件
/** *列出目录中所有的文件和文件夹; *利用递归 */public class ListFiles { StringBuffer sb = new StringBuffer(""); public static void main(String[] args) { File file = new File("F:/Youku Files"); ListFiles lf =原创 2011-11-02 14:55:00 · 4318 阅读 · 0 评论 -
java中判断字符串是否为数字的三种方法
1用JAVA自带的函数public static boolean isNumeric(String str){ for (int i = str.length();--i>=0;){ if (!Character.isDigit(str.charAt(i))){ return false; } } return true; }2用正则表达式原创 2011-11-05 14:13:52 · 7141 阅读 · 0 评论 -
Java之JNI初步认识
昨天学习了一下如何使用JAVA调用C语言程序,就是所谓的JNI(Java Native Interface):下面是一个简单的实例过程:1、在eclipse里面创建一个hellojni工程,这个工程里面在com.java.jni包下面创建一个HelloJNI.java文件,如下:package com.java.jni;public class HelloJNI { public原创 2012-04-08 14:25:13 · 1841 阅读 · 0 评论 -
java并发编程之同步器
同步器是一些使线程能够等待另一个线程的对象,允许它们协调动作。最常用的同步器是CountDownLatch和Semaphore,不常用的是Barrier 和Exchanger倒计数器 锁存器是一次性障碍,允许一个或者多个线程等待一个或者多个其它线程来做某些事情。CountDownLatch的唯一构造器带一个int类型的参数,这个int参数是指允许所有在等待线程被处理之前,必须在锁存器上调用co原创 2012-10-19 12:21:30 · 5405 阅读 · 0 评论 -
字符统计的方法
用一般的方法:public class NumberCount { public static void main(String[] args) { Integer c[] = new Integer[] { 2, 3, 2, 2, 2, 5, 3, 2, 2, 6,原创 2011-07-12 21:04:13 · 898 阅读 · 0 评论 -
java位移运算
“ > ”, “> > > ” 在Java中是左移、有符号右移和无符号右移运算符。位移运算符只对int值进行操作,如果不是int,编译器会报错。在Java中,一个int的长度始终是32bit,也就是4个字节。原创 2011-07-12 20:14:48 · 917 阅读 · 0 评论 -
java中Math.random()与java.util.random()的区别
<br />今天突然想起来,java产生随机数的问题,上机试了一下,找到了一点区别,在这里总结一下;<br />直接调用Math.random()是产生一个[0,1)之间的随机数,<br />如果用<br />java.util.Random random=new Random();random.nextInt()这样产生一个长整型的随机数并且与上一次是一样的,如果过一会再产生就不会一样了,例如:<br /> for (int i = 0; i < 10; i++) {<br /> Random r原创 2011-05-20 11:08:00 · 43524 阅读 · 5 评论 -
java 内部类可以直接创建对象
静态内部类可以直接创建对象new B.C();如果内部类不是静态的,那就得这样B b = new B();B.C c = b.new C();转载 2011-04-26 14:41:00 · 17820 阅读 · 1 评论 -
正则表达式的构造摘要
正则表达式的构造摘要 构造匹配 字符x字符 x//反斜线字符/0n带有八进制值 0 的字符 n (0原创 2011-05-01 11:24:00 · 888 阅读 · 0 评论 -
jar和javadoc命令的使用
Jar使用说明和JavaDoc的使用说明 Jar使用说明功能说明: Java归档工具语法: jar [ 命令选项 ] [manifest] destination input-file [input-files]补充说明:转载 2011-05-02 09:25:00 · 2772 阅读 · 0 评论 -
枚举类型理解和作用
每一个枚举都是一个对象,可以调用不同的构造函数,类中的方法,toString方法,等……package Text;原创 2011-05-02 19:51:00 · 1785 阅读 · 0 评论 -
反射机制
反射基石--Class类,首字母大写;这是一个类;java程序中的各种java类,它们是否属于同一事物,是不是可以用同一个事物来描述这类事物呢?原创 2011-05-02 20:17:00 · 3035 阅读 · 0 评论 -
hashCode方法与HashSet类
如果想查找一个集合中是否包含有某个对象,大概的程序代码怎样写呢?当发现某个元素与要查找的对对象进行equals方法比较的结果相等时,则停止继续查找并返回肯定的信息,否则返回否定的信息。如果是一个集合中有很多元素,譬如有一万个元素,并且没有包含要查找的对象时,则意味着你的程序需要从该集合中取出一万个元素进行啄一的比较才能得到结论,有人发明了一种hashCode算法,来提高查找的效率,这种方式将集合分成若干个存储区域,每个对象可以计算出一个哈希码,可以将哈希码分组,每组分别对应某个存储区域,根据一个对象的哈希码原创 2011-05-03 19:08:00 · 3957 阅读 · 0 评论 -
java中String类详解(享元模式思考)
1. 首先String不属于8种基本数据类型,String是一个对象。 因为对象的默认值是null,所以String的默认值也是null;但它又是一种特殊的对象,有其它对象没有的一些特性。 2. new String()和new String(“”)都是申明一个新的空字符串,是空串不是null; 3. String str=”kvill”;转载 2011-05-02 12:21:00 · 4508 阅读 · 2 评论 -
java toString方法作用
toString方法是object类里的方法.所有的类都继承了object.自然也就有了toString方法.但是一般来说,这个toString方法不适合我们自己的类.所以就要重写这个方法.至于重写成什么样,就随便了.toString的好处是在碰到“println”之类的输出方法时会自动调用,不用显式打出来原创 2011-05-02 19:05:00 · 2813 阅读 · 0 评论 -
java流对象易犯的错误
用java流对象操作文件的时候,通常很容易操作错误,经常出的一个错是,忘记flush缓存,和关闭流,这样当文件过小的时候,就可能导致文件更新失败,或者空文件。原创 2011-07-07 18:32:54 · 997 阅读 · 0 评论 -
private static final long serialVersionUID = 1L;
serialVersionUID 用来表明类的不同版本间的兼容性简单来说,Java的序列化机制是通过在运行时判断类的serialVersionUID来验证版本一致性的。在进行反序列化时,JVM会把传来的字节流中的serialVersionUID与本地相应实体(原创 2011-05-18 08:16:00 · 2668 阅读 · 0 评论 -
Java内存分析
一、了解java的内存大致划分栈:存放基本类型的数据和对象的引用,但对象本身不存放在栈中,而是存放在堆中。堆:存放用new产生的数据静态域:存放在对象中用static定义的静态成员常量池:存放常量二、Java内存分配中的栈在函数中定义的一些基本类型的变量数据和对象的引用变量都在函原创 2011-07-07 23:52:49 · 2730 阅读 · 1 评论 -
如何求两个int型的最大值,感觉很不错!
这是在论坛里看到的一精华贴,自己将代码总结下来,做为一个java文件,备后面的复习:/** * 两个整型数,不准用if 、switch 、?:等判断语句求出两者最大值。 * 不能使用api */public class Print_Max { public static原创 2011-07-12 20:32:10 · 2650 阅读 · 0 评论 -
java数据类型相关的问题
今天在论坛里看到一个与java类型相关的题目,感觉很好!public class Print_Test { public static void main(String[] args) { char c = (char) 2354; System.out.print原创 2011-07-12 19:44:10 · 662 阅读 · 0 评论 -
深入研究java.lang.ThreadLocal类
文章转自:http://lavasoft.blog.51cto.com/62575/51926/学习学习: ThreadLocal使用场合主要解决多线程中数据数据因并发产生不一致问题。ThreadLocal为每个线程的中并发访问的数据提供一个副本,通过访问副本来运行业务,这样的结果是耗费了内存,单大大减少了线程同步所带来性能消耗,也减少了线程并发控制的复杂度。转载 2013-03-28 14:56:27 · 1756 阅读 · 0 评论