
java学习笔记
文章平均质量分 59
寂寞的泡面
我只是一个快乐的程序员。
展开
-
细谈ArrayList,LinkedList,Vestor异同
ArrayList,LinkedList,Vestor这三个类都实现了java.util.List接口,但它们有各自不同的特性,主要如下:一、同步性ArrayList,LinkedList是不同步的,而Vestor是的。所以如果要求线程安全的话,可以使用ArrayList或LinkedList,可以节省为同步而耗费开销。但在多线程的情况下,有时候就不得不使用Vector了。当然,也可以通过一些办法包装ArrayList,LinkedList,使他们也达到同步,但效率可能会有所降低。二、数据增长从内部实现机制原创 2010-09-16 11:51:00 · 750 阅读 · 0 评论 -
java中的共享锁与排它锁
<br />什么是共享锁?什么是排他锁?<br /><br />共享锁:如果事务T对数据A加上共享锁后,则其他事务只能对A再加共享锁,不能加排他锁。获准共享锁的事务只能读数据,不能修改数据。<br />排他锁:如果事务T对数据A加上排他锁后,则其他事务不能再对A加任任何类型的封锁。获准排他锁的事务既能读数据,又能修改数据。<br />简要说明为什么会发生死锁?解决死锁的主要方法是什么?<br />若干事务相互等待释放封锁,就陷入无限期等待状态,系统就进入死锁<br />解决死锁的方法应从预防和解除的两个方面原创 2010-09-16 12:53:00 · 6920 阅读 · 0 评论 -
java实例化对象的过程
<br /><br /> 学习JAVA这门面向对象的语言,实质就是不断地创建类,并把类实例化为对象并调用方法。对于初学JAVA的人总搞清楚对象是如何实例化的,假如类之间存在继承关系,那就更糊涂了。下面我们通过两个例题来说明对象的实例化过程。<br /><br /><br /><br /><br /> <br /> 编译并运行该程序会有以下输出 Static Block Employee Company:china soft Non-Static Block Employee phon原创 2010-09-16 12:58:00 · 22340 阅读 · 5 评论 -
DOM与SAX的比较和选择
<br />DOM与SAX的比较和选择:<br />当解析一个XML时我们有很多选择方案,如SAX、DOM、JDOM、JAXP、数据绑定等等,必须根据实际情况来选择一个或几个。在此仅谈论SAX和DOM,其他的以后再说。 没有绝对的哪个好那个坏,只能说在某种情况下哪个更适合一些。 <br /> <br />1. SAX提供的模型不允许对XML文件随机存取 <br />如:当前解析到第3个Element,此时程序无法得到第5个Element的信息,因为还没有解析到第5个Element;同样也无法得到第1个Ele原创 2010-09-16 13:00:00 · 989 阅读 · 0 评论 -
mvc设计模式
<br /><br />MVC基本工作原理:<br /> MVC架构是"Model-View-Controller"的缩写,中文翻译为"模型-视图-控制器"。MVC应用程序总是由这三个部分组成。Event(事件)导致Controller改变Model或View,或者同时改变两者。只要Controller改变了Models的数据或者属性,所有依赖的View都会自动更新。类似的,只要Controller改变了View,View会从潜在的Model中获取数据来刷新自己。<br /><br /><br />M原创 2010-09-16 13:03:00 · 957 阅读 · 0 评论 -
三层架构设计模式
<br /><br /> <br /> 三层架构(3-tier application) 通常意义上的三层架构就是将整个业务应用划分为:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。区分层次的目的即为了“高内聚,低耦合”的思想。<br /><br />概念简介<br />1、表现层(UI):通俗讲就是展现给用户的界面,即用户在使用一个系统的时候他的所见所得。 2、业务逻辑层(BLL):针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理。 3、数据原创 2010-09-16 13:05:00 · 15383 阅读 · 2 评论 -
java多线程设计模式详解
<br />Java多线程设计模式<br /><br /><br />线程的创建和启动<br />Java语言已经内置了多线程支持,所有实现Runnable接口的类都可被启动一个新线程,新线程会执行该实例的run()方法,当run()方法执行完毕后,线程就结束了。一旦一个线程执行完毕,这个实例就不能再重新启动,只能重新生成一个新实例,再启动一个新线程。<br />Thread类是实现了Runnable接口的一个实例,它代表一个线程的实例,并且,启动线程的唯一方法就是通过Thread类的start()实例方法原创 2010-09-16 13:09:00 · 4182 阅读 · 0 评论 -
细谈java中的String类型
<br />一 Java内存分配形式 <br /><br />Java把内存划分成两种:一种是栈内存,一种是堆内存。 <br /><br /> 栈与堆都是Java用来在Ram中存放数据的地方。与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆。 Java的堆是一个运行时数据区,类的(对象从中分配空间。这些对象通过new、newarray、anewarray和multianewarray等指令建立,它们不需要程序代码来显式的释放。堆是由垃圾回收来负责的,堆的优势是可以动态地分配内存大小原创 2010-09-25 19:49:00 · 777 阅读 · 0 评论 -
java中byte数组与int类型之间的相互转换(两种方式)
java中byte数组与int类型的转换,在网络编程中这个算法是最基本的算法,我们都知道,在socket传输中,发送、者接收的数据都是 byte数组,但是int类型是4个byte组成的,如何把一个整形int转换成byte数组,同时如何把一个长度为4的byte数组转换为int类型。下面有两种方式。第一种方法:public static byte[] int2byte(int res) {byte[] targets = new byte[4];targets[0] = (byte) (res &原创 2010-09-24 11:15:00 · 6631 阅读 · 1 评论 -
synchronized效率分析
<br /> Java语言规范内置了对多线程的支持。对于Java程序来说,每一个对象实例都有一把“锁”,一旦某个线程获得了该锁,别的线程如果希望获得该锁,只能等待这个线程释放锁之后。获得锁的方法只有一个,就是synchronized关键字。例如: <br /> <br />public class SharedResource { <br /> private int count = 0; <br /> public int getCount() { return count; } <原创 2010-09-16 12:52:00 · 4793 阅读 · 0 评论 -
String与StringBuffer和StringBuilder的比较
<br />一、String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象, 而如果是使用 StringBuffer 类则结果就不一样了,每次结果都会对 StringBuffer 对象本身进行操作,而不是生成新的对象,再改变对象引用。所以一般情况下我们推荐使用StringBuffer ,特别是字符串对象经常改变的情况下。<br /> 而在某些特别情况下, String 对象的字符串拼接其实是被 JVM 解释成了 StringBuffer 对象的拼接,原创 2010-09-16 12:50:00 · 750 阅读 · 0 评论 -
java类加载机制简要分析
<br /><br /> <br />系统默认的类加载器运行流程:<br /> 首先,系统初始化一个系统默认的类加载器 (以上三者之一,通常是AppClassLoader)实例,然后调用该实例的ClassLoader.loadClass(String name)方法加载<br />采用委托机制,自上而下的搜索class文件,直到找到相应的类。类加载器本身也是类(除了BootStrap,他不是java类,在虚拟机启动时由系统创建的,他是用C++写的二进制代码)。当java虚拟机要加载一个类时,首先用当前原创 2010-09-16 12:00:00 · 593 阅读 · 0 评论 -
java两种核心机制之一--java虚拟机机制
<br />java两种核心机制:<br /> 1.java虚拟机(java virtual machine)<br /> 2.垃圾回收机制(garbage collection)<br /> <br />程序执行过程:源程序(.java文件)-->java编译器-->字节码(.class文件)-->类装载器-->字节码校验器-->解释器-->操作系统平台<br /><br /> java虚拟机机制:<br /> *java虚拟机可以理解成一个以字节码为原创 2010-09-16 12:04:00 · 895 阅读 · 0 评论 -
java两种核心机制之一--java垃圾回收机制
一、谁在做Garbage Collection? 一种流行的说法:在C++里,是系统在做垃圾回收;而在Java里,是Java自身在做。在C++里,释放内存是手动处理的,要用delete运算符来释放分配的内存。这是流行的说法。确切地说,是应用认为不需要某实体时,就需用 delete告诉系统,可以回收这块空间了。这个要求,对编码者来说,是件很麻烦、很难做到的事。随便上哪个BBS,在C/C++版块里总是有一大堆关于 内存泄漏的话题。 Java采用一种不同的,很方便的方法:Garbage Coll原创 2010-09-16 12:07:00 · 1957 阅读 · 1 评论 -
java中的两个jre区别
<br /> 对于java初学者来说,往往不懂区分jdk和jre的区别,实际上这两个东西差别很大的,有必要了解一下: <br /> 简单的说JDK是面向开发人员使用的SDK,它提供了Java的开发环境和运行环境。SDK是Software Development Kit 一般指软件开发包,可以包括函数库、编译程序等。 JDK就是Java Development Kit JRE是Java Runtime Enviroment是指Java的运行环境,是面向Java程序的使用者,而不是开发者原创 2010-09-16 12:10:00 · 7584 阅读 · 0 评论 -
java动态代理机制
<br />在目前的Java开发包中包含了对动态代理的支持,但是其实现只支持对接口的的实现。其实现主要通过是java.lang.reflect.Proxy类和java.lang.reflect.InvocationHandler接口。 Proxy类主要用来获取动态代理对象,InvocationHandler接口用来约束调用者实现,如下,HelloWorld接口定义的业务方法,HelloWorldImpl是HelloWorld接口的实现,HelloWorldHandler是 InvocationHandler原创 2010-09-16 12:12:00 · 634 阅读 · 0 评论 -
java--equals与hashcode
<br /> equals与hashcode的区别<br /> <br /> hashcode这个方法是用来鉴定2个对象是否相等的。那你会说,不是还有equals这个方法吗?不错,这2个方法都是用来判断2个对象是否相等的。但是他们是有区别的。一般来讲,equals这个方法是给用户调用的,如果你想判断2个对象是否相等,你可以重写equals方法,然后在代码中调用,就可以判断他们是否相等了。简单来讲,equals方法主要是用来判断从表面上看或者从内容上看,2个对象是不是相等。举个例子,有个学原创 2010-09-16 12:15:00 · 908 阅读 · 0 评论 -
java单例模式分析
<br />单例模式单例模式是一种常见的设计模式,单例模式分三种:懒汉式单例、饿汉式单例、登记式单例三种。<br /><br />单例模式有一下特点:<br />1、单例类只能有一个实例。<br />2、单例类必须自己自己创建自己的唯一实例。<br />3、单例类必须给所有其他对象提供这一实例。<br /> <br />一、懒汉式单例在类被加载的时候,唯一实例已经被创建。这个设计模式在Java中容易实现,在别的语言中难以实现。<br />单例模式-懒汉式单例<br />public class LazySi原创 2010-09-16 12:16:00 · 540 阅读 · 0 评论 -
jdbc介绍
定义: JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC为工具/数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯 Java API 编写数据库应用程序,同时,JDBC也是个商标名。 有了JDBC,向各种关系数据发送SQL语句就是一件很容易的事。换言之,有了JDBC API,就不必原创 2010-09-16 12:17:00 · 2160 阅读 · 0 评论 -
细谈HashMap
在许多大型的项目中,Hashmap是一种非常常用的、应用广泛的数据类型。这主要是因为散列集合优秀的效率。网上关于hashmap的文章很多,我在网上参考了一些资料,总结了一些hashmap的知识点与大家分享。1、hashmap的数据结构 要知道hashmap是什么,首先要搞清楚它的数据结构,在java编程语言中,最基本的结构就是两种,一个是数组,另外一个是模拟指针(引用),所有的数据结构都可以用这两个基本结构来构造的,hashmap也不例外。Hashmap实际上是一个数组和链表的结合体(在数据结构中,一般称之原创 2010-10-15 09:19:00 · 1133 阅读 · 0 评论