随笔分类 -  Java

摘要:1、transient关键字只能修饰变量,而不能修饰方法和类。注意,本地变量是不能被transient关键字修饰的。2、被transient关键字修饰的变量不再能被序列化,一个静态变量不管是否被transient修饰,均不能被序列化。3、一旦变量被transient修饰,变量将不再是对象持久化的一部分,该变量内容在序列化后无法获得访问。也可以认为在将持久化的对象反序列化后,被transient修饰的变量将按照普通类成员变量一样被初始化。如下面的例子package com.kkoolerter;import java.io.File;import java.io.FileInputStream; 阅读全文
posted @ 2013-05-05 13:25 残剑_ 阅读(37129) 评论(0) 推荐(3) 编辑
摘要:如果面试官问Integer与int的区别:估计大多数人只会说道两点,Ingeter是int的包装类,int的初值为0,Ingeter的初值为null。但是如果面试官再问一下Integer i = 1;int ii = 1; i==ii为true还是为false?估计就有一部分人答不出来了,如果再问一下其他的,估计更多的人会头脑一片混乱。所以我对它们进行了总结,希望对大家有帮助。 首先看代码: 1 package com.test; 2 /** 3 * 4 * @author 刘玲 5 * 6 */ 7 public class TestInteger { 8 9 /*... 阅读全文
posted @ 2013-05-05 11:13 残剑_ 阅读(156117) 评论(16) 推荐(40) 编辑
摘要:刚刚看到了一关于多线程的面试题目,就试着写了一下。 题目: 模拟妈妈做饭,做饭时发现没有盐了,让儿子去买盐。只有盐买回来之后,妈妈才能继续做饭的过程。 问题分析:既然是面向对象编程,拿到问题是首先就要分析涉及到哪些对象。显然,该问题涉及的对象有:妈妈、儿子和盐。其中妈妈和儿子都是线程类,共享资源就是盐,所以盐Salt类的方法都要设置为同步方法。具体代码如下: 1 package com.sync; 2 /** 3 * 题目: 模拟妈妈做饭,做饭时发现没有盐了,让儿子去买盐 4 * 只有盐买回来之后,妈妈才能继续做饭的过程。 5 * @author Administra... 阅读全文
posted @ 2013-04-20 22:16 残剑_ 阅读(1443) 评论(2) 推荐(1) 编辑
摘要:昨天重新学习了java多线程的使用,多线程的难点就在线程之间的协调。在《操作系统》一课中,我们学习了进程,其实多线程和多进程一样,都会涉及到多个进程或者线程对某一资源共享访问的问题,当多个线程都需要修改这个资源的时候就会出现线程安全问题。 比如说在银行开个账户会有一个存折和一张卡,如果某一天同一时间丈夫拿着存折去柜台取钱,而妻子拿着银行卡去ATM取钱。当丈夫查询余额里面有3000元,正准备取2000元,这时候妻子也到ATM里面查询也有3000,也取2000元。其实银行不可能让我们这么做,如果这样的话那我们天天取钱去了,还搞什么工作啊。其实在丈夫查询的时候已经对该账号上了锁,另外的银行卡要... 阅读全文
posted @ 2013-04-17 21:02 残剑_ 阅读(4969) 评论(7) 推荐(4) 编辑
摘要:以前学习基础的时候学习了一段时间的多线程,上课的时候老师也讲过一遍,那时候感觉学的似懂非懂。因为到现在很长一段时间没有用到多线程的知识,所以现在基本上忘了差不多了。但是下个星期要面试了,所以今天特意又研究了一下多线程,免得被问到多线程问题时什么都不记得了那就麻烦了。现在对java比较熟悉了,所以再一次学习多线程知识,感觉没有那么难了(记得刚接触多线程的时候,感觉非常吃力)。 首先讲一下进程和线程的区别: 进程:每个进程都有独立的代码和数据空间(进程上下文),进程间的切换会有较大的开销,一个进程包含1--n个线程。 线程:同一类线程共享代码和数据空间,每个线程有独立的运行栈和程... 阅读全文
posted @ 2013-04-16 22:54 残剑_ 阅读(59369) 评论(10) 推荐(6) 编辑
摘要:Set不保存重复的元素。Set中最常被使用的是测试归属性,你可以很容易的询问某个对象是否在某个Set中。Set具有与Collection完全一样的接口,因此没有任何额外的功能。实际上Set就是Collection,只是行为不同。 实现了Set接口的主要有HashSet、TreeSet、LinkedHashSet这几个共同点就是每个相同的项只保存一份。他们也有不同点,区别如下: 1.HashSet: HashSet使用的是相当复杂的方式来存储元素的,使用HashSet能够最快的获取集合中的元素,效率非常高(以空间换时间)。会根据hashcode和equals来庞端是否是同一个对象,如果... 阅读全文
posted @ 2013-04-16 16:30 残剑_ 阅读(12683) 评论(0) 推荐(2) 编辑
摘要:List承诺可以将元素维护在特定的序列中。List接口在Collection的基础上添加了大量的方法,使得可以在List的中间插入和删除元素。List与 set 不同,列表通常允许重复的元素。并且存放的顺序与插入的顺序一致。 List接口的常用方法有: add(E o) :将指定对象加入到列表中。 add(int index, E element) :将对象加入到指定位置处。 addAll(Collection<? extends E> c) :追加指定 collection 中的所有元素到此列表的结尾,顺序是指定 collection 的迭代器返回这些元素的顺序(可选操作)。 . 阅读全文
posted @ 2013-04-15 13:23 残剑_ 阅读(6559) 评论(0) 推荐(2) 编辑
摘要:首先需要创建一个进程,然后用该进程去打开本地应用程序,当然也可以调用cmd命令。 1 package com.test; 2 3 public class callExe { 4 5 /** 6 * @param args 7 */ 8 public static void main(String[] args) { 9 Runtime rt = Runtime.getRuntime();10 Process p = null;11 String fileLac = "";12 try {1... 阅读全文
posted @ 2013-04-10 21:58 残剑_ 阅读(7705) 评论(2) 推荐(1) 编辑
摘要:在java中,可能使用到final关键字修饰的有数据、方法和类。 一、final 修饰数据 有final修饰的数据是用来告诉编译器一块数据是恒定不变的,有时数据恒定不变是很有用的,比如: 1.一个永不改变的编译时常量。 2.一个在运行时被初始化的值,但是又不希望它被改变。 编译时常量必须是基本数据类型,并且以关键字final修饰,在对这个常量进行定义的时候必须进行赋值,并且以后不能被改变。 对于基本类型,final使数值恒定不变;而对于对象引用,final使引用恒定不变,也就是说某个引用不能再指向其他对象了,但是当前指向的这个对象自身的数据是可以改变的。 二、fina... 阅读全文
posted @ 2013-04-09 13:02 残剑_ 阅读(2540) 评论(0) 推荐(2) 编辑
摘要:最近一直在看《thinking in java》一书,感觉里面东西讲的很细,很多东西都没有接触过,是值得各位java程序员仔细品味的一本好书。 今天看了关于类成员初始化那节,以前对于成员初始化顺序没有考虑那么多,没有在意初始化的顺序。今天特意仔细研究了一番。 一个类中,最首先被初始化的是静态成员,也就是有关键字static修饰的成员。只要一个类被使用也就是创建对象或者调用了该类的某个静态方法时静态成员就都会被初始化,并且静态数据在内存中只占用一份存储区域,无论创建多少个对象,静态数据被所有对象共享。 初始化静态成员后再初始化非静态成员。对于非静态成员之间,也是有初始化顺序的,变量定义... 阅读全文
posted @ 2013-04-07 12:57 残剑_ 阅读(1905) 评论(2) 推荐(3) 编辑
摘要:一、JExcelApi 可以从文件或者输入流进行读取操作。基本步骤: 1.由文件或者输入流创建一个workbook; 2.由workbook的getSheet()方法创建一个工作表Sheet(两种方法,下标和名字,下标从0开始); 3.由Sheet的getCell(x,y)方法得到某个单元格,cell对象可以读取它的类型(getType)、内容(getContents)等。读取excel表格内容的代码如下: 1 package com.test; 2 3 import java.io.File; 4 import java.io.IOException; 5 6 import jxl... 阅读全文
posted @ 2013-03-27 21:55 残剑_ 阅读(7639) 评论(0) 推荐(0) 编辑
摘要:一、利用dom4j创建一个内容如下的xml文件SqlMapConfig.xml 1 <?xml version="1.0" encoding="UTF-8" ?> 2 <!DOCTYPE configuration PUBLIC "-//ibatis.apache.org//DTD Config 3.0//EN" 3 "ibatis-3-config.dtd"> 4 <configuration> 5 <environments default="developm 阅读全文
posted @ 2013-02-05 23:21 残剑_ 阅读(9560) 评论(2) 推荐(3) 编辑
摘要:转:http://www.cnblogs.com/jasoncc/archive/2011/12/22/2296052.html今天主要和大家分享,如何搭建一个Web服务,做Android开发,不可避免会涉及到客户端开发,我们怎么样来实现一个服务端,怎么样来实现一个客户端,并相互传递数据。就算调用别人的服务时,也能知道大概是怎么样实现的。 WebService一般分为.Net版和Java版,今天我们主要来实现Java版的WebService,.Net版本的还是比较简单的。 照例,轻松一笑: 波音777是有史以来第一架完全在电脑虚拟现实中设计制造的飞机,所用的设备完全由IBM公司所提供。试飞前, 阅读全文
posted @ 2013-01-31 23:08 残剑_ 阅读(515) 评论(0) 推荐(0) 编辑
摘要:1 public static void main(String[] args) { 2 // TODO Auto-generated method stub 3 DateFormat format = new SimpleDateFormat("yyyy-MM-dd"); 4 Date date = null; 5 String str = null; 6 7 // String转Date 8 str = "2009-01-06"; ... 阅读全文
posted @ 2012-07-13 18:58 残剑_ 阅读(586) 评论(0) 推荐(0) 编辑