- 博客(45)
- 收藏
- 关注
原创 用简洁的话描述一下Spring的IOC和AOP?
IOC就是对象的创建,依赖都是由及配置文件控制;而AOP就是统一的给一些类似的方法加上同样的功能,比如日志,事务等;IOC:控制反转,是一种设计模式。一层含义是控制权的转移;由传统的在程序中控制依赖转移到由容器来控制;第二层是依赖注入:将相互依赖的对象分离,在Spring配置文件中描述他们的依赖关系,他们的依赖关系只在使用时才建立。AOP:面向切面,是一种编程思想,OOP的延续。将系统...
2018-07-22 23:54:35
2215
原创 什么是序列化?
序列化是指将对象转换成字节序列的过程称为对象的序列化,反序列化则是将字节序列恢复为对象的过程对象的序列化通常有两种用途1、把对象的字节序列永久的保存到硬盘上,通常存放到一个文件中2、在网络上传送对象的序列化 ...
2018-07-22 23:19:40
2030
原创 谈谈你对spring的理解
1、spring是实现了工厂模式的工厂类,这个类名是BeanFactory(实际上是一个接口),在程序中BeanFactory的子类ApplicationContext。Spring相当于一个大的工厂类,在其配置文件中通过<bean>元素配置用于创建实例对象的类名和实例对象的属性。2、Spring提供了对IOC的良好支持,IOC是一种编程思想,是一种架构艺术,利用这种思想可以很好地实现...
2018-07-11 22:10:37
7743
原创 什么是反射?
就是可以在程序运行的时候动态装载类,查看类的信息、生成对象,或操作生成对象。类在运行的时候,可以得到该类的信息,并且可以动态修改该类的信息,也就是说Java的反射机制是在编辑的时候并不确定哪个类被加载了,而是在程序运行的时候才加载、探知、自审,使用在编译期并不知道的类,这样的特点就是反射。...
2018-07-11 21:49:47
229
原创 Java中的关键字
java关键字如下:abstract continue for new switch assert*** default goto* package synchronized boolean do if private this break double implements protect...
2018-03-01 20:09:24
175
原创 BeanFactory和ApplicationContext有什么区别?
BeanFactory可以理解为含有bean集合的工厂类。BeanFactory包含了bean的定义,以便在接收到客户端的请求时将对应bean实例化。BeanFactory还能在实例化对象的时候生成协作类之间的关系。此举将bean自身与bean客户端的配置中解放出来。BeanFactory还包含了bean生命周期的控制,调用客户端的初始方法和销毁方法。从表面上看,ApplicationContex...
2018-02-28 11:13:50
995
1
原创 Annoymous Inner Class(匿名内部类)是否可以extends(继承)其他类,是否可以implements(实现)interface(接口)
匿名的内部类是没有名字的内部类,不能extends其他类,但一个内部类可以作为一个接口,由另一个内部类实现。
2018-02-27 21:46:55
690
原创 什么时候用assert?
assertion(断言)是软件测试的一种调试方式,很多开发语言都支持这种机制。在实现中,assertion在程序中就是一条语句,assertion对boolean表达式进行检查,一个正确程序中的boolean表达式的值是true的,如果值为false,那么,该程序已经处于不正确的情况下了,系统将给出警告或退出。一般来说,assertion用于保证程序最基本、关键的正确性,assertion在开发...
2018-02-27 21:37:23
306
原创 Java中Exception和Error有什么区别?
Exception和Error都是Throwable的子类。Exception用于用户程序可以捕获的异常情况。Error定义了不期望被用户程序捕获的异常。
2018-02-27 21:22:19
2916
原创 Java中常见的异常类型是哪两种?他们有什么区别?
Java中有两种异常:受检查的异常(checked)和不受检查的异常(unchecked)。不受检查的异常不需要在方法或者是构造函数上声明,就算是方法或者是构造函数可能会抛出这样的异常,并且不受检查的异常可以传播到方法或者构造函数的外面。相反,受检查的异常必须要用throws语句在方法或者构造函数上声明。...
2018-02-27 21:19:51
4479
原创 数组(Array)和列表(ArrayList)的区别?什么时候应该使用Array?
Array可以包括基本类型和对象类型,而ArrayList只能包括对象类型。Array的大小是固定的,而ArrayList的大小是可以动态变化的。
2018-02-27 21:15:13
2203
原创 HashMap和Hashtable有什么区别?
HashMap允许键和值是null,而Hashtable则不允许键或者值是null。Hashtable是同步的,而HashMap不是,所以HashMap更适用于单线程环境,Hashtable则适用于多线程环境。...
2018-02-27 21:11:44
2877
原创 什么是迭代器(Iterator)?
Iterator接口提供了很多对集合元素进行迭代的方法。每一个集合类都包含了可以返回迭代器实例的迭代方法。迭代器可以在迭代的过程中删除底层集合的元素。...
2018-02-27 21:08:38
2938
原创 为什么集合类没有实现Cloneable和Serializable接口?
集合类接口指定了一组叫做元素的对象。集合类接口的每一种具体的实现类都可以选择以它自己的方式对元素进行保存和排序。有些集合类允许重复键,有些则不允许。...
2018-02-27 21:00:35
1174
原创 Java集合类的基本接口有哪些?
Collection:代表一组对象,每一个对象都是它的子元素。Set:不包含重复元素的Collection。List:有顺序的Collection,并且可以包含重复元素。Map:可以把键(key)映射到值(value)的对象,键不能重复。...
2018-02-27 20:57:42
1435
原创 进程和线程的区别
进程是执行着的应用程序,线程则是进程内部的一个执行序列。一个进程可以有多个线程。线程又被称轻量级进程。创建线程的方式继承Thread类,实现Runnable接口。实现Runnable接口这种方式更受欢迎,因为这不需要继承Thread类。在应用设计中已经继承了别的对象的情况下,这需要多继承(而Java不支持多继承),只能实现接口。...
2018-02-27 20:52:34
155
原创 什么是值传递和引用传递?
对象被值传递,意味着传递了对象的一个副本。因此,就算改变了对象的副本,也不会影响源对象的值。对象被引用传递,意味着传递的并不是实际的对象,而是对象的引用。因此,外部对引用的对象所作出的改变会反映到所有的对象上面。...
2018-02-27 20:47:26
271
原创 hashcode()和equals()的重要性?
小编今天上午去了一家面试。。。其中笔试题就有关于hashcode()和equals()的重要性。当时我就懵了,所以我回来之后就整理了关于这些。。。Java中HashMap使用hashcode()和equals()来确定键值对的索引,当根据键获取值的时候也会用到这两个方法。如果没有正确使用这两个方法,两个不同的键可能会有相同的hash值,因此,可能会被集合认定为是相等的。而且,这两个方法也会用来发现...
2018-02-27 20:38:38
3850
原创 接口和抽象类的区别是什么?
接口中所有的方法隐含的都是抽象的。而抽象类可以包含抽象和非抽象的方法。类可以实现多个接口,但是只能继承一个抽象类类如果要实现一个接口,它必须要实现接口声明的所有方法。但是,类可以不实现抽象类声明的所有方法,当然,这种情况下,类也必须声明成是抽象的。。抽象类可以在不提供接口方法实现的情况下实现接口。Java接口中声明的变量默认都是final的。抽象类可以包含非final的变量。Java接口中的函数默...
2018-02-26 23:55:21
142
原创 Java中,什么是构造函数?什么是构造函数重载?
当新对象被创建的时候,构造函数会被调用。每一个类都有构造函数。在程序员没有提供构造函数的情况下,Java编译器会为这个类创建一个默认的构造函数。Java中的构造函数重载和方法重载很类似,可以为一个类创建多个构造函数。每一个构造函数都必须有它自己唯一的参数列表...
2018-02-26 23:50:49
5706
原创 Java中的重写(overriding)和重载(overloading)
重载指的是在同一个类中有着两个或者两个以上的同名的方法,但是参数不同的情况。但是,重写则是子类重新定义了父类的方法,重写的方法必须要用相同的方法名、参数相同、返回类型相同的情况...
2018-02-26 23:47:17
529
原创 Java支持的数据类型有哪些,什么是自动拆装箱?
Java语言中支持的8种基本数据类型:byteshortint longfloatdoublebooleanchar自动装箱是Java编译器在基本数据类型和对应的对象包装类型之间做的一个转化。比如int转化成integer,double转化成Double,反之,则是自动拆箱。...
2018-02-26 23:42:28
427
原创 是否可以在static环境中访问非static变
static变量在Java中是属于类的,它在所有实例中的值是一样的。当类被Java虚拟机载入的时候,会对static变量进行初始化
2018-02-26 23:40:14
371
原创 “static”关键字是什么意思?Java中是否可以覆盖(override)一个private 或者是static的方法?
“static”关键字表明一个成员变量或者是成员方法在没有所属的类的实例变量的情况下被访问。Java中static方法不能被覆盖,因为方法覆盖是基于运行时动态绑定的,而static方法是在编译时静态绑定的。static方法跟类的任何实例都不相关。...
2018-02-26 23:37:05
1201
原创 面向对象编程的优点
代码开发模块化,更易维护和修改;代码复用;增强代码的可靠性和灵活性;增强代码的可理解性;面向对象编程的特性:多态:多态是编程语言给不同的底层数据类型做相同的接口展示的一种能力。一个多态类型上的操作可以应用到其他类型的值上面。继承:继承给对象提供了从基类获取字段和方法的能力。继承提供了代码的重用性,也可以在不修改类的情况下给现存的类添加新的特性。抽象:抽象是把想法从具体的实例中分离出来的步骤。因此,...
2018-02-26 23:25:35
1899
原创 SpringMvc比较struts2
1、SpringMVC的入口是servlet,而Struts2的入口是Filter2、SpringMvc会稍微比Struts2要快些,SpringMVC是基于方法设计,而Struts2是基于类设计,每次发一个请求都会实例一个Action3、SpringMvc使用更加简洁,开发效率SpringMVC确实要比Struts2高:支持JSR303,处理ajax的请求更方便4、Struts2的OGNL表达式...
2018-02-26 21:24:09
219
原创 IOC容器对bean的生命周期
1、通过构造器或工厂方法创建bean实例2、为bean的属性设置值和对其他bean的引用3、将bean实例传递给bean后置处理器的postProcessBeforeInitialization方法4、调用bean的初始方法(init-method)5、将bean实例传递给bean后置处理器的postProcessAfterInitialization方法6、bean可以使用了7、当容器关闭时,调...
2018-02-26 21:19:11
657
原创 在spring中如何配置bean
Bean的配置方式:通过全类名(反射)、通过工厂方法(静态工厂方法&实例工厂方法)、FactoryBean
2018-02-26 21:13:23
689
原创 简述AOP和IOC的概念
AOP:面向(方面)切面的编程,Filter(过滤器)也是一种AOP,AOP是一种新的方法论,是对传统OOP的补充,AOP的主要编程对象是切面,而切面模块化横切关注点,可以举例通过事务说明IOC:控制反转也称为DI(依赖注入)其思想是反转资源获取的方向,传统的资源查找方式要求组件向容器发起请求查找资源,作为回应,容器适时的返回资源,而应用了IOC之后,则是容器主动的将推送给它所管理的组件,组件所要...
2018-02-26 14:25:16
9331
1
原创 hibernate的缓存,
hibernate缓存包括一级缓存和二级缓存两大类:1、hibernate一级缓存又称为“session的缓存”,它是内置的,不能被卸载,由于session对象的生命周期通常对应一个数据库事务或者一个应用事务,因此它的缓存是事务范围的缓存。在第一级缓存中,持久化类的每个实例都具有唯一的oid。2、hibernate二级缓存又称为“sessionFactory的缓存”,由于sessionFactor...
2018-02-26 14:01:34
120
原创 hibernate的优缺点
1、优点: a、对jdbc访问数据库的代码作了封装,简化了数据访问层繁琐的重复性代码 b、映射的灵活性,它支持更种关系数据库,从一对一到多对多的各种复杂关系 c、非侵入性、移植性会更好 d、缓存机制:提供了一级缓存和二级缓存2、缺点: a、无法对SQL进行优化 b、框架中使用orm原则,导致配置过于复杂 c、执行效率和原生的jdbc相比偏差,特别是在批量处...
2018-02-26 13:50:43
159
原创 session的清理和清空有什么区别
清理缓存调用的是session.flush()方法,而清空缓存调用的事session.clear()方法。session清理缓存是指按照缓存中对象的状态的变化来同步更新数据库,但不清空缓存;清空是把session的缓存置空,但不同步更新数据库。...
2018-02-26 13:45:29
2505
原创 在hibernate中Java对象的状态有哪些?1、
1、临时状态:不处于session的缓存中,2、持久化状态:加入到了session的缓存中3、游离状态:已经被持久化,但不再处于session的缓存中
2018-02-26 13:41:55
443
转载 servlet的生命周期?
servlet的生命周期分为三个阶段:1、初始化阶段,调用init()方法;2、响应客户请求阶段,调用service()方法;3、终止阶段,调用destroy()方法
2017-12-13 20:20:22
188
翻译 什么时候使用assert
assert(断言)在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制。在实现中,assertion就是在程序中的一条语句,它对一个boolean表达式进行检查,一个正确程序必须保证这个boolean表达式的值为true;如果该值为false,说明程序已经处于不正确的状态下,系统将给出警告或退出。一般来说,assertion用于保证程序最基本、关键的正确性。assertion检查通常在
2017-12-11 22:40:01
471
原创 序列化的相关提问
什么是序列化?如何实现序列化,序列化有什么作用?序列化就是一种用来处理对象流的机制,所谓对象流,就是将对象的内容进行流化,可以对流花后的对象进行读写操作。也可以将流化后的对象传输于网络之间。序列化就是为了解决对象在进行读写操作所引发的问题;序列化的实现:将需要被序列化的类实现serializable接口,该接口没有需要实现的方法,implements serializa
2017-12-06 22:21:00
148
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人