解析BAT面试题(下篇)

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 还在等什么,快来一起讨论关注吧,公众号【八点半技术站】,欢迎加入社群

Hello,大家好。我是公众号 “八点半技术站” 的小编 - Bruce.D。

今天是周一(2020-06-08),分享一句谚语 “读书有三到,心到口到眼到分享给大家的是 「工具 模块」- 解析BAT面试题(下篇)。

很多人对 BAT 以及其他大厂,也是朝思暮想。也因为一些原因,暂时还未能加入。大厂中有很多经典面试题,直到现在也会用,不要问小编为什么知道(保密)。

因此欢迎热爱 IT编程的各位精英,欢迎进入wechat技术群(底部有二维码)一起交流成长。

花几分钟时间看看经典BAT面试题,浏览浏览,或许对你有用!!!


1

1. PHP 中的垃圾回收机制

主要分为三部分:

   (1)引用计数基本知识

   (2)回收周期(Collecting Cycles)

   (3)性能方面考虑的因素

具体建议参考PHP官方手册:

https://www.php.net/manual/zh/features.gc.php

image.gif

Q:为什么推荐直接了解官方地址呢?

A:我谷歌搜索了一遍,感觉普遍博主讲的也就是将官方的粘贴出来,简单改了改,只有极少部分博主采用自己想法的话述。与其这样搜索,还不如直接去官方了解,岂不美哉。

2

2. Hash 数据结构

主要分为 数组 + 链表

哈希表(Hash table,也叫散列表)

官方:是根据键(Key)而直接访问在内存存储位置的数据结构。也就是说,它通过计算一个关于键值的函数,将所需查询的数据映射到表中一个位置来访问记录,这加快了查找速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表

自家大白话:通过把Key通过一个固定的算法函数(hash函数)转换成一个整型数字,然后就对该数字对数组的长度进行取余,取余结果就当作数组的下标,将value存储在以该数字为下标的数组空间里。

当使用hash表查询时,就是使用hash函数将key转换成对应的数组下标,并定位到该下标的数组空间里获取value,这样就充分利用到数组的定位性能进行数据定位。

3

3. PHP 如何定义编码形式?

俩种方式:

(1)如果欲使用gb2312编码,那么php要输出头:

header(“Content-Type: text/html; charset=gb2312")

image.gif

静态页面添加:

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

image.gif

所有文件的编码格式为ANSI,可用记事本打开,另存为选择编码为ANSI,覆盖源文件。

(2)如果欲使用utf-8编码,那么php要输出头 :

header(“Content-Type: text/html; charset=utf-8")

image.gif

静态页面添加:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

image.gif

所有文件的编码格式为utf-8。

4

4. 占位符是如何防止sql注入的?

案例:

$dbh = new PDO("mysql:host=localhost; dbname=demo","user","pass");
$dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES,false); 
$dbh->exec("set names 'utf8'"); 
$sql="select * from test where name = ? and password = ?";
$stmt = $dbh->prepare($sql);
$exeres = $stmt->execute(array($testname, $pass));

image.gif

Q:拿上面这段demo来说如何防止?

A:当调用 prepare() 时,查询语句已经发送给了数据库服务器,此时只有占位符 ? 发送过去,没有用户提交的数据;

当调用到 execute()时,用户提交过来的值才会传送给数据库,他们是分开传送的,两者独立的,SQL攻击者没有一点机会。

注:

(1)你不能让占位符 ? 代替一组值;

(2)你不能让占位符代替数据表名或列名;

(3)你不能让占位符 ? 代替任何其他SQL语法。

恭喜你,又读完了一篇文章。

在这里,希望你看完的 每篇文章 都能对自己有所提升(哪怕是帮助你再次巩固记忆)。

相关文章
|
2月前
|
缓存 前端开发 中间件
[go 面试] 前端请求到后端API的中间件流程解析
[go 面试] 前端请求到后端API的中间件流程解析
|
2月前
|
并行计算 数据挖掘 大数据
[go 面试] 并行与并发的区别及应用场景解析
[go 面试] 并行与并发的区别及应用场景解析
|
1月前
|
设计模式 Java 关系型数据库
【Java笔记+踩坑汇总】Java基础+JavaWeb+SSM+SpringBoot+SpringCloud+瑞吉外卖/谷粒商城/学成在线+设计模式+面试题汇总+性能调优/架构设计+源码解析
本文是“Java学习路线”专栏的导航文章,目标是为Java初学者和初中高级工程师提供一套完整的Java学习路线。
307 37
|
1月前
|
缓存 Android开发 开发者
Android RecycleView 深度解析与面试题梳理
本文详细介绍了Android开发中高效且功能强大的`RecyclerView`,包括其架构概览、工作流程及滑动优化机制,并解析了常见的面试题。通过理解`RecyclerView`的核心组件及其优化技巧,帮助开发者提升应用性能并应对技术面试。
61 8
|
1月前
|
存储 缓存 Android开发
Android RecyclerView 缓存机制深度解析与面试题
本文首发于公众号“AntDream”,详细解析了 `RecyclerView` 的缓存机制,包括多级缓存的原理与流程,并提供了常见面试题及答案。通过本文,你将深入了解 `RecyclerView` 的高性能秘诀,提升列表和网格的开发技能。
56 8
|
2月前
|
Linux 数据安全/隐私保护 Perl
解锁Linux高手秘籍:文件操作+命令解析大揭秘,面试场上让你光芒万丈,技术实力惊艳四座!
【8月更文挑战第5天】Linux作为服务器与嵌入式系统的基石,其文件管理和命令行操作是技术人员必备技能。本文从文件操作和基础命令两大方面,深入浅出地解析Linux核心要义,助你在面试中脱颖而出。首先探索文件系统的树状结构及操作,包括使用`ls -la`浏览文件详情、`touch`创建文件、`rm -r`慎删目录、`cp`与`mv`复制移动文件、以及利用`find`搜索文件。接着掌握命令行技巧,如用`cat`、`more`和`less`查看文件内容;借助`grep`、`sed`与`awk`处理文本;运用`ps`、`top`和`kill`管理进程;并通过`chmod`和`chown`管理文件权限。
70 8
|
3月前
|
存储 安全 Java
Java面试题:Java内存管理、多线程与并发框架:一道综合性面试题的深度解析,描述Java内存模型,并解释如何在应用中优化内存使用,阐述Java多线程的创建和管理方式,并讨论线程安全问题
Java面试题:Java内存管理、多线程与并发框架:一道综合性面试题的深度解析,描述Java内存模型,并解释如何在应用中优化内存使用,阐述Java多线程的创建和管理方式,并讨论线程安全问题
36 0
|
3月前
|
存储 并行计算 安全
Java面试题:Java内存管理、多线程与并发框架的面试题解析与知识点梳理,深入Java内存模型与垃圾回收机制,Java多线程机制与线程安全,Java并发工具包与框架的应用
Java面试题:Java内存管理、多线程与并发框架的面试题解析与知识点梳理,深入Java内存模型与垃圾回收机制,Java多线程机制与线程安全,Java并发工具包与框架的应用
70 0
|
10天前
|
缓存 Java 程序员
Map - LinkedHashSet&Map源码解析
Map - LinkedHashSet&Map源码解析
26 0
|
10天前
|
算法 Java 容器
Map - HashSet & HashMap 源码解析
Map - HashSet & HashMap 源码解析
24 0

推荐镜像

更多