
JAVA基础
文章平均质量分 71
zhangxingJAVA
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
JAVA 序列化
当进行序列化的时候: 首先JVM会先调用writeReplace方法,在这个阶段,我们可以进行张冠李戴,将需要进行序列化的对象换成我们指定的对象. 跟着JVM将调用writeObject方法,来将对象中的属性一个个进行序列化,我们可以在这个方法中控制住哪些属性需要序列化. 当反序列化的时候: JVM会调用readObject方法,将我们刚刚在writeObject方法序列化好的属性,反序列化回来....原创 2011-05-21 13:49:37 · 112 阅读 · 0 评论 -
JAVA继承在处理成员变量和方法时是有区别
JAVA继承在处理成员变量和方法时是有区别的:1.方法的行为总是表现出它们实际类型的行为;2.实例变量总是表现出声明这些变量所用类型的行为。如果在子类重写了父类方法,就意味着子类里定义的方法彻底覆盖了父类里的同名方法,系统将不可能把父类里的方法转移到子类中,对于实例变量则不存在这样的现象,即使子类中定义了与父类完全同名的实例变量,这个实例变量依然不可能覆盖父类中定义的实例变量。因为继承成员变...原创 2012-07-09 15:27:07 · 172 阅读 · 0 评论 -
super的限制
super的限制1.子类方法不能直接使用 return super,但使用return this;返回调用该方法的对象是允许的。2.程序不允许直接把super当成变量使用,例如,试图判断super和a变量是否引用同一个JAVA对象。——super == a;但这条语句将引起编译错误。对父,子对象在内存中存储有了准确的结论,当程序创建一个子类对象时,系统不仅会为该类中定义的实例变量分配内存,也会为其...原创 2012-07-09 15:49:56 · 200 阅读 · 0 评论 -
final修饰符
final修饰符1.final 可以修饰变量,被final修饰的变量被赋初始值之后,不能对它重新赋值。2.final可以修饰方法,被final修饰的方法不能被重写。3.final可以修饰类,被final修饰的类不能派生子类。final只能在如下3个位置指定初始值。1.定义final实例变量时指定初始值。2.在非静态初始化块中为final实例变量指定初始值。3.在构造器中为final实例变量指...原创 2012-07-09 16:30:16 · 108 阅读 · 0 评论 -
Java线程(七):Callable和Future
接着上一篇继续并发包的学习,本篇说明的是Callable和Future,它俩很有意思的,一个产生结果,一个拿到结果。 Callable接口类似于Runnable,从名字就可以看出来了,但是Runnable不会返回结果,并且无法抛出返回结果的异常,而Callable功能更强大一些,被线程执行后,可以返回值,这个返回值可以被Future拿到,也就是说,Future可以拿到异步执行...原创 2014-10-24 17:51:45 · 141 阅读 · 0 评论 -
Java线程(一):线程安全与不安全
当我们查看JDK API的时候,总会发现一些类说明写着,线程安全或者线程不安全,比如说StringBuilder中,有这么一句,“将StringBuilder 的实例用于多个线程是不安全的。如果需要这样的同步,则建议使用StringBuffer。 ”,那么下面手动创建一个线程不安全的类,然后在多线程中使用这个类,看看有什么效果。public class Count { private i...原创 2014-10-24 18:01:55 · 206 阅读 · 0 评论 -
Java线程(二):线程同步synchronized和volatile
上篇通过一个简单的例子说明了线程安全与不安全,在例子中不安全的情况下输出的结果恰好是逐个递增的(其实是巧合,多运行几次,会产生不同的输出结果),为什么会产生这样的结果呢,因为建立的Count对象是线程共享的,一个线程改变了其成员变量num值,下一个线程正巧读到了修改后的num,所以会递增输出。 要说明线程同步问题首先要说明Java线程的两个特性,可见性和有序性。多个线程之间...原创 2014-10-24 18:19:10 · 197 阅读 · 0 评论 -
Java线程(三):线程协作-生产者/消费者问题
上一篇讲述了线程的互斥(同步),但是在很多情况下,仅仅同步是不够的,还需要线程与线程协作(通信),生产者/消费者问题是一个经典的线程同步以及通信的案例。该问题描述了两个共享固定大小缓冲区的线程,即所谓的“生产者”和“消费者”在实际运行时会发生的问题。生产者的主要作用是生成一定量的数据放到缓冲区中,然后重复此过程。与此同时,消费者也在缓冲区消耗这些数据。该问题的关键就是要保证生产者不会在缓冲区满...原创 2014-10-28 15:35:43 · 138 阅读 · 0 评论 -
Java线程(四):线程中断、线程让步、线程睡眠、线程合并 .
有人会问:JDK5之后有了更完善的处理多线程问题的类(并发包),我们还需要去了解传统线程吗?答:需要。在实际开发中,无外乎两种情况,一个是开发新内容,另一个是维护原有程序。开发新内容可以使用新的技术手段,但是我们不能保证原有程序是用什么实现的,所以我们需要了解原有的。另外一点,了解传统线程的工作原理,使我们在使用并发包时更加得心应手。线程中断 线程中断涉及到三个方法,如下:...原创 2014-10-28 15:49:46 · 175 阅读 · 0 评论 -
System.getProperty()参数大全
内容来源网站: http://blog.sina.com.cn/s/blog_632bb1950100lwra.htmlSystem.getProperty()参数大全查资料用:java.version Java Runtime Environment versionjava.vendor Java Runtime Environment vendorjava.vendor.url Jav...原创 2011-09-29 09:33:10 · 112 阅读 · 0 评论 -
字符集和编码
很久很久以前,有一群人,他们决定用8个可以开合的晶体管来组合成不同的状态,以表示世界上的万物。他们看到8个开关状态是好的,于是他们把这称为"字节"。 再后来,他们又做了一些可以处理这些字节的机器,机器开动了,可以用字节来组合出很多状态,状态开始变来变去。他们看到这样是好的,于是它们就这机器称为"计算机"。 开始计算机只在美国用。八位的字节一共可以组合出256(2的8次方)种不同的状态。 他们把其中...原创 2011-07-07 14:48:10 · 115 阅读 · 0 评论 -
JavaEE防止中文乱码的设置
在基于J2EE的B/S应用中,中文乱码是一个永恒的主题,永远都无法回避。诚然对于一般的程序员,我们没有必要对编码进行深刻的研究。但是至少我们需要了解: ①编码基础 ②String的getBytes([encoding])方法内幕 ③String的toCharArray()方法内幕 ④输出时的编码与乱码原因 ⑤UTF-8的编码规则和GBK如何转换到UTF-8 ⑥字符在各种表现形式下的值 ⑦nati...原创 2011-07-04 17:29:27 · 191 阅读 · 0 评论 -
【Java基础专题】编码与乱码(01)---编码基础
Unicode中文“艺”字: 827A二进制的“艺”字编码:1000 0010 0111 1010UTF-8的中文编码规则: 1110xxxx 10xxxxxx 10xxxxxxUTF-8的“艺”字编码: 1110【1000】 10【0010】【01】 10【11】【1010】UTF-8的转码过程解析: 8对应的1000被填入第一字节剩余的4位。2对应的0010被填入第2字节剩余的前4位。7对应的...原创 2011-07-05 11:30:54 · 175 阅读 · 0 评论 -
【Java基础专题】编码与乱码(02)---String的getBytes([encoding])方法
package example.encoding;import java.io.UnsupportedEncodingException;/** *//** * The Class GetBytesTest. */public class GetBytesTest { /** *//** * The main method. * ...原创 2011-07-05 11:41:06 · 180 阅读 · 0 评论 -
【Java基础专题】编码与乱码(03)----String的toCharArray()方法
package example.encoding;import java.io.UnsupportedEncodingException;/** *//** * The Class GetCharTest. */public class GetCharTest { /** *//** * The main method. * ...原创 2011-07-05 11:43:30 · 466 阅读 · 0 评论 -
【Java基础专题】编码与乱码(04)---输出时的编码与乱码
package example.encoding;import java.io.BufferedWriter;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.FileWriter;import java.io.I...原创 2011-07-05 11:45:04 · 162 阅读 · 0 评论 -
【Java基础专题】编码与乱码(05)---GBK与UTF-8之间的转换
【GBK转UTF-8】 在很多论坛、网上经常有网友问“ 为什么我使用 new String(tmp.getBytes("ISO-8859-1"), "UTF-8") 或者 new String(tmp.getBytes("ISO-8859-1"), "GBK")可以得到正确的中文,但是使用 new String(tmp.getBytes("GBK"), "UTF-8") 却不能将GBK转换原创 2011-07-05 11:51:10 · 213 阅读 · 0 评论 -
【Java基础专题】编码与乱码(06)---字符的各种值转换
package example.encoding;/** *//** * The Class ChineseValidator. */public class CharacterValueConveter { /** *//** * The main method. * * @param args the arguments...原创 2011-07-05 11:53:06 · 131 阅读 · 0 评论 -
【Java基础专题】编码与乱码(07)---native2ascii命令的用法
【1】native2ascii命令的语法:native2ascii -[options] [inputfile [outputfile]]【2】native2ascii命令的功能:C:\Documents and Settings\Administrator>type E:\Temp\gbk_content.txtabc123中文C:\Documents and Set...原创 2011-07-05 11:54:46 · 141 阅读 · 0 评论 -
Volatile使用场景
Volatile的特性:可见性,但不互斥.怎么理解这句话,首先可见性的原因是以为,这个关键字可以让变量不缓存在寄存器里面,每次取值都是直接从主存里面获取,所以每次都是最新的值.但是不互斥是因为没有锁,这里有个改变值的流程(读取-修改-写入),这是一个比读更耗时的一个操作,在没有加锁的情况下别的线程读取这个值可能是任何一个时刻的值;所以根据这个特性可以推导出使用Volatile在少写多读的情况下...原创 2014-11-26 17:39:30 · 293 阅读 · 0 评论