![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java技术
记忆中的沉淀
趁着找工作这段时间,经常要复习以前学过的知识,所以,我会经常写一些自己的理解
展开
-
用简洁的话描述一下Spring的IOC和AOP?
IOC就是对象的创建,依赖都是由及配置文件控制;而AOP就是统一的给一些类似的方法加上同样的功能,比如日志,事务等;IOC:控制反转,是一种设计模式。一层含义是控制权的转移;由传统的在程序中控制依赖转移到由容器来控制;第二层是依赖注入:将相互依赖的对象分离,在Spring配置文件中描述他们的依赖关系,他们的依赖关系只在使用时才建立。AOP:面向切面,是一种编程思想,OOP的延续。将系统...原创 2018-07-22 23:54:35 · 2196 阅读 · 0 评论 -
HashMap和Hashtable有什么区别?
HashMap允许键和值是null,而Hashtable则不允许键或者值是null。Hashtable是同步的,而HashMap不是,所以HashMap更适用于单线程环境,Hashtable则适用于多线程环境。...原创 2018-02-27 21:11:44 · 2875 阅读 · 0 评论 -
什么是迭代器(Iterator)?
Iterator接口提供了很多对集合元素进行迭代的方法。每一个集合类都包含了可以返回迭代器实例的迭代方法。迭代器可以在迭代的过程中删除底层集合的元素。...原创 2018-02-27 21:08:38 · 2925 阅读 · 0 评论 -
为什么集合类没有实现Cloneable和Serializable接口?
集合类接口指定了一组叫做元素的对象。集合类接口的每一种具体的实现类都可以选择以它自己的方式对元素进行保存和排序。有些集合类允许重复键,有些则不允许。...原创 2018-02-27 21:00:35 · 1169 阅读 · 0 评论 -
Java集合类的基本接口有哪些?
Collection:代表一组对象,每一个对象都是它的子元素。Set:不包含重复元素的Collection。List:有顺序的Collection,并且可以包含重复元素。Map:可以把键(key)映射到值(value)的对象,键不能重复。...原创 2018-02-27 20:57:42 · 1420 阅读 · 0 评论 -
进程和线程的区别
进程是执行着的应用程序,线程则是进程内部的一个执行序列。一个进程可以有多个线程。线程又被称轻量级进程。创建线程的方式继承Thread类,实现Runnable接口。实现Runnable接口这种方式更受欢迎,因为这不需要继承Thread类。在应用设计中已经继承了别的对象的情况下,这需要多继承(而Java不支持多继承),只能实现接口。...原创 2018-02-27 20:52:34 · 150 阅读 · 0 评论 -
什么是值传递和引用传递?
对象被值传递,意味着传递了对象的一个副本。因此,就算改变了对象的副本,也不会影响源对象的值。对象被引用传递,意味着传递的并不是实际的对象,而是对象的引用。因此,外部对引用的对象所作出的改变会反映到所有的对象上面。...原创 2018-02-27 20:47:26 · 266 阅读 · 0 评论 -
hashcode()和equals()的重要性?
小编今天上午去了一家面试。。。其中笔试题就有关于hashcode()和equals()的重要性。当时我就懵了,所以我回来之后就整理了关于这些。。。Java中HashMap使用hashcode()和equals()来确定键值对的索引,当根据键获取值的时候也会用到这两个方法。如果没有正确使用这两个方法,两个不同的键可能会有相同的hash值,因此,可能会被集合认定为是相等的。而且,这两个方法也会用来发现...原创 2018-02-27 20:38:38 · 3841 阅读 · 0 评论 -
接口和抽象类的区别是什么?
接口中所有的方法隐含的都是抽象的。而抽象类可以包含抽象和非抽象的方法。类可以实现多个接口,但是只能继承一个抽象类类如果要实现一个接口,它必须要实现接口声明的所有方法。但是,类可以不实现抽象类声明的所有方法,当然,这种情况下,类也必须声明成是抽象的。。抽象类可以在不提供接口方法实现的情况下实现接口。Java接口中声明的变量默认都是final的。抽象类可以包含非final的变量。Java接口中的函数默...原创 2018-02-26 23:55:21 · 137 阅读 · 0 评论 -
Java支持多继承吗?
不支持,Java中每个类都只能继承一个类,但可以实现多个接口。。。原创 2018-02-26 23:54:18 · 6106 阅读 · 1 评论 -
数组(Array)和列表(ArrayList)的区别?什么时候应该使用Array?
Array可以包括基本类型和对象类型,而ArrayList只能包括对象类型。Array的大小是固定的,而ArrayList的大小是可以动态变化的。原创 2018-02-27 21:15:13 · 2186 阅读 · 0 评论 -
Java中常见的异常类型是哪两种?他们有什么区别?
Java中有两种异常:受检查的异常(checked)和不受检查的异常(unchecked)。不受检查的异常不需要在方法或者是构造函数上声明,就算是方法或者是构造函数可能会抛出这样的异常,并且不受检查的异常可以传播到方法或者构造函数的外面。相反,受检查的异常必须要用throws语句在方法或者构造函数上声明。...原创 2018-02-27 21:19:51 · 4472 阅读 · 0 评论 -
什么是序列化?
序列化是指将对象转换成字节序列的过程称为对象的序列化,反序列化则是将字节序列恢复为对象的过程对象的序列化通常有两种用途1、把对象的字节序列永久的保存到硬盘上,通常存放到一个文件中2、在网络上传送对象的序列化 ...原创 2018-07-22 23:19:40 · 2019 阅读 · 0 评论 -
谈谈你对spring的理解
1、spring是实现了工厂模式的工厂类,这个类名是BeanFactory(实际上是一个接口),在程序中BeanFactory的子类ApplicationContext。Spring相当于一个大的工厂类,在其配置文件中通过<bean>元素配置用于创建实例对象的类名和实例对象的属性。2、Spring提供了对IOC的良好支持,IOC是一种编程思想,是一种架构艺术,利用这种思想可以很好地实现...原创 2018-07-11 22:10:37 · 7724 阅读 · 0 评论 -
什么是反射?
就是可以在程序运行的时候动态装载类,查看类的信息、生成对象,或操作生成对象。类在运行的时候,可以得到该类的信息,并且可以动态修改该类的信息,也就是说Java的反射机制是在编辑的时候并不确定哪个类被加载了,而是在程序运行的时候才加载、探知、自审,使用在编译期并不知道的类,这样的特点就是反射。...原创 2018-07-11 21:49:47 · 213 阅读 · 0 评论 -
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 · 169 阅读 · 0 评论 -
BeanFactory和ApplicationContext有什么区别?
BeanFactory可以理解为含有bean集合的工厂类。BeanFactory包含了bean的定义,以便在接收到客户端的请求时将对应bean实例化。BeanFactory还能在实例化对象的时候生成协作类之间的关系。此举将bean自身与bean客户端的配置中解放出来。BeanFactory还包含了bean生命周期的控制,调用客户端的初始方法和销毁方法。从表面上看,ApplicationContex...原创 2018-02-28 11:13:50 · 962 阅读 · 1 评论 -
Annoymous Inner Class(匿名内部类)是否可以extends(继承)其他类,是否可以implements(实现)interface(接口)
匿名的内部类是没有名字的内部类,不能extends其他类,但一个内部类可以作为一个接口,由另一个内部类实现。原创 2018-02-27 21:46:55 · 672 阅读 · 0 评论 -
什么时候用assert?
assertion(断言)是软件测试的一种调试方式,很多开发语言都支持这种机制。在实现中,assertion在程序中就是一条语句,assertion对boolean表达式进行检查,一个正确程序中的boolean表达式的值是true的,如果值为false,那么,该程序已经处于不正确的情况下了,系统将给出警告或退出。一般来说,assertion用于保证程序最基本、关键的正确性,assertion在开发...原创 2018-02-27 21:37:23 · 299 阅读 · 0 评论 -
throw和throws有什么区别?
throw关键字用来必须在程序中抛出异常,相反throws语句用来表明方法不能处理的异常。原创 2018-02-27 21:24:34 · 1773 阅读 · 0 评论 -
Java中Exception和Error有什么区别?
Exception和Error都是Throwable的子类。Exception用于用户程序可以捕获的异常情况。Error定义了不期望被用户程序捕获的异常。原创 2018-02-27 21:22:19 · 2906 阅读 · 0 评论 -
Java中,什么是构造函数?什么是构造函数重载?
当新对象被创建的时候,构造函数会被调用。每一个类都有构造函数。在程序员没有提供构造函数的情况下,Java编译器会为这个类创建一个默认的构造函数。Java中的构造函数重载和方法重载很类似,可以为一个类创建多个构造函数。每一个构造函数都必须有它自己唯一的参数列表...原创 2018-02-26 23:50:49 · 5677 阅读 · 0 评论 -
Java中的重写(overriding)和重载(overloading)
重载指的是在同一个类中有着两个或者两个以上的同名的方法,但是参数不同的情况。但是,重写则是子类重新定义了父类的方法,重写的方法必须要用相同的方法名、参数相同、返回类型相同的情况...原创 2018-02-26 23:47:17 · 526 阅读 · 0 评论 -
session的清理和清空有什么区别
清理缓存调用的是session.flush()方法,而清空缓存调用的事session.clear()方法。session清理缓存是指按照缓存中对象的状态的变化来同步更新数据库,但不清空缓存;清空是把session的缓存置空,但不同步更新数据库。...原创 2018-02-26 13:45:29 · 2497 阅读 · 0 评论 -
在hibernate中Java对象的状态有哪些?1、
1、临时状态:不处于session的缓存中,2、持久化状态:加入到了session的缓存中3、游离状态:已经被持久化,但不再处于session的缓存中原创 2018-02-26 13:41:55 · 428 阅读 · 0 评论 -
Hibernate的检索方式有哪些?
1、导航对象图检索2、OID检索3、HQL检索4、QBC检索5、本地SQL检索原创 2018-02-26 13:37:56 · 916 阅读 · 0 评论 -
序列化的相关提问
什么是序列化?如何实现序列化,序列化有什么作用?序列化就是一种用来处理对象流的机制,所谓对象流,就是将对象的内容进行流化,可以对流花后的对象进行读写操作。也可以将流化后的对象传输于网络之间。序列化就是为了解决对象在进行读写操作所引发的问题;序列化的实现:将需要被序列化的类实现serializable接口,该接口没有需要实现的方法,implements serializa原创 2017-12-06 22:21:00 · 142 阅读 · 0 评论 -
servlet的生命周期?
servlet的生命周期分为三个阶段:1、初始化阶段,调用init()方法;2、响应客户请求阶段,调用service()方法;3、终止阶段,调用destroy()方法转载 2017-12-13 20:20:22 · 171 阅读 · 0 评论 -
forward和redirect的区别
java常见面试题之forward和redirect的区别直接转发方式(forward):客户端和浏览器只发出一次请求,servlet、HTML、jsp或其它信息资源,由第二个信息资源相应该请求,在请求对象request中,保存的对象对于每个信息资源是共享的。间接转发方法(redirect):实际是两次http请求,服务器端在响应第一次请求时,让浏览器再向另一个URL发送请原创 2017-12-04 00:07:47 · 122 阅读 · 0 评论 -
个人理解的关于final、finally、finalize
如下final修饰的类不能被继承,修饰的变量,值是不能被修改的,声明的方法也只能使用,不能被重载finally是异常处理时finally来执行清除操作,而且不管在try中异常有没有发生,finally快都会被执行的finalize是方法名,这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象的调用原创 2017-12-03 23:12:08 · 139 阅读 · 0 评论 -
关于值传递和引用传递
当一个对象被当做参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?答:是值传递,java编程语言中,只有值传递参数的。当一个对象实作为一个参数被传递到一个方法中,参数的值就是该对象的引用。对象的内容可以在被调用的方法中改变,但对象的引用时不会变的。那么到这里,我们就不会不由自主的想到,那关于值传递和引用传递,这翻译 2017-12-03 23:06:21 · 126 阅读 · 0 评论 -
简述你理解的java中的接口和抽象类的区别(五点)
1、一个类可以实现多个接口,但是却只能继承最多一个抽象类;2、抽象类可以包含具体的方法,接口的所有方法都是抽象的;3、抽象类可以声明和使用字段;接口则不能,但接口可以创静态的final常量;4、接口的方法都是public的,抽象类的方法可以使public,private,protecte或者是默认的packag;5、抽象类可以定义构造函数,但是接口不行。转载 2017-12-03 22:55:09 · 9674 阅读 · 0 评论 -
hibernate的优缺点
1、优点: a、对jdbc访问数据库的代码作了封装,简化了数据访问层繁琐的重复性代码 b、映射的灵活性,它支持更种关系数据库,从一对一到多对多的各种复杂关系 c、非侵入性、移植性会更好 d、缓存机制:提供了一级缓存和二级缓存2、缺点: a、无法对SQL进行优化 b、框架中使用orm原则,导致配置过于复杂 c、执行效率和原生的jdbc相比偏差,特别是在批量处...原创 2018-02-26 13:50:43 · 153 阅读 · 0 评论 -
hibernate的缓存,
hibernate缓存包括一级缓存和二级缓存两大类:1、hibernate一级缓存又称为“session的缓存”,它是内置的,不能被卸载,由于session对象的生命周期通常对应一个数据库事务或者一个应用事务,因此它的缓存是事务范围的缓存。在第一级缓存中,持久化类的每个实例都具有唯一的oid。2、hibernate二级缓存又称为“sessionFactory的缓存”,由于sessionFactor...原创 2018-02-26 14:01:34 · 113 阅读 · 0 评论 -
Java支持的数据类型有哪些,什么是自动拆装箱?
Java语言中支持的8种基本数据类型:byteshortint longfloatdoublebooleanchar自动装箱是Java编译器在基本数据类型和对应的对象包装类型之间做的一个转化。比如int转化成integer,double转化成Double,反之,则是自动拆箱。...原创 2018-02-26 23:42:28 · 413 阅读 · 0 评论 -
是否可以在static环境中访问非static变
static变量在Java中是属于类的,它在所有实例中的值是一样的。当类被Java虚拟机载入的时候,会对static变量进行初始化原创 2018-02-26 23:40:14 · 365 阅读 · 0 评论 -
“static”关键字是什么意思?Java中是否可以覆盖(override)一个private 或者是static的方法?
“static”关键字表明一个成员变量或者是成员方法在没有所属的类的实例变量的情况下被访问。Java中static方法不能被覆盖,因为方法覆盖是基于运行时动态绑定的,而static方法是在编译时静态绑定的。static方法跟类的任何实例都不相关。...原创 2018-02-26 23:37:05 · 1185 阅读 · 0 评论 -
面向对象编程的优点
代码开发模块化,更易维护和修改;代码复用;增强代码的可靠性和灵活性;增强代码的可理解性;面向对象编程的特性:多态:多态是编程语言给不同的底层数据类型做相同的接口展示的一种能力。一个多态类型上的操作可以应用到其他类型的值上面。继承:继承给对象提供了从基类获取字段和方法的能力。继承提供了代码的重用性,也可以在不修改类的情况下给现存的类添加新的特性。抽象:抽象是把想法从具体的实例中分离出来的步骤。因此,...原创 2018-02-26 23:25:35 · 1876 阅读 · 0 评论 -
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 · 202 阅读 · 0 评论 -
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 · 654 阅读 · 0 评论