J2SE
bj09
你的微笑
展开
-
static 块,static 方法详解
一般情况下,如果有些代码必须在项目启动的时候就执行的时候,需要使用静态代码块,这种代码是主动执行的;需要在项目启动的时候就初始化,在不创建对象的情况下,其他程序来调用的时候,需要使用静态方法,这种代码是被动执行的. 静态方法在类加载的时候 就已经加载 可以用类名直接调用 比如main方法就必须是静态的 这是程序入口 两者的区别就是:静态代码块是自动执行的; 静态方法是被调用的时候才执行的. 静态方法 (1)在Java里,可以定义一个不需要创建对象的方法,这种方法就是静态方法。要实现这样的原创 2011-05-09 16:51:00 · 739 阅读 · 0 评论 -
java 内部类讲解
h2 { margin-top: 0.18in; margin-bottom: 0.18in; line-height: 173%; }h2.western { font-family: "Cambria",serif; font-size: 16pt; }h2.cjk { font-family: "DejaVu Sans"; font-size: 16pt; }h2.ctl { font-size: 16pt; }p { margin-bottom: 0.08in; }h3转载 2011-05-09 14:10:00 · 794 阅读 · 0 评论 -
table
两个表,采用递归关系,T1 存储所有家庭成员信息,T2存储成员关系,使用向上追溯的原则(这个原则是重点)T1:id int 自增name varcharsex 生日瘁日备注生平T2id int 自增T1_id T1 里面的ID父ID T1 里面的对应的父亲的ID母ID T1 里面的对应的母亲的ID夫ID T1 里面的对应的夫的ID转载 2012-05-08 23:47:27 · 650 阅读 · 0 评论 -
描绘线程安全性
定义线程安全性明确定义线程安全性出人意料地困难,大多数定义看上去完全是自我循环。快速搜索一下 Google,可以找到以下关于线程安全代码的典型的、但是没有多大帮助的定义(或者可以说是描述):...可以从多个编程线程中调用,无需线程之间不必要的交互。...可以同时被多个线程调用,不需要调用一方有任何操作。有这样的定义,就不奇怪我们对于线程安全性会感到如此迷惑。这些定义比说“一个类在可以被多个线程安全调用时就是线程安全的”好不了多少,当然,它的意义就是如此,但是它不能帮助我们区分一个线程安全的类与一个线程不安全转载 2011-05-16 15:46:00 · 814 阅读 · 0 评论 -
rgb
RGB就是三原色( Red 红, Green 绿, Blue 蓝),所有的颜色都是这三种颜色以不同的强度组成的.对于16 进制编码的颜色,我们可以这样理解,rrggbb六个字符:前两个表示红色,中间的两个表示绿色,后两个表示蓝色;那么,红色(red)ff0000,同样绿色(green)00ff00,蓝色0000ff;其它的颜色就是这几个字符(0-9,a-f)的组合.如果以10进制的表示方法,红色就是255 0 0,绿色是0 255 0,蓝色是0 0 255.而白色就是ffffff(也就是25原创 2011-04-11 15:58:00 · 840 阅读 · 0 评论 -
static关键字
在类中,用static 声明的成员变量为静态变量。它为该类的共用变量,在第一次使用时被初始化,对于该类的所有对象来说,static 成员变量只有一份。静态成员变量存放在内存的 data seg区域。同样字符串常量也分配在data Seg 中。 用static 声明的方法为静态方法原创 2011-07-19 22:54:26 · 608 阅读 · 0 评论 -
Java中WeakReference、WeakHashMap、SoftReference、ReferenceQueue的作用和使用场景
详见以下测试代码及其注释:package test;import static junit.framework.Assert.assertFalse;import static junit.framework.Assert.assertNotNull;import static junit.framework.Assert.assertNull;import static jun转载 2015-01-08 17:17:36 · 2149 阅读 · 0 评论 -
泛型二
Java语言中的泛型则不一样,它只在程序源码中存在,在编译后的字节码文件中,就已经被替换为原来的原始类型(Raw Type,也称为裸类型)了,并且在相应的地方插入了强制转型代码,因此对于运行期的Java语言来说,ArrayList与ArrayList就是同一个类。所以说泛型技术实际上是Java语言的一颗语法糖,Java语言中的泛型实现方法称为类型擦除,基于这种方法实现的泛型被称为伪泛型。(转载 2014-12-10 16:44:44 · 575 阅读 · 0 评论 -
java 同步 异步 (2)-- synchronized锁住的是代码还是对象
在Java中,synchronized关键字是用来控制线程同步的,就是在多线程的环境下,控制synchronized代码段不被多个线程同时执行。synchronized既可以加在一段代码上,也可以加在方法上。关键是,不要认为给方法或者代码段加上synchronized就万事大吉,看下面一段代码:class Sync { public synchronized void test转载 2015-01-22 16:47:58 · 4234 阅读 · 0 评论 -
UTF-8 GBK UTF8 GB2312 之间的区别和关系
UTF-8:Unicode TransformationFormat-8bit,允许含BOM,但通常不含BOM。是用以解决国际上字符的一种多字节编码,它对英文使用8位(即一个字节),中文使用24为(三个字节)来编码。UTF-8包含全世界所有国家需要用到的字符,是国际编码,通用性强。UTF-8编码的文字可以在各国支持UTF8字符集的浏览器上显示。如,如果是UTF8编码,则在外国人的英文IE上也能显示中文,他们无需下载IE的中文语言支持包。 <br /><br />GBK是国家标准GB231转载 2011-04-27 16:35:00 · 862 阅读 · 0 评论 -
泛型一
泛型(Generic)—泛形的作用JDK5以前,对象保存到集合中就会失去其特性,取出时通常要程序员手工进行类型的强制转换,这样不可避免就会引发程序的一些安全性问题。例如:ArrayList list = new ArrayList();list.add("abc");Integer num = (Integer) list.get(0); //运行时会出错,但编码时发转载 2014-12-10 14:24:08 · 575 阅读 · 0 评论 -
comparator接口与Comparable接口的区别
1. Comparator 和 Comparable 相同的地方他们都是java的一个接口, 并且是用来对自定义的class比较大小的,什么是自定义class: 如 public class Person{ String name; int age }.当我们有这么一个personList,里面包含了person1, person2, persion3.....,转载 2015-04-02 10:21:16 · 559 阅读 · 0 评论 -
hashCode与equals的区别与联系
一、equals方法的作用 1、默认情况(没有覆盖equals方法)下equals方法都是调用Object类的equals方法,而Object的equals方法主要用于判断对象的内存地址引用是不是同一个地址(是不是同一个对象)。2 、要是类中覆盖了equals方法,那么就要根据具体的代码来确定equals方法的作用了,覆盖后一般都是通过对象的内容是否相等来判断对象是否相等。转载 2015-05-08 10:22:15 · 521 阅读 · 0 评论 -
java 虚拟机 内存分配
JAVA的JVM的内存可分为3个区:堆(heap)、栈(stack)和方法区(method)堆区:1.存储的全部是对象,每个对象都包含一个与之对应的class的信息。(class的目的是得到操作指令)2.jvm只有一个堆区(heap)被所有线程共享,堆中不存放基本类型和对象引用,只存放对象本身.3.一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。转载 2017-07-21 14:22:43 · 264 阅读 · 0 评论 -
SimpleDateFormat用法介绍
public class SimpleDateFormat extends DateFormatSimpleDateFormat 是一个以特别敏感的方式格式化和分析数据的具体类。 它允许格式化 (date -> text)、语法分析 (text -> date)和标准化。 SimpleDateFormat 允许以为日期-时间格式化选择任何用户指定的方式启动。 但是,希望用 DateFormat 中的 getTimeInstance、 getDateInstance 或 getDateTi原创 2011-03-03 10:51:00 · 1327 阅读 · 0 评论 -
break return continue
<br />使用break 退出循环 可以使用break 语句直接强行退出循环,忽略循环体中任何其他语句和循环条件测试。在循环中遇到break语句时,循环被终止,程序控制在循环后面语句重新开始。例如 如果for 循环被设计为从 0执行到99,然后输出0到99这些数字,但是当i等于10时,break语句终止程序。所以程序只会输出0到10。在一系列嵌套循环中使用break 语句时,它将仅仅终止最里面循环。<br /> 而continue则停止执行当前的反复,然后退回循环起始和,开始新的反复原创 2011-05-13 16:17:00 · 534 阅读 · 0 评论 -
泛型三
一、Java泛型的实现方法:类型擦除前面已经说了,Java的泛型是伪泛型。为什么说Java的泛型是伪泛型呢?因为,在编译期间,所有的泛型信息都会被擦除掉。正确理解泛型概念的首要前提是理解类型擦出(type erasure)。Java中的泛型基本上都是在编译器这个层次来实现的。在生成的Java字节码中是不包含泛型中的类型信息的。使用泛型的时候加上的类型参数,会在编译器在编译的时候去掉转载 2014-12-11 12:51:07 · 787 阅读 · 0 评论 -
java socket (1)
<br />总结java socket编程<br />一,网络编程中两个主要的问题<br />一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效的进行数据传输。<br />在TCP/IP协议中IP层主要负责网络主机的定位,数据传输的路由,由IP地址可以唯一地确定Internet上的一台主机。<br />而TCP层则提供面向应用的可靠(tcp)的或非可靠(UDP)的数据传输机制,这是网络编程的主要对象,一般不需要关心IP层是如何处理数据的。<br />目前较为流行的原创 2011-05-13 11:14:00 · 608 阅读 · 0 评论 -
java socket (2)
p { margin-bottom: 0.08in; }7.2 面向套接字编程 我们已经通过了解Socket的接口,知其所以然,下面我们就将通过具体的案例,来熟悉Socket的具体工作方式7.2.1使用套接字实现基于TCP协议的服务器和客户机程序 依据TCP协议,在C/S架构的通讯过程中,客户端和服务器的Socket动作如下:客户端:1.用服务器的IP地址和端口号实例化Socket对象。2.调用connect方法,连接到服务原创 2011-05-13 11:15:00 · 659 阅读 · 0 评论 -
序列化
<br />一.<br />1.什么是对象序列化?<br />对象序列化是将一个对象转换为字节流,保存起来,并在日后还原这个对象.<br />2.什么是持续性?<br />将一个对象转换为字节流,保存到用久存储设备上,这就叫做持续性.<br />二.<br />1.对象用Serializable接口Externalizable实现对象序列化.<br />2.当一个对象被序列化的时候,只能保存非静态成员变量,不能保存任何的成员方法及静态成员变量.<br />3.如果对象中某个成员变量是一个对象的话,那么那个成转载 2011-05-18 10:23:00 · 558 阅读 · 0 评论 -
super关键字
一 super关键字我们已经知道,如果子类中定义的成员变量和父类中的成员变量同名时,则父类中的成员变量不能被继承,此时称子类的成员变量隐藏了父类的成员变量。当子类中定义了一个方法,并且这个方法的名字,返回类型,用参数个数和类型和父类的某个方法完全相同时,父类的这个方法将被隐藏,既不能被子类继承下来。如果我们在子类中想使用被子类隐藏的父类的成员变量或方法就可以使用关键字super。转载 2011-06-13 11:19:00 · 1135 阅读 · 0 评论 -
详解java中的抽象类和接口的区别
<br /><br /><br /> 在Java语言中, abstract class 和interface 是支持抽象类定义的两种机制。正是由于这两种机制的存在,才赋予了Java强大的 面向对象能力。abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在进 行抽象类定义时对于abstract class和interface的选择显得比较随意。其实,两者之间还是有很大的区别的,对于它们的选择甚至反映出对 于转载 2011-05-05 13:55:00 · 435 阅读 · 0 评论 -
Java接口学习笔记
p { margin-bottom: 0.08in; }java语言不支持一个类有多个直接的父类(多继承),但可以实现(implements)多个接口,间接的实现了多继承一、Java接口基础知识1,Java语言不支持一个类有多个直接的父类(多继承),但可以实现(implement原创 2011-07-21 13:56:32 · 1002 阅读 · 0 评论 -
java 构造方法
p { margin-bottom: 0.08in; }类的继承机制使得子类可以使用父类的功能(即代码),并且子类也具有父类的类型。下面介绍类在继承关系上的初始化的顺序问题。示例1:class SuperClass { SuperClass() { System.out.prin原创 2011-07-21 12:59:53 · 754 阅读 · 0 评论 -
继承及内存分析
继承就是指子类可以拥有父类所有的变量和方法。简单的内存分析: class Person { private String name; private int age; public void setName(String name) { this.na原创 2011-07-19 23:32:14 · 774 阅读 · 0 评论 -
this 关键字
&& 在类的方法的定义中使用的this关键字代表使用该方法的对象的引用。 && 当必须指出当前使用方法的对象是谁的时候要使用this。 && 有时候使用this可以处理方法中成员变量和参数重名的情况 && this 可以看做是一个变量,它原创 2011-07-19 21:31:28 · 524 阅读 · 0 评论 -
super 关键字 及内存分析
class FatherClass { public int value; public void f(){ value = 100; System.out.println ("FatherClass.value="+valu原创 2011-07-20 00:04:00 · 758 阅读 · 0 评论 -
java 同步 异步 (1)
我们查看JDK API的时候,总会发现一些类说明写着,线程安全或者线程不安全,比如说StringBuilder中,有这么一句,“将StringBuilder 的实例用于多个线程是不安全的。如果需要这样的同步,则建议使用StringBuffer。 ”,那么下面手动创建一个线程不安全的类,然后在多线程中使用这个类,看看有什么效果。 Count.java:转载 2014-09-10 15:09:32 · 706 阅读 · 0 评论 -
匿名内部类
匿名内部类为没有名字的内部类匿名内部类一般只能使用一次,通常用来简化原创 2014-11-20 11:57:33 · 642 阅读 · 0 评论 -
输入输出流
<br /> <br />Java的输入输出功能必须借助于输入输出类库Java.io包来实现,这个包中的类大部分是用来完成流式输入输出的流类。<br />在java中,把能够读取一个字节序列的对象称为一个输入流,把能够写一个字节的对象称为一个输出流。分别由<br />InputStream和OutputStream表示。<br /> <br />处理Unicode码的字符流,由抽象类Reader(输入)和Writer(输出)派生。<br /> <br />流是指在计算机的输入与输出之间的数据的序列,而Jav原创 2011-05-12 17:23:00 · 870 阅读 · 0 评论 -
深入理解阻塞队列(一)——基本结构
BlockingQueue是一个继承自Queue的接口,在Queue的队列基础上增加了阻塞操作。简单来说,就是在在BlockingQueue为空时从队头取数据将会被阻塞,因为此时还没有数据可取,一旦队列中有数据了,取数据的线程就会释放得到了数据;如果BlockingQueue有容量限制且满了,那么插入数据的线程将会阻塞,知道队列中有空闲位置可以插入数据了,才会释放。经过上面一段描述,可以发现这不就转载 2017-07-27 17:36:47 · 481 阅读 · 0 评论