- 博客(55)
- 收藏
- 关注
原创 设计模式 创建型:单例模式
创建型:单例模式一、单例模式实现1. 懒汉式-线程不安全2. 饿汉式-线程安全3. 懒汉式-线程安全4. 双重校验锁-线程安全5. 静态内部类实现6. 枚举实现Enum防反射攻击:反射实现的Constructor限制了ENUM类型:Cannot reflectively create enum objectsEnum防序列化攻击:使用transient限制了序列化,通过反射调用枚举类的values方法二、单例模式攻击防反射攻击——单例模式反射攻击:未添加防反射代码逻辑将显示:攻击Sinleton成功防反射攻
2021-08-16 12:54:32
501
原创 Spring Boot 访问不到static下的js,css等静态资源
解决:实现WebMvcConfigurer配置接口的addResourceHandlers方法,为静态资源添加项目路径,解决404问题// 需添加Configuration注解package config;import org.springframework.context.annotation.Configuration;import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;import
2021-01-30 12:17:24
699
原创 一道Java典型多线程题:请分成N个线程,计算m到n的值的总和。要求每个线程计算的数字量之差不超过1
一、用到的知识点:多例多线程、synchronized锁、数据共享public class task05 { public static void main(String[] args) { System.out.println("请输入m到n的值,用于计算的线程数N:"); Scanner in = new Scanner(System.in); int m = in.nextInt(); int n = in.nextInt(); int threadNumber = in.n
2020-11-15 17:26:42
1003
原创 ECMAScript 6 入门——正则的扩展
五、正则的扩展1.RegExp构造函数ES5中,RegExp构造函数的参数有两种情况(1)两个参数且都是字符串,这时第二个参数表示正则表达式的修饰符(flag)(2)一个参数而是正则表达式,这时会返回一个原由正则表达式的拷贝。此时不允许使用第二个参数添加修饰符(1)var regex = new RegExp('xyz', 'i');// 等价于var regex = /xyz...
2019-12-15 14:54:49
271
原创 ECMAScript 6 入门——字符串的新增方法
四、字符串的新增方法1.String.fromCodePoint()以下均用于从Unicode码点返回对于字符(1)ES5的String.fromCharCode()只能返回0x0000-0xFFFF的字符串,不能访问大于0xFFFF的字符(2)ES6的String.fromCodePoint()则可识别大于0xFFFF的字符,弥补了不足。(1)0x20BB7发生溢出最高两位被抛弃,返...
2019-12-14 13:56:49
354
原创 ECMAScript 6 入门——字符串的扩展
三、字符串的扩展1. 字符的Unicode表示法ES6加强了对Unicode的支持:(1)运行 \uxxxx表示一个字符,其中xxxx表示字符的Unicode码点(2)ES6改进。将码点放入大括号即能正确读取该字符"\uD842\uDFB7"// "????"由于超过0xFFFF的数值会被理解成\u20BB+7,又\u20BB为不可打印字符,所有显示一个空格加7"\u20BB7"// ...
2019-12-13 00:14:26
350
原创 ECMAScript 6 入门——变量的解构赋值
二、遍历的解构赋值1. 数组的解构赋值基本用法ES6解构:按照一定模式便捷的从对象和数组中提取/赋值便捷性说明前(ES5)let a = 1;let b = 2;let c = 3;后(ES6)let [a, b, c] = [1, 2, 3];常用情况嵌套数组赋值let [foo, [[bar], baz]] = [1, [[2], 3]];foo // 1...
2019-12-11 23:05:55
227
原创 ECMAScript 6 入门——let和const命令
一、let和const命令let命令只在let所在的代码块内有效例子(识别var和let的作用域区别,for说明)for循环的计数器,就很合适使用let命令。for (let i = 0; i < 10; i++) {// …}console.log(i);// ReferenceError: i is not defined下面的代码如果使用var,最后输出的是...
2019-12-10 23:25:21
225
1
原创 ECMAScript 6 入门——前言/简介
简介(看看就好,搭配括号理解就行)ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准,已经在 2015 年 6 月正式发布了。它的目标,是使得JavaScript语言可以用来编写复杂的大型应用程序,成为企业级开发语言。因此,ES6 既是一个历史名词,也是一个泛指,含义是 5.1 版以后的 JavaScript 的下一代标准,涵盖了ES2015、ES201...
2019-12-10 23:23:42
229
原创 webpack4技术栈学习笔记
一、webpack如何初始化环境?安装node.js创建个项目文件夹npm init -y(一路yes)npm install webpack webpack-cli -D(等于–save-dev)跳转package.json,删除main防止发布代码,增加private字段 { "name": "webpack-demo", "version": "1...
2019-12-08 20:05:04
506
原创 数据库的设计笔记+个人见解
零、什么是数据库设计?简单来说,数据库设计就是根据业务系统的具体需求,结合我们所选的DBMS(数据库管理系统),为这个业务系统构造最优的数据库存储模型。并建立好数据库中的表结构及表与表之间的关联关系的过程。使之能有效的对应用系统中的数据进行存储,并可以高效的对已经存储的数据进行访问。关系型数据库管理系统:MySQL、Oracle、SQLServer、PgSql非关系型数据库管理系统:Red...
2019-07-06 20:25:35
1033
原创 MySQL多方面优化
目录一、如何发现有性能问题的SQL?二、如何通过通过慢查日志发送有问题的SQL?三、如何对找到性能一般的SQL语句进行分析四、SQL具体优化五、索引的建立与优化六、数据库结构上优化七、数据库系统配置优化八、服务器硬件优化一、如何发现有性能问题的SQL?开启MySQL慢查询日志对有效率问题的SQL进行监控。->但使用慢查日志可能导致日志文件大量增加。->使用...
2019-07-04 19:28:15
607
原创 SQL总复习带例子(部分个人注释)
distinct:用于返回唯一不同的值例子select distinct Company from Orders;where:有条件的选取表中数据操作符 描述= 等于<> 不等于大于< 小于= 大于等于<= 小于等于BETWEEN 在某个范围内LIKE 搜索某种模式例子Select * from Persons where Firstname...
2019-07-01 20:47:45
396
原创 基于lnmp的web访问执行流程解析(应用层)
继两次被人问到有关web服务器和php之间的流程回答不流畅后,决定将整个运行流程疏通一遍。在此之前,先了解一些相关的名词解释。SAPI(Server Application Programming Interface),服务器应用程序编程接口,即PHP与其他应用交互的接口,PHP脚本要执行有很多方式,通过Web服务器,或者直接在命令行下,也可以嵌入在其他程序中。SAPI提供了一个和外部通信的...
2019-07-01 20:33:54
774
1
原创 mysql数据库面试题
1、用一条SQL语句查询出每门课都大于80分的学生姓名select name from users where fenshu >= 80 group by name having count(name) > 1;解析:1、fenshu字段的value需>80...
2019-06-30 20:34:17
4563
1
转载 [转]PHP中的ob_start用法详解(输出缓存区)
用PHP的ob_start();控制您的浏览器cacheOutput Control 函数可以让你自由控制脚本中数据的输出。它非常地有用,特别是对于:当你想在数据已经输出后,再输出文件头的情况。输出控制函数不对使用 header() 或 setcookie(), 发送的文件头信息产生影响,只对那些类似于 echo() 和 PHP 代码的数据块有作用。我们先举一个简单的例子,让大家对Out...
2019-06-26 18:47:49
566
原创 laravel5.8使用总结和比较
一、踩坑laravel目前为止的坑安装的坑1、5.8对于PHP的版本要求7.0以上2、要求php至少要安装八个要求的拓展3、即使使用github下载,安装还是需要使用composer,使用国内镜像速度相对快一丢4、所使用的nginx还是apache得配置ssl模块,php安装openssl拓展,否则使用镜像https还是获取不了5、安装完成后还需要启动内置开发服务器,否则500。ph...
2019-06-20 11:40:48
2998
1
原创 laravel5.8使用邮件服务小总结
背景:系统环境:lnmp框架:laravel5.8做邮件发送服务器:qq邮箱配置参考:MAIL_DRIVER=smtpMAIL_HOST=smtp.qq.comMAIL_PORT=465MAIL_USERNAME=141518xxxx@qq.com//注意:此为授权码非密码,授权码在邮件服务商(例qq)的配置中生成MAIL_PASSWORD=wrbgswtyzonb****...
2019-06-16 13:24:27
1102
原创 linux下载安装composer和laravel5.8
软件下载地址/data/Software站点目录/var/www一、下载composer1、下载安装composerwget -P /data/Software https://getcomposer.org/download/1.8.5/composer.pharmv /data/Software/composer.phar /usr/local/bin/composerchmod ...
2019-06-13 15:48:50
1110
原创 配置RSA密钥使用ssh协议登录远程服务器
背景:连接工具Xshell 6目标服务器系统centOS7.3本地系统windows关于SSH服务器搭建一、配置远程连接1、ssh配置//打开ssh配置文件vi /etc/ssh/ssh_config按需配置,也可关闭root用户登录,将权限所属用户改为普通用户进行登录#关闭密码登录PasswordAuthentication no#允许root认证登录PermitRo...
2019-06-13 11:24:02
13799
1
原创 linux父文件夹权限延伸范围?
结论:chmod赋予指定用户操作的权限时只针对父文件夹,不包括子文件夹。即使其他用户没有父文件夹的写权限,只要拥有子文件夹的写权限则依然可以进行写操作。但如果父文件夹权限不允许其他用户进行读和访问权限,那么即使拥有子文件夹的读写执行操作也没有作用,因为进不去父文件夹。如果只是个文件那么chmod权限范围毫无争议。chmod命令语法为:chmod abc file其中a,b,c各为一个数...
2019-06-12 16:52:54
1606
原创 php+redis安装phpredis拓展+测试
背景:lnmp下,已安装redis5.0和php7.2一、下载安装GUN m4(autoconf需要用到)wget -P /data/Software http://ftp.gnu.org/gnu/m4/m4-1.4.18.tar.gzcd /data/Softwaretar -zxvf m4-1.4.18.tar.gzcd m4-1.4.18./configure --prefix=...
2019-06-11 10:40:12
727
原创 redis主从复制,读写分离
一、redis官网介绍Redis 支持简单且易用的主从复制(master-slave replication)功能, 该功能可以让从服务器(slave server)成为主服务器(master server)的精确复制品。以下是关于 Redis 复制功能的几个重要方面:Redis 使用异步复制。 从 Redis 2.8 开始, 从服务器会以每秒一次的频率向主服务器报告复制流(replic...
2019-06-10 15:13:33
122
原创 redis的持久化(persistence)
一、关于redis的持久化Redis的所有数据都是保存在内存中,然后不定期的通过异步方式保存到磁盘上(这称为“半持久化模式”);也可以把每一次数据变化都写入到一个append only file(aof)里面(这称为“全持久化模式”)。由于Redis的数据都存放在内存中,如果没有配置持久化,redis重启后数据就全丢失了,于是需要开启redis的持久化功能,将数据保存到磁 盘上,当redis重...
2019-06-09 21:39:15
318
转载 [转]排它锁&共享锁&乐观锁&悲观锁
1.排它锁客户端1set autocommit=0;BEGIN;SELECT * from bb_blog where id = 1 for update;update bb_blog set title = 5525 where id = 1;//这里没有提交事务 commit,因为提交之后就是解锁了客户端1SELECT * from bb_blog where id = 1 ...
2019-06-09 21:05:53
103
原创 redis的五大数据类型+事务
1、String最基本简单的数据类型,即key-value键值对。value大小最大值为512MBkey——value特殊操作:自增、减1和自增、减N2、Hash(最常用)Hash和String差别不大,只是Hash的值是键值对。可以这么理解:key——(key1-value2)key——(key2-value2)3、ListList和String差别是List的valu...
2019-06-09 20:10:22
253
原创 关于linux配置环境变量
一、直接更改环境变量PATH1、配置PATH环境变量(临时)cat /etc/environment我没写redis的环境变量的情况下直接添加环境变量(切换用户时失效)export PATH=/etc/redis/bin:$PATH(类比可以直接打export,对显示的所有的变量进行临时更改)以下例子可以看出,直接export变量参数只是临时,并不会直接更改environment...
2019-06-08 15:16:35
988
转载 [转]redis5.0参数配置说明
#是否在后台执行,yes:后台运行;no:不是后台运行daemonize yes#是否开启保护模式,默认开启。要是配置里没有指定bind和密码。开启该参数后,redis只会本地进行访问,拒绝外部访问。protected-mode yes#redis的进程文件pidfile /var/run/redis/redis-server.pid#red...
2019-06-07 17:06:19
1441
原创 linux源码安装redis5.0+配置+启动
一、安装下载下载redis,注意wget命令会直接在当前目录下载,例如我/data/Software/wget -c http://download.redis.io/releases/redis-5.0.4.tar.gz1解压tar -zxvf redis-5.0.5.tar.gz创建软件安装目录mkdir /etc/redis(一般其实安装到/usr/local比较合适)创建数据...
2019-06-07 16:56:45
1102
原创 TP5路由知识简单个人汇总
一、路由的模式普通模式(默认pathinfo,不解析路由)‘url_route_on’ => false混合模式(pathinfo+解析路由)‘url_route_on’ => true,‘url_route_must’=> false,强制模式(必须路由)‘url_route_on’ => true,‘url_route_must’ =...
2019-06-06 18:31:39
4168
原创 MySQL突然启动失败
Jun 06 08:53:58 izwz97pafsy25cyhg6jiwsz systemd[1]: Starting LSB: start and stop MySQL…Jun 06 08:53:59 izwz97pafsy25cyhg6jiwsz mysql[8955]: Starting MySQL.2019-06-06T00:53:59.419220Z mysqld_safe erro...
2019-06-06 09:08:05
1326
转载 centos7 源码安装 DenyHosts-2.6预防SSH暴破
一、下载手动下载 https://sourceforge.net/projects/denyhosts/files/或者wget -c https://sourceforge.net/projects/denyhosts/files/latest/download二、安装过程由于DenyHosts是Python开发的所以需要用到python安装tar zxvf DenyHosts-2....
2019-06-05 15:31:15
576
原创 使用Git在本地Windows下布置或实时更新服务器linux上的项目
背景:昨天把自己的项目从Windows移植到服务器上,但有一些小细节要更改。在服务器上改又太慢,在本地改使用Xftp又得自己定位到改的地方,然后在覆盖。最终还是Git方便同时还顺带有很多其他的功能。零、需要去Git官网注册个账号https://github.com/一、下载安装1.1在windows 下安装githttps://git-scm.com/downloads直接默认安装下一...
2019-06-04 13:30:00
721
原创 1067 - Invalid default value for 'create_at'
背景:Navicat数据传输,create_at字段无效问题根源:目前使用的MySQL8.0.11默认为严格模式解决:更改sql_mode,改为宽松模式打开my.cnf更改前更改后sql_mode = ANSI重启mysqlsystemctl restart mysql再次传输数据...
2019-06-03 15:01:43
3944
原创 session_start(): Cannot start session when headers already sent
背景:刚在云服务器安装完lnmp环境后,放入自己做好的项目,出现一个奇怪的错误打开php.ini将自动开始会话选项打开搜索查找session.auto_start = 0将之设为1session.auto_start = 1重启php-fpmpkill php-fpmphp-fpm (注:我已配置环境变量)结果[8] ErrorException in Login.php ...
2019-06-03 14:36:45
5385
原创 云服务器从购买到部署环境lnmp(完)
三、源码安装最新MySQL8.0.11MySQL8.0版本比MySQL5.7要快2倍,更快的性能和大量的改进MySQL8.0版本简介 https://www.cnblogs.com/mr7664/articles/9857621.html3.1安装Mysql3.1.1下载MySQL下载地址:http://dev.mysql.com/get/Downloads/MySQL-8.0.11/m...
2019-06-03 11:32:44
780
原创 云服务器从购买到部署环境lnmp(三)
二、源码安装nginx2.1安装编译工具及库文件yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel2.2安装 PCRE注意安装前先查看有没有PCRE,有则跳过这一步!pcre-config --version2.2.1下载PCREPCRE 作用是让 Nginx 支持 Rewrite 重写...
2019-05-31 11:38:29
294
原创 云服务器从购买到部署环境lnmp(二)
考虑到之前使用wget下载缓慢直接使用主机下载好再通过Xftp 6移动到阿里云中,全部采用源码形式安装一、源码安装PHP7.21.1通过主机直接下载tar包比较快http://cn2.php.net/distributions/php-7.2.4.tar.gz创建个目录存放tar包mkdir /Downloads直接拖动1.2解压tar -xzvf php-7.2.4.tar....
2019-05-30 18:21:44
202
原创 云服务器从购买到部署环境lnmp(一)
一、购买一个云服务器阿里云云翼计划2018https://promotion.aliyun.com/ntms/act/campus2018.html 10元/月由于之前买的是轻量应用服务器,只能默认安装好LAMP环境,同时里面的PHP是5版本,所以以下决定直接重置成仅有系统没有环境,然后手动安装最新版本二、下载Xshell6+XFTP6下载地址:https://www.netsara...
2019-05-30 16:21:51
286
原创 centos7.3源码安装MySQL+环境配置+用户密码设置+远程访问配置
一、下载tar包wget -c http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.22.tar.gz/from/http://cdn.mysql.com/(我下载究极慢,几K/S)或者用主机下载好后使用XFTP6远程连接,直接把下载好的tar包复制到对应的linux目录下http://dev.mysql.com/get/Downl...
2019-05-30 15:44:28
217
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人