自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

原创 一个String对象到底多大?

一个String对象到底多大?参考:一个java对象到底占用多大内存JAVA对象的组成部分对象头 + 实例数据 + 对齐填充HotSpot的对齐方式为8字节对齐:(对象头 + 实例数据 + padding) % 8等于0且0 <= padding < 8每个组成部分的大小32位和64位系统上对象头的大小是不同的,开启指针压缩后,各部分大小也会有所不同。单位:byte64位指针压缩(-XX:+UseCompressedOops)对象头1612实

2021-12-14 16:36:58 1183

原创 springMVC之ViewResolver与View

写在前面本文阅读源码版本为spring5.3.1。了解ViewResolverViewResolver的作用是根据处理器返回的ModelAndView中的逻辑视图名,为DispatchServlet返回一个可用的View实例。下面是ViewResolver接口public interface ViewResolver { /** * @param 待解析的逻辑视图名 * @param 根据不同的locale返回不同的视图,这对于支持国际化的视图是必要的 */ @Nullable V

2020-12-10 16:56:43 593

原创 spring中关于Order的那点事

写在前面本文阅读源码版本为spring5.3.1为啥要用Orderspring是一个大量使用策略设计模式的框架,这意味着有很多相同接口的实现类,如果不手动指定顺序的话,那么使用时肯定会有问题。而Order给我们提供了一种编码设置顺序的可能。关于Orderspring中提供了多种方式来设置优先级,有Ordered,PriorityOrdered接口,有Order注解,除此之外,spring4.1以后,还可以使用Priority注解。下面我将针对这几种用法从源码的角度来进行分析。Ordered,Pr

2020-12-01 19:32:36 3292

原创 springMVC之RequestBodyAdvice和ResponseBodyAdvice

首先,关于这两个类怎么用,我看了一篇博客觉得还不错,Springboot中RequestBody-Advice与ResponseBodyAdvice的正确使用。这里我主要是想探究一下它们是如何工作的。作用范围RequestBodyAdvice当使用HttpEntity作为请求参数或者使用@RequestBody / @RequestPart注解时,它允许你在请求消息体读取并将其转换成对象的前后作出处理。ResponseBodyAdvice当使用ResponseEntity作为响应参数或者使用

2020-11-28 19:17:54 929

原创 学习Caffeine

Caffeine背景Caffeine 是基于 JAVA 8 的高性能缓存库。并且在 spring5 (springboot 2.x) 后,spring 官方放弃了 Guava,而使用了性能更优秀的 Caffeine 作为默认缓存组件。Caffeine wikiCaffeine配置参数图片来源Caffeine配置参数时可以直接调用对应的方法进行设置,同时也提供了一个简单的字符格式配置,由CaffeineSpec负责解析。这里的字符串语法是一系列由逗号隔开的键值对组成,其中每个键值对对应一个配置

2020-11-25 18:31:40 1306

原创 spring缓存总结

官方中文文档(推荐阅读)启动缓存支持spring对缓存的支持有两种方式:注解驱动的缓存XML声明的缓存注解驱动的缓存JAVA配置@Configuration@EnableCachingpublic class CacheConfig{ //配置缓存管理器 ...}XML配置<cache:annoatation-driven cache-manager="cacheManager"/><!-- 配置缓存管理器... --><bean id="c

2020-11-20 22:45:48 554 1

原创 springMVC请求异步处理之(DeferredResultMethod,ResponseBodyEmitter)ReturnValueHandler

前言在了解StreamingResponseBody,Callable,WebAsyncTask作为Controller方法返回值,针对请求异步处理后,我们再来了解下SpringMVC其他两个支持异步的返回值处理器。DeferredResultMethodReturnValueHandlerDeferredResultMethodReturnValueHandler是处理返回值DeferredResult的,DeferredResult翻译成中文即延迟结果,参看它的源码,可以发现它的功能和WebAsy

2020-11-12 10:19:35 832 2

原创 springMVC请求异步处理之(StreamingResponseBody,CallableMethod,AsyncTaskMethod)ReturnValueHandler

在介绍springMVC请求参数以及返回值解析时了解到几个返回值解析器支持异步处理请求,决定深入的研究一下。支持请求异步处理的返回值解析器StreamingResponseBodyReturnValueHandler /** * @Description: 支持返回值为StreamingResponseBody或 ResponseEntity<StreamingResponseBody> */ public boolean supportsReturnType(MethodPar

2020-11-06 17:50:28 2546

原创 springMVC请求参数以及返回值解析

了解HandlerMethodArgumentResolverHandlerMethodArgumentResolver,顾名思义,handler方法参数解析,它是如何帮助我们实现参数的解析过程的呢?我们先来看一下它定义的接口。public interface HandlerMethodArgumentResolver { // 是否支持参数解析 boolean supportsParameter(MethodParameter parameter); /** * 参数解析,其实如何仅仅只是

2020-10-30 17:41:49 909

原创 spring之Validator

初步认识spring数据验证核心类:①:Validator ②:Errors,两者之间的纽带是Validator中定义的validate方法。public interface Validator { // 限定Validator的职责,不可能所有的校验全部交给一个Validator来做 boolean supports(Class<?> clazz); // 将target校验错误信息放入Errors中 void validate(Object target, Errors er

2020-10-29 19:18:20 4328

原创 springMVC之HandlerExceptionResolver

有关**MARK**部分ResponseBodyAdvice接口的用处,这里不展开了。

2020-10-27 15:52:40 1498

原创 springMVC之HandlerMapping

忙碌的协调人HandlerMappingHandlerMapping帮助DispatcherServlet进行web请求的url到具体处理类的匹配,之所以称为HandlerMapping,是因为处理类在springMVC中都称为Handler(我们通常打交道的都是Controller,但处理器绝不仅仅只能是Controller),但是查看HandlerMapping唯一的接口可以发现返回类型不是Hanlder,而是HandlerExecutionChain,这其实就是Hanlder的包装类而已,包含了一些

2020-09-30 11:25:38 479

原创 springBoot自动配置之HttpEncodingAutoConfiguration

个人笔记,因有道需要会员,就用优快云了,本人菜鸟,欢迎批评。全篇摘抄SpringBoot 技术内幕:架构设计与实现原理。在常规的Web项目中该配置位于web.xml,通过来进行配置。而在Spring Boot中通过内置的HttpEncodingAutoConfiguration来完成这一功能。下面我们具体分析一下该功能都涉及哪些配置和实现。根据前面讲的操作流程,我们先来看一下META-INF/spring.factories中对该自动配置的注册。当完成注册之后,在加载的过程中会使用元数据的配置

2020-09-27 17:45:37 718

原创 springBoot自动配置

个人笔记,因有道需要会员,就用优快云了,本人菜鸟,欢迎批评。spingBoot如何实现自动配置用简单的一句来说,就是SpringBoot通过@EnableAutoConfiguration注解开启自动配置,加载spring.factories中注册的各种AutoConfiguration类。了解@EnableAutoConfiguration在创建SpringBoot启动类的时候我们往往不是直接使用@EnableAutoConfiguration注解,而是使用@SpringBootAppli

2020-09-27 17:32:30 301

原创 web.xml怎么消失的之越陷越深(一)

个人笔记,因有道需要会员,就用优快云了,本人菜鸟,欢迎批评。web.xml最简单配置 <!--1.1--> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <context-param>

2020-09-24 22:00:42 448

原创 web.xml怎么消失的之越陷越深(二)关于ApplicationContextInitializer接口

个人笔记,因有道需要会员,就用优快云了,本人菜鸟,欢迎批评。ApplicationContextInitializer接口是在spring容器刷新之前执行的一个回调函数。通常使用是注册属性源或激活配置public interface ApplicationContextInitializer<C extends ConfigurableApplicationContext> { /** * Initialize the given application context. *

2020-09-24 21:59:02 157

原创 java实现单链表

首先,定义单个节点的数据结构public class Node { Object data; Node next; public Node(Object data) { this.data = data; }}java实现单链表的添加节点,插入节点,删除节点,以及遍历public class MyLinkList { private Node head = new ...

2018-08-08 02:43:51 196

原创 建造者模式

模式动机无论现实世界还是软件世界,都存在一些复杂对象,它们拥有多个组成部分,比如汽车,它包括轮子,引擎等各种部件。对大多数用户而言,无需知道这些部件的装配细节,也几乎不会使用单个部件,而是使用一部汽车,这里可以使用建造者模式对其进行设计与描述。建造者模式可以将部件与其组装过程分开,一步一步创建一个复杂对象。模式结构建造者模式包含如下角色:Builder:抽象建造者ACarBuilder:具体建造者...

2018-06-01 21:42:03 179

原创 抽象工厂

简单工厂以及工厂方法在上篇博客中有提到引言有3家企业依次找到你,让你帮他们设计一个网站,分别用oracle,sql server,mysql作为数据库,这3家企业要求设计网站内容大差不差,如果是你?在刚开始设计网站的时候你会怎么做?用hibernate,更换数据库只需要在配置的时候更换方言就好了,如果没有hibernate呢?那就用jdbc,但是如何设计才能保证工作量小一点呢?工厂方法public...

2018-05-30 21:09:09 172

原创 浅谈工厂模式

引言:在我没学习设计模式之前,让我写一个计算器的小demo,我可能会这么写......public static double getResult(double a,double b,String operate) { double result = 0; switch (operate) { case "+": result = a + b; break; case ...

2018-05-30 15:24:00 510

原创 单例模式

单例模式结构图饿汉式单例类public class Singleton { //static final修饰的变量是唯一不可变的,线程安全 private static final Singleton INSTANCE_SINGLETON = new Singleton(); //构造器私有 private Singleton() {} public static Sing...

2018-05-25 20:27:21 121

转载 (转载)归并排序

原文地址:点击打开链接//归并排序 public static void merge(int[] a, int low, int mid, int high) { int[] temp = new int[high - low + 1]; int i = low;// 左指针[low , mid]是左边的 int j = mid + 1;/...

2018-05-15 01:11:46 135

原创 快速排序

基本思想通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序的目的​​。核心函数分区public static int partition(int[] a, int low, int high) { //用子表的第一个记录作为中枢值 int pivotKey = a[low];...

2018-05-15 01:00:43 109

原创 希尔排序

思想希尔排序是对简单插入排序算法的一个升级,它的思路就是将原有大量数据记录分割成如干个子序列,再分别对子序列进行插入排序,当整个序列基本有序时,再对全体记录做一次插入排序。基本有序:就是小的基本在前面,不大不小基本在中间,大的基本在后面。我们上面提到了将整序列进行分割,那么如何分割将是关键,按顺序分割显然就不合适了,比如我们现在有序列是{9,1,5,8,3,7,4,6,2},现在将它分成三组,{9...

2018-05-14 21:15:29 116

原创 直接插入排序

直接插入排序的基本操作是将一个记录插入到已经排好序的有序表中,从而得到一个新的,记录数增1的有序表。举例:代码public static void insertSort(int[] test) { int target = 0; int j = 0;//记录位置 //假设第一个数已经排好序,被放在了正确的位置上 for (int i = 1; i &lt; test.length;...

2018-05-14 19:31:51 103

原创 简单选择排序

前言爱炒股票短线的人,总是喜欢不断的买进卖出,想通过价差来实现盈利。但通常这种频繁操作的人,即使失误不多,也会因为操作的手续费和印花税过高而获利很少。还有一种做股票的人,他们很少出手,只是在不断的观察和判断,等到时机一到,果断买进或卖出。他们因为冷静和沉着,以及交易的次数少,而最终收益颇丰。冒泡排序的思想就是不断地在交换,通过交换完成最终的排序,这和做股票短线频繁操作的人是类似的。我们可不可以像只...

2018-05-14 18:55:32 142

原创 冒泡排序

思想:两两比较相邻的关键字,如果反序则交换,直到没有反序的记录为止。在了解冒泡排序之前,我们可以实现一个最简单的一个排序。//排序算法中用的比较频繁 public static void swap(int[] test,int i,int j) { int temp = test[i]; test[i] = test[j]; test[j] = temp; }public sta...

2018-05-14 18:21:06 130

原创 堆排序

堆的概念堆是具有下列性质的二叉树:每个节点的值都大于或等于其左右孩子结点的值,成为大顶堆,反之,则是小顶堆。如果按照层序遍历的方式给节点从1开始编号,则结点满足一下关系:K堆排序算法    堆排序就是利用堆(我用的是大顶堆)进行排序的方法。    思想:构造大顶堆后,整个序列的最大值就是堆顶的根结点。移走根结点,然后将剩余的序列重新构造成大顶堆,如此反复,最终将会得到一个有序序列。移走根节点其实就...

2018-05-08 19:43:49 185

原创 excel的导入导出

文章参考:点击打开链接   点击打开链接public class ExcelUtils { //导出时,默认每页显示8条数据 public static final int SPLIT_COUNT = 8; //用Poi导入,获取单元格数据 public static String getCellValue(org.apache.poi.ss.usermodel.Cell cell) {...

2018-03-05 22:15:59 200

原创 利用ajaxSubmit()提交表单后,子窗口关闭,父窗口显示查询页面

问题描述:我在父窗口点击添加用户,弹出子窗口页面,在子窗口填写表单后,点击保存,交给后台,后台保存数据,并查询数据库,将所有用户显示在父窗口中。解决之路:1.我在表单提交之后加上了这么一句:window.close() ,可是加上这一句之后,表单不提交了。2.google之后,看到有网友说要等表单提交之后,再关闭,也给出了解决方案:setTimeout(function(){windo

2018-02-05 00:36:09 2855

空空如也

空空如也

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

TA关注的人

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