分类:博客

  • PHP数组的基本使用方法

    数组是什么? 数组是用来存储数据,数组是特殊的变量,它可以同时保存一个以上的值。 数组写法 在PHP中数组的语法是:array(),也可以用[]来表达。 建议使用[]写法。   <?php $arr = array("a","b","c"); echo "arr数组第1个值:". $arr[0]; echo "arr数组第2个值:". $arr[1]; echo "arr数组第3个值:". $arr[2]; /*另一种写法*/ $arr = ["a", "b", "c"]; echo "arr数组第1个值:". $arr[0]; echo ...

    阅读全文

  • 【滴滴PHP面试题】如何理解数据项与数据元素关系

    如何理解数据项与数据元素关系? 答:数据元素:是数据的基本单位,在程序中通常作为一个整体来进行考虑和处理。一个数据元素可由若干个数据项组成。数据项是数据的不可分割的最小单位。数据项是对客观事物某一方面特性的数据描述。 数据对象:是性质相同的数据元素的集合,是数据的一个子集。如字符集合C={‘A’,’B’,’C,…}。

    阅读全文

  • 【MySQL面试题】MySQL复制的线程有多少个? 线程之间有什么关联?

    MySQL是IT编程是必须掌握的基础知识,因此在面试时总会避免不了。 今天要给大家解答的面试题是:MySQL复制的线程有多少个? 线程之间有什么关联?   MySQL复制的线程有多少个? MySQL 的复制是 3 个线程的交互,而多线程复制里面应该是 4 类线程。   线程之间有什么关联? 1. Master 上面的 binlog dump 线程,该线程负责将 master 的 binlog event 传到slave; 2. Slave 上面的 IO 线程,该线程负责接收 Master 传过来的 binlog,并写入 relay l ...

    阅读全文

  • 【Netty面试题】BIO、NIO和AIO的区别是什么?

    Netty 是一个基于 JAVA NIO 类库的异步通信框架,它的架构特点是:异步非阻塞、基于事件驱动、高性能、高可靠性和高可定制性。 正因为这些显著的架构特点,让Netty的应用场景变得很是广泛,在很多开源的框架都能见到他的身影存在。 公司在招聘Netty相关工作时的面试题也是异常刁钻,今天我们来聊聊Netty中常见的面试题——BIO、NIO和AIO的区别是什么? BIO:一个连接一个线程,客户端有连接请求时服务器端就需要启动一个线程进行处理。线程开销大。 伪异步IO:将请求连接放入线程池,一对多,但线程还是很宝贵的资源。 NIO:一个请求一个线程,但 ...

    阅读全文

  • Java设计模式:面向对象五大原则之里氏代换原则

    前言 关于里氏代换原则,我举个映射个例子:我喜欢车,那么我肯定也是喜欢奔驰车的,但是如果我喜欢奔驰车,你不能说我喜欢所有车。 描述 里氏代换原则(Liskov Substitution Principle LSP)面向对象设计的基本原则之一。 里氏代换原则中说,任何基类可以出现的地方,子类一定可以出现。 LSP是继承复用的基石,只有当衍生类可以替换掉基类,软件单位的功能不受到影响时,基类才能真正被复用,而衍生类也能够在基类的基础上增加新的行为。里氏代换原则是对“开-闭”原则的补充。实现“开-闭”原则的关键步骤就是抽象化。而基类与子类的继承关系就是抽象化的 ...

    阅读全文

  • Java设计模式:Filter的责任链设计模式

    前言 druid是号称目前最好的java数据库连接池,温少写的代码中有很多设计模式的思想,其中最重要的一个就是filter-chain设计模式给druid所带来的可扩展性。对此,对于这种设计模式我很感兴趣,便实现了一个简洁版,抽象成一个现实场景: 场景 假设有一群小朋友,小明,小张,小红,小兰,他们在吃一袋苹果,按照顺序吃苹果 小明吃完之后,把那一袋苹果交给小张,小张吃完再交给小红。。。 然后小兰再交回给小红,小红再交给小张,最后重新到小明手中。 每次经过一个人手中的时候,统计一下苹果的剩余数量,每次交接,每个人都吃掉一个苹果。 描述完要求之后,接下来就 ...

    阅读全文

  • Java子线程中的异常处理

    在普通的单线程程序中,捕获异常只需要通过try ... catch ... finally ...代码块就可以了。那么,在并发情况下,比如在父线程中启动了子线程,如何正确捕获子线程中的异常,从而进行相应的处理呢? 常见错误 也许有人会觉得,很简单嘛,直接在父线程启动子线程的地方try ... catch一把就可以了,其实这是不对的。 原因分析 让我们回忆一下Runnable接口的run方法的完整签名,因为没有标识throws语句,所以方法是不会抛出checked异常的。至于RuntimeException这样的unchecked异常,由于新线程由JVM进 ...

    阅读全文

  • Java设计模式:面向对象五大原则之依赖倒转原则

    依赖倒置原则(Dependence Inversion Principle ,DIP)定义如下: High level modules should not depend upon low level modules,Both should depend upon abstractions.Abstractions should not depend upon details.Details should depend upon abstracts. 什么是依赖倒转原则 依赖倒转(Dependence Inversion Principle ):是程序要 ...

    阅读全文

  • AB压力测试实战

    最近写了封装了几个公用的服务,考虑的服务线性安全性,便用AB工具对其进行了压力测试。当成AB压测实战尚可。 安装ab工具 yum install httpd-tools 参数说明 -n:执行的请求个数,默认时执行一个请求 -c:一次产生的请求个数,即并发个数 -p:模拟post请求,文件格式为gid=2&status=1,配合-T使用 -T:post数据所使用的Content-Type头信息,如果-T 'application/x-www-form-urlencoded'   1.模拟get请求 直接在url后面带参数即可 ab -c ...

    阅读全文

  • Java CRC32算法

    近来在开发订单服务,订单号要确保唯一性我用的是雪花算法。甚至好用无奈订单号长度偏长,还有需求中需要反解订单号。找了找去发现CRC32算法挺是合适的。 什么是CRC校验? CRC即循环冗余校验码:是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查(CRC)是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传输的正确性和完整性。 CRC校验原理: 其根本思想就是先在要发送的帧后面附加一个数(这个就是用来校验的校验码,但要注意,这里的数也是二进制序列的, ...

    阅读全文