Java
文章平均质量分 68
chenbinqq
这个作者很懒,什么都没留下…
展开
-
Java 枚举
知识点概念enum的全称为 enumeration, 是 JDK 1.5 中引入的新特性。在Java中,被enum关键字修饰的类型就是枚举类型。形式如下:enum Color { RED, GREEN, BLUE }如果枚举不添加任何方法,枚举值默认为从0开始的有序数值。以 Color 枚举类型举例,它的枚举常量依次为RED:0,GREEN:1,BLUE:2。枚举的好处:可以将常量组织起来,统一进行管理。枚举的典型应用场景:错误码、状态机等。枚举类型的本质尽...转载 2021-11-17 11:00:04 · 1719 阅读 · 0 评论 -
2019版本IDEA 使用mybatis插件Free Mybatis plugin
首先安装插件如图所示选择第一个插件安装,安装完毕重启IDEA然后我们选择我们已经配置好的数据库如下图在需要生成配置文件的数据库上右键,就会出现mybatis-generator选项打开这个就打开如上图所示配置窗口,这里我们使用默认的就行,如果不想使用lombok去掉这个勾选即可,然后我们选择ok即可就会生成以上文件,一个数据库的映射类,一个操作数据库的映射接口,和具体操作数据库的xml,主配置文件就在Configure里面这个自己生成我们打开生成的接口具体...转载 2021-11-16 16:00:48 · 2702 阅读 · 0 评论 -
@JsonFormat与@DateTimeFormat注解的使用
背景:从数据库获取时间传到前端进行展示的时候,我们有时候可能无法得到一个满意的时间格式的时间日期,在数据库中显示的是正确的时间格式,获取出来却变成了很丑的时间戳,@JsonFormat注解很好的解决了这个问题,我们通过使用@JsonFormat可以很好的解决:后台到前台时间格式保持一致的问题,其次,另一个问题是,我们在使用WEB服务的时,可能会需要用到,传入时间给后台,比如注册新用户需要填入出生日期等,这个时候前台传递给后台的时间格式同样是不一致的,而我们的与之对应的便有了另一个注解,@DataTimeFo转载 2021-11-13 18:18:10 · 612 阅读 · 0 评论 -
MVVM是什么
什么是MVVM?MVVM是MVC的增强版,实质上和MVC没有本质区别,只是代码的位置变动而已,这是我对MVVM的定义,如果你不知道什么是MVC,请往下看。MVC简要如果你做过iOS开发,相信你对这几个东西一定很熟:Model、View、Controller,分别表示数据、视图、控制器。当然,其他方向的开发人员应该不也会太陌生,其实这只是一种设计思想,具体用什么语言和做什么开发并不重要。所谓MVC便是这几个单词的简写,那么它们之间是怎么工作的呢?先看下图。这是苹果开发者文档中摘过..转载 2021-11-13 15:19:23 · 225 阅读 · 0 评论 -
java.lang.UnsupportedClassVersionError
问题描述:Spring boot项目,选中AcyxUserApplication.java--右键run as--java applicationEclipse的console中显示的异常信息如下:Exception in thread "main" java.lang.UnsupportedClassVersionError: com/acyx/user/AcyxUserApplication has been compiled by a more recent version of原创 2020-11-12 23:42:06 · 656 阅读 · 0 评论 -
Lombok常用注解
加入 maven 依赖<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.12</version></dependency>1. @Getter/@Setter自动产生 getter/setter2. @ToString自动重转载 2020-08-18 14:31:49 · 823 阅读 · 0 评论 -
@RequestBody的使用
本文是基于SpringBoot,进行的演示说明。1.基础知识介绍@RequestBody主要用来接收前端传递给后端的json字符串中的数据的(请求体中的数据的);GET方式无请求体,所以使用@RequestBody接收数据时,前端不能使用GET方式提交数据,而是用POST方式进行提交。在后端的同一个接收方法里,@RequestBody与@RequestParam()可以同时使用,@RequestBody最多只能有一个,而@RequestParam()可以有多个。注:一个请求,只有一个Reques转载 2020-08-18 10:37:45 · 972 阅读 · 1 评论 -
正则表达式简明参考
前言我想在网上最出名的正则相关的一篇文章就是《正则表达式30分钟入门教程》了,说实话这篇文章确实是我的正则入门,但是随着使用熟练,冗长的文章已经不能满足我了,在此做个归纳总结,用于快速查阅。以下语法在Java中有效,大部分应该是通用的。元字符元字符,又叫字符集,就是用一些特殊符号表示特定种类的字符或位置。匹配字符.匹配除换行符以外的任意字符 \w匹配字母或数字或下划线或汉字 \s匹配任意的空白符 \d匹配数字匹配位置\b匹配单词的开始或结束 ^匹配字符串的开...转载 2020-08-11 11:52:45 · 155 阅读 · 0 评论 -
Eclipse中安装lombok
从lombok官网下载lombok.jar。下载地址:https://projectlombok.org/download将下载的lombok.jar放置到Eclipse的安装目录下在命令行窗口中执行指令java -jar lombok.jar点击回车,出现如下图页面。点击上图中椭圆标注的“Specify location”按钮,选择需要进行配置的Eclipse的目录选择完成后,点击“Install / Update”如下图,已成功安装,记得:将lomb原创 2020-08-10 11:01:54 · 340 阅读 · 0 评论 -
什么是跨域及怎么解决跨域问题?
1.链接:https://www.jianshu.com/p/a71708985a6d总结,默认跨域允许方法:GET,HEAD,POST默认允许Content-Type:text/plain multipart/form-data application/x-www-form-urlencoded (form表单的3种数据类型)XMLHttpRequestUpload对象均没有注册任何事件监听器。请求中没有使用ReadableStream对象。其他限制:请求头的限制,具体...转载 2020-08-03 15:59:50 · 2480 阅读 · 0 评论 -
解释@Component @Controller @Service @Repository
@Component大致可以分为以下几个注解@controller控制器(注入服务),用于标注控制层组件(如struts中的action) @service服务(注入dao),用于标注业务层组件 @repository dao(实现dao访问),用于标注数据访问组件,即DAO组件 @component (把普通pojo实例化到spring容器中,相当于配置文件中的<bea...转载 2019-12-27 13:00:17 · 3105 阅读 · 0 评论 -
Eclipse设置编码方式为UTF-8
设置Eclipse的workspace编码方式Window--Preferences--General--Workspace设置Eclipse中的项目编码方式选中项目--Properties原创 2019-12-22 15:45:26 · 319 阅读 · 0 评论 -
浅谈偏向锁、轻量级锁、重量级锁
为了换取性能,JVM在内置锁上做了非常多的优化,膨胀式的锁分配策略就是其一。理解偏向锁、轻量级锁、重量级锁的要解决的基本问题,几种锁的分配和膨胀过程,有助于编写并优化基于锁的并发程序。内置锁的分配和膨胀过程较为复杂,限于时间和精力,文中该部分内容是根据网上的多方资料整合而来;仅为方便查阅,后面继续分析JVM源码的时候也有个参考。如果对各级锁已经有了基本了解,读者大可跳过此文。隐藏在内置锁下...转载 2019-12-03 13:09:30 · 154 阅读 · 0 评论 -
深入理解java.lang.StackOverflowError和java.lang.OutOfMemoryError错误
名词解释StackOverflowError:栈溢出错误OutOfMemoryError:内存不足错误栈溢出如果一个线程在计算时所需要用到栈大小 > 配置允许最大的栈大小,那么Java虚拟机将抛出StackOverflowError内存溢出如果一个线程可以动态地扩展本机方法栈,并且尝试本地方法栈扩展(没有大于配置允许最大的栈大小),但是内存不足可以提供, 或者如果不能提供...转载 2019-11-28 15:59:28 · 628 阅读 · 0 评论 -
Springboot2注解事务声明式事务
源码地址springboot2教程系列springboot的事务也主要分为两大类,一是xml声明式事务,二是注解事务,注解事务也可以实现类似声明式事务的方法,关于注解声明式事务,目前网上搜索不到合适的资料,所以在这里,我将自己查找和总结的几个方法写到这里,大家共同探讨。引入依赖<dependency> <groupId>org.springfram...转载 2019-11-24 10:41:09 · 799 阅读 · 0 评论 -
DRUID连接池的实用配置详解
DRUID介绍DRUID是阿里巴巴开源平台上一个数据库连接池实现,它结合了C3P0、DBCP、PROXOOL等DB池的优点,同时加入了日志监控,可以很好的监控DB池连接和SQL的执行情况,可以说是针对监控而生的DB连接池。配置参数DRUID的DataSource类为:com.alibaba.druid.pool.DruidDataSource,基本配置参数如下:配置 缺省值...转载 2019-11-19 23:16:44 · 571 阅读 · 0 评论 -
AOP-JDK 和CGLIB、Javassist、ASM之间的差别 (详细)(二)
JDK的动态代理创建机制----通过接口比如现在想为RealSubject这个类创建一个动态代理对象,JDK主要会做以下工作: 1. 获取 RealSubject上的所有接口列表; 2. 确定要生成的代理类的类名,默认为:com.sun.proxy.$ProxyXXXX ; 3. 根据需要实现的接口信息,在代码中动态创建 该Proxy类的字节码;...转载 2019-11-15 22:15:58 · 569 阅读 · 0 评论 -
AOP-JDK 和CGLIB、Javassist、ASM之间的差别 (详细)(一)
class文件简介及加载Java编译器编译好Java文件之后,产生.class 文件在磁盘中。这种class文件是二进制文件,内容是只有JVM虚拟机能够识别的机器码。JVM虚拟机读取字节码文件,取出二进制数据,加载到内存中,解析.class 文件内的信息,生成对应的 Class对象:class字节码文件是根据JVM虚拟机规范中规定的字节码组织规则生成的、具体class文件是怎样组织类信...转载 2019-11-14 23:35:51 · 2253 阅读 · 1 评论 -
spring框架中@PostConstruct的实现原理
在spring项目经常遇到@PostConstruct注解,首先介绍一下它的用途: 被注解的方法,在对象加载完依赖注入后执行。此注解是在Java EE5规范中加入的,在Servlet生命周期中有一定作用,它通常都是一些初始化的操作,但初始化可能依赖于注入的其他组件,所以要等依赖全部加载完再执行。与之对应的还有@PreDestroy,在对象消亡之前执行,原理差不多,这里不做过多介绍。那么首先...转载 2019-11-12 10:32:32 · 1191 阅读 · 1 评论 -
HTTP长连接、短连接究竟是什么?
1. HTTP协议与TCP/IP协议的关系HTTP的长连接和短连接本质上是TCP长连接和短连接。HTTP属于应用层协议,在传输层使用TCP协议,在网络层使用IP协议。 IP协议主要解决网络路由和寻址问题,TCP协议主要解决如何在IP层之上可靠地传递数据包,使得网络上接收端收到发送端所发出的所有包,并且顺序与发送顺序一致。TCP协议是可靠的、面向连接的。2. 如何理解HTTP协议是无状态的...转载 2019-11-06 13:06:12 · 740 阅读 · 0 评论 -
Java线程与Linux内核线程的映射关系
Linux从内核2.6开始使用NPTL (Native POSIX Thread Library)支持,但这时线程本质上还是轻量级进程(LWP)。Java里的线程是由JVM来管理的,它如何对应到操作系统的线程是由JVM的实现来确定的。Linux 2.6上的HotSpot使用了NPTL机制,JVM线程跟内核轻量级进程有一一对应的关系。线程的调度完全交给了操作系统内核,当然jvm还保留一些策略足以...转载 2019-11-05 15:50:16 · 1548 阅读 · 0 评论 -
volatile关键字在单例模式中的应用
这几天在研究volatile关键字,有看书,上网找博客,本来看的还挺好的理解的,但是卡在了一个地方,就是单例模式中懒汉模式使用Double Check里面的volatile的作用原理弄糊涂了。不同地方有不同的说法,最后终于理清了。 关键字volatile可以说是Java虚拟机提供的最轻量的同步机制,但是它并不容易完全被正确、完整地理解,以至于许多程序员都不习惯去使用,遇到需...转载 2019-11-05 11:34:17 · 2171 阅读 · 4 评论 -
Eclipse JAVA项目的目录结构和导入
1. Eclipse下的java工程目录 eclipse的基本工程目录叫做workspace,每个运行时的eclipse实例只能对应一个workspace,也就是说,workspace是当前工作的根目录。 Eclipse在新建项目的时候会自动生成一些文件。这些文件比如.project、.classpath、.settings目录下的所有文件等。这些文件是Eclipse项目的元数据,...转载 2019-10-23 12:56:39 · 3247 阅读 · 0 评论 -
Java中static与final如何使用
一、final的使用1.final变量: 当你在类中定义变量时,在其前面加上final关键字,那便是说,这个变量一旦被初始化便不可改变,这里不可改变的意思对基本类型来说是其值不可变,而对于对象变量来说其引用不可再变。其初始化可以在两个地方,一是其定义处,也就是说在final变量定义时直接给其赋值,二是在构造函数中。这两个地方只能选其一,要么在定义时给值,要么在构造函数中给值,不能转载 2013-09-12 13:58:02 · 748 阅读 · 0 评论 -
Java中Session的使用
会话状态的维持有多种方法,可以使用Cookies,hidden类型的表单域,或直接把状态信息加到URL中。还有Servlet本身提供了一个HttpSession接口来支持会话状态的维持。从服务器这端来看,每一个请求都是独立的,因此HTTP协议被认为是无状态协议,当用户在多个主页间切换时,服务器无法知道他的身份。利用Session,一个用户在多个主页间切换的时候就可以保存他的信息了。每个访问者从到达原创 2013-09-21 21:06:16 · 4534 阅读 · 0 评论 -
Java中的封装和重载
1、什么是封装?封装就是将属性私有化,提供公有的方法访问私有属性。做法就是:修改属性的可见性来限制对属性的访问,并为每个属性创建一对取值(getter)方法和赋值(setter)方法,用于对这些属性的访问。如:private String name;public String getName(){ return;转载 2013-09-21 21:25:12 · 1277 阅读 · 0 评论 -
Java中的接口和多态
1.接口 在Java中,用关键字interface来声明一个接口。在接口中只有方法的声明,而没有方法的实现。一个类如果没有实现接口中的所有方法,那么这个类必须被声明为abstract,即抽象的。一个abstract类是不允许实例化对象的。实现接口使用关键字implements。 2.多态 在Java中,多态的实现指的是使用同一个实现接口,以实现不同的对象实例。多态意味原创 2013-09-22 21:08:39 · 1024 阅读 · 0 评论 -
java.io.EOFException解决
主要错误提示如下: 严重: IOException while loading persisted sessions: java.io.EOFException严重: Exception loading sessions from persistent storage baidu了一下,结合网上提供的解决方法,我也在此做个备份. 分析:EOFException表转载 2013-10-16 09:01:45 · 2332 阅读 · 0 评论 -
Java中IO总结
【案例1】创建一个新文件01import java.io.*;02class hello{03public static void main(String[] args) {04File f=new File("D:\\hello.txt"转载 2013-10-16 09:10:22 · 641 阅读 · 0 评论 -
Java中23种设计模式总结
23种设计模式大致可以分为下面3大类:1.创建型模式 用来处理对象的创建过程,主要包含以下5种设计模式: 工厂方法模式(Factory Method Pattern) 抽象工厂模式(Abstract Factory Pattern) 建造者模式(Builder Pattern) 原型模式(Prototype Pattern) 单例模式(Singleto原创 2013-10-21 12:11:25 · 626 阅读 · 0 评论 -
组合(依赖注入)与继承
合成复用原则又称为组合/聚合复用原则(Composition/Aggregate Reuse Principle, CARP),其定义如下: 合成复用原则要求尽量使用对象组合,而不是继承来达到复用的目的。 合成复用原则就是在一个新的对象里通过关联关系(包括组合关系和聚合关系)来使用一些已有的对象,使之成为新对象的一部分;新对象通过委派调用已有对象的方法达到复用功能的目的转载 2013-11-16 13:13:22 · 2680 阅读 · 0 评论 -
单例模式(单子模式)
1.什么是单例模式? 在我们的Java应用程序中,随着应用程序的运行会创建出很多对象。但有时候我们希望在创建某类对象时,无论创建多少次该类对象只有一份在内存中。这就是单例模式。如果我们要实现单例模式首先要保证构造函数私有化,即不允许用户随意调用我本类的构造函数,因为只要通过new操作创建对象,必定要在堆中开辟空间,这样就无法实现单例了。2.单例类和单例模式的特点?转载 2013-11-25 19:45:41 · 712 阅读 · 0 评论 -
Java中的抽象类
抽象类由“abstract”修饰符修饰。抽象类是它的所有子类的公共属性的集合,使用抽象类可以提高程序开发和维护的效率。抽象类是不能够实例化的。在抽象类中可以含有构造函数,该构造函数可以被其子类的构造函数使用。抽象类的子类还可以是抽象类,只是不能够被实例化而已。 抽象方法是由“abstract”关键字修饰的方法,它只需要方法的声明而不需要方法的实现,不带有大括号{ },最后使用分号结原创 2013-11-13 21:17:33 · 784 阅读 · 0 评论 -
Eclipse中设置代码的字体
eclipse打开Window -> Preferences -> General -> Appearance -> Colors and Fonts -> Basic 里面有 Text Editor Block Selection Font 以及 Text Font 两个可以设置的地方。在这里设置字体为 Courier New ,大小为: 10如果你的字体里面没有 Courier New转载 2013-11-14 09:09:45 · 919 阅读 · 0 评论 -
Java中final的使用
1.如果一个类被final修饰符所修饰,则这个类不能被继承,不能有子类。2.如果一个方法被final修饰符所修饰,则这个方法不能被子类所覆盖。3.如果一个域变量被final修饰符所修饰,则它的值一旦给定就不能修改,即必须且只能被赋值一次,不能缺省。赋值方式有两种:一是在定义变量时初始化;二是在构造函数中赋初始值。4.如果一个方法中的变量(局部变量)被final修饰符所修原创 2013-11-13 20:02:41 · 784 阅读 · 0 评论 -
Java中接口的使用
Java中不支持多重继承,而是使用接口来实现比多重继承更加强大的功能。1. 接口是方法定义和常量值的集合。接口中的属性都是常量,接口中的方法都是没有方法体的抽象方法。接口定义的仅仅是实现某一个特定功能的一组对外接口和规范,并没有真正的实现某个具体的功能,这些功能的真正的实现是在该接口的实现类中。 interface前面的修饰符可以是public或者默认。接口中的域都是常原创 2013-11-13 21:05:33 · 955 阅读 · 0 评论 -
MVC设计模式含义和优点
MVC模式(Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。 MVC模式最早由Trygve Reenskaug在1978年提出[1] ,是施乐帕罗奥多研究中心(Xerox PARC)在20世纪80年代为程序语言Smalltalk发明的一种转载 2014-02-21 17:12:48 · 20311 阅读 · 0 评论 -
int \float\char等基本数据类型所占的字节数
1. short和int型至少为16位,long型至少为32位,并且short型长度不能超过int型,而int型不能超过long型。这即是说各个类型的变量长度是由编译器来决定的,而当前主流的编译器中一般是32位机器和64位机器中int型都是4个字节(例如,GCC)2.下面列举在GCC编译器下32位机器和64位机器各个类型变量所占字节数: C类型转载 2014-03-02 10:45:47 · 3396 阅读 · 0 评论 -
Java包行业命名规则习惯
代码编写规范目的:能够在编码过程中实现规范化,为以后的程序开发中养成良好的行为习惯。代码编写规范使用范围:J2EE项目开发。包命名规范:目的:包的命名规范应当体现出项目资源良好的划分servlet类所在包命名规范:公司名称.开发组名称.项目名称.web.servlet例如:net.linkcn.web.servlet自定义标签类所在包命名规范:公司名称.开发转载 2014-05-07 14:34:45 · 734 阅读 · 0 评论 -
myeclipse项目里有红色感叹号
用myeclipse新建 web工程, 在工程目录下会生成一个 .classpath 配置文件,里面是你工程里面引用的jar的配置。这个.classpath 对你的web工程没有什么影响其实是给 myeclipse 识别的。你说的这种情况是因为 .classpath 文件里面配置引用了某个jar,但是实际上你的 lib 里面并没有这个jar 所以才会有红色的提示。转载 2014-07-07 15:01:41 · 655 阅读 · 0 评论