- 博客(78)
- 资源 (5)
- 收藏
- 关注
原创 电话邮箱正则验证
检查电话号码^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}检查邮箱^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((\.[a-zA-Z0-9_-]{2,3}){1,2})
2021-11-18 18:49:28
231
原创 Java 单例模式
一、单例模式Java的单例模式是一种常见的设计模式单例模式有以下特点: 1、单例类只能有一个实例。 2、单例类必须自己创建自己的唯一实例。 3、单例类必须给所有其他对象提供这一实例。单例模式的适用场景:1.对于那种经常实例化但是过一会儿就被销毁的对象适合使用单例模式。2.对于创建对象需要消耗很多资源的对象。如:数据库连接池对象,线程池对象等3.只需要一个对象保证全局的一致性的。如:Android中Application对象,网站的计数器等。二、饿汉模式与懒汉模式1. 饿汉式直接
2021-10-24 15:13:19
202
原创 Java常用正则表达式
一、校验数字的表达式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+(\.\d+)?$9 有两位小数的正实数:^[0-9]+(.[0
2021-10-06 15:37:15
382
原创 centos安装jdk
一、Cent OS 8 安装 JDK查询系统是否安装了 jdkrpm -qa|grep java[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nEAhWgUM-1629907330428)(https://z3.ax1x.com/2021/08/25/hZqqEQ.png)]卸载已安装的 jdkrpm -e --nodeps [jdk名称][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bavCTrft-162990733
2021-08-26 00:02:52
139
原创 Cent OS 6.5无法使用yum解决办法
解决办法,依次执行如下命令sed -i "s|enabled=1|enabled=0|g" /etc/yum/pluginconf.d/fastestmirror.confmv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backupcurl -o /etc/yum.repos.d/CentOS-Base.repo https://www.xmpan.com/Centos-6-Vault-Aliyun.repo
2021-08-26 00:01:15
356
转载 一篇文章,掌握IntelliJ IDEA快捷键
一、Ctrl快捷键快捷键作用Ctrl+ F在当前文件进行文本查找Ctrl + R在当前文件进行文本替换Ctrl + Z撤销Ctrl + Y删除光标所在行 或 删除选中的行Ctrl + X剪切光标所在行 或 剪切选择内容Ctrl + C复制光标所在行 或 复制选择内容Ctrl + D复制光标所在行 或 复制选择内容,并把复制内容插入光标位置下面Ctrl + W递进式选择代码块。可选中光标所在的单词或段落,连续按会在原有选中的基础上
2021-05-19 20:30:08
126
原创 ideaDubug异常
异常FATAL ERROR in native method: processing of -javaagent failed, appending to system class path failed解决方案File ----> Setting ----> Bulid,Execution,Traces ----> Debugger ----> Async Stack Traces取消Instrumenting agent (requires debugger rest
2021-05-07 20:21:18
330
原创 剑指 Offer 14- I. 剪绳子
一、题目给你一根长度为 n 的绳子,请把绳子剪成整数长度的 m 段(m、n都是整数,n>1并且m>1),每段绳子的长度记为 k[0],k[1]…k[m-1] 。请问 k[0]k[1]…*k[m-1] 可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。二、思路对自己的智商产生怀疑任何大于1的数都可由2和3相加组成(根据奇偶证明) 因为22=14,23>15, 所以将数字拆成2和3,能得到的积最大因为222<
2021-04-25 17:13:57
183
原创 剑指 Offer 13. 机器人的运动范围
一、题目地上有一个m行n列的方格,从坐标 [0,0] 到坐标 [m-1,n-1] 。一个机器人从坐标 [0, 0] 的格子开始移动,它每次可以向左、右、上、下移动一格(不能移动到方格外),也不能进入行坐标和列坐标的数位之和大于k的格子。例如,当k为18时,机器人能够进入方格 [35, 37] ,因为3+5+3+7=18。但它不能进入方格 [35, 38],因为3+5+3+8=19。请问该机器人能够到达多少个格子?示例 1:输入:m = 2, n = 3, k = 1输出:3示例 2:输入:m
2021-04-24 17:40:27
90
原创 剑指 Offer 12. 矩阵中的路径
一、题目给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。示例 1:输入:board = [[“A”,“B”,“C”,“E”],[“S”,“F”,“C”,“S”],[“A”,“D”,“E”,“E”]], word = “ABCCED”输出:true示例
2021-04-23 16:18:35
91
原创 Java慕课笔记 - 03
包装类基本数据类型使用起来方便,但没有对应的方法来操作基本类型的数据。我们可以使用一个类,把基本数据类型封装起来,在类中定义一些方法,这个类叫包装类。装箱:把基本数据类型的数据,包装到类中构造方法Integer(int value)构造一个新分配的Integer对象,它表示指定的int值。Integer(String s)构造一个新分配的Integer对象,它表示String参数所指示的int值。静态方法static Integer valueOf(int i)返回一个指定的int
2021-04-22 22:19:01
137
原创 剑指 Offer 11. 旋转数组的最小数字
一、题目把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一个旋转,该数组的最小值为1。示例 1:输入:[3,4,5,1,2]输出:1示例 2:输入:[2,2,2,0,1]输出:0二、思路求数组的最小值,暴力破解。由于数组有规律,即当前一个元素大于当前元素时,输出当前元素。三、代码暴力破解public class Solution {
2021-04-22 15:58:00
90
原创 剑指 Offer 10- II. 青蛙跳台阶问题
题目一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。示例 1:输入:n = 2输出:2示例 2:输入:n = 7输出:21示例 3:输入:n = 0输出:1思路此类求 多少种可能性 的题目一般都有 递推性质 ,即 f(n) 和 f(n−1)…f(1) 之间是有联系的。设跳上 n 级台阶有 f(n)种跳法。在所有跳
2021-04-15 16:40:08
96
原创 剑指 Offer 10- I. 斐波那契数列
题目写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项(即 F(N))。斐波那契数列的定义如下:F(0) = 0, F(1) = 1F(N) = F(N - 1) + F(N - 2), 其中 N > 1.斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。思路斐波那契数列的定义是 f(n + 1) = f(n) + f(n - 1
2021-04-14 18:35:01
131
原创 Java学习笔记_集合(一)
13、集合(一)一、初识集合新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入一、初识集合##1、集合的概念...
2021-04-13 17:02:26
127
原创 剑指 Offer 09. 用两个栈实现队列
题目用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )输入:[“CQueue”,“appendTail”,“deleteHead”,“deleteHead”][[],[3],[],[]]输出:[null,null,3,-1]思路队列是先进先出的数据结构,栈是先进后出的数据结构。使用两个栈实现队列,将栈1中出栈的数据压
2021-04-13 16:35:46
95
原创 Java学习笔记 - 进制转换
10进制转其他进制进制方法返回值2Integer.toBinaryString(n);2进制字符串8Integer.toOctalString(n);8进制字符串16Integer.toHexString(n);16进制字符串nInteger.toString(100, 16);n进制字符串n进制转10进制方法返回值n进制转10进制teger.parseInt((String) s,(int) n);10进制字符串
2021-04-12 17:04:52
136
原创 剑指 Offer 07. 重建二叉树
题目输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]思路对于任意一颗树而言,前序遍历的形式总是[ 根节点, [左子树的前序遍历结果], [右子树的前序遍历结果] ]即根节点总是前序遍历中的第一个节点。而中序遍历的形式总是[ [左子树的中序遍历结果], 根节点, [右子树的中序遍历结果] ]只要我们在中序遍
2021-04-12 16:14:58
79
原创 Java学习笔记 - 树及二叉树的遍历
树1、定义树(Tree)是n(n>=0)个结点的有限集。n=0时称为空树。在任意一棵树中:有且仅有一个特定的结点称为根(Root)结点。当n>1时,其余的结点可分为m(m>0)个互不交互的有限集T1、T2、……Tn,其中每一个集合本身又是一棵树,并且成为根的子树。此外,树的定义还需要强调一下两点:根节点是唯一的,不可能存在多个根节点,数据结构中树只能有一个根结点。子树的个数没有限制,但它们一定是互不交互的。2、结点的度结点拥有的子树数目称为结点的度。3、二叉树
2021-04-12 15:51:26
129
原创 剑指 Offer 06. 从尾到头打印链表
一、题目输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。输入:head = [1,3,2]输出:[2,3,1]二、思路遍历链表将链表中的元素存入数组中。倒序打印数组三、代码class Solution { public static int[] reversePrint(ListNode head) { ListNode node = head; int count = 0; while (node !=
2021-04-09 20:35:06
83
原创 Java学习笔记-链表及链表的操作
链表链表是一种链式存取的数据结构,单链表中的数据是以结点的形式存在,每一个结点是由数据元素和下一个结点的存储的位置组成。单链表与数组相比的最大差别是:单链表的数据元素存放在内存空间的地址是不连续的,而数组的数据元素存放的地址在内存空间中是连续的,这也是为什么根据索引无法像数组那样直接就能查询到数据元素。结点类public class Node { Object data; Node next;}链表操作public class MyLinked { //存储头结点对象 priv
2021-04-09 20:03:11
126
原创 Java慕课笔记 - 02
final关键字final关键字代表最终、不可改变。常见四种用法:可以用来修饰一个类。可以用来修饰一个方法。可以用来修饰一个局部变量。可以用来修饰一个成员变量。四种权限修饰符publicprotected(default)private同一个类YESYESYESYES同一个包YESYESYESNO不同包子类YESYESNONO不同包非子类YESNONONO内部类的概念与分类1、 成员内部类成员
2021-04-08 21:13:25
283
原创 java中stack的使用方法
java中stack的使用方法,堆栈是一种"后进先出"(LIFO)的数据结构,只能在一端进行插入(称为"压栈")或删除(称为"出栈")数据的操作.JAVA 中,使用 java.util.Stack 类的构造方法创建对象。public class Stack extends vector构造方法 : public Stack() 创建一个空 Stack。方法:public push(item ) 把项 压入栈顶。其作用与 addElement (item ) 相同。参数 item 压入栈顶的
2021-04-04 17:27:11
3508
原创 剑指 Offer 05. 替换空格
一、题目请实现一个函数,把字符串 s 中的每个空格替换成"%20"。输入:s = “We are happy.”输出:“We%20are%20happy.”二、思路使用String类的replace方法,直接替换。String replace(char oldChar, char newChar)用新字符newChar 替换所有的 旧字符oldChar 。String replace(CharSequence target, CharSequence replacement)用新
2021-04-04 14:06:21
111
原创 剑指 Offer 04. 二维数组中的查找
一、题目在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。现有矩阵 matrix 如下:[[1, 4, 7, 11, 15],[2, 5, 8, 12, 19],[3, 6, 9, 16, 22],[10, 13, 14, 17, 24],[18, 21, 23, 26, 30]]给定 target = 5,返回 true。给定
2021-04-03 14:51:13
102
原创 剑指 Offer 03. 数组中重复的数字
一、题目描述在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3二、思路由于数组中所有的元素都在1~n-1范围内。创立新的数组,和原来的数组同长。遍历原来的数组。在新的数组中,元素组元素对应的下标的元素自增。三、答案public class Solution { public st
2021-04-03 14:09:27
158
1
原创 Java慕课笔记-01
字符串字符串的底层是byte类型的数组。对于引用数据类型来说,==进行的是地址比较。双引号直接写的在字符串在常量池当中,new的不在池中。对字符串内容比较,常用两个方法。public boolean equals(Object obj):参数可以实任何对象,只有参数是一个字符串并且内容相同才会返回true。任何对象都能用object进行接收。equals方法具有对称性,也就是说a.equals(b)和b.equals(a)效果一样。如果比较双方一个常量一个变量,推荐把常量字符串写在前
2021-04-02 17:00:46
144
原创 关于Java,我有话要说
一、开局一张图二、基础的零零碎碎path指定访问的路径path使用Java的软件tomcat,知道Java的安装位置在地址栏输入cmd,在当前目录运行命令提示符窗口tab键自动补全,上键重复上一命令类里面可以存在六种修饰方法static(静态)是指静态变量,生命范围大于作用范围。方法前面加static是指这个方法属于整个类。类的作用,保存代码Java命令后跟类名class path指定字节码文件的位置,即类的位置Java有两种数据类型基本数据类型,数值型整型、浮点
2021-01-16 11:47:14
164
原创 Linux学习笔记 08 -文件系统和文件管理
一、文件系统文件系统是操作系统中与文件管理和存储相关的所有软件和数据的集合。1、Linux的基本文件系统1. ext4文件系统目前,Windows通常采用NTFS文件系统,而Linux中存储程序和数据的磁盘分区通常采用ext4文件系统,实现虚拟存储的swap分区一定采用swap文件系统。ext ( Extended File System)文件系统系列(包括 ext、ext2、ext3 和 ext4)是专为 Linux 设计的文件系统,其继承UNIX文件系统的主要特色,采用三级索引结构和目录树形结
2020-12-21 21:05:51
978
原创 Linux学习笔记 07 - 用户和组群
一、用户和组群Linux是一个真正的多用户操作系统,从本机或远程登录的多个用户能同时使用同一计算机,同时访问同一外围设备。不同的用户对于相同的资源拥有不同的使用权限。Linux将同一类型的用户归于一个组群,可利用组群权限来控制组群成员用户的权限。Linux系统进行用户和组群管理的目的在于保证系统中数据与进程的安全。1、用户无论是从本地还是从远程登录Linux系统,用户都必须拥有用户账号。登录时系统检验输入的用户名和密码。只有当该用户名已存在,且密码与用户名匹配时,用户才能登录到Linux。系统还会根据
2020-12-19 11:25:49
2336
1
原创 Linux学习笔记 06 - 字符界面与shell(3)
四、文本编辑器vimvim是Linux/UNIX中最经典的文本编辑器,几乎所有的Linux/UNIX发行版本都提供这一编辑器。vi是全屏幕文本编辑器,只能编辑字符,不能对字体、段落等进行排版。vi没有菜单,只有命令,而且命令繁多。虽然vi的操作方式与其他常用的文本编辑器很不相同,但是由于其运行于字符界面,并可用于所有UNIX/Linux环境,目前仍然广泛应用。Centos 6.5默认提供的vi版本是VIM ( vi Improved 7.2),在此简单介绍其基本使用方法。1、vim工作模式vi有3种工
2020-12-19 10:03:42
265
1
原创 Linux学习笔记 05 - 字符界面与shell(2)
三、深入Shell1、通配符Shell命令中可以使用通配符来同时匹配多个文件方便操作。Linux的通配符除了 MSDOS中常用的“*”和“?”外,还包括“[]”和“!”组成的字符组模式,能够扩充需要匹配的文件的范围。1. 通配符“*”通配符“*”代表任意长度的任何字符,如“a*”可表示诸如“abc”“about”等以“a”开头的字符串。需要注意的是通配符不能与开头的文件名匹配。例如,“*”不能匹配到名为“.file”的文件,而必须使用“.*”才能匹配到类似“.file”的文件。2. 通配符“?”
2020-12-18 18:43:45
191
1
原创 Linux学习笔记 04 - 字符界面与shell(1)
一、字符界面与shellLinux与UNIX操作系统类似,在字符界面下使用相关的Shell命令就可以完成操作系统的所有任务。而图形化用户界面的出现,为用户提供了简便易用的操作平台。虽然图形化用户界面比较简单直观,但是使用字符界面的工作作方式仍然十分常见。这主要是因为:目前的图形化用户界面还不能完成所有的系统操作,部分操作仍然必须在字符界面下进行。字符界面占用的系统资源较少,同一硬件配置的计算机仅运行字符界面时比运行图形化用户界面时速度快。对于熟练的系统管理人员而言,字符界面更加直接窝效。相信随
2020-12-16 17:58:36
1099
1
原创 Linux学习笔记 01 - Linux概况
一、操作系统的发展历程操作系统是用来=控制和管理系统资源、方便用户使用计算机的程序的集合,是人机交互的接口。大致包括5个方面的管理功能:进程与处理机管理、作业管理、存储管理、设备管理、文件管理。1. 服务器专用的 UNIX 操作系统UNIX 操作系统与1969年由美国贝尔实验室肯·汤普森(K.Thompson)和丹尼斯·麦卡利斯泰尔·里奇(D.M.Ritchie)开发完成,是真正意义上的多用户多任务操作系统。UNIX的商业版版本主要包括SUN公司(现被Oracle公司收购)的Solaris、IBM
2020-12-13 17:12:54
859
原创 Virtual Machine16 安装 CentOS8.1
第一步:安装Virtual Machine官网下载Virtual Machine 16,并激活。第二步:创建新的虚拟机这里选择自定义,高端玩家自定义。第三步:选择虚拟机的硬件兼容性第四步:安装客户机操作系统第五步:选择操作系统的版本第六步:命名虚拟机第七步:处理器的配置第八步:配置虚拟机的内存第九步:网络类型第十步:选择控制器类型第十一步:选择磁盘类型第十二步:磁盘选择第十三步:指定磁盘大小第十四步:指定磁盘文件第十五步:挂载镜像第十六步:启动
2020-10-06 22:04:48
353
原创 JAVA学习笔记 08 - 继承、封装、多态
一、继承1、继承的概念1.1、生活中的继承1.2、Java中的继承2、Java中继承的实现2.1、Java中继承的语法2.2、Java中支持的继承类型3、this和super关键字3.1、this关键字3.2、super关键字4、object类4.1、常用API4.2、案例二、封装1、封装的概念2、类中成员的访问权限3、getter/setter访问器4、类的访问...
2020-05-08 22:07:39
489
原创 如何使用git与hexo搭建个人博客
一、Git与hexo简介1、什么是gitGit 是一个分布式版本控制软件,与CVS、Subversion一类的集中式版本控制工具不同,它采用了分布式版本库的作法,不需要服务器端软件,就可以运作版本控制,使得源代码的发布和交流极其方便。git 和其他版本控制系统(如 CVS)有不少的差别,git 本身关心文件的整体性是否有改变,但多数的版本控制系统如 CVS 或 Subversion 系统则在乎文件内容的差异。git 拒绝保持每个文件的版本修订关系。因此查看一个文件的历史需要遍历各个 history
2020-05-08 20:31:43
645
原创 HTML学习笔记 07 - 盒子模型
一、盒子模型1、行标签与块标签浏览器在显示HTML文档时,由于浏览器会自上而下,自左至右的读取HTML文档,所以默认情况下元素会自动从上而下分成一行行,并在每行中按从左至右的顺序排放。这种从左往右,从上往下的流式排列方式,我们称之为文档流。1.1、行标签行标签(内联标签)不会占据容器的一整行,它会和它周围的内容一起,在一行内,从左至右自然的依次显示,如果没有更多的空间,剩下的内容会自动摆放...
2020-05-06 21:40:20
461
原创 HTML学习笔记 06 - CSS和常见选择器简介
一、层叠样式表1、什么是CSS层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML或XML等文件样式的计算机语言。再web开发技术初期,HTML的内容和样式没有分离开,随着web技术的发展,HTML变的越来越杂乱和臃肿。web开发人员建议,把表示样式的代码从HTML中分离出来,并且创建一种规则来定义HTML元素要显示成什么样子,于是便诞生了CSS语言。...
2020-05-05 20:43:43
285
原创 Maven的安装与配置
一、maven的下载与解压下载地址:maven3.63下载将下载好的文件解压到指定位置,小编的位置是:E:\Maven\。并在此文件夹下创建一个本地仓库。俗话叫文件夹。自己起个名字,如小编的LocalWarehouse二、环境变量的配置这里需要配置M2_HOME和Path变量。注意后面的封号。三、settings.xml文件的配置找到settings.xml文件,记事本打开它。...
2020-05-04 21:28:23
518
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人