搞定PHP面试 - 深入了解引用】的更多相关文章

1. 什么是引用 在 PHP 中引用是指用不同的名字访问同一个变量内容.PHP 中的变量名和变量内容是不一样的, 因此同样的内容可以有不同的名字.最接近的比喻是 Unix 的文件名和文件本身--变量名是目录条目,而变量内容则是文件本身.引用可以被看作是 Unix 文件系统中的硬链接. PHP 中的引用并不像 C 的指针:例如你不能对他们做指针运算.引用并不是实际的内存地址,而是符号表别名. 2. 引用的特性 PHP 的引用允许用两个变量来指向同一个内容. $a =& $b; 这意味着 $a 和…
1. KMP 算法 谈到字符串问题,不得不提的就是 KMP 算法,它是用来解决字符串查找的问题,可以在一个字符串(S)中查找一个子串(W)出现的位置.KMP 算法把字符匹配的时间复杂度缩小到 O(m+n) ,而空间复杂度也只有O(m).因为“暴力搜索”的方法会反复回溯主串,导致效率低下,而KMP算法可以利用已经部分匹配这个有效信息,保持主串上的指针不回溯,通过修改子串的指针,让模式串尽量地移动到有效的位置. 具体算法细节请参考: 字符串匹配的KMP算法 从头到尾彻底理解KMP 如何更好的理解和掌…
本文已经收录自笔者开源的 JavaGuide: https://github.com/Snailclimb ([Java学习+面试指南] 一份涵盖大部分Java程序员所需要掌握的核心知识)如果觉得不错的还,不妨去点个Star,鼓励一下! Java 内存区域详解 如果没有特殊说明,都是针对的是 HotSpot 虚拟机. 写在前面 (常见面试题) 基本问题 介绍下 Java 内存区域(运行时数据区) Java 对象的创建过程(五步,建议能默写出来并且要知道每一步虚拟机做了什么) 对象的访问定位的两种…
一.变量的定义 1. 变量的命名规则 变量名可以包含字母.数字.下划线,不能以数字开头. $Var_1 = 'foo'; // 合法 $var1 = 'foo'; // 合法 $_var1 = 'foo'; // 合法 $Var-1 = 'foo'; // 非法,不能包含 - $1_var = 'foo'; // 非法,不能以数字开头 在此所说的字母是 a-z,A-Z,以及 ASCII 字符从 127 到 255(0x7f-0xff).因此实际上使用中文变量名也是合法的.甚至使用中文的标点符号作…
JVM 垃圾回收 写在前面 本节常见面试题 问题答案在文中都有提到 如何判断对象是否死亡(两种方法). 简单的介绍一下强引用.软引用.弱引用.虚引用(虚引用与软引用和弱引用的区别.使用软引用能带来的好处). 如何判断一个常量是废弃常量 如何判断一个类是无用的类 垃圾收集有哪些算法,各自的特点? HotSpot 为什么要分为新生代和老年代? 常见的垃圾回收器有那些? 介绍一下 CMS,G1 收集器. Minor Gc 和 Full GC 有什么不同呢? 本文导火索 当需要排查各种内存溢出问题.当垃…
Java 语言中,无论新菜鸟,还是老司机,真正了解String内存的很少.关于String 的试题,花样很多.== 在什么情况下是true,什么情况是false.我总结出如下3点让你彻底结束对String的模糊感.无论怎么变化,都离不开以下3种类型: 1.常量池存取(同一引用): String  str="a";  或 String str="a"+"b";(编译后:"ab") 2.堆内存构建(新对象): String  st…
一.简介 1. 什么是正则表达式 正则表达式(Regular Expression)就是用某种模式去匹配一类字符串的一种公式.正则表达式使用单个字符串来描述.匹配一系列匹配某个句法规则的字符串.正则表达式是繁琐的,但它是强大的,学会之后的应用会让你除了提高效率外,会给你带来绝对的成就感.只要认真阅读本教程,加上应用的时候进行一定的参考,掌握正则表达式不是问题.许多程序设计语言都支持利用正则表达式进行字符串操作. 2. 正则表达式的作用 分割,查找,匹配,替换字符串 3. PHP中的正则表达式 在…
一.算术运算符 1. 概览 例子 名称 结果 $a + $b 加法 $a 和 $b 的和. $a - $b 减法 $a 和 $b 的差. $a * $b 乘法 $a 和 $b 的积. $a / $b 除法 $a 除以 $b 的商. $a % $b 取余 $a 除以 $b 的余数. -$a 取反 $a 的相反数. 2. TIPS 除法运算符总是返回浮点数.只有在下列情况例外:两个操作数都是整数(或字符串转换成的整数)并且正好能整除,这时它返回一个整数. 取模运算符的操作数在运算之前都会转换成整数(…
一.函数的定义 1. 函数的命名规则 函数名可以包含字母.数字.下划线,不能以数字开头. function Func_1(){ } //合法 function func1(){ } //合法 function _func1(){ } //合法 function Func-1(){ } // 非法,不能包含 '-' function 1_func(){ }// 非法,不能以数字开头 在此所说的字母是 a-z,A-Z,以及 ASCII 字符从 127 到 255(0x7f-0xff).因此实际上使用…
本文已经收录自笔者开源的 JavaGuide: https://github.com/Snailclimb ([Java学习+面试指南] 一份涵盖大部分Java程序员所需要掌握的核心知识)如果觉得不错的还,不妨去点个Star,鼓励一下! JDK 监控和故障处理工具总结 JDK 命令行工具 这些命令在 JDK 安装目录下的 bin 目录下: jps (JVM Process Status): 类似 UNIX 的 ps 命令.用户查看所有 Java 进程的启动类.传入参数和 Java 虚拟机参数等信…