Java Tips
文章平均质量分 78
daniel112
1
展开
-
浅谈Java中final,finalized,finally
final:final可以让你控制你的成员、方法或者是一个类是否可被覆写或继承等功能,这些特点使final在Java中拥有了一个不可或缺的地位,也是学习Java时必须要知道和掌握的关键字之一。final成员当你在类中定义变量时,在其前面加上final关键字,那便是说,这个变量一旦被初始化便不可改变,这里不可改变的意思对基本类型来说是其值不可变,而对于对象变量来说其引用不可再变。其初始化可以在两个地转载 2006-10-11 13:24:00 · 982 阅读 · 0 评论 -
并发数据结构:谈谈volatile变量
在CLR 2.0 Memory Model中,我们知道现代CPU架构从CPU到Memory Controller每一级都有速度,容量不同的高速缓存。之所以这样设计,主要是因为性能。为了进一步提升性能,当线程读取内存中所期望的元素值时,CPU并不是只读取我们所期望的元素值,它实际上会同时读取该值周围的若干字节,并将其放入高速缓存中。这是因为应用程序通常读取的字节在内存中彼此相邻。当应用程序又读取该值转载 2009-07-06 11:00:00 · 670 阅读 · 0 评论 -
Java的volatile变量
Java 语言中 volatile 变量可以被看作是一种 “程度较轻 synchronized”;与 synchronized 块相比,volatile 变量所需编码较少,并且运行时开销也较少,但是它所能实现功能也仅是 synchronized 一部分。 锁提供了两种主要特性:互斥(mutual exclusion) 和可见性(visibility)。互斥即一次只允许一个线程持转载 2009-07-06 13:50:00 · 762 阅读 · 0 评论 -
Comparable与Comparator的区别
Comparable & Comparator 都是用来实现集合中元素的比较、排序的,只是 Comparable 是在集合内部定义的方法实现的排序,Comparator 是在集合外部实现的排序,所以,如想实现排序,就需要在集合外定义 Comparator 接口的方法或在集合内实现 Comparable 接口的方法。Comparator位于包java.util下,而Comparable位于包转载 2009-07-01 16:24:00 · 958 阅读 · 3 评论 -
JVM class加载机制的总结
一 Java2类装载机制的缺省实现我们知道在Java中实例化一个对象以前,需要将对象的类文件加载到虚拟机并完成连接和类型初始化等操作(事实上很多情况下,不实例化对象也会进行类加载,例如:调用静态方法、引用静态变量等)。类装载器的任务就是找到并且装载类。如何找到所需要的类?其实有很多种可能:通过CLASSPATH到文件系统中找、从Jar或者Zip文件中找,还可能从网络下载(如:applet),甚转载 2009-07-01 14:42:00 · 1368 阅读 · 0 评论 -
Be Careful With Transient Data
A transient variable is a variable that may not be serialized. The transient variable is not persist when an object is stored 终于明白了。 当串行化某个对象时,如果该对象的某个变量是transient,那么这个变量不会被串行化进去。也就是说,假设某个类的成员变转载 2009-06-24 10:48:00 · 517 阅读 · 0 评论 -
Java序列化基本知识
一、什么是序列化?“对象序列化”(Object Serialization)是 Java1.1就开始有的特性。 简单地说,就是可以将一个对象(标志对象的类型)及其状态转换为字节码,保存起来(可以保存在数据库,内存,文件等),然后可以在适当的时候再将其状态恢复(也就是反序列化)。serialization 不但可以在本机做,而且可以经由网络操作。它自动屏蔽了操作系统的差异,字节顺序等。比如,在原创 2009-08-06 10:40:00 · 1232 阅读 · 0 评论 -
驯服Java线程
线程和进程(Threads and Processes) 第一个关键的系统级概念,究竟什么是线程或者说究竟什么是进程?她们其实就是操作系统内部的一种数据结构。 进程数据结构掌握着所有与内存相关的东西:全局地址空间、文件句柄等等诸如此类的东西。当一个进程放弃执行(准确的说是放弃占有CPU),而被操作系统交换到硬盘上,使别的进程有机会运行的时候,在那个进程里的所有数据也将被写到硬盘上,甚至包括整个系统转载 2009-04-16 15:10:00 · 944 阅读 · 0 评论 -
对java中一些关键的,容易迷惑的知识点的归纳总结
一. Switch 1.其能接受的数据类型有四个,char , byte, short, int 2.Default 可放在switch中的任何一个地方,但只有给定的条件匹配不到时,才会执行 3.Case,default语句如果执行完要跳出,必须用break, 没的话会向下继续执行(如果碰到case语句则直接进入执行) 实例1: 1.int i=1, j转载 2009-04-13 16:51:00 · 972 阅读 · 0 评论 -
Post和Get的
1.Post传输数据时,不需要在URL中显示出来,而Get方法要在URL中显示。 2.Post传输的数据量大,可以达到2M,而Get方法由于受到URL长度的限制,只能传递大约1024字节. 3.Post顾名思义,就是为了将数据传送到服务器段,Get就是为了从服务器段取得数据.而Get之所以也能传送数据,只是用来设计告诉服务器,你到底需要什么样的数据.Post的信息作为http请求的内容,而Get是转载 2008-06-04 13:54:00 · 540 阅读 · 0 评论 -
回调函数
所谓回调,就是客户程序C调用服务程序S中的某个函数A,然后S又在某个时候反过来调用C中的某个函数B,对于C来说,这个B便叫做回调函数。例如Win32下的窗口过程函数就是一个典型的回调函数。 一般说来,C不会自己调用B,C提供B的目的就是让S来调用它,而且是C不得不提供。由于S并不知道C提供的B叫甚名谁,所以S会约定B的接口规范(函数原型),然后由C提前通过S的一个函数R告诉S自己将要使用转载 2008-06-02 15:29:00 · 524 阅读 · 0 评论 -
Java正则表达式详解
如果你曾经用过Perl或任何其他内建正则表达式支持的语言,你一定知道用正则表达式处理文本和匹配模式是多么简单。如果你不熟悉这个术语,那么“正则表达式”(Regular Expression)就是一个字符构成的串,它定义了一个用来搜索匹配字符串的模式。转载 2008-04-25 16:47:00 · 523 阅读 · 0 评论 -
Cron Expression
Cron-Expresstion in Linux cron来自希腊语的chronos(时间)一词。在linux中,通过运行crontab -e就可以设置在特定的时刻自动运行你指定的程序。每个用户的自动运行程序,都放在/var/spool/cron/目录下,以自己用户名命名的文件中。在这些文件中,每一行都设置一个自动指行的命令,以及其运行的时间。每一行都由7个字段构成,相邻的字段以空格相间转载 2008-03-24 10:03:00 · 2143 阅读 · 0 评论 -
深入的理解嵌套类和内部类
Java 内置了多线程, 想象一下: 我现在在一个方法里面定义了一个 内部类 它需要用到这个方法的局部变量,但是这个内部类是在另一个线程中启动调用的,那个线程和这个方法调用的线程不是同一个调用堆栈,当那个线程调用了这个内部类的方法,这个时候定义这个内部类的方法的那个局部变量的值是不是变得不可预测了? 这两个线程是独立执行的,为了消除这个很容易出现的错误,Ja转载 2008-03-11 10:57:00 · 588 阅读 · 0 评论 -
java面试笔试题大汇总
JAVA相关基础知识1、面向对象的特征有哪些方面 1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。2.继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过转载 2007-10-16 14:49:00 · 791 阅读 · 0 评论 -
Java的final变量需要注意地方
对与java中的final变量,java编译器是进行了优化的。每个使用了final类型变量的地方都不会通过连接而进行访问。比如说Test类中使用了Data类中一个final的int数字fNumber=77,这时候,java编译器会将77这个常数编译到Test类的指令码或者常量池中。这样,每次Test类用到fNumber的时候,不会通过引用连接到Data类中进行读取,而是直接使用自己保存在类文件中的转载 2006-10-11 15:24:00 · 978 阅读 · 0 评论 -
解析Java类和对象的初始化过程
类的初始化和对象初始化是 JVM 管理的类型生命周期中非常重要的两个环节,Google 了一遍网络,有关类装载机制的文章倒是不少,然而类初始化和对象初始化的文章并不多,特别是从字节码和 JVM 层次来分析的文章更是鲜有所见。 本文主要对类和对象初始化全过程进行分析,通过一个实际问题引入,将源代码转换成 JVM 字节码后,对 JVM 执行过程的关键点进行全面解析,并在文中穿插入了相关 JVM转载 2006-10-11 16:20:00 · 822 阅读 · 0 评论 -
JDBC连接数据库集锦
连接各种数据库 下面罗列了各种数据库使用JDBC连接的方式,可以作为一个手册使用。 1、Oracle8/8i/9i数据库(thin模式) Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); String url="jdbc:oracle:thin:@localhost:1521:orcl"; //orcl为数据库的SI转载 2009-07-10 13:49:00 · 1750 阅读 · 1 评论