
java language
ningguixin
喜欢游泳嘿嘿
展开
-
一个理解wait()与notify()的例子
file://分析这段程序,并解释一下,着重讲讲synchronized、wait(),notify谢谢!class ThreadA { public static void main(String[] args) { ThreadB b=new ThreadB(); b.start(); System.out.println("b is s转载 2012-07-09 10:33:14 · 483 阅读 · 0 评论 -
形参与实参
直白的讲,形参是形式上的参数,实参是实际的参数;形参只是对实参的一种抽象类型描述,只是声明一个函数(方法)能接受什么类型的实参,而不确定接受的实参具体内容是多少;实参就是传递给函数(方法)对应形参的具体内容(值),形参的初始指(内容)由实参决定.形参在函数(方法)结束返回后就被释放了.到这里,就又出现程序设计语言中的另一通用概念参数传递方式,传值和传址;1.传值方式,只是将实参的值原创 2012-11-19 23:58:03 · 1656 阅读 · 0 评论 -
java 反射小例子
下面代码是java反射应用的一个小例子通过反射实现了对一个对象属性copy的。 import java.lang.reflect.Field;import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;public class ReflectTest { pub原创 2012-12-12 00:17:09 · 587 阅读 · 0 评论 -
利用java反射访问私有方法
下面代码利用java反射范文java类私有方法:import java.lang.reflect.Method;public class TestVisitPrivate { public static void main(String[] args) throws Exception { Private p = new Private(); Class原创 2012-12-12 18:51:48 · 521 阅读 · 0 评论 -
MyEclipse 10安装svn插件
MyEclipse 10安装svn插件其实很简单,只须要2步调: 1、到subeclipse官网下载最新版本的。 2、下载后,解压到你的MyEclipse的安装目次MyEclipse 10dropins目次下。 OK了,重启MyEclipse,然后在项目上右键team->你应当可以看到出来了!原创 2012-12-27 17:01:28 · 4079 阅读 · 1 评论 -
myeclipse tomcat启动,内存溢出问题
在 启动过程中出现 内存 溢出问题,抛出类似如下异常信息:java.lang.OutOfMemoryError: Java heap space可以尝试办法:A.修改Tomcat\bin\catalina.bat,添加如下内容set JAVA_OPTS=-Xms256m -Xmx512m -Djava.awt.headless=true [-XX:MaxPermSize=128M]转载 2012-12-28 11:25:03 · 3507 阅读 · 0 评论 -
使用apache开源包完成文件上传
直入主题首先去http://apache.org 下载commons-fileupload-1.2.2-bin 、commons-io-2.4-bin 分别解压缩把分别的jar文件加到项目中,下面是主要代码。 上传的fileUpload.jsp: <%String path = request.getContextPath();String basePath = reques原创 2013-01-03 17:13:40 · 1391 阅读 · 0 评论 -
正则表达式:Greedy、Reluctant、Possessive 区别
1.:Greedy(贪婪的)X?X,一次或一次也没有X*X,零次或多次X+X,一次或多次X{n}X,恰好 n 次X{n,}X,至少 n 次X{n,m}X,至少 n 次,但是不超过 m 次 Pattern p = Pattern.compile(".{3,10}[0-原创 2012-08-05 23:02:43 · 4638 阅读 · 5 评论 -
java 抽象类实现接口
1.抽象类肯定可以实现接口; 2.这不是有没有意义的事情,是一种思想,当你自己写的类想用接口中个别方法的时候(注意不是所有的方法),那么你就可以用一个抽象类先实现这个接口(方法体中为空),然后再用你的类继承这个抽象类,这样就可以达到你的目的了,如果你直接用类实现接口,那是所有方法都必须实现的; 3.这种思想在java.swing.event包中运用的非常多,里面一般以Adapter为后缀的转载 2013-02-26 17:41:32 · 433 阅读 · 0 评论 -
java抽象类与接口的区别
1.abstract class 在 Java 语言中表示的是一种继承关系,一个类只能使用一次继承关系。但是,一个类却可以实现多个interface。 2.在abstract class 中可以有自己的数据成员,也可以有非abstarct的成员方法,而在interface中,只能够有静态的不能被修改的数据成员(也就是必须是static final的,不过在 interface中一般不定义原创 2013-03-01 23:03:59 · 439 阅读 · 0 评论 -
Java中的instanceof关键字
instanceof是Java的一个二元操作符,和==,>, String s = "I AM an Object!"; boolean isObject = s instanceof Object; 我们声明了一个String对象引用,指向一个String对象,然后用instancof来测试它所指向的对象是否是Object类的一个实例,显然,这是真的,所以返回true,转载 2013-06-14 10:16:01 · 547 阅读 · 0 评论 -
java中判断Object对象类型
Object param = params.get(i); if (param instanceof Integer) { int value = ((Integer) param).intValue(); prepStatement.setInt(i + 1, value); } else if (param instanceof String) {转载 2013-06-14 10:13:47 · 4412 阅读 · 0 评论 -
在计算机中,如何判断一个数是八进制还是十六进制?
八进制是由数字0-7组成的,表达方式由数字0(零)开头的,例:0347 ; 十六进制是由数字0-9和字母A-F组成的,表达方式由数字0(零)加上小写字母x开头的,例:0x1F3C 。原创 2013-09-30 15:06:38 · 10930 阅读 · 2 评论 -
为什么Java的String对象不能改变
字符串String是Java程序中经常使用的一个类。但是,它有一个特殊的属性,就是一旦初始化以后,就不可再更改了。 大家都说String不可变的原因,是因为JDK源码中String类声明为final的原因。其实这不尽然,我们可以考虑这样一个问题: String类声明为fianl就成为不可变的. StringBuffer类和StringBuilder类也是被声明为final的,为转载 2013-11-24 21:17:33 · 1050 阅读 · 0 评论 -
java中switch用法
switch(表达式){case 常量表达式1:语句1;....case 常量表达式2:语句2;default:语句;}default就是如果没有符合的case就执行它,default并不是必须的.case后的语句可以不用大括号.switch语句的判断条件可以接受int,byte,char,short,不能接受其他类型.一旦case匹配,就会顺序执行后面的程原创 2014-02-20 22:01:32 · 1023 阅读 · 0 评论 -
java中volatile关键字的含义
用在多线程,同步变量。 线程为了提高效率,将某成员变量(如A)拷贝了一份(如B),线程中对A的访问其实访问的是B。只在某些动作时才进行A和B的同步。因此存在A和B不一致的情况。volatile就是用来避免这种情况的。volatile告诉jvm, 它所修饰的变量不保留拷贝,直接访问主内存中的(也就是上面说的A) 在java线程并发处理中,有一个关键字volatile的使用目前存在很转载 2014-06-25 17:38:26 · 752 阅读 · 0 评论 -
synchronized和lock(reentrantlock) 区别
1.某个线程在等待一个锁的控制权的这段时间需要中断2.需要分开处理一些wait-notify,ReentrantLock里面的Condition应用,能够控制notify哪个线程3.具有公平锁功能,每个到来的线程都将排队等候 1,3原创 2014-04-17 18:09:07 · 9797 阅读 · 2 评论 -
自定义ClassLoader
废话不多说直接上代码:import java.io.ByteArrayOutputStream;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;public class ClassLoaderTest extends ClassLoader{ // 类原创 2012-11-17 17:19:48 · 632 阅读 · 0 评论 -
利用java序列化进行对象深Clone
在java语言里深复制一个对象,通常可以使对象实现Serializable接口,然后把对象(实际上是对象的一个copy),写到一个流里面,便可重复建立对象。这样做被复制的对象与被复制对象里面的引用都是可以被一并深复制的,不同于Object基类的Clone方法(浅复制:如果被复制的对象存在其他对象的引用,复制一个引用指向原对象的实例)。废话不多说Code如下:import java.io原创 2012-11-10 16:13:33 · 1016 阅读 · 0 评论 -
“类锁”和对象锁
假设我有一个类ClassA,其中有一个方法synchronized methodA(),那么当这个方法被调用的时候你获得就是对象锁,但是要注意,如果这个类有两个实例,比如:ClassA a = new ClassA();ClassA b = new ClassA();那么如果你在a这对象上调用了methodA,不会影响b这个对象,也就是说对于b这个对象,他也可以调用methodA,因为这是两对象,原创 2012-07-09 14:46:51 · 5974 阅读 · 3 评论 -
java comparable和Comparator 区别
Comparable & Comparator 都是用来实现集合中的排序的,只是 Comparable 是在集合内部定义的方法实现的排序, Comparator 是在集合外部实现的排序,所以,如想实现排序,就需要在集合外定义 Comparator接口的方法或在集合内实现 Comparable 接口的方法。 Comparable 是一个对象本身就已经支持自比较所需要转载 2012-07-09 21:22:23 · 661 阅读 · 0 评论 -
java基本数据类型相互转换
首先介绍java基础类型各自占几个字节:(1个字节为8位二进制) byte 1个字节short 2字节 int 4字节 long int 8字节 char 2字节 float 32字节 double 64字节boolean 1个字节 以上为基本数据类型占用字节数,只要记住字节小的类型可赋值给字节大的类型。例如 short可以赋值给int。原创 2012-07-09 22:54:58 · 649 阅读 · 0 评论 -
java 外部类静态方法访问内部类
public class TestLinkedList { public static void main(String[] args) { TestLinkedList ls = new TestLinkedList(); List list = new LinkedList(); for (int i = 10; i > 0; i--) { lis原创 2012-07-11 10:46:48 · 3141 阅读 · 0 评论 -
Java移位运算符
JAVA基础(JAVA移位运算符) .移位运算符就是在二进制的基础上对数字进行平移。按照平移的方向和填充数字的规则分为三种:(左移)、>>(带符号右移)和>>>(无符号右移)。 在移位运算时,byte、short和char类型移位后的结果会变成int类型,对于byte、short、char和int进行移位时,规定实际移动的次数是移动次数和32的余数,也就是移位33次和移位1次得到的结果相转载 2012-07-09 22:57:32 · 382 阅读 · 0 评论 -
位运算符与逻辑运算符
位运算符: 与(&)、非(~)、或(|)、异或(^) &:当两边操作数的位同时为1时,结果为1,否则为0。如1100&1010=1000 | :当两边操作数的位有一边为1时,结果为1,否则为0。如1100|1010=1110 ~:0变1,1变0 ^:两边的位不同时,结果为1,否则为0.如1100^1010=0110逻辑运原创 2012-07-19 11:21:27 · 575 阅读 · 0 评论 -
Object类wait() 与 notify() 简单解释
Java所有的类都具有线程的潜力,Java赋予的每个对象一个锁,在计算机内部工作在同一时间,只有一个对象可以持有锁,也就是说程序在同一时间只有一个程序可以运行,这里我把对象比作是一个小的程序。而多处理器,那么就另当别论了。 在这里我们首先学习一下公共方法wait,notify,notifyAll。 wait方法可以使在当前线程的对象等待,直到别的线程调用此对象的转载 2012-08-07 16:16:23 · 698 阅读 · 0 评论 -
什么是QName
转载自http://blog.youkuaiyun.com/fbysss/archive/2007/06/24/1664076.aspx作者:fbysssBlog:blog.youkuaiyun.com/fbysssmsn:jameslastchina@hotmail.com声明:本文章由fbysss整理编写,转载或引用请注明引用地址。关键字:qname Qname这个东东,在使用d转载 2012-08-10 18:03:18 · 720 阅读 · 1 评论 -
java volatile是什么关键子,以及在线程中的作用。
在Java中设置变量值的操作,除了long和double类型的变量外都是原子操作,也就是说,对于变量值的简单读写操作没有必要进行同步。这在JVM 1.2之前,Java的内存模型实现总是从主存读取变量,是不需要进行特别的注意的。而随着JVM的成熟和优化,现在在多线程环境下volatile关键字的使用变得非常重要。在当前的Java内存模型下,线程可以把变量保存在本地内存(比如机器的寄存转载 2012-07-29 22:12:51 · 1214 阅读 · 0 评论 -
Java数据类型操作的原子性
1.基本类型,引用类型的赋值,引用是原子的操作;2.long与double的赋值,引用是可以分割的,非原子操作;3.要在线程间共享long或double的字段时,必须在synchronized中操作,或是声明成volatile.转载 2012-07-29 22:16:55 · 3868 阅读 · 0 评论 -
java中replace和replaceAll的区别
1)replace的参数是char和CharSequence,即可以支持字符的替换,也支持字符串的替换(CharSequence即字符串序列的意思,说白了也就是字符串);2)replaceAll的参数是regex,即基于规则表达式的替换,比如,可以通过replaceAll("\\d", "*")把一个字符串所有的数字字符都换成星号; 相同点是都是全部替换,即把源字符串中的转载 2012-10-12 10:38:19 · 799 阅读 · 0 评论 -
java中的Iterator和Iterable 区别 ,以及为么要有iterable接口
java.lang.Iterable java.util.Iterator 来自百度知道: Iterator是迭代器类(其实在javaAPI中其也是一个接口),而Iterable是接口。 好多类都实现了Iterable接口,这样对象就可以调用iterator()方法(返回一个Iterator对象)。 一般都是结合着用,比如 HashMap类就实现了Iterable接口,转载 2012-10-16 22:48:59 · 5331 阅读 · 0 评论 -
java 泛型 E/T/K/V/N 代表的意义
* E - Element (在集合中使用,因为集合中存放的是元素)* K - Key(键)* N - Number(数值类型)* T - Type(Java 类)* V - Value(值)* S,U,V etc. - 2nd, 3rd, 4th types原创 2012-10-27 21:35:26 · 5471 阅读 · 0 评论 -
Object的notify及wait方法实例一则
假设如下一个场景:主过程需要子过程执行结束后才能继续操作,一般,我们想到的是共享一个变量,通过在子过程结束时改变该变量的值,然后主过程又隔一段时间就去检测共享变量的值是否发生了变化。实现如下:package com.unclepeng.test;//主过程public class MainProgross { private static volatile boolean sign转载 2012-11-08 18:30:12 · 858 阅读 · 0 评论 -
java构造器(整合)
没有父类无法构造子类,构造子类之前是必须要先构造父类的,一般都是隐式调用父类的无参构造器的。所以:1.如果定义了有参构造器,而又没有无参构造器的话,JVM是不会自己构造无参构造器的,因为虚拟机认为你自己可以定义构造器(java虚拟机说:自己能做为什么还要我帮你定义无参构造器呢)。2.如果没有定义了有参构造器,就可以不用自己定义无参构造器(java虚拟机说:你不会定义构造器啊,那我帮你造个吧原创 2012-11-25 16:35:05 · 646 阅读 · 0 评论 -
Java NIO和IO的主要区别
当学习了Java NIO和IO的API后,一个问题马上涌入脑海:我应该何时使用IO,何时使用NIO呢?在本文中,我会尽量清晰地解析Java NIO和IO的差异、它们的使用场景,以及它们如何影响您的代码设计。Java NIO和IO的主要区别下表总结了Java NIO和IO之间的主要差别,我会更详细地描述表中每部分的差异。IO NIO面向流转载 2015-03-03 17:01:11 · 758 阅读 · 0 评论