随笔分类 - Java
The description for Java.
摘要:首先 实现Serializable接口的目的是为类可持久化,在网络中进行传输. SerialVersionUID 适用于java序列化的机制,用这个东西来进行版本一致性的验证. 如果是一致的就能实现序列化,如果不一致就会报异常. SerialVersionUID有两种显式地生成方式: 一是默认的1L
阅读全文
posted @ 2019-06-27 14:43
xiejiachen
摘要:线程和进程的概念,并行和并发的概念 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织
阅读全文
posted @ 2019-06-01 21:03
xiejiachen
摘要:List 和 Set 区别 List:1.可以允许重复的对象。 2.可以插入多个null元素。 3.是一个有序容器,保持了每个元素的插入顺序,输出的顺序就是插入的顺序。 4.常用的实现类有 ArrayList、LinkedList 和 Vector。ArrayList 最为流行,它提供了使用索引的随
阅读全文
posted @ 2019-05-31 11:40
xiejiachen
摘要:面向对象的特征: 继承、封装和多态 封装 : 把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象去操作.对不可信的信息进行隐藏. 继承: 它可以使用现有类的功能,并在无需重新编写原来的类的情况下对这些功能进行扩展. 多态: 允许你将福对象设置成为和一个更多的他的子对象相等的技
阅读全文
posted @ 2019-05-30 16:08
xiejiachen
摘要:1、什么是延迟加载 延迟加载的实例:如果查询订单并且关联查询用户信息。如果先查询订单信息即可满足要求,当我们需要查询用户信息时再查询用户信息。把对用户信息的按需去查询就是延迟加载。 2、如何开启延迟加载功能 配置 3、延迟加载的resultMap resultMap代码 : 4、延迟加载的mappe
阅读全文
posted @ 2019-05-28 21:21
xiejiachen
摘要:什么是Redis? Redis 是一个使用 C 语言写成的,开源的 key-value 数据库。。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据
阅读全文
posted @ 2019-05-28 21:02
xiejiachen
摘要:使用场景 直接定位到 ThreadLocal 的源码,可以看到源码注释中有很清楚的解释:它是线程的局部变量,这些变量只能在这个线程内被读写,在其他线程内是无法访问的。 ThreadLocal 定义的通常是与线程关联的私有静态字段(例如,用户ID或事务ID)。 变量有局部的还有全局的,局部变量没什么好
阅读全文
posted @ 2019-05-28 18:53
xiejiachen
摘要:static 是静态修饰关键字,可以修饰变量和程序块以及类方法: 当定义一个static的变量的时候jvm会将将其分配在内存堆上,所有程序对它的引用都会指向这一个地址而不会重新分配内存; 当修饰一个程序块的时候(也就是直接将代码写在static{...}中)时候,虚拟机就会优先加载静态块中代码,这主
阅读全文
posted @ 2019-05-28 15:10
xiejiachen
摘要:1. Java中导致死锁的原因 Java中死锁最简单的情况是,一个线程T1持有锁L1并且申请获得锁L2,而另一个线程T2持有锁L2并且申请获得锁L1,因为默认的锁申请操作都是阻塞的,所以线程T1和T2永远被阻塞了。导致了死锁。这是最容易理解也是最简单的死锁的形式。但是实际环境中的死锁往往比这个复杂的
阅读全文
posted @ 2019-05-28 14:19
xiejiachen
摘要:Spring 并不直接支持事务,只有当数据库支持事务时,Spring 才支持事务,Spring 只不过简化了开发人员实现事务的步骤。 Spring 提供了两种方式实现事务。 声明式和编程式。 如何选择 当需要用到事务操作的地方很少的时候,那么就可以使用编程方式 TransactionTemplate
阅读全文
posted @ 2019-05-27 14:38
xiejiachen
摘要:一、原理区别:java动态代理是利用反射机制生成一个实现代理接口的匿名类,在调用具体方法前调用InvokeHandler来处理。 而cglib动态代理是利用asm开源包,对代理对象类的class文件加载进来,通过修改其字节码生成子类来处理。 1、如果目标对象实现了接口,默认情况下会采用JDK的动态代
阅读全文
posted @ 2019-05-27 14:12
xiejiachen
摘要:什么是AOP 它利用一种称为“横切”的技术,剖解开封装的对象内部,并将那些影响了多个类的公共行为封装到一个可重用模块,并将其名为“Aspect”,即方面。所谓“方面”,简单地说,就是将那些与业务无关,却为业务模块所共同调用的逻辑或责任封装起来,便于减少系统的重复代码,降低模块间的耦合度,并有利于未来
阅读全文
posted @ 2019-05-27 14:02
xiejiachen
摘要:当通过Spring容器创建一个Bean实例时,不仅可以完成Bean实例的实例化,还可以为Bean指定特定的作用域。Spring支持如下5种作用域: singleton:单例模式,在整个Spring IoC容器中,使用singleton定义的Bean将只有一个实例 prototype:原型模式,每次通
阅读全文
posted @ 2019-05-27 11:35
xiejiachen
摘要:1.1、IoC是什么 Ioc—Inversion of Control,即“控制反转”,不是什么技术,而是一种设计思想。在Java开发中,Ioc意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。如何理解好Ioc呢?理解好Ioc的关键是要明确“谁控制谁,控制什么,为何是反转(有反
阅读全文
posted @ 2019-05-27 11:25
xiejiachen
摘要:Bean实例生命周期的执行过程如下: Spring对bean进行实例化,默认bean是单例; Spring对bean进行依赖注入; 如果bean实现了BeanNameAware接口,spring将bean的id传给setBeanName()方法; 如果bean实现了BeanFactoryAware接
阅读全文
posted @ 2019-05-27 10:51
xiejiachen
摘要:BeanFacotry是spring中比较原始的Factory。如XMLBeanFactory就是一种典型的BeanFactory。原始的BeanFactory无法支持spring的许多插件,如AOP功能、Web应用等。 ApplicationContext接口,它由BeanFactory接口派生而
阅读全文
posted @ 2019-05-27 09:49
xiejiachen
摘要:1)创建类的实例,也就是new一个对象 2)访问某个类或接口的静态变量,或者对该静态变量赋值 3)调用类的静态方法 4)反射(Class.forName("com.lyj.load")) 5)初始化一个类的子类(会首先初始化子类的父类) 6)JVM启动时标明的启动类,即文件名和类名相同的那个类 只有
阅读全文
posted @ 2019-05-26 20:29
xiejiachen
摘要:1. Java的类加载器的种类都有哪些? 1、根类加载器(Bootstrap) --C++写的 ,看不到源码 2、扩展类加载器(Extension) --加载位置 :jre\lib\ext中 3、系统(应用)类加载器(System\App) --加载位置 :classpath中 4、自定义加载器(必
阅读全文
posted @ 2019-05-24 22:02
xiejiachen
摘要:通常我们定义一个基本数据类型的变量,一个对象的引用,还有就是函数调用的现场保存都使用 JVM 中的栈空间;而通过new关键字和构造器创建的对象则放在堆空间,堆是垃圾收集器管理的主要区域,由于现在的垃圾收集器都采用分代收集算法,所以堆空间还可以细分为新生代和老生代,再具体一点可以分为 Eden、Sur
阅读全文
posted @ 2019-05-24 21:42
xiejiachen
摘要:将从以下几个方面阐述堆(heap)和栈(stack)的区别。 1. 申请方式 stack:由系统自动分配。例如,声明在函数中一个局部变量 int b; 系统自动在栈中为b开辟空间 heap:需要程序员自己申请,并指明大小,在c中malloc函数,对于Java需要手动new Object()的形式开辟
阅读全文
posted @ 2019-05-24 21:37
xiejiachen

浙公网安备 33010602011771号