• PHP调优入门 PHP

    PHP调优入门

    PHP应用的性能并不是单纯的技术问题,它对商业层面的影响也很大。如果你认为几微秒不值得你花时间去提升,那说明你还没有到达高级程序员的水平。本公众号专注于PHP语言的学习教程,欢迎关注我们。性能的价值性能对PHP应用(软件)的意义,主要是三个方面。其一是用户体验,更快的速度无疑会让用户体验更好;其二是更快的速度能够提升转化率;其三,高性能的应用具有更好的可伸缩性(scalabil...

    PHP 2021年03月03日 1498 0
  • 自己动手写SQL执行引擎

    自己动手写SQL执行引擎前言在阅读了大量关于数据库的资料后,笔者情不自禁产生了一个造数据库轮子的想法。来验证一下自己对于数据库底层原理的掌握是否牢靠。在笔者的github中给这个database起名为Freedom。整体结构既然造轮子,那当然得从前端的网络协议交互到后端的文件存储全部给撸一遍。下面是Freedom实现的整体结构,里面包含了实现的大致模块:最终存储结构当然是使用经...

    Java 2021年03月02日 1072 0
  • 各类数据库驱动包

    我们在编译或使用一些数据同步软件时候,比如Datax、FlinkX、Kettle等,由于此类ETL软件连接的数据库较多,软件本身不提供各类数据库的驱动包,maven也无法找到相应的包,互联网上各类下载不是需要积分就是收费,很是不爽,因此通过在本人使用ETL软件过程中,整理的驱动包提供有需要的同胞使用,避免去互联网上花费较多的时间搜索。 Sybase驱动: jconn3-6.0...

    Java 2021年03月02日 2773 0
  • JVM内存参数设置

    关于JVM内存参数设置有一点想法,在这里记录一下:JVM内存参数设置没有固定的设置,一般都是对系统的业务以及单个业务对象的数据大小有一个初步的预估后,结合实际的业务场景以及并发量,对JVM内存参数进行一个初步的设置,并根据系统的实际运行情况来不断地调整,最后达到最佳的参数配置。下面我就根据之前做做的一个活动协同配置中心的业务,给出一个我认为合理的JVM配置信息针对营销活动推送中...

    Java 2021年03月02日 1867 0
  • JS 反爬:一分钟了解如何用 debugger 劝退爬虫

    背景爬虫之前,需要先对网站请求进行梳理,F12 打开浏览器的开发者模式是第一步,所以反爬虫的第一招就是,在开发者模式下让对手的浏览器进入 无限循环 debugger 。今天继续百度 “带有JS混淆加密的网站怎么破解”,看到一篇文章正打算参考测试时,浏览器就陷入了无限循环,两步之后,网站得意地宣布 “ 俺们是为人类服务的,你这机器就知难而退吧!”。好吧,知难而退之前,也得知道是怎...

    Python 2021年02月26日 2416 0
  • Spring Boot部署JAR文件瘦身优化经验分享

    本文截取代码片段来自于对应的完整示例源码工程:https://gitee.com/xautlx/package-optimize-demohttps://github.com/xautlx/package-optimize-demo相关代码和配置均实际执行测试过,如在验证过程发现有任何问题可Issue反馈以便及时更正,感谢支持!概要说明随着Spring Boot的流行,大家体验...

    Java 2021年02月26日 1117 0
  • Java基本数据类型及其包装类

    1、基本数据类型:Java基本数据类型共8种,整数型:byte,short,int,long;浮点型:float,double;字符型:char和布尔型:boolean。数据类型 /占用空间/ 取值范围/ 默认值byte / 1字节 / -128(-2^7)~+127(-2^7-1)0short / 2字节 / -32768(-2^15)~+32767(2^15-1)0int ...

    Java 2021年02月20日 1122 0
  • 微信小程序web-view内嵌H5使用PHP完成支付功能 PHP

    微信小程序web-view内嵌H5使用PHP完成支付功能

    在开发过程中,遇到使用微信小程序web-view内嵌H5完成支付的业务,我们该怎么去实现? 一、设计思路1、使用PHP请求接口获取wx_data_package支付包数据 2、使用jweixin.js把wx_data_package数据传到小程序 3、小程序获取数据,调起支付界面完成支付,并返回支付是否成功 4、后台根据返回的数据判断支付是否成功,然后进行相关业务处理 二、前...

    PHP 2021年02月17日 2544 0
  • PHP高级编程-回归原生态-谨防阻塞式调用 PHP

    PHP高级编程-回归原生态-谨防阻塞式调用

    4.4 谨防阻塞式调用PHP每次请求都会有单独的php-fpm进程响应和处理。php-fpm的进程模式又可以分为static静态执行、dynamic动态执行和ondemand模式。不管是何种执行方式,都是启动了一定数量的php-fpm进程来响应排山倒海般流量的请求。假设,这些进程全部都被占满时,系统就会出现异常、崩溃和无法响应新请求和新访问。识别哪些会产生阻塞式调用的操作,是预...

    PHP 2021年02月17日 1581 0
  • PHP高级编程-回归原生态-空与非空

    第 4 章 回归原生态 就当前而言,PHP仍然是网站建设的主流编程语言之一。一方面,是得益于它自身的简单性,容易学习且快速上手;另一方面,得益于开源社区贡献的各种优秀框架、类库和项目。这些源代码下载到服务器后,简单配置一下,甚至都不需要二次开发就能直接使用,非常方便。但需要注意的是,别人提供、贡献的开源项目是可以减少我们重复开发的成本,并不意味着我们对原生态的PHP就可以置之...

    PHP 2021年02月17日 1487 0
  • PHP高级编程-回归原生态-数组排序 PHP

    PHP高级编程-回归原生态-数组排序

    4.2 数组排序PHP里的数组实际上是一个有序映射。不管是队列、数组、栈还是字典,在使用PHP编程时,你都可以统一使用PHP的数组类型。这一节,我们只探讨关于PHP数组的排序,因为数组的排序是很多项目都会使用到的。虽然数据库也可以很方便进行排序,但在复杂、动态的业务规则下,更多需要在PHP代码层进行处理。因此加深对PHP数组的理解,对项目开发将大有禆益。4.2.1 一道面试题引...

    PHP 2021年02月15日 1542 0
  • Strings=newString("xyz")创建几个实例

    从面试题说起String s = new String("xyz"); 创建了几个实例?这是一道很经典的面试题,在一本所谓的Java宝典上,我看到的“标准答案”是这样的:两个,一个堆区的“xyz”,一个栈区指向“xyz”的s。这个所谓的“标准答案”槽点太多,后面我们慢慢分析。虽然答案很离谱,但是我觉得这个问题本身也不具有什么意义,因为问题没有既定义“创建”的具体含义,又没有指定...

    Java 2021年02月14日 1105 0
  • 启动一个没有 main 函数的 java 程序

    作为一名 JAVA 开发者,不知道大家有没有去想过,JAVA 程序为什么一定要从 main 函数执行开始,其实关于这个话题,我大概从网上搜了下,其实不乏有 main 方法是我们学习Java语言学习的第一个方法,也是每个 java 使用者最熟悉的方法, 每个 Java 应用程序都必须有且仅有一个 main 方法 这种说法。那么真的是这样吗?今天就来聊聊这个事情。为什么 main ...

    Java 2021年02月11日 1062 0
  • 阿里巴巴不建议 boolean 类型变量用isXXX的理由?

    背景平时工作中大家经常使用到boolean以及Boolean类型的数据,前者是基本数据类型,后者是包装类,为什么不推荐使用isXXX来命名呢?到底是用基本类型的数据好呢还是用包装类好呢?例子:1.其他非boolean类型   private String isHot;     public ...

    Java 2021年02月09日 1063 0
  • php应用curl请求去掉header信息

    1. 前提在API接口开发中,经常会碰到一个场景,就是请求第三方接口,然而请求回来的接口数据并不是我们期望的数据那样。比如我们请求回来的数据是不希望带header头信息的数据,然而第三方接口返回数据格式偏偏有header头的信息,怎么办呢?下面展示两种做法:$no = "9830106220207"; $appcode = "6e8a1e3ee8fc4ddda7d6cc5bf9...

    PHP 2021年02月07日 1616 0
  • 线程安全集合类CopyOnWriteArrayList

    我们上一篇学习了ArrayList,它的添加操作在单线程下是安全的,但是在多线程场景中会存在数据被覆盖等线程不安全的情况,如果我们需要在多线程环境下使用集合类怎么办呢,今天勾勾带你解决这个问题!Collections工具类我们可以使用java.utils.Collections工具类将 ArrayList转换为线程安全的集合:    &n...

    Java 2021年02月07日 1299 0
  • YznCMS1.0.0 后台开发框架 PHP

    YznCMS1.0.0 后台开发框架

    后端基于thinkphp5.1框架,永久免费可商用的后台系统,Git超1000+关注[模块插件清单]名称简介类型  价格  cms内容管理这是一个功能强大的内容管理模块!自定义模块,字段不在话下,支持近二十种类型字段模块免费cms小程序cms自带的小程序,接口都是读取cms的文章,近期推出模块免费会员模块系统必备的会员基础模块!含会员组,会员投稿等强大功能模块免费万能采集简单的...

    PHP 2021年02月06日 2032 0
  • 防止用户重复提交表单,后台业务代码重复执行

    环境配置:系统:Linux 7.8语言:PHP框架:Laravel 5.8主要技术:JQuery、PHP、Cache问题重现:当需要一个自然月客户只能订购一次产品时,客户重复点击提交按钮重复提交表单导致系统多次创建订单。思路及步骤一上来我认为这个问题很简单,直接在用户单击提交【按钮】之后,直接禁用此按钮,代码如下:(图示代码为公共方法,想给所有具有提交的属性的按钮都加上[sub...

    PHP 2021年02月05日 1575 0
  • 为什么要谨慎使用Arrays.asList、subList?

    1. 使用Arrays.asList的注意事项1.1 可能会踩的坑先来看下Arrays.asList的使用:List<Integer> statusList = Arrays.asList(1, 2); System.out.println(statusList); System.out.println(statusList.contains(1)); System...

    Java 2021年02月05日 1090 0
  • 分布式系统中如何使用聚合日志系统ELK查看后台日志

    ELK简介ELK日志系统相信大家都不陌生了,如果你的系统是集群有多个实例,那么去后台看日志肯定不方便,因为前台访问时随机路由到后台app的,所以需要一个聚合的日志查询系统。ELK就是一个不错的选择。ELK简单说的是:Elasticsearch + Logstash + Kibana。Logstash用于分析日志,获取想要的日志格式;Elasticsearch用于给日志创建索引;...

    Java 2021年02月05日 1327 0
  • 聊聊实现AOP框架的代理模式

    AOP(面向切面编程) 要达到的效果就是:在开发者不修改业务组件源代码的前提下,为这个业务组件添加某种通用功能。AOP的实现方式如果不在开发阶段去修改业务组件源代码,那么我们要在什么时候添加通用功能的代码呢?那就只能是在开发阶段之后,由AOP框架自动修改了源代码。按照 AOP 框架修改源代码的时机,大致可以分为两类实现方式:静态 AOP 实现:AOP 框架在编译阶段对程序代码进...

    Java 2021年02月04日 1274 0
  • Swift协议

    协议规定了用来实现某一特定功能所必需的方法和属性。任意能够满足协议要求的类型被称为遵循(conform)这个协议。类、结构体或枚举类型都可以遵循协议,并提供具体实现来完成协议定义的方法和功能。语法协议的语法格式如下:protocol SomeProtocol { // 协议内容 }要使类遵循某个协议,需要在类型名称后加上协议名称,中间以冒号:分隔,作为类型定义的一部分。遵...

    C语言 2021年02月04日 1563 0
  • php开发者composer使用看这一篇就够了 PHP

    php开发者composer使用看这一篇就够了

    composer安装建议全局安装,方便使用方法1:官网下载安装 php -r "readfile('https://getcomposer.org/installer');" | php 方法2:直接下载阿里云镜像文件: https://mirrors.aliyun.com/composer/composer.phar 全局安装: mv composer.phar /usr...

    PHP 2021年02月03日 1577 0
  • ThinkPHP6+Supervisor实现进程常驻消息队列 PHP

    ThinkPHP6+Supervisor实现进程常驻消息队列

    之前有需要使用tp开发一个消息队列功能,用来异步处理订单,发送一些消息等。因为是使用的是Thinkphp6,消息队列我用的thinkphp官方的think-queue消息队列,结合 supervisor 进程管理使队列进程常驻。记录一下,顺便分享给大家。安装 thinkphp-queuecomposer install thinkphp-queue存储消息环境thinkphp-...

    PHP 2021年02月03日 3433 0
  • 动态代理JDK和CGLib

    我们在生活场景中处处都是代理:租房买房找中介、购买商品找商城、吃饭点外卖等。今天就和勾勾一起来学习代理设计模式,并通过代码理解静态代理和动态代理。代理设计模式代理模式(Proxy Pattern)就是当一个对象A对另一个对象B的访问无法或者不想直接访问时,可以在两个对象添加代理对象C,A通过访问C而间接的访问B对象。代理模式一般包含3个角色:抽象主题角色(ISubject):它...

    Java 2021年02月02日 1160 0
  • Synchronized的原理及其实现

    我们知道 Java内存模型为了保证多线程安全访问有三个特征:1.原子性(Atomicity):JMM保证单个变量读写操作的原子性但是在多CPU环境引入多级缓存后,写操作的原子性意义扩大了,对一个变量的写,不能实时刷新至主内存,导致别的CPU缓存内的数据是旧的,volatile修饰的变量保证多CPU下读写操作的原子性注:与synchronized的原子性不同,因为volatile...

    Java 2021年01月31日 1804 0
  • 详解 spring data jpa,全方位总结,干货分享

    谈一谈 jpa什么是 jpa ? jpa 的全称是 Java Persistence API , 中文的字面意思就是 java 的持久层 API , jpa 就是定义了一系列标准,让实体类和数据库中的表建立一个对应的关系,当我们在使用 java 操作实体类的时候能达到操作数据库中表的效果(不用写sql ,就可以达到效果),jpa 的实现思想即是 ORM (Object Rela...

    Java 2021年01月31日 1108 0
  • PHP8的注解 PHP

    PHP8的注解

    PHP8.0增加了注解的支持, 虽然 PHP的注解没用过, 但是咱用过JAVA的注解呀.注解这玩意怎么用? 简单说就下面几步:定义注解类使用注解提取注解到了PHP中, 也基本上换汤不换药.使用定义注解类#[Attribute(Attribute::TARGET_CLASS | Attribute::TARGET_FUNCTION)] class MyAttribute{ ...

    PHP 2021年01月31日 1691 0
  • 用PHP写Web Service PHP

    用PHP写Web Service

    大多数的Web Service是使用Java语言的,因此在PHP中很少用到Web Service,用PHP写Web Service程序也就成为了比较冷门的知识点,其实仔细研究一下,似乎没有想象中复杂。下面我们就来用PHP写Web Service程序:1、Server端首先,定义一个类,在其中实现方法,然后用SoapServer将此类发布出去。data_service.php:c...

    PHP 2021年01月30日 1249 0
  • php基础-设计模式

    大家好今天要给大家分享的是设计模式。首先来了解下什么是设计模式。其实所谓设计模式,就是前辈们在编程中遇到了些坑,为了使后人避免入坑所以写了写方法与套路——即设计模式。对于初学者来说,可能无法体会设计模式给编程带来的好处。以下就结合每个设计模式及其给编程带来什么好处来讲解设计模式。一 简单工厂模式请看如下代码无模式简单工厂模式<?phpclass Op{ function...

    PHP 2021年01月30日 1234 0