自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

转载 树、森林和二叉树之间的转换

树、森林和二叉树之间的转换 树转换为二叉树1. 加线     在所有兄弟结点之间加一条连线。2. 去线     树中的每个结点,只保留它与第一个孩子结点的连线,删除它与其它孩子结点之间的连线。3. 层次调整    以树的根节点为轴心,将整棵树顺时针旋转一定角度,使之结构层次分明。(注意第一个孩子是结点的左孩子,兄弟转换过来的孩子是结点的右孩子)森林转换为

2017-07-03 12:13:52 266

原创 HibernateDaosupport,HibernateCallback,HibernateTemplate的用法

HibernaeTemplate提供了Hibernate操作的 很多方法,不需要得到session,关闭事务等操作,可以在spring中的bean中配置,记得配置hibernate的bean时传入sessionFactory的的注入方式,即      "customerDaoImpl" class="cn.csdn.dao.CustomerDaoImpl">          

2016-04-23 23:43:54 294

转载 同步的HashMap,List等

下面这部分内容转载自:  http://www.haogongju.net/art/2350374  JDK5中添加了新的concurrent包,相对同步容器而言,并发容器通过一些机制改进了并发性能。因为同步容器将所有对容器状态的访问都串行化了,这样保证了线程的安全性,所以这种方法的代价就是严重降低了并发性,当多个线程竞争容器时,吞吐量严重降低。因此Java5.0开始针对多线程并发

2016-03-12 14:09:09 425

转载 ThreadLocal的使用

本文是转载的,原文章出处:http://justsee.iteye.com/blog/791919ThreadLocal是解决线程安全问题一个很好的思路,ThreadLocal类中有一个Map,用于存储每一个线程的变量副本,Map中元素的键为线程对象,而值对应线程的变量副本,由于Key值不可重复,每一个“线程对象”对应线程的“变量副本”,而到达了线程安全。我们知道Spr

2016-03-11 11:40:52 290

原创 线程同步的方法

实现同步机制有两个方法: 1。同步代码块: synchronized(同一个数据){} 同一个数据:就是N条线程同时访问一个数据。 2。 同步方法: public synchronized 数据返回类型 方法名(){} 就是使用 synchronized 来修饰某个方法,则该方法称为同步方法。对于同步方法而言,无需显示指定同步监视器,同步方法的同步监视器是 this 也就是

2016-03-06 21:01:06 232

原创 join,yield等关键字的使用

1、join。假如A extends Thread ;A a=new A();a.start();a.join()//在main方法下面.调用了join方法的表示当前线程(在这里是main)需等待a的结束才可以继续执行。join(long mills)也用来指定时间。通常用于为每个小问题分配一个线程,当所有小问题解决后,再调用主线程来进一步操作。2、sleep方法Thread.sleep()/

2016-03-06 20:26:17 255

原创 线程的创建和启动

1、通过继承Thread类来创建。首先重写该类的run方法(线程执行体),创建Thread子类的实例,即线程对象,调用start()方法启动线程,如果没有start的话不会启动多个线程。常用方法:Thread.currentThread()和getName()(两者一起或者只用后者都可以),当然也可以自己通过setName(String name)来设置线程的启动名字2、实现Runnabl

2016-03-06 19:24:35 345

原创 字符字节流

分类字节输入流字节输出流字符输入流字符输出流抽象基类InputStreamOutputStreamReaderWriter访问文件FileInputStreamFileOutputStreamFileReader

2016-03-06 16:35:43 288

翻译 文件

File类的list方法可以接收一个FilenameFilter参数,通过该参数可以只列出符合条件的文件。public class test{. .File file=new File(".");//当前路径新建一个文件. .String []nameList=file.list(new MyFileTest);. .for(String name:nameList){Syst

2016-03-06 12:18:56 191

原创 异常处理和错误

try{}catch()的原理是java接受异常对象后,判断该异常对象是否是catch块后异常类或者其子类的实例(instanceof)如果是则进入catch块后打印进行处理,不再往下执行。即一般情况下如果try被执行一次,catch只会有一个会被执行,一般不会有多个catch块被执行。异常(Exception)和错误(Error)是java的所有非正常情况的总和,都继承于Throwble父类

2016-03-06 11:02:52 361

原创 泛型的使用

如果不使用泛型比如List a=new ArrayList();a.add("123"); a.add(1);因为List取出来的是Object,需要强制转换,String  s=(String)a.get(1) ;的时候就出错,因为int强制转换时出错,就有必要使用泛型了,取元素的时候不用强制转换。可以简洁的List a=new ArrayList并不是一个新的类型,即不存在泛型类,比如说你用a

2016-03-06 10:22:59 265

原创 Collections类的用法

Collections类克Collection接口的区别,Collections类主要提供大量方法对Set,List和Map等集合的元素的排序、查询和修改等操作,还提供将集合对象设置为不可变,对集合对象实现同步控制等方法。而Collection接口是Set,List等容器的祖先。Collections位于java.util.Collections下面,常用方法自己查询。主要说下它的同步控制,因

2016-03-06 09:46:34 1482

转载 java集合类的使用

转载,原帖出处来源:http://skyuck.iteye.com/blog/526358 Java2的集合框架,抽其核心,主要有三种:List、Set和Map。如下图所示: 需要注意的是,这里的 Collection、List、Set和Map都是接口(Interface),不是具体的类实现。 List lst = new ArrayList(); 这是我们平常经常使用的创

2016-03-06 00:01:45 206

原创 finalize方法的使用

gc只负责回收堆内存中的对象,不会回收任何物理资源(例如数据库连接和网络IO等);程序无法精确控制垃圾回收,就算调用了System.gc()也一样只是通知程序可以进行垃圾回收,但是日期还是不确定的,只是会尽快回收垃圾,垃圾回收之前一般会调用finalize方法。对象一般有三种状态,可达,可恢复,不可达。可达不用说了,可恢复即回收对象之前调用finalize方法重新让一个引用变量引用这个对象。则此对

2016-03-05 16:02:03 464

原创 abstract的使用和接口的区别

抽象类中必须有抽象方法,同时也可以有非抽象方法,既可以有方法的具体实现,继承抽象父类的子类中,如果子类没有实现抽象父类中的抽象方法,那么这个子类也必须声明为抽象的,直到N个后的子类把之前的父类抽象方法实现完了,子类就可以自由了,才能不用abstract关键字修饰。只要类中有抽象的方法那么这个类就一定是抽象类,但是抽象类中的方法不一定都是抽象方法,只是至少有一个是抽象方法即可。抽象类不能被实例化,只

2016-03-05 10:44:24 961

转载 final关键字的用法

浅析Java中的final关键字  谈到final关键字,想必很多人都不陌生,在使用匿名内部类的时候可能会经常用到final关键字。另外,Java中的String类就是一个final类,那么今天我们就来了解final这个关键字的用法。下面是本文的目录大纲:  一.final关键字的基本用法  二.深入理解final关键字  若有不正之处,请多多谅解并欢迎指正。  请尊重作者劳动

2016-03-05 10:30:31 481

原创 String初始化问题

对象类型会自动初始化的前提是作为类的属性。如果是在方法中或者局部代码块中,必须进行初始化。否则不能通过编译。1、如果类的属性s没有初始化,它会默认指定为null,此时能够通过编译,若是调用s.length()等所有方法或者除了s=null外的操作就会抛出NullPoint异常,如果在一个自己定义的方法里面调用类属性的s.length()等方法不一定会异常,只要你的这个方法没有被调用就好。2

2016-03-05 09:51:02 1799

原创 多态

出现多态的时候,类引用只能调用父类存在的方法,即若方法被子类覆盖,则显示子类覆盖后的方法,若调用子类中父类不存在的方法就会出错。父类中private修饰的方法不能被子类覆盖,方法重写要求方法名相同、形参列表相同,子类方法返回值类型=父类的对应方法。另外,protected修饰一个方法是希望之类改写这个方法,外部类一般只能有两种访问控制级别public和默认,不能用private和protect

2016-03-04 23:39:19 224

原创 ForEach循环的使用

for(type variable :name|collection){ //使用variable自动迭代访问每个元素};例如String []a={"1","23"};for(String h:a){System.out.println(a);}即可,遍历数组或者集合用这种方法很简洁哦。注意: 注意用此循环不要对循环变量(在这里是h)赋值,语法虽然没错,但是没有必要。因为这里的h只是一个

2016-03-03 21:03:19 277

原创 数组的使用

定义数组时不能指定数组长度,譬如int a[5]是不对的。初始化和定义可以一起,比如int a[]=new int[5],初始化一般有静态和动态之分,静态int arrayName=new int[]{1,2,3,4};动态,简化的静态初始化则为int arrayName[]={1,2,3,4,5};动态即为没个数组元素分配所需的内存空间,系统为它分配默认值。int a[]=new int[5

2016-03-03 20:55:14 351

原创 String、StringBuilder、StringBuffer的区别

效率来说,大部分情况下,String>StringBuffer>StringBuilder。String生成对象不可变,每次生成一个新的对象,再返回引用,可想而知,所以如果是字符串内容经常改变的不建议使用,有时候String a="ac"+"cd“(循环很多次)不会比StringBuffer的append方法慢。比如String a="abc";String b="def";String c=a+

2016-03-03 20:30:04 199

转载 String为什么设置为不可变的

String为什么设定为不可变的

2016-03-03 20:22:18 220

原创 java非,或与和三种移位运算

~|&^对应着按位非、或、与、异或,比较简单,就是用补码(正数补码为原码,负数为反码加1)每一位对齐,进行运算。比如5&9结果是1,因为5就是二进制101,9是1001(前面几位是0省略),5|9同理则为12。如果是求~ -5的话,首先-5对应二进制原码100000...101求得反码(源码除了第1位符号位外其他位置取反)得到111111...010,补码为1111....011,进行位异或后,取

2016-03-03 19:49:26 360 1

原创 java的Switch用法简介

java中的switch只能用char,byte,int ,short四种类型和枚举类型,long等类型不被支持使用,java7加多了String的支持,记得每个case后添加break;否则无论是否有满足case的条件都好,必将switch下面语句执行完毕。

2016-03-03 19:46:17 367

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除