自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

俊墨客

知道, 做到, 方能得到!

  • 博客(150)
  • 收藏
  • 关注

原创 常用正则表达式公式总结

一、校验数字的表达式1、数字:^[0-9]\*$2、n位的数字:^\d{n}$3、至少n位的数字:^\d{n,}$4、m-n位的数字:^\d{m,n}$5、零和非零开头的数字:^(0|[1-9][0-9]\*)$6、非零开头的最多带两位小数的数字:^([1-9][0-9]\*)+(\.[0-9]{1,2})?$7、带1-2位小数的正数或负数:^(\-)?\d+(\.\d{1,2})$8、正数、负数、和小数:^(\-|\+)?\d+

2022-03-16 16:02:26 1741

转载 字段和属性的区别

如上图所示: 属性 c 由 getter/setter 和字段 c 组成属性 a 由 getter/setter 组成b 没有 getter 和 setter,所以是字段   Java中的属性(property),通常可以理解为get和set方法,而字段(field),通常叫做“类成员”,或 “类成员变量”,有时也叫“域”,理解为“数据成员”,用来承载数据的。   区别开属性与字段是为了更好的实现数据安全,比如当我们想给一个类的属性赋值或者其他类用到了,就需要将这个字段设置为public,..

2021-12-28 11:39:56 1055

转载 Java设计模式六大原则或者说七大原则

设计模式原则概念介绍

2021-12-03 09:03:53 500

转载 Android原生项目引入Flutter

前言目前Flutter可以说是非常火热了,多次更新过后也越来越稳定,受到了很多开发者的青睐。不过纯Flutter开发还是存在一定成本和风险的,尤其是对于规模稍大一些的项目,可能更加适合的是将Flutter用于项目中的某一个模块,因此我们有必要了解一下如何在原生项目中引入Flutter。本文介绍一下Android原生项目引入Flutter的方法以及Flutter如何与原生进行交互,包括页面间的跳转和方法的调用,本人不懂IOS开发,有需要的话还是自行百度吧o(╥﹏╥)o,但是基本思路我觉得不会差太多的..

2021-11-30 17:27:30 2080

转载 Linux 常用命令

虽然平时大部分工作都是和Java相关的开发, 但是每天都会接触Linux系统, 尤其是使用了Mac之后, 每天都是工作在黑色背景的命令行环境中. 自己记忆力不好, 很多有用的Linux命令不能很好的记忆, 现在逐渐总结一下, 以便后续查看. 基本操作 Linux关机,重启 # 关机shutdown -h now # 重启shutdown -r now查看系统,CPU信息 # 查看系统内核信息uname -a # 查看系统内核版本cat /proc/version # ...

2021-11-28 14:55:50 450

转载 FinalShell,一款免费的国产的SSH、服务器管理、远程桌面加速工具

引言 FinalShell是一款免费的国产的集SSH工具、服务器管理、远程桌面加速的良心软件,同时支持Windows,macOS,Linux,它不单单是一个SSH工具,完整的说法应该叫一体化的服务器,网络管理软件,在很大程度上可以免费替代XShell,是国产中不多见的良心产品,具有免费海外服务器远程桌面加速,ssh加速,双边tcp加速,内网穿透等特色功能。 先预览一张使用时的截图。 使用截图预览 功能简介 连接linux服务器 我们第一步打开软件,然后点击如图红色线框所示处 .

2021-11-28 14:07:14 2602

转载 Kotlin之Set和Get

先看下kotlin里的set和get的语法//注意 缩进格式var <propertyName>[: <PropertyType>] [= <property_initializer>] [<getter>] [<setter>]格式就如上所示, set和get可写也可不写, 不写的话会有默认的实现, 需要注意的是val修饰的变量是没有set方法的, 也不允许重写set方法, 例如下面这种写法, 会提示不允许有se

2021-10-26 15:47:12 3663 1

转载 Dart空安全介绍

Null Safety in Dart --- Introduction (Dart空安全介绍)历史2020年11月空安全进入Beta测试阶段, 自2.12及Flutter2.0之后开始全面支持Sound null safety。介绍一般来说,变量储存了某些值。例如整数可以是0, 42, -2;一个String可以是 hello world,或者其他什么的内容。// In null-safe Dart, none of these can ever be null.var i = 42; //

2021-10-26 11:35:31 300

转载 协程、ViewModel、LiveData 三剑合璧!

前言 ViewModel和LiveData最早是Google提出的AAC架构中的重要成员,那么它为什么又和协程扯上关系了呢? 其实不能叫扯上关系吧,ViewModel和LiveData属于「架构组件」,而协程是「异步工具类」,ViewModel和LiveData搭上了协程这条快车道,让Google推了几年的AAC架构更加快的让人接受了,真香。 国际惯例,官网镇楼。 https://developer.android.com/topic/libraries/architecture/viewmode.

2021-10-13 09:29:42 431

转载 ToolBar使用总结

目录一、toolbarstyle配置toolbar布局二、NavigationIconNavigationIcon常用方法具体使用三、title四、Menumenu的创建menu点击事件menu不同状态时操作menu菜单图标+标题同时显示fragment使用menu菜单五、style的配置style的基本配置app:theme & app:popupTheme修改toolbar的字体修改menu的字体颜色修改menu显示位置 一、

2021-09-30 15:00:02 1395

转载 从原理分析Kotlin的延迟初始化: lateinit var和by lazy

Koltin中属性在声明的同时也要求要被初始化,否则会报错。例如以下代码:private var name0: String //报错private var name1: String = "xiaoming" //不报错private var name2: String? = null //不报错   可是有的时候,我并不想声明一个类型可空的对象,而且我也没办法在对象一声明的时候就为它初始化,那么这时就需要用到Kotlin提供的延迟初始化。    Kotlin中有两种延迟初始化的方式。一种

2021-09-08 15:44:49 852

转载 SpringBoot+SpringSecurity前后端分离+Jwt的权限认证(改造记录)

前言 一般来说,我们用SpringSecurity默认的话是前后端整在一起的,比如thymeleaf或者Freemarker,SpringSecurity还自带login登录页,还让你配置登出页,错误页。 但是现在前后端分离才是正道,前后端分离的话,那就需要将返回的页面换成Json格式交给前端处理了 SpringSecurity默认的是采用Session来判断请求的用户是否登录的,但是不方便分布式的扩展,虽然SpringSecurity也支持采用SpringSession来管理分布式下的用户状态,不过现

2021-09-07 17:40:06 310

转载 Android-Jetpack笔记-Navigation之Fragment支持复用

上篇文章Android-Jetpack笔记-Navigation之Fragment使用提到,每次切换目的地,fragment是反复销毁重建的,按照谷歌推荐的1个APP只需1个activity的思路开发,这样是没问题的,但是这里的fragment是作为首页的3个常驻页面,我们是希望能够保存起来的,毕竟,销毁重建需要重新请求网络数据,重新初始化view,严重影响用户体验,那么接下来继续上篇文章的分析,支持Fragment的复用。 Jetpack笔记代码 本文源码基于SDK 29,IDE是Android st

2021-08-31 15:29:31 1494 1

转载 (转)Android Jetpack Compose 最全上手指南

在今年的Google/IO大会上,亮相了一个全新的 Android 原生 UI 开发框架-Jetpack Compose, 与苹果的SwiftIUI一样,Jetpack Compose是一个声明式的UI框架,随着了今年安卓和苹果两大移动平台相继推出自己的UI开发框架Jetpack Compose 和SwiftIUI,标志着移动操作系统正式全面拥抱声明式 UI 开发模式。一、声明式 UI 的前世今生其实声明式 UI 并不是什么新技术,早在 2006 年,微软就已经发布了其新一代界面开发框架 WPF,其采用

2021-08-28 15:24:15 945

转载 SpringBoot实现动态增删启停定时任务

在spring boot项目中,可以通过@EnableScheduling注解和@Scheduled注解实现定时任务,也可以通过SchedulingConfigurer接口来实现定时任务。但是这两种方式不能动态添加、删除、启动、停止任务。要实现动态增删启停定时任务功能,比较广泛的做法是集成Quartz框架。但是本人的开发原则是:在满足项目需求的情况下,尽量少的依赖其它框架,避免项目过于臃肿和复杂。查看spring-context这个jar包中org.springframework.scheduling.

2021-08-26 17:02:52 244

转载 Data Binding 详解(七)-在 Kotlin 中的使用

知是行之始,行是知之成。文章配套的 Demo:https://github.com/muyi-yang/DataBindingDemoDemo 支持 Java 和 Kotlin 双语言,master 分支为 Java 语言代码,kotlin 分支为 Kotlin 语言代码。在 Google 官方宣布 Android 支持 Kotlin 语言后,Kotlin 瞬间席卷了整个 Android 圈,各种文章书籍,学习小组应时而生。时至今日已有很大一部分先行者已经使用 Kotlin 开发自家的商业项目,在.

2021-08-23 15:44:42 1051

转载 Data Binding 详解(六)-双向数据绑定

知是行之始,行是知之成。文章配套的 Demo:https://github.com/muyi-yang/DataBindingDemoDemo 支持 Java 和 Kotlin 双语言,master 分支为 Java 语言代码,kotlin 分支为 Kotlin 语言代码。前面讲到的各种数据绑定都是单向绑定,都是由数据驱动 UI 变化,当 UI 发生变化时并不会引起数据的改变。当 UI 的变化需要反应到数据中时,我们一般采取向 View 设置相应的监听器,然后在监听器中修改相应的数据。这种即由数据.

2021-08-23 15:38:05 1293

转载 Data Binding 详解(三)-可观察(监听)的数据对象

知是行之始,行是知之成。文章配套的 Demo:https://github.com/muyi-yang/DataBindingDemoDemo 支持 Java 和 Kotlin 双语言,master 分支为 Java 语言代码,kotlin 分支为 Kotlin 语言代码。可观察(observable)是指一个对象通知其他对象其数据的更改的能力。 Data Binding 库支持创建可观察的对象、字段或集合。普通的对象都可以用于 Data Binding,但是对象数据改变并不会自动更新 UI 。使.

2021-08-23 15:29:09 946

转载 Data Binding 详解(二)-布局和绑定表达式

知是行之始,行是知之成。文章配套的 Demo:https://github.com/muyi-yang/DataBindingDemoDemo 支持 Java 和 Kotlin 双语言,master 分支为 Java 语言代码,kotlin 分支为 Kotlin 语言代码。本章将讲解在 Data Binding 中的布局及布局中如何使用表达式。支持的表达式在布局中支持很多表达式和关键字:Mathematical + - / * %String concatenation +Logical.

2021-08-23 15:21:56 783

转载 Data Binding 详解(一)-从零开始

知是行之始,行是知之成。文章配套的 Demo:https://github.com/muyi-yang/DataBindingDemoDemo 支持 Java 和 Kotlin 双语言,master 分支为 Java 语言代码,kotlin 分支为 Kotlin 语言代码。DataBinding介绍2015 年的 Google IO 大会上,Android 团队发布了一个数据绑定框架(Data Binding Library),它是为了解决数据和 UI 的绑定问题,同时也是对 MVVM 模型的一.

2021-08-23 15:03:48 1141

转载 Data Binding 详解(五)-绑定适配器

知是行之始,行是知之成。文章配套的 Demo:https://github.com/muyi-yang/DataBindingDemoDemo 支持 Java 和 Kotlin 双语言,master 分支为 Java 语言代码,kotlin 分支为 Kotlin 语言代码。绑定适配器就是把布局中的属性表达式转换成对应的方法调用以设置值。 一个例子是设置属性值,比如调用 setText() 方法。 或者是设置事件侦听器,比如调用 setOnClickListener() 方法。还允许你指定设置值的调.

2021-08-23 14:50:12 822

转载 Data Binding 详解(四)-生成的绑定类

知是行之始,行是知之成。文章配套的 Demo:https://github.com/muyi-yang/DataBindingDemoDemo 支持 Java 和 Kotlin 双语言,master 分支为 Java 语言代码,kotlin 分支为 Kotlin 语言代码。Data Binding 生成用于访问布局变量和视图的绑定类,它将布局变量与布局中的视图链接起来。默认情况下,类的名称基于布局文件的名称,将其转换为Pascal大小写并向其添加Binding后缀。比如布局文件名是 activi.

2021-08-20 17:38:45 979

转载 JDK开源镜像下载地址 一些国内常用的镜像站

推荐几个大厂的开源仓库镜像站。JDK目前好像就华为有镜像。 JDK下载(华为): https://repo.huaweicloud.com/java/jdk 网易开源镜像站: http://mirrors.163.com/ 华为镜像站: https://mirrors.huaweicloud.com/ 阿里镜像站: https://developer.aliyun.com/mirror/ 搜狐镜像站: http://mirrors.s

2021-08-18 17:12:24 2042

转载 21 款 yyds 的 IDEA插件

最近,闲来无事,为了改变一下枯燥的编程环境,特地搜寻了下有助提升代码功力的插件.1、Stackoverflow 这个插件其实是最实用的插件,程序猿遇到的问题,基本都能找到回答,但是它使用的是google 搜索引擎,对于,不购买 v*n 的同学来说,感觉好鸡肋。选中需要搜索的问题,然后,右键点击狂拽屌指数:☆实用指数:★★★★★2、FindBugsIDEA 自带的检查工具已经很强大,如有需要也可以加上Alibaba Java Coding Guidelines的代码检查工具。但是,说

2021-08-06 15:23:18 139

转载 一文全面解析 Postman 工具

postman是一款支持http协议的接口调试与测试工具,其主要特点就是功能强大,使用简单且易用性好 。无论是开发人员进行接口调试,还是测试人员做接口测试,postman都是我们的首选工具之一 。那么接下来就介绍下postman到底有哪些功能,它们分别都能干些什么 。下面先通过一张图来直观的来看下postman中所包含的功能 。 当然,以上功能也只是展示了postman的一部分功能,为了能更加全面的体现这款工具的特点,我将从以下三个维度来加以说明。它们分别是: 基础功能

2021-08-06 10:49:08 1506

转载 C语言之复杂指针详解

在《C陷阱与缺陷》第二章第一节中有这样一个声明:(*(void(*)())0)();看到这样的表达式估计让不少人都“不寒而栗”了吧,其实虽然看起来复杂,但是构造这类表达式其实只有一条简单的规则:按照使用的方式来声明。首先先介绍一个著名的解析法则:右左法则:首先从圆括号起,然后向右看,然后向左看,每当遇到圆括号时,就调转阅读方向,当括号内的内容解析完毕,就跳出这个括号,重复这个过程直到表达式解析完毕。其实我们发现,所谓复杂指针离不开指针函数,函数指针,指针数组,函数指针这四个概念并且括号,*比较多,

2021-07-21 15:30:17 735

转载 Kotlin学习系列之:object关键字的使用场景

object 是Kotlin中的一个重要的关键字,也是Java中没有的。object主要有以下三种使用场景: 对象声明(Object Declaration)伴生对象(Companion Object)对象表达式(Object Expression)下面就一一介绍它们所表示的含义、用法以及注意点,保证你在看完本篇之后就可以完全掌握object关键字的用法。 一、对象声明(Object Declaration)1) 语法含义:将类的声明和定义该类的单例对象结合在一起(即通过object就实.

2021-07-02 10:21:27 403

转载 Kotlin下的5种单例模式

前言最近在学习Kotlin这门语言,在项目开发中,运用到了单例模式。因为其表达方式与Java是不同的。所以对不同单例模式的实现进行了分别探讨。主要单例模式实现如下:饿汉式懒汉式线程安全的懒汉式双重校验锁式静态内部类式PS:该篇文章不讨论单例模式的运用场景与各种模式下的单例模式的优缺点。只讨论在Java下不同单例模式下的对应Kotlin实现。一、饿汉式实现//Java实现public class SingletonDemo { private static Singleton.

2021-07-01 11:52:58 539

原创 Maven 指定 Java 编译版本

Maven使用的默认Java编译器版本是Java 1.5。为了使Maven使用Java编译器的较新版本编译Java代码,需要在项目的POM文件(pom.xml)中显式指定Java编译器。 指定Java编译器版本的确切方式取决于你使用的是Java 8 或更早版本,还是Java 9或更高版本。从Java 9开始,Java获得了一些模块,这些模块在短期内会使编译有些复杂,但从长期来看应该会有所帮助。 一、 适用于Java 8和更早版本的Maven Java编译器 从Java 8 和更早版本开始,.

2021-06-21 16:53:39 15350 1

转载 JDK1.8中的try-with-resources声明

JDK1.7开始,java引入了 try-with-resources 声明,将 try-catch-finally 简化为 try-catch,这其实是一种语法糖,在编译时会进行转化为 try-catch-finally 语句。新的声明包含三部分:try-with-resources 声明、try 块、catch 块。它要求在 try-with-resources 声明中定义的变量实现了 AutoCloseable 接口,这样在系统可以自动调用它们的close方法,从而替代了finally中关闭资源的功.

2021-05-20 16:32:43 421

转载 cmd /c 和 cmd /k

Java的Runtime.getRuntime().exec(commandStr)可以调用执行cmd指令。cmd /c dir 是执行完dir命令后关闭命令窗口。cmd /k dir 是执行完dir命令后不关闭命令窗口。cmd /c start dir 会打开一个新窗口后执行dir指令,原窗口会关闭。cmd /k start dir 会打开一个新窗口后执行dir指令,原窗口不会关闭。可以用cmd /?查看帮助信息。CMD命令gpedit.msc-----组策略sndrec32-------

2021-05-19 09:49:12 722

转载 MySQL 索引

MySQL 索引MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。打个比方,如果合理的设计且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的MySQL就是一个人力三轮车。拿汉语字典的目录页(索引)打比方,我们可以按拼音、笔画、偏旁部首等排序的目录(索引)快速查找到需要的字。索引分单列索引和组合索引。单列索引,即一个索引只包含单个列,一个表可以有多个单列索引,但这不是组合索引。组合索引,即一个索引包含多个列。创建索引时,你需要确保该索引是应

2021-05-10 10:38:15 49

原创 利用java反射调用类及父类的的私有方法

/** * 利用递归找一个类的指定方法,如果找不到,去父亲里面找直到最上层Object对象为止。 * * @param clazz 目标类 * @param methodName 方法名 * @param classes 方法参数类型数组 * @return 方法对象 * @throws Exception */ public static Method getMethod(Class clazz, String methodName, final Class[] cl

2021-04-21 22:28:50 987 1

转载 Maven的多模块 Spring MVC + Spring + Mybatis 项目的搭建

为什么要搭建多模块的maven项目? 项目结构 项目整体目录 各模块的依赖关系 Maven多模块项目...

2021-03-31 11:28:51 644

转载 POI实现EXCEL单元格合并及边框样式

POI实现EXCEL单元格合并及边框样式 下面例子为创建产生一个excel,合并单元格,然后为合并后的单元格添加边框 package test; import java.io.FileOutputStream;import java.io.IOException; import org.apache.poi.hssf.usermodel.HSSFCell;import org.apache.poi.hssf.usermodel.HSSFCellStyle;import org.ap

2021-03-15 10:50:02 2966 2

转载 Java 8 lambda表达式list操作分组、过滤、求和、最值、排序、去重

java8的lambda表达式提供了一些方便list操作的方法,主要涵盖分组、过滤、求和、最值、排序、去重。跟之前的传统写法对比,能少写不少代码。 新建实体类 package com.vvvtimes.vo; import java.math.BigDecimal;import java.util.Date; public class User { private Long id; //姓名 private String name; //年龄

2021-03-12 17:56:08 661 1

转载 Java日志框架log4j详细配置及与slf4j联合使用教程

最后更新于2017年02月09日一、log4j基本用法  首先,配置log4j的jar,maven工程配置以下依赖,非maven工程从maven仓库下载jar添加到“build path”<dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version></depen

2021-03-02 10:17:33 626

转载 Java当前文件路径

第一种:File f = new File(this.getClass().getResource("/").getPath());System.out.println(f);结果:C:\Documents%20and%20Settings\Administrator\workspace\projectName\bin获取当前类的所在工程路径;如果不加“/”File f = new File(this.getClass().getResource("").getPath());System.

2020-11-26 10:11:17 167

转载 Java的 :: 是什么语法?

一:简介方法引用分为三种,方法引用通过一对双冒号:: 来表示,方法引用是一种函数式接口的另一种书写方式静态方法引用,通过类名::静态方法名, 如 Integer::parseInt实例方法引用,通过实例对象::实例方法,如 str::substring构造方法引用,通过类名::new, 如 User::new二:方法引用public final class Integer { public static int parseInt(String s) throws NumberFor

2020-09-11 15:06:01 4400

转载 cron表达式详解

Cron表达式是一个字符串,字符串以5或6个空格隔开,分为6或7个域,每一个域代表一个含义,Cron有如下两种语法格式:  (1) Seconds Minutes Hours DayofMonth Month DayofWeek Year  (2) Seconds Minutes Hours DayofMonth Month DayofWeek  一、结构  corn从左到右(用空格隔开):秒 分 小时 月份中的日期 月份 星期中的日期 年份  二、各字段的含义...

2020-08-27 11:29:38 647

空空如也

空空如也

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

TA关注的人

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