自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Spring接收到的时间和前端相差8小时

在java.util.Calendar#getTime方法中,会进行时区的判断并对其进行处理,如果没有手动设置时区,系统会取UTC时区,而在保存数据库,或者你输出的时候,使用的都是我们当前机器所在的时区,也就是东8区,因此会加8个小时。后端使用Spring接收参数,用@ResquestBody接收请求入参,前端传参一日期类型的参数为“2022-12-30”,后端接收到以后打印的值为“2022-12-30 08:00:00”,后端比前端提前8小时。第一种:在指定字段上加@JSonFormat注解并设置时区。

2023-01-18 11:40:09 814

原创 Spring MVC如何适配各种模板引擎?

通过以上对Spring MVC适配四种不同模板引擎的方式分析发现,不同的模板引擎通过在不同的层次重写视图解析的方法实现了自己对Spring MVC的接入。而Spring MVC负责提供ViewResolver接口,供第三方工具实现,只要实现ViewResolver接口中的方法,就可以将自己渲染的页面接入到Spring框架中。当第三方工具接入自己以后,扫描已经接入的类,使用策略模式匹配到相应的工具上,从而实现对不通模板引擎的适配。

2023-01-17 14:49:42 400

原创 Maven中POM文件详解

pom文件的概念,pom文件中标签的意义

2022-11-10 23:57:03 341

原创 优雅写代码之Spring MVC中的策略模式

收藏优雅的代码片段待将来使用

2022-11-07 00:37:19 173

原创 Spring MVC如何工作?

那么,我们的入参有各种各样的类型和形式,例如有使用@RequestParam,有@PathVariable,也有@RequestBody,Spring MVC是怎样统一处理不同类型的入参的,关键代码就在上面这个方法的第一行中。从上面的代码中可以看出,获取请求的每个参数,根据他使用的注解找到对应的参数解析器,对参数进行解析。从下面这段代码可以看出,要调用我们自己写的Controller中的方法,最终还是使用的反射。,继续我的好奇之旅。这一篇简单的介绍一下Spring MVC是如何工作的。

2022-11-01 23:54:59 51

原创 Sevlet的前世今生

Servlet是用Java编写的服务器端程序。主要功能是处理客户端的请求并返回给客户端结果,动态地生成Web内容。什么是Servlet到此为止,我们可以看到Servlet是一种规范,也可以是一个运行在服务端的Java小程序,这并不冲突。那么如何让一种规范落地变成一种可以运行的程序呢?用程序猿的话来讲就是?你写一个接口呀,大家都来实现不就完了。Java EE接口文档,进入以后搜索这个类名找到这个类,开始你对Servlet的认知吧。

2022-10-20 23:26:45 107

原创 Maven学习

Maven学习Maven是项目构建工具,用来管理依赖。Maven的好处同样的代码,实现的功能一样,Maven占的空间很小。Maven没有jar包,它使用jar包仓库(maven仓库)中的jar包。它根据坐标来寻找jar包。jar包坐标格式:公司名称+项目名称+版本信息。Maven项目需要某一个jar包,只需要在项目中配置需要jar包的坐标信息,Maven程序根据坐标在仓库中查找jar包。M...

2020-03-16 11:06:06 87

原创 redis相关知识

redis常用命令key操作DEL:删除key,del key1 key2EXISTS:检查key是否存在,exists keyEXPIRE:设置或更新到期时间,到期后自动清除,单位秒,设置为-1表示永不过期。expire keyTTL:以秒为单位,返回给定key的剩余生存时间KEYS:查看所有keyString操作GET:获取SET:设置SETNX:只有在key不存在时...

2020-03-15 16:14:44 93

原创 类加载器

类加载器类加载器是什么把.class文件加载到JVM的方法区中,变成一个Class对象。得到类加载器Class#ClassLoader()类加载器的分类引导:类库扩展:扩展jar包系统:应用下的Class,包含开发人员写的类,和第三方jar包。classpath下的类。三类引导分层次。自引导由上往下分层。类的解析过程class MyApp {//由系统加载 main()...

2020-03-15 12:05:34 87

原创 动态代理

动态代理一个方法方法的作用:在运行时,动态创建一组指定的接口的实现类对象。(在运行时,创建实现了一组接口的对象)interface A {}interface B {}//o实现了A和B两个接口Object o = 方法(new Class[] {A.class, B.class})//该方法如下:Proxy.newProxyInstance( ClassLoader loade...

2020-03-14 22:13:05 66

原创 JSP中的九大内置对象

JSP中的九大内置对象out:jsp的输出流,用来向客户端响应。page:当前jsp对象。它的引用类型是Object,即Object page = this。config:对应ServletConfig对象。pageContext:一个顶九个。request:HttpServletRequest类型。response:HttpServletResponse类型。exception:...

2020-02-14 15:49:36 111

原创 请求转发和重定向的区别

请求转发和重定向的区别请求转发是一次请求一次响应,重定向是两次请求两次响应;请求转发地址栏不变,重定向会显示后一个请求的地址;请求转发只能转发到本项目其他Servlet,重定向还可以重定向到其他项目中的Servlet;请求转发是服务端行为,只需要给出转发的Servlet路径,而重定向需要给出requestURI,即包含项目名!请求转发的效率更高,因为是一个请求!二者都可以使用时,选择请...

2020-02-12 18:34:53 167

原创 DOM解析方式的一些概念

DOM解析方式的一些概念DOM:Document Object Model(文档对象模型)用来将标记型文档封装成对象,并将标记型文档中的所以内容(标签,文本,属性等)都封装成对象目的:为了更为方便地操作这些文档以及文档中的所有内容,因为对象的出现,就可以有属性和行为被调用。文档对象模型文档:标记型文档对象:封装了属性和行为的实体,可以直接调用模型:所有标记型给文档都具备一些共性特征的...

2019-12-30 22:15:22 270

原创 CSS相关的一些内容

CSS和HTML相结合的方式每一个HTML标签中都有一个style样式属性,该属性的值就是CSS代码。使用style标签的方式。一般定义在head标签中。导入CSS代码方式。使用HTML中head标签中的link标签。CSS代码格式选择器名称 { 属性名:属性值;属性名:属性值;…}选择器HTML标签名选择器。例:div { }class选择器,使用标签中的class属性。...

2019-12-26 21:05:52 68

原创 GET提交和POST提交的区别

GET提交和POST提交的区别GET提交,提交的信息都显示在地址栏中。POST提交,提交的信息不显示在地址栏中。GET提交,对于敏感数据不安全。POST提交,对于敏感信息安全。GET提交,对于大数据不行,因为地址栏存储空间有限。POST提交,可以提交大量数据。GET提交,将信息封装到了请求消息的请求行中。POST提交,将信息封装到了请求体中。在服务端的区别  如果将中文提交...

2019-12-26 18:00:01 152

原创 正则表达式

正则表达式  正则表达式主要用于操作字符串数据,它通过一些特定的符号来体现。为了掌握正则表达式,我们必须学习这些符号。缺点:虽然简化了形式,但阅读性变差了。正则表达式对字符串的常见操作:匹配  String类中的matches方法。切割  String类中的split方法。替换  使用String类中的replaceAll方法。获取 /* * 获取 *...

2019-12-25 21:07:28 58

原创 反射机制

Java中的反射机制  Java反射机制是在运行状态中,对任意一个类(class文件),都能够知道这个类的所有属性和方法;对任意一个对象,都能调用它的任意一个方法和属性。这种动态获取信息以及动态调用对象的功能称为Java语言的反射机制。可以理解为对类的解剖。必须获取字节码文件对象。获取字节码文件对象的方式Object类中的getClasss方法。要想使用这种方法,必须明确具体的类,并创建对...

2019-12-24 22:14:43 59

原创 IO流

字符流的由来  字节流读取文字字节数据后,不直接进行操作而是先查指定的编码表,获取对应的文字。再对这个文字进行操作。简单讲:字节流+编码表。字节流的两个顶层抽象基类InputStreamOutputStream字符流的两个顶层抽象基类ReaderWriter这些体系的子类都以父类名作为后缀,而且,子类名的前缀就是该对象的功能。将一些文字存储到硬盘中的一个文件中记住:如果...

2019-12-10 21:27:53 59

原创 关于日期对象

日期对象和毫秒值之间的转换毫秒值–>日期对象:原因:对该日期中的元素进行操作。通过Date对象的构造方法完成 new Date(timeMillis);还可以通过setTime设置。日期对象–>毫秒值:原因:可以通过具体的数值进行计算。getTime方法。日期对象和字符串之间的转换日期对象–>日期格式的字符串。使用DateFormat类中的format方...

2019-12-09 22:14:45 71

原创 泛型

Java中的泛型:jdk1.5出现的安全机制。好处:将运行时期出现的问题ClassCastException转到了编译时期。避免了强制转换的麻烦。“ <>”什么时候用?  当操作的引用数据类型不确定的时候,使用“<>”。将要操作的引用数据类型传入即可。其实,“<>”就是一个用于接收具体引用数据类型的参数范围。在程序中,只要用到了带有“<&gt...

2019-12-06 19:03:25 86

原创 集合的一些概念

集合类的由来对象用于封装特有数据,对象多了需要存储,如果对象的个数不确定,就是用集合容器进行存储。集合特点用于存储对象的容器;集合的长度可变;集合中不可以存储基本数据类型值。集合容器因为内部数据结构不同,有多种具体容器。不断地向上抽取形成了集合框架。框架的顶层为Collection接口。Collection的常见方法:添加。boolean add(Object obj);...

2019-12-03 16:20:58 146

原创 Java的异常体系

Java的异常分为两大类。Throwable:无论是Error,还是异常,都可以抛出,告知调用者并处理。该体系的特点在于Throwable及其所有的子类都具有可抛性。 |----1.不可处理的。Error类 特点:是由JVM抛出的严重性问题。一般不做针对性处理,应直接修改程序。 |----2.可以处理的。Exception类。...

2019-11-09 18:01:02 36

原创 多态时成员的特点

成员变量:编译时:参考引用型变量所属的类中是否有调用的成员变量。有, 编译通过;没有,编译失败。运行时:参考引用型变量所属的类中是否有调用的成员变量,并运行该所属类中的成员变量。简单讲:编译和运行都参考等号左边。成员函数:编译时:参考引用型变量所属的类中是否有调用的函数。有,编译通过,没有,编译失败。运行时:参考对象所属类中是否有调用的函数。简单讲:编译看左边,运行看右边。静态函...

2019-11-08 11:48:18 55

原创 抽象类和接口的异同点

相同点:都是不断向上抽取而来。不同点:抽象类需要被继承,而且只能单继承。接口需要被实现,而且可以多实现。抽象类中可以定义抽象方法和非抽象方法,子类继承后,可以直接使用非抽象方法。接口中只能定义抽象方法,必须由子类实现。抽象类的继承,是“is a”关系,在定义该体系的基本共性内容。接口的实现,是“like a”关系,在定义体系的额外功能。...

2019-11-04 21:37:16 53

原创 一个对象实例化的过程

一个对象实例化的过程如下:Person p = new Person();JVM会读取指定的路径下的Person.class文件,并加载进内存,且会先加载Person的父类(如果有直接父类的情况下)。在堆内存地址中开辟空间并分配地址。在对象空间中,对对象中的属性进行默认初始化。调用对应的构造函数进行初始化。在构造函数的第一行,先调用父类中的构造函数进行初始化。父类初始化完毕后,再...

2019-11-01 19:06:23 416

原创 23种设计模式

设计模式一——单例设计模式解决的问题,就是一个了类在内存中的对象唯一性。必须对多个程序使用同一个配置信息对象时,需要保证该对象的唯一性。如何保证对象唯一性呢?不允许其他程序用new创建该类对象。在该类中创建一个本类实例。对外提供一个方法让其他程序可以或许该对象。步骤私有化该类的构造函数。通过new在本类中创建一个本类对象。定义一个公有方法将创建对象返回。class S......

2019-10-26 15:44:47 152

原创 文档注释

一个文档注释的例子/**建立一个用于。。。。的工具类。其中包含。。。@author 张三@version v1.0@...*//**获取整形数组最大值。@param arr 接收一个元素为int类型的数组@return 该数组的最大值的元素@...*/前提:*.java 必须是公共类javadoc -d .(当前目录)/myhelp(自己起的文件夹名) -author...

2019-10-26 15:03:23 203

原创 static关键字

static的特点static是一个修饰符,用于修饰成员。static修饰的成员被所有对象共享。static优先于对象存在,因为static的成员随着类的加载而存在。static修饰的成员多了一种调用方式,可以直接被类名调用。调用格式为“类名.静态成员”。static修饰的数据是共享数据,对象中存储的是特有数据。...

2019-10-18 17:03:58 48

原创 this关键字

this也可以用于在构造函数中调用其他构造函数。注意:只能定义在构造函数的第一行。因为初始化动作要先执行。

2019-10-18 16:33:56 48

原创 成员变量、局部变量以及静态变量的区别

成员变量和局部变量的区别成员变量定义在类中,整个类都可以访问。局部变量定义在函数、语句、局部代码中,只在所属的区域有效。成员变量存在于堆内存的对象中。局部变量存在于栈内存的方法中。成员变量随着对象的创建而存在,随着对象的消失而消失。局部变量随着所属区域的执行而存在,随着所属区域的结束而释放。成员变量有默认初始化值。局部变量没有默认初始化值。...

2019-10-14 17:00:10 119

原创 Java面试题目2

问:给定一个有序的数组,如果往该数组中存储一个元素,并保证这个数组还是有序的,那么这个元素存储的下标如何获取?答:折半查找,找不到返回min...

2019-10-13 16:41:15 77

原创 Java面试题目1

对两个整数变量的值进行互换(不需要第三方变量)答:使用异或(一个数异或同一个数两次,结果还是这个数)

2019-10-13 16:29:37 68

原创 Java几种数组元素排序方法总结

选择排序选择一个位置,先把它排好为止。for(int x=0; x<arr.length-1; x++){ for(int y=x+1; y <arr.length; y++) { if(arr[x]>arr[y]) { int temp = arr[x]; arr[x] = arr[y]; arr[y] = temp; } }}冒...

2019-10-12 17:18:31 240

空空如也

空空如也

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

TA关注的人

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