随笔分类 - Java
摘要:一直在说Java的序列化和反序列化,只是知道如果要进行存储必须要序列化才可以,看到一篇文章说的是:Java序列化是指把Java对象转换为字节序列的过程;而Java反序列化是指把字节序列恢复为Java对象的过程。这句话说对于序列化总结的的很明白了。以下转自:http://blog.csdn.net/w...
阅读全文
摘要:一个类如果想要满足线程安全的条件:每个线程都能正常的执行原子操作,保证得到正确的结果这个类的对象可以同时被多个线程安全的访问在每个线程的原子操作都完成后,对象处于合理的状态一般情况下不可变类总是线程安全的,因为他的对象的状态始终不会改变,任何线程只能读取他的状态,而不能改变他的状态,例如String...
阅读全文
摘要:1、sleep()当一个线程调用sleep方法后,他就会放弃cpu,转到阻塞队列,sleep(long millis)方法是Thread类中的静态方法,millis参数设定线程睡眠的时间,毫秒为单位。当调用sleep方法的时候,可以让其他线程有机会执行,但是注意sleep方法不会释放对象锁,我们所说...
阅读全文
摘要:什么是异常?异常一般是指程序在编译期没有问题,但是在程序运行期出现的错误,一个程序会因为出现异常而终止运行,也就是我们常说的挂掉,在多线程下,异常只会影响所在的线程,对其他线程没有影响。Java异常的分类:Java是一种面向对象的编程语言,Java把异常也看成是一个对象。Throwable是所有异常...
阅读全文
摘要:之前一直在探讨利用new关键字创建String对象的个数,没有想过利用+连接字符串虚拟机是怎么实现的,下面利用jdk自带的反编译命令javap看一下String的执行过程例1: String s1 = "a"; String s2 = "b"; Str...
阅读全文
摘要:之前一直有个错误的观点,使用new关键字创建String对象的时候,只会在堆区创建一个对象,但是看到了这篇文章,从源码进行分析,让自己恍然大悟,使用new关键字创建String对象是会在常量池中创建一个字符串常量这个对象的(在常量池中没有这个对象的时候),当池子中已经有了这个字符串直接返回引用。作者...
阅读全文
摘要:合成模式有时也叫组合模式,对象组合成树形结构以表示“部分-整体”的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性。掌握组合模式的重点是要理解清楚 “部分/整体” 还有 ”单个对象“ 与 "组合对象" 的含义。把单个对象组织到树的结构中,以此描述整体与部分的关系。以下转自:http:/...
阅读全文
摘要:介绍:策略模式根据他的名字可以看出他是一套策略,策略模式就是这样,他管理着一套策略,在不同的情况下用不同的策略解决问题,各种策略之间相互独立,而且可以很灵活的替换。例子:我们都去购物网站购买过东西,作为网站的用户,被区分为高级会员,中级会员和初级会员,当你在买东西的时候就会发现各种会员之间的优惠是不...
阅读全文
摘要:Java是一种面向对象的编程语言,面向对象的三大特性就是继承,封装,多态。下面细细说一说多态。多态的定义:一个事物的多种形态,指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。(发送消息就是函数调用)有多态往往有动态绑定,动态绑定详见:http://bl...
阅读全文
摘要:我们说的绑定理解起来可以这么想,一个方法和那哪个类联系起来,就是我们在调用方法的时候判断调用的这个方法是属于哪个类的,在java面向对象的思想里,多态是个很重要的方面,而静态绑定与动态绑定就是多态的关键,事物的多种形态,也就是要调用哪个方法,执行什么,让一个类拥有什么特点。Java的绑定有静态绑定和...
阅读全文
摘要:提出问题:还是泛型dao中遇到的问题,以往我们要查询数据库中表中的数据的时候,需要每张表都会写一个dao操作数据库,现在的需求是只写一个dao,这是个万能的dao,适用于所有的表,进行增删改查都可用。显然我们事先不知道要查哪个表,泛型dao的基本要求就是对所有的表都适用,这就需要我们动态的获取表名,...
阅读全文
摘要:提出问题:在写一个dao的时候,我的需求是这个dao是一个万能的,目前的方法只有一个查询出实体类对应的表中所有的数据,通过传入的对象,利用反射获取实体类中的属性名,属性类型,利用字符串拼接获取相应属性对应的set方法,利用Method中的invoke方法执行set方法。由于实体类是通过表生成的,所以...
阅读全文
摘要:什么是 XML?XML 指可扩展标记语言(EXtensible Markup Language)XML 是一种标记语言,很类似 HTMLXML 的设计宗旨是传输数据,而非显示数据XML 标签没有被预定义。您需要自行定义标签。XML 被设计为具有自我描述性。XML 是 W3C 的推荐标准对于xml文件...
阅读全文
摘要:数据库连接池是什么?数据库连接池(Connection pooling)是程序启动时建立足够的数据库连接,并将这些连接组成一个连接池,由程序动态地对池中的连接进行申请,使用,释放。在对数据库进行操作之前都要先获取数据库连接,然后才能向后进行操作,增删改查,获取结果集,浪费时间的地方就是在获取数据库连...
阅读全文
摘要:之前说到了利用Java中的Properties类读取properties配置文件,连接数据库,现在说另一种方法,他们的目的和作用都是一样的,都是为了提高代码的复用性,解决了更改数据库时还要更改代码的麻烦。和之前的properties解决的问题一样这里就不说了,详见前一篇文章: Java读取prope...
阅读全文
摘要:UUID是什么?UUID 是 通用唯一识别码(Universally Unique Identifier)的缩写,是一种软件建构的标准,亦为开放软件基金会组织在分布式计算环境领域的一部分。其目的,是让分布式系统中的所有元素,都能有唯一的辨识信息,而不需要通过中央控制端来做辨识信息的指定。如此一来,每...
阅读全文
摘要:先说为什么要有这种东西,或者我们为什么要用这种方式来写,先看经常用的方法,我们经常写的package util;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;public c...
阅读全文
摘要:在学习maven的过程中接触到了jar包和war包。之前在写小项目的时候真的遇到过war包,当时为了找到jar包,把war包的后缀名改成了.rar的压缩文件,在里面提取出来jar包来用。其实jar包和war包都可以看成压缩文件,用解压软件都可以打开,jar包和war包所存在的原因是,为了项目的部署和...
阅读全文
摘要:这篇文章可以说是摘抄自周志明的《深入理解Java虚拟机》,但是加上了自己的理解,印象可以更深些。 Java虚拟机在执行Java程序的时候会把他所管理的内存划分为若干个不同的数据区域,各个区域有各自的用途,以及创建和销毁的时间。有的区域随着虚拟机进程的启动而存在,有的区域则依赖用户线程的启动...
阅读全文
摘要:介绍:对于线程一共分为五个状态:新建状态,就绪状态,阻塞状态,运行状态,死亡状态,有时候把阻塞状态又分为同步阻塞和等待阻塞。有时想让主线程启动的一个子线程结束运行,我们就需要让这个子线程中断,不再继续执行。线程是有中断机制的,我们可以对每个线程进行中断标记,注意只是标记,中断与否还是虚拟机自己的事情...
阅读全文

浙公网安备 33010602011771号