自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

一揽芳华

玉经雕琢方成器,句要丰腴字妥安。

  • 博客(100)
  • 收藏
  • 关注

原创 接口与内部类

接口与抽象类经常会做比较,但是要明白二者是不同的,接口是对动作的抽象,而抽象类是对根源的抽象,比如男人、女人可以定义一个抽象类人,而针对吃东西,人会吃东西,动物也会吃东西,那么可以将吃东西这个动作定义为接口。两者的区别和联系如下:1.接口和抽象类都不能实例化2.接口的实现是关键字implements,抽象类的继承用关键字extend3.接口中只能声明方法,不能有方法实现;抽象类中可以只声明方法,也...

2017-11-01 15:41:05 471

原创 java垃圾回收

java内存一般认为有堆内存和栈内存,而堆内存中的对象实例是JVM回收的主要对象。1.什么样的对象需要回收?对于堆内存中已经没有任何用处(没有任何引用指向的对象)的对象就是可以被回收的对象。2.怎么判断对象是“无用”的?2.1 引用计数算法基本思想:给对象添加一个引用计数器,每当有一个地方引用它,计数器就+1,当引用失效时,计数器值-1,任何时刻计数器值为0的对象就是不可能再被使用的。问题:循环引...

2017-10-30 14:26:54 362

原创 mysql+mybatis+Spring

这一章大概记录的会有些乱,因为是回忆形式的,也不够详细,但是会有一个链接,是我学习时候的笔记:http://note.youdao.com/noteshare?id=1dd4cf55fbb8e37a3a37babed96b0693一、mysql常用命令:1.mysql -u 用户名 -p密码  //例如:mysql -u root -p回车,提示输入密码,直接输入就行2.查看所

2017-10-24 16:44:14 481

原创 spring mvc+velocity+maven

在之前实习单位实习的时候,并不是用jsp,而是用的velocity,现在换了一个单位,一时用jsp不习惯,感觉velocity比jsp好用,就学起来吧~一、构建maven项目这个不赘述了,之前的博客有写过,大同小异

2017-10-12 15:14:17 592

原创 集合之Set

Set集合就像是一个罐子,它记不住添加元素的顺序,所以Set集合不允许元素重复。即Set集合的特性是*无序,不重复的*。# HashSetHashSet是采用hash算法来存储元素的集合,所以查找与存取的速度都比较快。HashSet底层是通过HashMap实现的:private transient HashMap map; // Dummy value to associ

2017-08-09 17:09:08 302

原创 for、for-each、迭代器

在jdk1.5之前,迭代集合的时候通常使用迭代器,而迭代数组的时候通常选择for循环,但是1.5之后,可以使用for-each循环,它摒弃了传统for循环的索引,或者在使用iterator时不用调用hasNext()就可以进行遍历。事实上,for-each内部还是用iterator,能够使用for-each循环的对象必须实现了Iterable接口,该接口中就包含了一个iterator方法,该方

2017-08-09 11:32:01 537 1

原创 集合之List

集合java的集合主要分类Collection接口和Map接口,Collection接口作为集合的根接口,实现了Iterable接口,表示集合可以进行for-each循环。继承树如下:注:Iterable与Iterator的比较:Iterable接口中有个名字叫做iterator的方法需要实现,而Iterator接口中有next()、hashNext()、remove()三个方法需

2017-08-09 11:18:11 246

原创 对象相等之equals与==的区别

# 对象相等怎么样才算是对象相等?其实判断对象相等有两种:1.对象相等性:即堆中的两个不同对象在意义上相等,其实也就是两个对象在堆中的内容相等。2.引用相等性:即两个对象的引用指向堆中同一个对象,也就是两个对象在栈中的内容相等。知道了对象相等的两种判断标准,就来说一个equals与==的区别吧~# equals()方法假设有两个对象x,y,判断x.equals(y)有结果f

2017-08-09 10:27:53 1147

原创 synchronized

上一篇中在提到StringBuffer类中操作字符串的方法都是用synchronized修饰的,所以是线程安全的,那么在这篇就介绍一个synchronized是什么,为什么它修饰了就是线程安全的。造成线程安全的诱因1.存在共享数据2.存在多条线程共同操作共享数据解决方案当存在多条线程操作共享数据时,只要保证在同一时刻有且只有一条线程能够操作该共享数据,其他线程之一必须等

2017-08-08 18:51:18 241

原创 String、StringBuffer

这个话题貌似是面试必问的问题了,我也认认真真的学习了一下,下面是我的一些愚见~1.String类代表了字符串,是常量,因此是不可变的。String来的源码中有这样一段代码:/** The value is used for character storage. */private final char value[];这是一个final修饰的不可变的数组,注释说明它是

2017-08-08 18:04:13 2693

原创 java-重载与重写

重载与重写都是java多态性的一种表现,但是又有不同,从重写是父类与子类之间多态的一种表现,重载是一个类多态的表现。多说无益,直接上实例:

2017-07-31 19:07:44 216

转载 java和C#的区别

Java和C#都是编程的语言,它们是两个不同方向的两种语言相同点:他们都是面向对象的语言,也就是说,它们都能实现面向对象的思想(封装,继承,多态)区别:1.c#中的命名空间是namespace类似于Java中的package(包),在Java中导入包用import而c#中用using。2.c#和Java都是从main函数入口的,但是c#中的main函数的首字母必须大写,它有四种

2017-06-01 15:24:47 384

转载 jar包和war的区别

不知道我是不是和很多初学者一样想弄明白这个问题,但是我是真的不知道它们是什么个区别,好在前辈们都愿意分享,所以我也分享一下前辈的分享以最终客户的角度来看,JAR文件就是一种封装,他们不需要知道jar文件中有多少个.class文件,每个文件中的功能与作用,同样可以得到他们希望的结果。除jar以外对于J2EE来说还有war和ear。区别见下表:JARWA

2017-05-19 11:28:10 485

转载 Maven构建生命周期

写在前面:在项目开发中,会遇见一个问题:在一个项目中引用另外一个项目,明明已经引用了相关的包,编译的时候依然提示没有该包,这时候我导师给我说,你install一下,然后我就照着做了,结果能够正常运行了,然后小笨鸟就想了,这是个什么鬼,今天终于瞅机会了解一下,又遇见这么一篇简单清晰的博客,毫不犹豫给大家分享啊~—————————————————————————————————————

2017-05-19 11:12:50 556

原创 java的数据类型

java的数据类型分为4类8种,分别为1.整型:byte(1字节)、short(2字节)、int(4字节)和long(8字节);2.字符型:char(2字节);3.浮点型:float(4字节)、double(8字节),java中的浮点数默认为double类型的,如果想要定义为float类型的,要在数字后面加F或f,例如1.2f;4.布尔型:boolean,只允许值为true或者fa

2017-05-17 13:54:29 260

原创 软件设计原则

昨天我们单位的答辩过去了,同事们针对各组提问的问题,归根到底,都围绕着设计原则,所以小笨鸟下来就查了,什么是设计原则撒,要怎么运用到我们的实际项目开发中呢?下面是我总结的前辈的经验,结合自己的理解,同样与君共勉~一、开闭原则昨天答辩的时候这个原则是我们小组提出来的,导师给我简单的说了一句:对扩展开放,对修改关闭!小笨鸟觉得不懂啊,后来仔细查查才知道,开闭原则说的也就是:在不修改原(

2017-05-17 10:12:52 675

原创 Properties配置文件

记得面试阿里的时候,提到配置文件,当时只是觉得配置文件很好用,至于为什么,小笨鸟表示不知道。今天单位要搞一个技术联谊,我们这些倒霉的小笨鸟肯定都是炮灰,所以还是多看一点是一点,话不多说,把学到的共享是一贯的准则,开始喽~一、Properties类既然有配置文件,那么就对应的拥有读取配置文件的类和方法,各种语言都不例外。java中有一个很重要的类,就是读取配置文件的类Properties类,

2017-05-16 09:34:34 471

原创 sleep()和wait()的区别

调用了sleep(),那么就会使正在执行的线程主动让出CPU,CPU去执行其他的线程,当sleep中规定了时间到了,CPU才会回到之前的线程继续执行。但是,如果当前线程进入了同步锁,那么sleep方法并不会释放锁,即使调用了sleep方法让出了CPU,但其他被同步锁挡住了的线程也得不到执行。wait()指在一个进入了同步锁的线程内,让自己暂时让出同步锁,让其他正在等待此锁的线程可以得到该锁并运

2017-05-15 14:08:53 311

原创 heap和stack的区别

java内存分为两种,即堆内存(heap)和栈内存(stack):栈内存是指程序进入一个方式时,会为这个方法单独分配一块私属存储空间,用于存储这个方法内部的局部变量。当这个方法执行结束时,分配给这个方法的栈会释放,这个栈中的变量也将随之释放。并且,栈内存空间有限堆内存是与栈作用不同的内存,一般用于存放那些不放在当前方法栈中的数据,所以它不会随着方法的结束而消失,空间是一个很大的自由区。例如

2017-05-15 13:50:28 368

原创 java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

再贴出来一个我刚刚遇见的问题(我也不想遇见那么多问题啊啊啊啊):org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot loa

2017-05-14 16:34:12 2309

原创 Incorrect column count: expected 1, actual 3解决办法

很悲催的是,在修改了jar包问题之后不久,就发生了这样一个错误:org.springframework.jdbc.IncorrectResultSetColumnCountException: Incorrect column count: expected 1, actual 3这个问题还是比较好解决的,报错的地方我贴出来一下:public National getFlagC

2017-05-14 16:28:25 20125 1

原创 java.lang.NoSuchMethodError的解决办法

这两天在做一个项目,出来这样一个错,让我很是郁闷的找了很久都没有找出来:Caused by: java.lang.NoSuchMethodError: org.springframework.beans.factory.support.DefaultListableBeanFactory.getDependencyComparator()Ljava/util/Comparator;

2017-05-14 16:23:29 79092 6

转载 图解Git相关工作流

很久一段时间没有写点什么了,最近在做项目,促使我决定好好的了解一下git的工作流程,找到了一份很好的讲解,就果断转载下来,与君共勉!集中式(svn) VS 分布式(git)版本控制系统1. 集中式(svn)2. 分布式(git)git文件状态生命周期patch评审过程克隆repository的链条创建推荐git工作流

2017-05-12 09:29:02 398

原创 Springz中对象的Scope

Spring中对象的Scope:1.在Spring中配置的bean,默认情况下是单例的2.在web应用中,持久层和业务层的对象一般都是单例的scope属性时用来限定bean的生命范围,也就是在什么范围内拿到的bean是相同的。在配置中的应用方式是这样的:其中scope默认是singleton,除此之外,还有request和session下面分别介绍一下:

2017-04-27 14:10:10 231

原创 使用JDBC将一个对象保存到数据库

今天在做项目的过程中遇见一个需求:我有一个角色对象Role,对应数据库中的表role,字段和对象的属性一一对应,现在要实现一个方法saveRole(Role role)。查了很多资料,但是也没有一个所以然,说是将对象序列化再进行存储的居多,但是具体的还是用这个方法实现,最后用了一个简单的方法:一一获取对象的属性,将属性存放进数据库Dao层的实现方法:Service层:

2017-04-26 17:28:37 9522 4

原创 bean的实例化方法

1.默认方式2.静态工厂的方法静态工厂方法执行流程:  1,找到对应的配置文件;  2,加载配置文件;  3,解析所有的bean元素;识别id和class属性; 4,如果bean元素只有factory-method属性,得到factory-method属性值;  5,使用class属性+factory-method使用反射创建对象实例

2017-04-24 19:02:33 288

原创 bean的实例化时机

知道bean是什么,也知道该怎么配置,那么知道在Spring容器中是什么时候实例化bean的吗?1.对于BeanFactory来说,在容器启动的时候,是不会去实例化bean的,必须等到用bean的时候才会去实例化,这就是延迟实例化2.而对于ApplicationContext来说,在启动容器的时候就已经实例化了容器中的所有bean。如果也想要ApplicationContext延迟实例化,

2017-04-24 18:58:30 371

原创 Spring容器

常见的Spring容器:1.BeanFactory是Spring中最基本、最简单的容器,该容器只提供了IOC/DI功能,最重要的方式是getBean()2.ApplicationContext继承了BeanFactory接口,不仅有BeanFactory的方法,还提供了了许多额外的功能:1)环境感知2)容器的继承体系3)国际化相关4)事件发布/响应机制5)统一的

2017-04-24 17:11:42 501

原创 spring的测试

在说Spring的测试之前,先看一下Spring测试在整个Spring框架中所占的位置:看上面的这幅图,有一个Test,这就是Spring的测试了,如果说Spring最核心的东西是IOC和AOP,那么添加一个Test也是无可厚非的,因为测试的重要性已经不用再多说了。现在先看一下传统测试方式,了解一下传统测试方式有哪些弊端,才能够更好的理解Spring测试好处和优势:可以看到

2017-04-24 11:22:29 1734 1

原创 Spring配置文件中的import

在实际的项目开发中,我们往往会分为很多不同的包,如果遇见为不同的包都设置Spring配置文件的情况,都写在一个总的配置文件中,难免会造成配置文件内容臃肿,不易阅读的情况。为了方便管理应用配置文件,推荐使用import来规划配置文件:在Spring中,可以把配置文件分散到各个模块中,然后在总的配置文件中通过import元素引入这些配置文件:1.默认情况下,使用相对路径来辅助查找配置文件

2017-04-24 10:04:23 9662 1

原创 bean的名字

学习过Spring的都不陌生元素,而且都知道在该元素中有两个常用的属性id和class,其中id唯一标识元素,一般是对象类的类名首字母小写,class包含了全类名。如果想要给该起一个其他的名字呢,直接修改id也可以,但是还有一种方式,那就是元素中的name属性,代表了该的别名,可以为起多个别名,用逗号分隔即可。一般情况下,我们只指定id就可以了,但是也有一些情况下回使用name,那么问题又来了,什

2017-04-24 09:57:06 1122

原创 Spring基础(IOC原理和反射机制+JavaBean)

本篇文章其实没有特别的主题,好像都涉及到那么一点,包括IOC、反射、bean等等,就往下看吧,或许你也会有跟我一样的感觉:在某个时刻豁然开朗~1.hello接口2.业务类3.测试类4.运行结果看到这里,大家都知道,这是没有运用spring的传统写法,HelloImpl需要实现Hello接口,而测试类test依赖于HelloImpl这个业务类,那么

2017-04-24 08:50:20 6247 2

转载 反射机制——侯捷谈反射+自己理解

看来侯捷老师有关反射的文章,大概我也明白了一些,就换成自己的话描述一遍,纯属个人理解,如果不妥,希望多多指教!反射呢,其实说白了就是知道了一个类(比如苹果Apple类),可以通过反射获得该类继承的类或实现的接口(例如水果Fruit),甚至更向上的继承或实现,直到顶级父类。例如有这样一个代码段:代码段中的注释说的很明白,button属于Button,而Button又继承了

2017-04-21 10:29:13 441

原创 Spring装配Bean——高级装配之与环境相关的bean

一、SpringBean的高级配置1.配置profile beanSpring为环境相关的bean所提供的解决方案其实与构建时的方案没有太大的区别,当然,在这个过程中需要根据环境(开发环境、测试环境还是生产环境)决定该创建哪个bean和不该创建哪个bean。不过Spring并不是在构建的时候做出这样的决策,而是等到运行时再来决定。这样的结果就是同一个部署单元能够适用于所有的环境,没有必要进

2017-04-20 11:20:04 354

原创 Spring IOC的几种注入方法

目前我知道的注入方式有五种:1.Setter注入(应用广泛):set方法2.注解注入(简单):@Resource(“要注入的bean”)3.构造器注入(应用也广泛):4.静态工厂注入(貌似有些看不懂)5.实例工厂注入(貌似有些看不懂)

2017-04-19 14:47:28 3453

转载 Spring IOC原理

今天被导师安排学习Spring IOC的原理以及相关知识,我看了很多博客,但是都是云里雾里,不甚明朗,不过柳暗花明的让我发现了一篇博客,超级通俗易懂,而且有很多生活中我们经常接触的例子,很不错,就果断转载了,与君共勉~1. IOC理论的背景我们都知道,在采用面向对象方法设计的软件系统中,它的底层实现都是由N个对象组成的,所有的对象通过彼此的合作,最终实现系统的业务逻辑。    

2017-04-19 11:17:39 220

原创 Spring装配Bean——通过配置XML装配bean

在这里,我仍旧直接通过例子来解释怎么通过xml装配bean。xml version="1.0" encoding="UTF-8"?>xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:c="htt

2017-04-18 16:10:06 690

原创 Spring装配Bean——Java代码装配bean

上一篇博客中介绍了自动装配bean,本篇博客将介绍怎么通过Java代码装配bean。package lm.practice.bean;import lm.practice.bean.impl.CompactDiscImpl;import org.springframework.context.annotation.Bean;import org.springframework.co

2017-04-18 15:36:35 469

原创 spring装配bean——自动装配bean

Spring从两个角度实现自动化装配:1.组件扫描:Spring会自动发现引用上下文所创建的bean2.自动装配:Spring自动满足bean之间的依赖注:组件扫描和自动装配组合在一起可以发挥强大威力,能够将显示配置降低到最少通过案例来具体讲解怎么创建可被识别的bean:1.定义一个接口package lm.practice.bean;/** * Created

2017-04-17 20:17:07 529

转载 java中的Filter过滤器

一、Filter(即过滤器)的功能主要对用户请求进行预处理和后处理,主要功能有两个:1.预处理:在HttpServletRequest到达Servlet之前,拦截客户的HttpServletRequest,根据需要检查HttpServletRequest,也可以修改HttpServletRequest头和数据2.后处理:在HttpServletRequest到达客户端之前,拦截Http

2017-04-17 15:31:01 302

空空如也

空空如也

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

TA关注的人

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