自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 golang 文件操作

golang 文件读取、写入、删除、复制、重命名等操作

2024-03-11 18:03:36 677 1

原创 php文件操作

文件读取、写入、复制、删除、重命名等基础操作

2024-03-10 12:58:37 963

原创 php 异常Exception和错误Error

在PHP7之后,set_exception_handler 不仅能捕获 Exception,也能捕获 Fatal Error类型(但是不能捕获notice和warning)。1,这两个类都继承自Throwable类,用 catch(Throwable $e) 可以同时捕获 Exception 和 Fatal Error类型的错误或异常。因为PHP7之后,set_exception_handler的回调函数可以传入一个Throwable类的实例,而不仅限于Exception类的实例。

2023-03-29 14:55:16 710

转载 java int和Integer的区别

二、对于两个非new生成的Integer对象,进行比较时,如果两个变量的值在区间-128到127之间,则比较结果为true,如果两个变量的值不在此区间,则比较结果为false(这是因为Integer的缓存机制会对-128-127的数进行缓存,若下次整型变量赋值为-128-127间则会直接从缓存中取)(因为非new生成的Integer变量指向的是java常量池中的对象,而new Integer()生成的变量指向堆中新建的对象,两者在内存中的地址不同)

2023-03-28 19:14:50 93

原创 数组合并array_merge函数与“+”的区别

一、array1+array2可以把他叫做数组的“补充合并”:不管是数字下标还是字符串下标,当前面数组中下标元素不存在时,把后面数组元素补充进来;当前面数组下标已存在,不需要补充了,抛弃掉后面数组元素,最终结果使用前面的数组元素;如:$array1 = [0, 1 => 1, 'two' => 2];$array2 = [0, 1 => '一', 'two' => '二', 'three' => '三'];print_r($array1 + $arr

2020-06-17 19:33:46 360

原创 《大型网站技术架构-核心原理与案例分析》学习笔记(八):安全架构

一、常见攻击与防御1,XSS攻击XSS跨站脚本攻击(Cross Site Script),黑客通过篡改网页,注入恶意html脚本,在用户浏览网页时,控制用户浏览器进行恶意操作的一种攻击方式。攻击方式:反射性:攻击者诱使用户点击一个嵌入恶意脚本的链接,达到攻击的目的; 持久性:黑客提交还有恶意脚本的请求,保存在被攻击web站点的服务器中,用户浏览网页,恶意脚本被包含在正常网页防御:消毒:对危险字符转义 HttpOnly:浏览器禁止JavaScript访问代用httponly属性的co

2020-05-19 12:57:08 167

原创 《大型网站技术架构-核心原理与案例分析》学习笔记(七):可扩展架构

可扩展架构的核心思想是模块化,并在此基础上,降低模块间的耦合性,提高模块的复用性。扩展性和伸缩性的区别:扩展性指对现有系统影响最小的情况下,系统功能可持续扩展或提升的能力,当系统需要增加功能时,不需要对现有系统结构和代码进行修改或修改较少,是系统架构设计层面的开闭原则(对扩展开放,对修改关闭);伸缩性指系统通过增加(减少)自身资源规模方式增强(减少)自己计算处理事务的能力。如利用集群增加服务器数量提高事务吞吐能力。一、利用分布式消息队列降低系统耦合性事件驱动架构(Event Driv

2020-05-19 12:11:43 197

原创 《大型网站技术架构-核心原理与案例分析》学习笔记(六):伸缩性架构

一、不同功能物理分离纵向分离:将业务处理流程上的不同部分分离部署,实现伸缩性 横向分离:将不同业务模块分离部署,实现系统伸缩性二、单一功能集群1,应用服务器集群负载均衡2,数据服务器集群2.1 缓存服务器集群2.2 存储数据服务器集群...

2020-05-14 20:25:46 129

原创 《大型网站技术架构-核心原理与案例分析》学习笔记(五):高可用架构

一、可用性的度量与考核业界通常用多少个9来衡量网站的可用性。标准 难度不可用时间 99% 小于88小时 基本可用 99.9% 小于9小时 较高可用 99.99% 小于53分钟 具有自动恢复能力的高可用 99.999% 小于5分钟 极高可用性 二、可用性架构1,应用层使用负载均衡设备将一组服务器组成一个集群共同对外提供服务,通过心跳检测等手段监控到服务器不可用时,将服务器删除,并将请求分发到集群其它服务器,从而.

2020-05-14 20:10:43 155

原创 《大型网站技术架构-核心原理与案例分析》学习笔记(四):高性能架构

一、性能测试1,测试指标响应时间:执行一个操作需要的时间 并发数:系统能够同时处理请求的数目 吞吐量:单位时间内系统处理的请求数量,tps(每秒事务数)、hps(每秒http请求数)、qps(每秒查询数) 性能计数器:systemload、对象与线程数、内容使用情况、CUP使用情况、磁盘与网络I/Osystemload及系统负载,只正在被cup执行和等待cup执行的进程数。所以load的理想情况是等于cup的数量。linux使用top命名查看,该值有三个浮点数,反应了1分钟、5分钟、1

2020-05-09 13:25:50 129

原创 《大型网站技术架构-核心原理与案例分析》学习笔记(三):大型网站核心架构要素

一、性能性能是网站构建的一个重要指标,任务软件架构设计方案都必须考虑可能带来的性能问题二、可用性承诺7x24可用,服务器宕机、服务不可用是重大事故。衡量一个系统架构是否高可用,就是当系统中任何一台或几台服务器宕机时,已经出现各种不可预期问题时,系统整体是否依然可用。三、伸缩性是否可用多台服务器构建集群,是否容易向集群添加新服务器,新加服务器是否可用提供无差别服务,集群服务器总数量是否有限制。四、扩展性添加新业务产品时,可用实现对现有产品透明无影响,不需要改动或改动很小既有业务

2020-05-09 12:35:13 174

原创 《大型网站技术架构-核心原理与案例分析》学习笔记(二):大型网站架构模式

### 一,分层将系统在横行维度切分成几个部分,每个部分负责相对单一的职责,通过上层对下层的依赖和调用组成一个完整的系统;各层直接有一定的独立性,只要维持调用接口不变,各层可独立发展而不相扰;合理规划层次边界和接口; 禁止跨层调用; 禁止逆向调用;例如:应用层 具体业务和视图展示,如网站页面、搜索输入和结果展示 服务层 为应用层提供服务支持,如用户管理服务,购物车服务等 数据层 提供数据存储访问访问,如数据库、缓存、文件、搜索引擎等 ### ...

2020-05-09 12:15:07 125

原创 PHP 大小写是否敏感

大小写敏感:1. 变量名所有变量均区分大小写,包括预定义变量,如:$_GET,$_POST,$_REQUEST,$_COOKIE,$_SESSION,$GLOBALS,$_SERVER,$_FILES,$_ENV等;$abc = 'hello world';echo $abc; #输出hello worldecho $ABC; #报错,变量未定义print_r($_GET);...

2019-08-27 16:25:33 263

原创 mysql 分组排序

比如有一个全年级成绩表(grade):id name(姓名) score(分数) class_id(班级) 1 张三 68 1 2 李四 70 1 3 王五 85 1 4 刘六 63 2 5 陈七 90 2 ...... ...... ...... ...

2019-08-27 15:52:00 421

原创 shell 运算符

一、算数运算符1)常见算数运算符运算符 说明 + 加法 - 减法 * 乘法 / 除法 % 取余 =、+=、-=、*=、/=、%= 赋值 ++、-- 自增、自减 2)常见运算命令运算命令 说明 $(()) 整数运算,效率高,不支持浮点型和字符串等 let 整数运算后赋值 expr...

2019-08-21 17:17:51 97

原创 shell 外部参数

给脚本传递参数在执行 Shell 脚本时,向脚本传递参数,脚本内获取参数的格式为:$n。n代表一个数字,$0为执行的文件名,$1 为执行脚本的第一个参数,$2 为执行脚本的第二个参数,以此类推……echo "当前文件名:$0";echo "第一个参数为:$1";echo "第二个参数为:$2";echo "参数个数为:$#";执行脚本,输出结果:$ ./hello...

2019-08-20 18:34:27 737

原创 shell 函数

函数定义函数的定义格式如下:[ function ] funname(){ 函数体 [return 返回值]}例如:#!/bin/bashdemoFun(){ echo "加法运算" return `expr 1 + 1`}demoFunecho "1+1="$?输出结果:加法运算1+1=2函数返回值在调用该函数...

2019-08-20 18:06:06 98

原创 shell 注释

单行注释以#开头的行就是注释,会被解释器忽略。通过每一行加一个#号设置多行注释,像这样:#--------------------------------------------# 这是一个注释## date:2019-08-20#--------------------------------------------##### 用户配置区 开始 #####ho...

2019-08-20 17:24:18 276

原创 shell 数组

bash支持一维数组(不支持多维数组),并且没有限定数组的大小。定义数组Shell 数组用括号来表示,元素用"空格"符号分割开,语法格式如下:数组名=(值1 值2 ... 值n)例如:array_name=(value0 value1 value2 value3)#或者array_name=(value0value1value2value3)还可以单独...

2019-08-20 17:15:28 100

原创 shell 字符串

字符串格式:字符串是shell编程中最常用最有用的数据类型,字符串可以用单引号,也可以用双引号,也可以不用引号。str1=this is a stringstr2='this is a string'str3="this is a string"单双引号的区别跟PHP类似:单引号原样输出,双引号里可以有变量。 不用引号和单引号字串中不能出现单独一个的单引号(对单引号使用转义符后...

2019-08-20 16:56:03 88

原创 shell 变量

定义变量:变量名=变量值,注意:变量名和等号之间不能有空格your_name="hello world"变量名的命名规则:命名只能使用英文字母,数字和下划线; 首个字符不能以数字开头; 不能使用bash里的关键字(可用help命令查看保留关键字)。除了显式地直接赋值,还可以用语句给变量赋值,如:#将/etc下目录的文件名循环出来for file in `ls /et...

2019-08-20 16:04:03 81

原创 shell 概述

shell和shell脚本首先,shell 和 shell script 是两个不同的概念。通常平常所说的 shell 通常都是指 shell 脚本。shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。Ken Thompson 的 sh 是第一种 Unix Shell,Windows Explorer 是一个典型的图形界面 Shell。 sh...

2019-08-20 15:36:24 155

原创 php 图片文件、二进制流、base64格式相互转化

1,图片文件转化成二进制流$image = 'E:/www/logo.png'; //图片文件地址$type = getimagesize($image)['mime']; //获取图片类型$imgData = file_get_contents($image); //获取图片二进制流//输出二进制图片ob_clean(); //清除缓冲区,防止出现“图像因其...

2019-07-03 19:03:23 9038 1

原创 PHP函数is_int(),is_integer(),is_long(),is_numeric(),ctype_digit()的区别

一,用法1.is_int():检测变量是否是整数;is_integer 和 is_long() 都是它的别名;is_int ( mixed $var ) : bool2.is_numeric():检测变量是否为数字或数字字符串is_numeric ( mixed $var ) : bool3.ctype_digit():做纯数字检测ctype_digit ( stri...

2019-04-28 12:38:02 912

原创 mysql锁机制

一、MySQL锁概述表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低,又分读锁与写锁。行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高,又分共享锁与排他锁。页面锁:开销和加锁时间界于表锁和行锁之间;会出现死锁;锁定粒度界于表锁和行锁之间,并发度一般MySQL的锁机制的特点是不同的存储引擎支持不同的锁机制:...

2019-04-26 19:05:17 152

原创 PHP正则表达式

匹配原则正则表达式在匹配字符串时,遵循以下2个基本原则:1.最左原则:正则表达式总是从目标字符串的最左侧开始,依次匹配,直到匹配到符合表达式要求的部分,或直到匹配目标字符串的结束。2.最长原则:对于匹配到的目标字符串,正则表达式总是会匹配到符合正则表达式要求的最长的部分;即贪婪模式分隔符当使用 PCRE 函数的时候,模式需要由分隔符闭合包裹。分隔符可以使任意非字母数字、非反斜线...

2019-03-20 17:28:34 299

转载 六大设计原则

一,单一职责原则(SRP:Single responsibility principle)定义:一个类应该只有一个发生变化的原因,即一个类只负责一项职责。问题由来:类A负责两个职责:职责P1,职责P2。当由于职责P1需求发生改变而需要修改类A时,有可能会导致原本运行正常的职责P2功能发生故障。解决方案:分别建立两个类A1、A2,使A1完成职责P1,A2完成职责P2。这样,当...

2019-03-13 13:07:55 188

原创 从写时复制、引用计数、垃圾回收等浅谈php内存管理机制

一、写时复制(Copy-On-Write)先看一段代码:var_dump(memory_get_usage(true)); //int(262144)$a = str_pad("Hello World",1000000,"Hello World");var_dump(memory_get_usage(true)); //int(1310720) $b = $a;v...

2018-09-13 20:05:36 175

原创 PHP字符串函数 strstr stristr strchr strrchr的区别

一、strstr stristr strchr这三个函数是一拨的:查找字符串的首次出现,返回字符串从第一次出现的位置开始到该字符串的结尾或开始。mixed strstr ( string $haystack , mixed $needle [, bool $before_needle = false ] )参数说明:haystack     在该字符串中进行查找。 nee...

2018-09-06 13:05:32 382

原创 Mysql事务、事务并发及、事务隔离

一、什么是事务1、事务概念: 事务是包含了一组有序的数据库操作命令的序列,它是数据库并发操作的最小控制单位。2、事务特性:原子性:事务包含的数据库操作命令要么都执行,要么都不执行。一致性:当事务完成时,数据库处于稳定而一致的状态。即事务执行后,数据库数据要符合规定,而且所有数据查询的结果是一致的。隔离性:多个事务同时执行时,他们之间是互不干扰的。永久性:一旦事务提交成功,它引发的变化也就永

2017-03-08 18:42:17 317

转载 【Java基础】Java包(package)

为了更好地组织类,Java 提供了包机制,用于区别类名的命名空间。包的作用1、把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用。2、如同文件夹一样,包也采用了树形目录的存储方式。同一个包中的类名字是不同的,不同的包中的类的名字是可以相同的,当同时调用两个不同包中相同类名的类时,应该加上包名加以区别。因此,包可以避免名字冲突。3、包也限定了访问权限,拥有包访问权限的类才能访问某个包

2017-03-01 14:43:23 303

转载 【Java基础】Java抽象类

在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。 抽象类除了不能实例化对象之外,类的其它功能依然存在,成员变量、成员方法和构造方法的访问方式和普通类一样。 由于抽象类不能实例化对象,所以抽象类必须被继承,才能被使用。也是因为这个原因,通常在设计阶段决定要不要设计抽象类。 父类

2017-02-28 15:07:25 211

转载 【Java基础】Java接口

概述接口(英文:Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。接口并不是类,编写接口的方式和类很相似,但是它们属于不同的概念。类描述对象的属性和方法。接口则包含类要实现的方法。除非实现接口的类是抽象类,否则该类要定义接口中的所有方法。接口无法被实例化,但是可以被实现。一个实现接口的类

2017-02-27 18:27:19 246

转载 【Java基础】 重写(Override)与重载(Overload)

重写(Override)重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。即外壳不变,核心重写! 重写的好处在于子类可以根据需要,定义特定于自己的行为。 也就是说子类能够根据需要实现父类的方法。 重写方法不能抛出新的检查异常或者比被重写方法申明更加宽泛的异常。例如: 父类的一个方法申明了一个检查异常 IOException,但是在重写这个方法的时候不能抛出 Exc

2017-02-27 18:08:48 315

原创 java面向对象三大特性-多态

概述多态是同一个行为具有多个不同表现形式或形态的能力。 多态就是同一个接口,使用不同的实例而执行不同操作, 多态性是对象多种表现形式的体现。 现实中,比如我们按下 F1 键这个动作: 如果当前在 Flash 界面下弹出的就是 AS 3 的帮助文档; 如果当前在 Word下弹出的就是 Word 帮助; 在 Windows 下弹出的就是 Windows 帮助和支持。同一个

2017-02-27 17:54:14 165

原创 java面向对象三大特性-继承

继承的概念继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类。 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。 所以继承需要符合的关系是:is-a,父类更通用,子类更具体。类的继承格式在 Java 中通过 extends 关键字可以申明一个类是从另外一个类继承而来的,一般形式如下: 类的继承格

2017-02-27 15:12:26 215

原创 java面向对象三大特性-封装

封装是面向对象的特征之一,是对象和类概念的主要特性。 封装将数据以及加在这些数据上的操作组织在一起,成为有独立意义的构件。 封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问,要访问该类的代码和数据,必须通过严格的接口控制,接口规定了可对一个特定的对象发出哪些请求。 适当的封装可以让程式码更容易理解与维护,也加强了程式码的安全性。封装的优点良好的封装能够减少耦合。

2017-02-24 16:14:49 286

转载 【Java基础】Java异常处理

概述异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的。 比如说,你的代码少了一个分号,那么运行出来结果是提示是错误 java.lang.Error; 如果你用System.out.println(11/0),那么你是因为你用0做了除数,会抛出 java.lang.ArithmeticException 的异常。 异常发生的原因有很多,通常包含以下几大类:用户输入

2017-02-24 15:15:38 164

转载 【Java基础】StringBuffer 和 StringBuilder 类

当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类。 和 String 类不同的是,StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。 StringBuilder 类在 Java 5 中被提出,它和 StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安全

2017-02-24 13:51:15 227

转载 【Java基础】String 类

创建字符串创建字符串最简单的方式如下:String greeting = "菜鸟教程";在代码中遇到字符串常量时,这里的值是 “菜鸟教程”“,编译器会使用该值创建一个 String 对象。 和其它对象一样,可以使用关键字和构造方法来创建 String 对象。 String 类有 11 种构造方法,这些方法提供不同的参数来初始化字符串,比如提供一个字符数组参数:public class Strin

2017-02-24 12:02:44 188

空空如也

空空如也

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

TA关注的人

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