自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 详解@Builder用法

简述:Builder使用创建者模式又叫建造者模式。简单来说,就是一步步创建一个对象,它对用户屏蔽了里面构建的细节,但却可以精细地控制对象的构造过程。基础使用 @Builder 注释为你的类生成相对略微复杂的构建器API。 @Builder 可以让你以下面显示的那样调用你的代码,来初始化你的实例对象:Student.builder() .sno( "001" ) .sname( "admin" ) .sage..

2020-11-16 18:50:26 59

原创 Java 正则表达式详解

1. 正则表达式1.1 什么是正则表达式       正则表达式 : 定义一个搜索模式的字符串。       正则表达式可以用于搜索、编辑和操作文本。       正则对文本的分析或修改过程为:首先正则表达式应用的是文本字符串(text/string),它会以定义的模式从左到右匹配文本,每个源

2020-11-13 18:51:58 14

原创 INSERT、REPLACE、UPDATE的区别

       用于操作数据库的SQL一般分为两种,一种是查询语句,也就是我们所说的SELECT语句,另外一种就是更新语句,也叫做数据操作语句。言外之意,就是对数据进行修改。在标准的SQL中有3个语句,它们是INSERT、UPDATE以及DELETE。在MySQL中又多了一个REPLACE语句,因此,本文以MySQL为背景来讨论如何使有SQL中的更新语句。一、INSERT和REPLACE    &

2020-10-20 10:00:04 18

原创 mac系统忘了mysql密码怎么重置

1.首先确定mysql的版本信息终端执行命令:mysql --version若显示版本号表明正常;若显示command not found,则按如下代码链接安装路径cd /usr/local/bin/sudo ln -fs /usr/local/mysql/bin/mysql mysql版本号查看:2.关闭mysql服务sudo /usr/local/mysql/support-files/mysql.server stop3.安全模式启动mysqlsudo /usr/local/m

2020-09-29 20:09:59 43

原创 数据校验规范

Bean Validation简介Bean Validation是Java定义的一套基于注解的数据校验规范,目前已经从JSR 303的1.0版本升级到JSR 349的1.1版本,再到JSR 380的2.0版本(2.0完成于2017.08),已经经历了三个版本"数据校验"是这个比较常见的工作,在日常的开发中贯穿于代码的各个层次,从上层的View层到下底层的数据层,为了保证程序的正确运行以及数据的正确性,开发者通常会在不同层次间做数据校验而且这些校验通常是重复的,为了实现代码的复用性,通常会把校验的逻辑写

2020-09-29 09:50:49 20

原创 查看日志常用命令

cat 命令(文本输出命令)通常查找出错误日志 cat error.log | grep ‘nick’ , 这时候我们要输出当前这个日志的前后几行:显示file文件里匹配nick那行以及上下5行cat error.log | grep -C 5 'nick'显示nick及前5行cat error.log | grep -B 5 'nick' cat error.log | grep -A 5 'nick'显示nick及后5行less 命令(分页查看文件内容)分页查看日志,但是中文有

2020-09-28 10:16:39 61

原创 jdbcTemplate和namedParameterJdbcTemplate的介绍

我们开发DAO层时用的最多的就是ORM框架(Mybatis,hibernate)了。在有些特殊的情况下,ORM框架的搭建略显笨重,这时最好的选择就是Spring中的jdbcTemplate了。本文对jdbcTemplate进行详解,并且会对具名参数namedParameterJdbcTemplate进行讲解。jdbcTemplate讲解jdbcTemplate提供的主要⽅法:execute⽅法:可以⽤于执⾏任何SQL语句,⼀般⽤于执⾏DDL语句;update⽅法及batchUpdate⽅法:upd

2020-09-21 11:04:19 16

原创 @ApiModel 和 @ApiModelProperty

@ApiModel使用场景在实体类上边使用,标记类时swagger的解析类概述提供有关swagger模型的其它信息,类将在操作中用作类型时自动内省属性属性名称数据类型默认值说明valueString类名为模型提供备用名称descriptionString“”提供详细的类描述parentClass<?> parentVoid.class为模型提供父类以允许描述继承关系discriminatoryString“”支持模型继

2020-09-17 14:09:02 80

原创 StringUtils的方法介绍

StringUtils中 isNotEmpty 和isNotBlank的区别【java字符串判空】isNotEmpty(str)等价于 str != null && str.length > 0isNotBlank(str) 等价于 str != null && str.length > 0 && str.trim().length > 0同理isEmpty 等价于 str == null || str.length == 0isB

2020-09-16 09:53:54 22

原创 @Data注解的用法

@Data 注解的主要作用是提高代码的简洁,使用这个注解可以省去代码中大量的get()、 set()、 toString()等方法;引入lombok要使用 @Data 注解要先引入lombok,lombok 是什么,它是一个工具类库,可以用简单的注解形式来简化代码,提高开发效率。在maven中添加依赖<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok&

2020-09-10 14:10:51 142

原创 git使用小tips~

(1)git checkout -b feature-1 origin/feature-1这个命令主要是从远程拉取分支feature-1 到 本地feature-1,并切换到本地feature-1上。优点:执行push命令时,只需执行 git push 即可上传到远程分支,而不需要执行git push origin feature-1命令。(2)git branch feature-1与git checkout -b feature-1的区别:前者只是新建分支,若想切换到feature-1分支上,需

2020-09-10 11:31:37 28

原创 Java枚举类型的用法

JDK1.5引入了新的类型——枚举。在 Java 中它虽然算个“小”功能,却给我的开发带来了“大”方便。1.用法一:常量  在JDK1.5 之前,我们定义常量都是: public static fianl…(这种方式在现在项目中也很常见) 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。而且枚举类型可以帮助我们检测许多的编译失误。例如:package enumTest;public enum Color {RED,BLANK,YELLOW}测试代码

2020-09-09 17:00:42 34

原创 swagger常用注解说明

常用到的注解有:ApiApiModelApiModelPropertyApiOperationApiParamApiResponseApiResponsesResponseHeader1. api标记Api 用在类上,说明该类的作用。可以标记一个Controller类做为swagger 文档资源,使用方式:@Api(value = "/user", description = "Operations about user")与Controller注解并列使用。 属性配置:属性名称

2020-08-18 10:16:50 50

原创 15个经典的Spring面试常见问题

这篇文章主要是想通过一些问题,加深大家对于 Spring 的理解,所以不会涉及太多的代码!这篇文章整理了挺长时间,下面的很多问题我自己在使用 Spring 的过程中也并没有注意,自己也是临时查阅了很多资料和书籍补上的。网上也有一些很多关于 Spring 常见问题/面试题整理的文章,我感觉大部分都是互相 copy,而且很多问题也不是很好,有些回答也存在问题。所以,自己花了一周的业余时间整理了一下,希...

2019-10-02 11:18:17 73

原创 一个对象的多个synchronized方法多个线程调用

当一个线程进入一个对象的synchronized方法之后,其它线程能否进入该对象的其他方法?答:很明显当其它方法是非synchronized方法时,调用是不受影响的,但当其它方法也是synchronized方法时呢?接下来我们进行实验验证:class Test{public synchronized void synchronizedMethod(){ System.out.pr...

2019-08-02 10:01:41 50

原创 Example.Criteria

example实例解析mybatis的逆向工程中会生成实例及实例对应的example,example用于添加条件,相当where后面的部分xxxExample example = new xxxExample();Criteria criteria = new Example().createCriteria();方法 说明example.setOrderByClause(“字段名 AS...

2019-07-15 13:06:33 1838

原创 Mybatis常见面试题总结

1、什么是Mybatis?(1)Mybatis是一个半ORM(对象关系映射)框架,它内部封装了JDBC,开发时只需要关注SQL语句本身,不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程。程序员直接编写原生态sql,可以严格控制sql执行性能,灵活度高。(2)MyBatis 可以使用 XML 或注解来配置和映射原生信息,将 POJO映射成数据库中的记录,避免了几乎所有的...

2019-06-22 10:29:04 26

原创 SpringMVC常见面试题总结

1、什么是Spring MVC ?简单介绍下你对springMVC的理解?Spring MVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,通过把Model,View,Controller分离,将web层进行职责解耦,把复杂的web应用分成逻辑清晰的几部分,简化开发,减少出错,方便组内开发人员之间的配合。2、SpringMVC的流程?(1)用户发送请求至前端控制器...

2019-06-22 10:16:32 28

原创 Spring常见面试题总结

1、Spring是什么? Spring是一个轻量级的IoC和AOP容器框架。是为Java应用程序提供基础性服务的一套框架,目的是用于简化企业应用程序的开发,它使得开发者只需要关心业务需求。常见的配置方式有三种:基于XML的配置、基于注解的配置、基于Java的配置。主要由以下几个模块组成:Spring Core:核心类库,提供IOC服务;Spring Context:提供框架式的Be...

2019-06-22 10:05:35 60

原创 如何让UDP实现可靠传输

自定义通讯协议,在应用层定义一些可靠的协议,比如检测包的顺序,重复包等问题,如果没有收到对方的ACK,重新发包UDP没有Delievery Garuantee,也没有顺序保证,所以如果你要求你的数据发送与接受既要高效,又要保证有序,收包确认等,你就需要在UDP协议上构建自己的协议。比如RTCP,RTP协议就是在UPD协议之上专门为H.323协议簇上的IP电话设计的一种介于传输层和应用层之间的协议...

2019-06-12 10:07:35 167

原创 UDP如何实现可靠传输

概述  UDP不属于连接协议,具有资源消耗少,处理速度快的优点,所以通常音频,视频和普通数据在传送时,使用UDP较多,因为即使丢失少量的包,也不会对接受结果产生较大的影响。  传输层无法保证数据的可靠传输,只能通过应用层来实现了。实现的方式可以参照tcp可靠性传输的方式,只是实现不在传输层,实现转移到了应用层。最简单的方式是在应用层模仿传输层TCP的可靠性传输。下面不考虑拥塞处理,可靠UDP...

2019-06-12 09:59:04 657

原创 操作系统内存管理——分区、页式、段式管理

1.内存管理方法  内存管理主要包括虚地址、地址变换、内存分配和回收、内存扩充、内存共享和保护等功能。2.连续分配存储管理方式  连续分配是指为一个用户程序分配连续的内存空间。连续分配有单一连续存储管理和分区式储管理两种方式。2.1 单一连续存储管理  在这种管理方式中,内存被分为两个区域:系统区和用户区。应用程序装入到用户区,可使用用户区全部空间。其特点是,最简单,适用于单用户、单任务...

2019-06-05 13:59:40 28

原创 操作系统核心原理.内存管理(上):基本内存管理

操作系统的两个角色分别是魔术师和管理者,在管理者这个角色中,除了CPU之外,内存是操作系统要管理的另外一个重要资源。内存管理需要达到两个目标:一是地址保护,即一个程序不能访问另一个程序的地址空间。二是地址独立,即程序发出的地址应该与物理主存地址无关。这两个目标就是衡量一个内存管理系统是否完善的标准,它是所有内存管理系统必须提供的基本抽象。一、内存管理二三事1.1 内存管理的目标  (1)地址...

2019-06-05 13:19:33 47

原创 操作系统核心原理.内存管理(中):分页内存管理

在上一篇介绍的几种多道编程的内存管理模式中,以交换内存管理最为灵活和先进。但是这种策略也存在很多重大问题,而其中最重要的两个问题就是空间浪费和程序大小受限。那么有什么办法可以解决交换内存存在的这些问题呢?答案是分页,它是我们解决交换缺陷的“不二法门”。一、分页内存管理1.1 解决问题之道  为了解决交换系统存在的缺陷,分页系统横空出世。分页系统的核心在于:将虚拟内存空间和物理内存空间皆划分为...

2019-06-05 11:50:51 66

原创 操作系统核心原理.内存管理(下):段式内存管理

一、分页系统的缺点  分页系统存在的一个无法容忍,同时也是分页系统无法解决的一个缺点就是:一个进程只能占有一个虚拟地址空间。在此种限制下,一个程序的大小至多只能和虚拟空间一样大,其所有内容都必须从这个共同的虚拟空间内分配。二、分段管理系统2.1 何为分段管理  分段管理就是将一个程序按照逻辑单元分成多个程序段,每一个段使用自己单独的虚拟地址空间。例如,对于编译器来说,我们可以给其5个段,占...

2019-06-05 11:26:40 81

原创 实现线程间通知和唤醒

wait()、notify()和notifyAll()是 Object类 中的方法从这三个方法的文字描述可以知道以下几点信息:1)wait()、notify()和notifyAll()方法是本地方法,并且为final方法,无法被重写。2)调用某个对象的wait()方法能让当前线程阻塞,并且当前线程必须拥有此对象的monitor(即锁)3)调用某个对象的notify()方法能够唤醒一个正在等...

2019-03-19 22:03:04 342

转载 内部类知识点

1.为什么使用内部类?使用内部类最吸引人的原因是:每个内部类都能独立地继承一个(接口的)实现,所以无论外围类是否已经继承了某个(接口的)实现,对于内部类都没有影响1.1.使用内部类最大的优点就在于它能够非常好的解决多重继承的问题,使用内部类还能够为我们带来如下特性:(1)、内部类可以用多个实例,每个实例都有自己的状态信息,并且与其他外围对象的信息相互独。(2)、在单个外围类中,可以让多个...

2019-03-19 21:48:14 48

空空如也

空空如也

空空如也

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

TA关注的人 TA的粉丝

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