自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 资源 (2)
  • 收藏
  • 关注

原创 文件夹的复制--递归算法

在Java中,要想实现文件夹的复制,采用的是IO技术。通常对我们来说,要想实现一个文件的复制,是十分简单的。那文件夹的复呢?我们只需要从中间价格递归算法即可。要求是:将test文件夹的所有内容都复制到test1文件夹下,且要求test文件夹中的结构不变,如/test/a/b.doc文件在test1文件下的目录应该是/test1/test/a/b.doc.具体的代码实现如下pac

2016-12-28 17:09:30 2343

原创 HashMap集合的自定义实现

HashMap集合是Map接口的实现类,在Map集合不同于Collectiion集合,Map集合存放的是键值对,通过键(key)可以找到对应的值(value),而且每一个key是唯一的。那么该如何自定义实现HashMap呢?通过阅读jdk的源代码,发现HashMap的底层数据结构其实就是数组加上链表。笔者通过阅读源码,自定义实现了HashMap。数组里面存放的是链表LinkedList,而

2016-12-24 19:47:12 1335

原创 自定义实现LinkedList

上一篇文章自定义实现了ArrayList集合,现在则自定义实现LinkedList。学过集合的读者都知道,ArrayList的底层实现是用数组实现,而LinkedList的实现则是用链表实现。那么什么是链表呢?其实可以把它比喻成一串珠子,珠子通过线来串连起来。要想找到中间的珠子,就只能通过第一个珠子或者最后一个珠子,一个一个的找下去,直到找到所要的珠子。链表分为单向链表和双向链表,单向

2016-12-24 01:23:16 3837

原创 自定义实现Java中的ArrayList集合

最近准备找工作,就复习了下Java的基础,顺便多看看源码,在复习到集合这一章时,就想着自己动手实现集合,就看了看jdk的源码,由于笔者本科学的是高分子材料,和计算机、软件、互联网完全不沾边,也没学过数据结构,但为了多了解这方便的知识,就根据jdk的源码,模仿了集合的实现,今天给大家带来的是ArrayList的实现,当然在这里笔者也只是实现了集合中部分常用的方法,并且也没有使用泛型。首先笔者也是

2016-12-23 13:43:33 1200 2

原创 类加载器和双亲委托机制

类加载器的作用类加载器将字节码文件加载到内存当中,同时在方法区中生成对应的java.lang.Class对象,作为外部访问方法区的入口。所有的java类都需要经过类加载器的加载才能加载到内存中,那么Java中的类加载器究竟什么呢?类加载器的层次结构JavaSE中类加载器分为引导类加载器(Bootstrap ClassLoader),扩展类加载器(Extensions ClassLoad

2016-12-21 18:36:03 800

原创 Java的安全检查以及反射的性能问题

关于反射好处很多,为开发者提供了很多便利,但任何事情有好有坏,同样反射虽然有点很多,但同时也带来了性能的问题,反射会降低程序的性能。在说反射的性能问题之前先简单了解下Java的安全性,Java语言是安全的,这是因为它在编译和加载时都会进行安全检查。每次都进行检查,就像我们每次做事前都要准备一下,这样势必会降低我们的执行效率,因此这也是Java程序运行起来相比较C和C++慢的原因。在Java

2016-12-21 15:00:40 2278

原创 利用反射和注解模拟ORM框架中的自动建表功能

在Mybatis当中,可能我们经常会用到在一个方法上加上注解,如:@Insert,@Update,@Delete,@Select,加上这些注解后,框架就能帮助我们执行sql语句,那框架是如何实现的呢?今天笔者就使用注解和反射的知识模拟了一个自动建数据表的功能,当然只是一些简单的代码,重要的是其中的原理。加入我们现在有一个JavaBean,那么我们如何利用反射和注解实现,让数据库自动帮我们创建一

2016-12-21 13:55:36 2659

原创 Java的动态性--反射

反射可以说是Java基础当中相当重要的知识了,因为反射为Java语言实现了动态性,同时也为Spring、Struts2、Hibernate、Mybatis、SpringMVC等框架提供了实现的可能性。众所周知,Java不同于那些动态语言,如Javascript、Ruby、Python,Java是一门静态语言,但为了实现动态性,Java提供了一个包:java.lang.reflect,这个包为Jav

2016-12-20 23:18:00 3234

原创 设计模式之代理模式

在Java的开源框架里,我们经常会遇到代理模式,无论是在Hibernate里面,还是在Struts2里面,以及Spring里,都大量用到了代理模式。而代理模式有分为静态代理和动态代理两种。我们先从简单的开始学起,先看静态代理模式。静态代理模式在娱乐圈中,明星们基本上都有经纪人,以为明星要参加一次商业活动,可能要经过许许多多的过程:先面谈,再签合同,再订机票,然后再去参加商业活动,最后收款。

2016-12-19 22:09:15 480

原创 设计模式之适配器模式

之前几篇文章都是讲的创建型的设计模式,今天则开始讲解结构型设计模式。首先今天要学习的是适配器模式。我们可能会遇到这样的情形:要通过手机直接复制U盘里面的文件,可目前的手机根本无法直接连接U盘,因为U盘一般是USB2.0或者3.0型的接口,没办法直接插到我们的手机上,这个时候我们就需要通过中间器件来实现了,即买一根OTG的连接线就可以了。从这个例子中我们知道,手机需要的是一个Type-C接口(不

2016-12-18 16:54:36 487

原创 设计模式之原型模式

在JavaEE开发中经常用到Spring框架,而在Spring框架中,在创建JavaBean时,Spring默认是单例的(即singleton),而有时候我们需要Bean是非单例的,尤其是和Struts2整合时的Action,Action必须是多例的,此时我们就会将Action配置成原型(即prototype)。在Java中创建对象我们经常通过new关键字来进行创建,实际上通过new关键字来创建对

2016-12-17 14:09:20 453

原创 设计模式之建造者模式

本文还是以汽车为例,一辆汽车包含许许多多的零件,而汽车制造商在生产汽车时,都是先由对应供应商将零件生产好,然后再将这些零件组装成汽车。在现实生活中,经常会要生产十分复杂的东西,而这些东西基本上都是先生产出零件,然后再组装成成品。而在我们Java程序设计中,也会遇到这种情况,当一个对象十分复杂的时候,我们就可以利用建造者模式来解决。建造者模式主要有为四个重要组件:①:Builder(建造者)

2016-12-16 21:48:13 417

原创 设计模式之工厂模式

对于工厂设计模式,其实应用十分广泛,尤其是在框架里面,例如Hibernate框架的SessionFactory创建session,还有Spring框架的javaBean的创建。因此对于设计模式的了解以及学习是十分有必要的。首先,工厂模式可分为三种:简单工厂模式(也称静态工厂模式)、工厂方法模式、抽象工厂模式。工厂模式,顾名思义,工厂就是用来创建产品的,那么在我们的java里就是用来创建对象的。

2016-12-16 17:57:45 466

原创 设计模式之单例模式

浅析java中的单例设计模式单例设计模式在JavaEE中应用十分广泛,例如spring中的javaBean,由于经常碰到这种设计模式,因此对其进行进一步的了解是有十分必要的,这里是我个人在学习过程中的一些总结。首先单例模式又可以细分为好几种:懒汉式单例模式、饿汉式单例模式、静态内部类单例模式、枚举单例模式、双重锁检测单例模式,这里我就只重点总结了前三种单例模式,对于后两种没有过多的研究

2016-12-15 17:01:38 478

JFreeChart最新版笨下载

jfreeChart开源jar包,完全没费,对于不想去官网下载的人来说,来CSDN下载频道更为方便,快捷

2016-10-05

spring开发常用的jar包spring.framework-4.3.2.RELEASE.required

最近自学spring过程中,发现spring官网下载的spring.framework-4.3.2.RELEASE.的jar包里面不够完整,当学到AOP编程时,需要导入AspectJ依赖的几个包,发现官网下载的包里没有这些包,就从网下下载了缺少的包,整合了一下,和大家一起分享

2016-09-18

空空如也

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

TA关注的人

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