框架进阶
文章平均质量分 83
solorCat
这个作者很懒,什么都没留下…
展开
-
框架阶段面试题
框架阶段面试题1.springMVC的五大组件和请求响应流程2.springIOC的原理(概念,如何创建和管理对象的,依赖注入的方式)3.AOP的原理(概念,代理机制,应用场景,几大通知的执行顺序)4.mybatis的核心对象,$和#的区别,mybatis的事务处理5.spring的常用注解及其作用6.spring的事务管理(声明式,编程式)7.springboot有啥优点8.对RESTFUL有何理解...原创 2020-09-05 17:33:56 · 691 阅读 · 0 评论 -
Spring @Value
@Value注入不通过配置文件的注入属性的情况通过@Value将外部的值动态注入到Bean中,使用的情况有:注入普通字符串注入操作系统属性注入表达式结果注入其他Bean属性:注入beanInject对象的属性another注入文件资源注入URL资源详细代码见:@Value("normal") private String normal; // 注入普通字符串 @Value("#{systemProperties['os.name']}") private Str原创 2020-07-29 09:48:02 · 90 阅读 · 0 评论 -
SpringBoot与SpringMVC的区别
Spring 框架就像一个家族,有众多衍生产品例如 boot、security、jpa等等。但他们的基础都是Spring 的 ioc和 aop。ioc 提供了依赖注入的容器 。aop 解决了面向横切面的编程,然后在此两者的基础上实现了其他延伸产品的高级功能。 Spring MVC是基于 Servlet 的一个 MVC 框架 主要解决 WEB 开发的问题,因为 Spri...原创 2020-01-05 09:11:07 · 118 阅读 · 0 评论 -
mybatis中的连接对象何时创建?何时关闭?
1)SqlSession对象创建时连接创建吗?不创建jdbc事务开启之前,在执行具体业务的时候创建连接2)SqlSession对象关闭连接关闭吗?关闭->>连接放回连接池...原创 2019-11-15 15:41:50 · 1901 阅读 · 0 评论 -
Java单例设计
需求一: 保证类的实例在一个JVM内部只有一份(多线程共享)解决方案 1)确保类的外界最好不能直接构建对象 2)将类的实例放在池中?(整数池,字符串池,...)方案落地:方案1:类加载时创建实例对象,应用场景:小对象(占用内存比较小)--->饿汉式(线程安全,调用效率高,但是不能延时加载):class Singleton01{ //private ...原创 2019-11-13 17:52:23 · 105 阅读 · 0 评论 -
Volatile是如何来保证可见性?
在x86处理器下通过工具获取JIT编译器生成的汇编指令来看看对Volatile进行写操作CPU会做什么事情。 Java代码: instance = new Singleton();//instance是volatile变量 汇编代码: 0x01a3de1d: movb $0x0,0x1104800(%esi); 0x...转载 2019-11-13 17:04:34 · 979 阅读 · 0 评论 -
Java并发编程:深入剖析ThreadLocal
参考文章原创 2019-11-11 17:56:43 · 82 阅读 · 0 评论 -
基于kryo完成对象的序列化和反序列化
Step01:定义mail类:package com.java.serializable;import java.io.Serializable;import java.util.Date;public class Mail implements Serializable{ private static final long serialVersionUID = 65991666...原创 2019-11-11 16:51:01 · 560 阅读 · 0 评论 -
基于Hession完成对象的序列化和反序列化
Step01:定义mail类:public class Mail implements Serializable{ private static final long serialVersionUID = 6599166688654530165L; private Integer id; private String title; private String content; p...原创 2019-11-11 14:10:52 · 266 阅读 · 0 评论 -
Java中的默认序列化存在安全问题如何解决?
Java中的默认序列化是存在一些安全问题的,例如对象序列化以后的字节通过网络传输,有可能在网络中被截取。那如何保证数据安全呢?通常可以在对象序列化时对对象内容进行加密,对象反序列化时对内容进行解密。具体实现过程分析:在序列化对象中添加writeObject(ObjectOutpuStream out)方法对内容进行加密再执行序列化。 在序列化对象中添加readObject(ObjectI...原创 2019-11-10 21:45:37 · 1287 阅读 · 1 评论 -
基于”数组”结构写一个”FIFO”算法的队列容器
FIFO( First Input First Output)简单说就是指先进先出.类名:Container<T> 方法:add(T t),take()实现分析:添加操作实现分析:取操作实现/** * 创建一个容器(队列容器) * 1)数据结构:数组(线性结构) * 2)算法:FIFO */class ArrayContainer<T>{...原创 2019-11-10 14:18:47 · 276 阅读 · 0 评论 -
System.arraycopy()和Arrays.copyOf()的区别
先看看System.arraycopy()的声明:public static native void arraycopy(Object src,int srcPos, Object dest, int destPos,int length);src - 源数组。srcPos - 源数组中的起始位置。dest - 目标数组。destPos - 目标数据中的起始位置。leng...原创 2019-11-10 14:13:38 · 167 阅读 · 0 评论 -
Java中泛型理解及泛型相关面试题
1.为什么需要泛型先看下面的代码:List list = new ArrayList();list.add("CSDN_SEU_Calvin");list.add(100);for (int i = 0; i < list.size(); i++) { String name = (String) list.get(i); //取出Integer时,运行时出现异常 Sy...转载 2019-11-10 11:12:47 · 385 阅读 · 0 评论 -
基于LinkedHashMap实现一个LRU算法的Cahce对象
LRU是什么?按照英文的直接原义就是Least Recently Used,最近最久未使用法,它是按照一个非常著名的计算机操作系统基础理论得来的:最近使用的页面数据会在未来一段时期内仍然被使用,已经很久没有使用的页面很有可能在未来较长的一段时间内仍然不会被使用。基于这个思想,会存在一种缓存淘汰机制,每次从内存中找到最久未使用的数据然后置换出来,从而存入新的数据!它的主要衡量指标是使用的时间,附加指...原创 2019-11-09 16:38:26 · 365 阅读 · 0 评论 -
六大原则之“开闭原则(OCP)“
定义开闭原则,英文缩写OCP,全称Open Closed Principle。原始定义:Software entities (classes, modules, functions) should be open for extension but closed for modification。字面翻译:软件实体(包括类、模块、功能等)应该对扩展开放,但是对修改关闭。为什么要“...转载 2019-11-09 15:20:58 · 626 阅读 · 0 评论 -
访问类中的static final 成员时,一定会执行类加载吗?
答案是:不一定执行如下代码:package com.java.oop;import java.util.Date;//-XX:+TraceClassLoadingclass ClassDD{ public static final int count=100; public static final String LOCK="LOCK"; public static fi...原创 2019-11-08 22:42:38 · 2043 阅读 · 2 评论 -
Java类的生命周期,Java对象创建时代码(静态方法,成员方法,构造方法等)的加载顺序
Java中类的生命周期为加载、连接、初始化、使用和卸载五个过程,如下图所示:1.加载 我们编写一个java类的代码,经过编译之后生成一个后缀名为.class的文件,java虚拟机就能识别这种文件。java的生命周期就是class文件从加载到消亡的过程。 关于加载,其实,就是从源文件的class文件找到类的信息将其加载到方法区中,然后在堆区中实例化一个java.lang.Class...转载 2019-11-08 21:23:00 · 603 阅读 · 0 评论 -
类加载时静态成员执行顺序&new 对象时对象成员的执行顺序
执行如下代码:package com.java.oop;class ClassCC{ static ClassCC instance=new ClassCC(); static { System.out.println("static{}"); } public ClassCC() { System.out.println("ClassCC()"); }}public...原创 2019-11-08 19:45:48 · 662 阅读 · 0 评论 -
延迟加载小案例
package com.java.oop;class ClassAA{ static Integer count1=100; static class InnerAA{ static Integer count2=200;//延迟加载 static { System.out.println("InnerAA"); } }}public class TestClas...原创 2019-11-08 15:58:14 · 153 阅读 · 0 评论 -
构建一对象工厂对象,此工厂可以基于类的字节码对象 ,构建类的实例对象.
package com.java.oop;import java.util.Date;//构建一对象工厂对象,此工厂可以基于类的字节码对象//构建类的实例对象.class ObjectFactory{//对象工厂 public static Object newInstance( Class<?> cls) throws Exception{ //基于字节码对象创...原创 2019-11-08 13:04:20 · 151 阅读 · 0 评论 -
Java类初始化顺序改错
package com.java.oop;import java.util.HashMap;import java.util.Map;class ClassE{ static ClassE instance=new ClassE(); static Map<String,Object> pool=new HashMap<>(); public ClassE()...原创 2019-11-08 12:56:56 · 195 阅读 · 0 评论 -
Java类加载时一定会执行静态代码块吗?
答案是:不一定!1.如下代码运行:package com.java.oop;/** * 类加载时一定会执行静态代码块吗?不一定 */class ClassC{ static { System.out.println("ClassC.static"); }}class ClassD extends ClassC{ static { System.out.print...原创 2019-11-08 12:13:47 · 2551 阅读 · 0 评论 -
JVM双亲委派机制
你得先知道在介绍双亲委派机制的时候,不得不提ClassLoader。说ClassLoader之前,我们得先了解下Java的基本知识。 Java是运行在Java的虚拟机(JVM)中的,但是它是怎么就运行在JVM中了呢?我们在IDE中编写的Java源代码被编译器编译成.class的字节码文件。然后由我们得ClassLoader负责将这些class问价加载到JVM中去执行。 ...转载 2019-11-08 10:55:16 · 246 阅读 · 0 评论