国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁(yè) > news >正文

asp新聞網(wǎng)站模板seowhy培訓(xùn)

asp新聞網(wǎng)站模板,seowhy培訓(xùn),制作app免費(fèi)網(wǎng)站模板下載,網(wǎng)站建設(shè)課程報(bào)告論文總結(jié)整理了某公司面試中值得記錄的筆試和問(wèn)到的問(wèn)題和答案。 目錄 PHP傳值和傳引用區(qū)別?什么情況下用傳值?什么情況下用傳引用? 傳值 傳引用 區(qū)別 選擇傳值還是傳引用時(shí) 簡(jiǎn)述PHP的垃圾回收機(jī)制 二維數(shù)組排序 什么是CSRF攻擊&#xff…

總結(jié)整理了某公司面試中值得記錄的筆試和問(wèn)到的問(wèn)題和答案。

目錄

PHP傳值和傳引用區(qū)別?什么情況下用傳值?什么情況下用傳引用?

傳值

傳引用

區(qū)別

選擇傳值還是傳引用時(shí)

簡(jiǎn)述PHP的垃圾回收機(jī)制

二維數(shù)組排序

什么是CSRF攻擊?XSS攻擊?如何防范?

CSRF

防范主要方法

XSS

防范主要方法

主鍵、外鍵和索引區(qū)別

__autoload()方法的工作原理?與spl_autoload_register()的區(qū)別?

用什么方法檢查PHP腳本執(zhí)行效率(通常是腳本執(zhí)行時(shí)間)和數(shù)據(jù)庫(kù)SQL的效率(通常是數(shù)據(jù)庫(kù)的Query時(shí)間),并定位和分析腳本執(zhí)行和數(shù)據(jù)庫(kù)查詢(xún)的瓶頸所在?

PHP腳本執(zhí)行時(shí)間

數(shù)據(jù)庫(kù)SQL查詢(xún)效率

Mysql什么是事務(wù)及其特性?事務(wù)的隔離級(jí)別分別是?

事務(wù)及特性

隔離級(jí)別

Mysql數(shù)據(jù)庫(kù)做發(fā)布系統(tǒng)存儲(chǔ),一天五萬(wàn)條以上增量,預(yù)計(jì)運(yùn)維三年,怎么優(yōu)化?

Nginx訪(fǎng)問(wèn)日志,怎么統(tǒng)計(jì)IP訪(fǎng)問(wèn)量(獨(dú)立ip訪(fǎng)問(wèn)數(shù)量)前十的ip。命令怎么寫(xiě)

什么是API冪等性?怎么解決冪等問(wèn)題?

概念

實(shí)現(xiàn)API冪等性的主要方法包括:

對(duì)于大流量網(wǎng)站,采用什么樣的方法來(lái)解決訪(fǎng)問(wèn)量問(wèn)題

兩個(gè)變量在不設(shè)置第三個(gè)變量時(shí)怎么互換值

算術(shù)運(yùn)算?

異或運(yùn)算?

git合并另一分支的一部分提交

100萬(wàn)用戶(hù)每日簽到功能如何實(shí)現(xiàn)

十個(gè)座位被六七百學(xué)生預(yù)約如何不超約和重復(fù)約

十萬(wàn)用戶(hù) 下載全年某搜索結(jié)果數(shù)據(jù) 如何實(shí)現(xiàn)

如何導(dǎo)出excel文件

laravel orm都使用了哪些設(shè)計(jì)模式具體示例

工廠(chǎng)方法模式?

抽象工廠(chǎng)模式?

原型模式?

建造者模式?

單例模式?

什么mysql回表?如何避免回表?

避免回表優(yōu)化方式:


PHP傳值和傳引用區(qū)別?什么情況下用傳值?什么情況下用傳引用?

傳值

函數(shù)范圍內(nèi)對(duì)值的任何改變?cè)诤瘮?shù)外部都會(huì)被忽略

傳引用

函數(shù)范圍內(nèi)對(duì)值的任何改變?cè)诤瘮?shù)外部也能反映出這些修改

區(qū)別

按值傳遞時(shí),php必須復(fù)制值。特別是對(duì)于大型的字符串和對(duì)象來(lái)說(shuō),這將是代價(jià)很大的操作按引用傳遞則不需要復(fù)制值,對(duì)于性能提高很有好處。

傳值只是把某一個(gè)變量的值傳給另一個(gè)變量,而引用則說(shuō)明兩者指向同一個(gè)地方

選擇傳值還是傳引用時(shí)

傳值適用于不需要修改原始變量的情況,或者原始變量是大型數(shù)組或?qū)ο髸r(shí),以避免內(nèi)存消耗。

傳值可以確保函數(shù)或方法的獨(dú)立性,不會(huì)對(duì)其他代碼產(chǎn)生意外的副作用。

傳引用適用于需要修改原始變量的情況,以避免創(chuàng)建副本和消耗額外的內(nèi)存。 通常情況下,當(dāng)函數(shù)或方法需要修改輸入?yún)?shù)的值時(shí),更傾向于使用傳引用。但是,應(yīng)該謹(jǐn)慎使用傳引用,因?yàn)樗赡軐?dǎo)致代碼難以理解和維護(hù),以及不受控制的副作用。

簡(jiǎn)述PHP的垃圾回收機(jī)制

PHP的垃圾回收機(jī)制是自動(dòng)的,它通過(guò)內(nèi)置的垃圾回收器(Garbage Collector)來(lái)實(shí)現(xiàn)。當(dāng)一個(gè)PHP對(duì)象不再被引用時(shí),它就成為垃圾。垃圾回收器會(huì)定期掃描內(nèi)存中的所有對(duì)象,將沒(méi)有引用的對(duì)象標(biāo)記為垃圾,并釋放它們占用的內(nèi)存空間,以便其他對(duì)象可以使用這些空間。

PHP的垃圾回收機(jī)制使用了引用計(jì)數(shù)(reference counting)的算法來(lái)跟蹤對(duì)象的引用情況。每個(gè)對(duì)象都有一個(gè)引用計(jì)數(shù)器,它記錄著對(duì)象當(dāng)前被引用的次數(shù)。當(dāng)一個(gè)對(duì)象被賦給一個(gè)變量時(shí),它的引用計(jì)數(shù)器會(huì)增加1;當(dāng)一個(gè)變量不再引用該對(duì)象時(shí),它的引用計(jì)數(shù)器會(huì)減少1。當(dāng)引用計(jì)數(shù)器降為0時(shí),這個(gè)對(duì)象就成為垃圾,垃圾回收器就會(huì)釋放它所占用的內(nèi)存。

PHP的垃圾回收機(jī)制是自動(dòng)的,程序員無(wú)需手動(dòng)管理內(nèi)存。但是,如果程序中存在循環(huán)引用的情況,垃圾回收器就無(wú)法釋放這些對(duì)象。為了避免這種情況的發(fā)生,PHP提供了一種手動(dòng)解除引用的方法,即將對(duì)象賦值為null,這樣就可以讓對(duì)象的引用計(jì)數(shù)器降為0,從而被垃圾回收器釋放。

二維數(shù)組排序

有一個(gè)二維數(shù)組,子數(shù)組中元素有排序和距離兩個(gè)元素,寫(xiě)一個(gè)方法先按照排序由大到小,如果排序相同在按照距離由近到遠(yuǎn)

array_multisort()函數(shù)是一個(gè)非常強(qiáng)大的排序函數(shù),可以按照多個(gè)條件對(duì)二維數(shù)組進(jìn)行排序。如果想按照多個(gè)字段進(jìn)行排序,可以使用array_multisort()函數(shù)。例如,我們要首先按照age字段排序,如果age相同,則按照id排序。

示例如下:

$arr = [['sort' => 10, 'distance' => 2],['sort' => 9, 'distance' => 8],['sort' => 7, 'distance' => 6],['sort' => 2, 'distance' => 3],['sort' => 1, 'distance' => 1],['sort' => 9, 'distance' => 2],['sort' => 1, 'distance' => 2],
];$sorts = $distances = [];
foreach ($arr as $v) {$sorts[] = $v['sort'];$distances[] = $v['distance'];
}
array_multisort($sorts, SORT_DESC, $distances, SORT_ASC, $arr);
print_r($arr);

什么是CSRF攻擊?XSS攻擊?如何防范?

CSRF

Cross-Site Request Forgery,即跨站請(qǐng)求偽造,是一種利用用戶(hù)的登錄狀態(tài),以用戶(hù)身份進(jìn)行非法的操作。攻擊者通過(guò)盜用用戶(hù)的身份,在用戶(hù)不知情的情況下完成一些危害性的操作,比如刪除賬號(hào),發(fā)郵件等。攻擊者通常會(huì)誘騙用戶(hù)點(diǎn)擊帶有攻擊性的鏈接,或者注入惡意代碼到被攻擊網(wǎng)站中,等待用戶(hù)點(diǎn)擊觸發(fā)。

防范主要方法

1. 驗(yàn)證請(qǐng)求來(lái)源:在服務(wù)端驗(yàn)證請(qǐng)求是否來(lái)自合法的源,比如檢查Referer、Origin頭部,驗(yàn)證CSRF Token等。

2. 使用驗(yàn)證碼: 驗(yàn)證碼可以有效減少CSRF攻擊,因?yàn)楣粽卟⒉荒塬@取驗(yàn)證碼的值。

XSS

Cross-Site Scripting,即跨站腳本攻擊,是指攻擊者在網(wǎng)頁(yè)中注入可執(zhí)行的代碼,當(dāng)用戶(hù)瀏覽該網(wǎng)頁(yè)時(shí),注入的代碼會(huì)被執(zhí)行,從而達(dá)到盜取用戶(hù)信息、竊取Cookie、篡改網(wǎng)頁(yè)等惡意目的的攻擊方式。攻擊者通常會(huì)在提交或傳輸數(shù)據(jù)時(shí),利用未經(jīng)過(guò)濾的HTML或JavaScript注入攻擊代碼。

防范主要方法

1. 對(duì)用戶(hù)輸入的數(shù)據(jù)進(jìn)行過(guò)濾和轉(zhuǎn)義,不信任任何來(lái)自用戶(hù)的數(shù)據(jù)。

2. 設(shè)置HTTP頭中的安全策略,具體包括X-XSS-Protection、Content-Security-Policy(CSP)等。

3. 使用最新的瀏覽器,并開(kāi)啟瀏覽器的反XSS策略,例如開(kāi)啟Chrome的XssAuditor。

4. 避免使用eval、innerHTML、document.write等可執(zhí)行腳本的API,選擇使用更為安全的替代方案。

主鍵、外鍵和索引區(qū)別

索引是一種增加查詢(xún)效率的數(shù)據(jù)結(jié)構(gòu),它是在數(shù)據(jù)庫(kù)表上建立的。索引可以快速定位表中的數(shù)據(jù)行,提高查詢(xún)速度和排序速度。

主鍵是索引的一種,一個(gè)表只能定義一個(gè)主鍵,且主鍵不能為NULL。它用來(lái)保證表中記錄的唯一性,也可以用來(lái)快速查找和定位記錄。

外鍵是一種參照其他表的鍵,它限制了一個(gè)表中某個(gè)字段的取值必須是另一個(gè)表中某一字段的取值。外鍵可以用來(lái)建立兩個(gè)表之間的關(guān)聯(lián),從而實(shí)現(xiàn)數(shù)據(jù)的一致性。

__autoload()方法的工作原理?與spl_autoload_register()的區(qū)別?

__autoload() 函數(shù)是用戶(hù)定義的函數(shù),用于動(dòng)態(tài)加載 PHP 類(lèi)文件,當(dāng)腳本嘗試使用一個(gè)未被定義的類(lèi)時(shí),PHP 解釋器將會(huì)尋找 __autoload() 函數(shù),并執(zhí)行該函數(shù),將類(lèi)名作為一個(gè)參數(shù)傳入。

與spl_autoload_register()的區(qū)別是只能定義一次,不能重復(fù)定義。

用什么方法檢查PHP腳本執(zhí)行效率(通常是腳本執(zhí)行時(shí)間)和數(shù)據(jù)庫(kù)SQL的效率(通常是數(shù)據(jù)庫(kù)的Query時(shí)間),并定位和分析腳本執(zhí)行和數(shù)據(jù)庫(kù)查詢(xún)的瓶頸所在?

PHP腳本執(zhí)行時(shí)間

使用 microtime() 函數(shù),在腳本開(kāi)始和結(jié)束處記錄時(shí)間,然后計(jì)算差值。?

示例如下:

$start_time = microtime(true);// PHP代碼$end_time = microtime(true);$execution_time = $end_time - $start_time;echo "執(zhí)行時(shí)間: " . $execution_time . " 秒";

數(shù)據(jù)庫(kù)SQL查詢(xún)效率

使用 mysqli_query() 的 get_result() 方法和 mysqli_get_profiling_info() 函數(shù)。

示例如下:

$db = new mysqli('localhost', 'username', 'password', 'database');$db->set_charset('utf8');// 啟用性能分析$db->profiling = 1;// 執(zhí)行一個(gè)查詢(xún)$query = "SELECT * FROM user";$stmt = $db->prepare($query);$stmt->execute();$result = $stmt->get_result();// 獲取所有查詢(xún)的性能信息$profiling_info = $db->get_profiling_info();foreach ($profiling_info as $info) {if ($info['query'] == $query) {echo "查詢(xún)耗時(shí): " . $info['duration'] . " 秒";break;}}

Mysql什么是事務(wù)及其特性?事務(wù)的隔離級(jí)別分別是?

事務(wù)及特性

事務(wù):是一系列的數(shù)據(jù)庫(kù)操作,是數(shù)據(jù)庫(kù)應(yīng)用的基本邏輯單位。

特性:

(1)原子性:即不可分割性,事務(wù)要么全部被執(zhí)行,要么就全部不被執(zhí)行。

(2)一致性或可串性。事務(wù)的執(zhí)行使得數(shù)據(jù)庫(kù)從一種正確狀態(tài)轉(zhuǎn)換成另一種正確狀態(tài)

(3)隔離性。在事務(wù)正確提交之前,不允許把該事務(wù)對(duì)數(shù)據(jù)的任何改變提供給任何其他事務(wù)

(4) 持久性。事務(wù)正確提交后,其結(jié)果將永久保存在數(shù)據(jù)庫(kù)中,即使在事務(wù)提交后有了其他故障,事務(wù)的處理結(jié)果也會(huì)得到保存。

簡(jiǎn)單理解:在事務(wù)里的操作,要么全部成功,要么全部失敗。

隔離級(jí)別

在 MySQL中事務(wù)的隔離級(jí)別有以下 4 種:

????讀未提交(READ UNCOMMITTED)

????讀已提交(READ COMMITTED)

????可重復(fù)讀(REPEATABLE READ)

????序列化(SERIALIZABLE)

MySQL 默認(rèn)的事務(wù)隔離級(jí)別是可重復(fù)讀,這4種隔離級(jí)別的說(shuō)明如下。

1.READ UNCOMMITTED

讀未提交,也叫未提交讀,該隔離級(jí)別的事務(wù)可以看到其他事務(wù)中未提交的數(shù)據(jù)。該隔離級(jí)別因?yàn)榭梢宰x取到其他事務(wù)中未提交的數(shù)據(jù),而未提交的數(shù)據(jù)可能會(huì)發(fā)生回滾,因此把該級(jí)別讀取到的數(shù)據(jù)稱(chēng)之為臟數(shù)據(jù),把這個(gè)問(wèn)題稱(chēng)之為臟讀。

2.READ COMMITTED

讀已提交,也叫提交讀,該隔離級(jí)別的事務(wù)能讀取到已經(jīng)提交事務(wù)的數(shù)據(jù),因此它不會(huì)有臟讀問(wèn)題。但由于在事務(wù)的執(zhí)行中可以讀取到其他事務(wù)提交的結(jié)果,所以在不同時(shí)間的相同 SQL查詢(xún)中,可能會(huì)得到不同的結(jié)果,這種現(xiàn)象叫做不可重復(fù)讀。

3.REPEATABLE READ

可重復(fù)讀,是MySQL的默認(rèn)事務(wù)隔離級(jí)別,它能確保同一事務(wù)多次查詢(xún)的結(jié)果一致。但也會(huì)有新的問(wèn)題,比如此級(jí)別的事務(wù)正在執(zhí)行時(shí),另一個(gè)事務(wù)成功的插入了某條數(shù)據(jù),但因?yàn)樗看尾樵?xún)的結(jié)果都是一樣的,所以會(huì)導(dǎo)致查詢(xún)不到這條數(shù)據(jù),自己重復(fù)插入時(shí)又失敗(因?yàn)槲ㄒ患s束的原因)。明明在事務(wù)中查詢(xún)不到這條信息,但就是插入不進(jìn)去,這就叫幻讀 (Phantom Read)。

4.SERIALIZABLE

序列化,事務(wù)最高隔離級(jí)別,它會(huì)強(qiáng)制事務(wù)排序,使之不會(huì)發(fā)生沖突,從而解決了臟讀、不可重復(fù)讀和幻讀問(wèn)題,但因?yàn)閳?zhí)行效率低,所以真正使用的場(chǎng)景并不多。

Mysql數(shù)據(jù)庫(kù)做發(fā)布系統(tǒng)存儲(chǔ),一天五萬(wàn)條以上增量,預(yù)計(jì)運(yùn)維三年,怎么優(yōu)化?

1、設(shè)計(jì)良好的數(shù)據(jù)庫(kù)結(jié)構(gòu),允許部分?jǐn)?shù)據(jù)冗余,盡量避免?join?查詢(xún),提高效率。

2、選擇合適的表字段數(shù)據(jù)類(lèi)型和存儲(chǔ)引擎,適當(dāng)?shù)奶砑铀饕?/p>

3、MySQL?庫(kù)主從讀寫(xiě)分離。

4、找規(guī)律分表,減少單表中的數(shù)據(jù)量提高查詢(xún)速度。

5、添加緩存機(jī)制,比如?memcached,redis?等。

6、不經(jīng)常改動(dòng)的頁(yè)面,生成靜態(tài)頁(yè)面。

7、書(shū)寫(xiě)高效率的?SQL。比如?SELECT?*?FROM?TABEL?為?SELECT?field_1,field_2 ?FROM?TABLE.

Nginx訪(fǎng)問(wèn)日志,怎么統(tǒng)計(jì)IP訪(fǎng)問(wèn)量(獨(dú)立ip訪(fǎng)問(wèn)數(shù)量)前十的ip。命令怎么寫(xiě)

awk '{print $1}' /path/to/nginx/access.log | sort | uniq -c | sort -nr | head -10

解釋:

cat /var/log/nginx/access.log:輸出日志文件內(nèi)容。

awk '{print $1}':使用awk打印每行的第一個(gè)字段,通常是IP地址。

sort:對(duì)所有IP地址進(jìn)行排序,以便uniq可以統(tǒng)計(jì)重復(fù)項(xiàng)。

uniq -c:計(jì)算每個(gè)唯一IP出現(xiàn)的次數(shù)。

sort -nr:以數(shù)值形式逆序排序結(jié)果。

請(qǐng)根據(jù)實(shí)際Nginx日志格式調(diào)整awk命令中的$1,以指向包含IP地址的正確字段。

什么是API冪等性?怎么解決冪等問(wèn)題?

概念

API冪等性?指的是對(duì)于同一個(gè)API請(qǐng)求,無(wú)論執(zhí)行一次還是多次,其結(jié)果和效果都是相同的。簡(jiǎn)單來(lái)說(shuō),就是多次調(diào)用對(duì)系統(tǒng)的產(chǎn)生的影響是一樣的,即對(duì)資源的作用是一樣的。冪等性強(qiáng)調(diào)的是外界通過(guò)接口對(duì)系統(tǒng)內(nèi)部的影響,只要一次或多次調(diào)用對(duì)某一個(gè)資源應(yīng)該具有同樣的副作用就行。注意,這里指對(duì)資源造成的副作用必須是一樣的,但是返回值允許不同。

實(shí)現(xiàn)API冪等性的主要方法包括:

?????唯一索引?:通過(guò)為數(shù)據(jù)庫(kù)表設(shè)置唯一索引,避免插入重復(fù)數(shù)據(jù),當(dāng)插入重復(fù)數(shù)據(jù)時(shí)數(shù)據(jù)庫(kù)會(huì)拋出異常,保證了數(shù)據(jù)的唯一性。

?????樂(lè)觀(guān)鎖?:為數(shù)據(jù)字段增加一個(gè)版本號(hào)(version字段),當(dāng)數(shù)據(jù)需要更新時(shí),首先檢查版本號(hào)是否一致。如果不一致,說(shuō)明有其他請(qǐng)求已經(jīng)更新了數(shù)據(jù),提示更新失敗。

?????悲觀(guān)鎖?:在獲取數(shù)據(jù)時(shí)進(jìn)行加鎖,防止多個(gè)請(qǐng)求同時(shí)更新同一數(shù)據(jù)。

?????分布式鎖?:在分布式環(huán)境下,通過(guò)Redis或Zookeeper等實(shí)現(xiàn)分布式鎖,鎖定全局唯一資源,使請(qǐng)求串行化,防止重復(fù)執(zhí)行。

?????Token機(jī)制?:為每一次操作生成一個(gè)唯一性的憑證(token),token在操作的每一個(gè)階段只有一次執(zhí)行權(quán),一旦執(zhí)行成功則保存執(zhí)行結(jié)果。對(duì)重復(fù)的請(qǐng)求,返回同一個(gè)結(jié)果。

這些方法可以根據(jù)具體的業(yè)務(wù)場(chǎng)景和需求選擇合適的方式來(lái)實(shí)現(xiàn)API的冪等性,以確保系統(tǒng)的穩(wěn)定性和數(shù)據(jù)的準(zhǔn)確性

對(duì)于大流量網(wǎng)站,采用什么樣的方法來(lái)解決訪(fǎng)問(wèn)量問(wèn)題

?????確認(rèn)服務(wù)器硬件是否足夠支持當(dāng)前的流量?:首先需要確保服務(wù)器的硬件配置能夠支持當(dāng)前的高流量負(fù)載。這包括足夠的CPU、內(nèi)存、存儲(chǔ)空間以及網(wǎng)絡(luò)帶寬等?12。

?????優(yōu)化數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)?:通過(guò)優(yōu)化數(shù)據(jù)庫(kù)查詢(xún)、使用緩存技術(shù)(如Memcached或Redis)來(lái)減少對(duì)數(shù)據(jù)庫(kù)的直接訪(fǎng)問(wèn),從而提高響應(yīng)速度和系統(tǒng)效率?12。

?????控制大文件的下載?:限制大文件的下載,尤其是對(duì)于非SCSI硬盤(pán),大量文件下載會(huì)消耗CPU資源,影響網(wǎng)站響應(yīng)能力。如果需要提供大文件下載,可以考慮使用專(zhuān)門(mén)的文件服務(wù)器來(lái)分擔(dān)主服務(wù)器的負(fù)載?25。

?????使用靜態(tài)頁(yè)和緩存?:盡量使用靜態(tài)頁(yè)面,或者對(duì)動(dòng)態(tài)頁(yè)面進(jìn)行緩存,以減少對(duì)服務(wù)器的請(qǐng)求次數(shù),提高訪(fǎng)問(wèn)速度?14。

?????負(fù)載均衡?:通過(guò)負(fù)載均衡技術(shù),將請(qǐng)求分發(fā)到多個(gè)服務(wù)器上,以增加系統(tǒng)的處理能力和吞吐量。這可以通過(guò)專(zhuān)門(mén)的負(fù)載均衡硬件(如F5)或軟件實(shí)現(xiàn)?34。

?????使用不同主機(jī)分流主要流量?:將靜態(tài)內(nèi)容(如圖片、CSS、JavaScript文件等)放在不同的主機(jī)上,提供鏡像服務(wù),以減輕主服務(wù)器的負(fù)載?25。

?????禁止外部的盜鏈?:防止其他網(wǎng)站盜鏈你的資源,這可以通過(guò)技術(shù)手段(如Referer檢查)來(lái)實(shí)現(xiàn),從而減少不必要的流量消耗?25。

?????使用流量分析統(tǒng)計(jì)軟件?:通過(guò)使用流量分析統(tǒng)計(jì)軟件(如Google Analytics),可以實(shí)時(shí)監(jiān)控網(wǎng)站的流量情況,發(fā)現(xiàn)并解決潛在的流量問(wèn)題?5。

綜上所述,解決大流量網(wǎng)站的訪(fǎng)問(wèn)量問(wèn)題需要從硬件升級(jí)、技術(shù)優(yōu)化、流量管理等多個(gè)方面進(jìn)行綜合考慮和實(shí)施。

兩個(gè)變量在不設(shè)置第三個(gè)變量時(shí)怎么互換值

算術(shù)運(yùn)算?

通過(guò)加法和減法運(yùn)算可以實(shí)現(xiàn)兩個(gè)變量的值互換。首先,將兩個(gè)變量的值相加,然后將結(jié)果賦值給其中一個(gè)變量。接著,將原來(lái)的第一個(gè)變量值減去剛剛賦值的變量值,完成互換。具體步驟如下:

將變量a的值加上變量b的值,然后將結(jié)果賦值給a。

將原來(lái)的a的值減去剛剛賦值的變量值,然后將結(jié)果賦值給b。

例如,如果a的初始值為2,b的初始值為1,那么通過(guò)上述步驟,a和b的值將會(huì)互換,最終a的值為1,b的值為2。

異或運(yùn)算?

異或運(yùn)算(XOR)也可以用來(lái)交換兩個(gè)變量的值。異或運(yùn)算的特點(diǎn)是,如果兩個(gè)輸入值相同,則輸出為0;如果不同,則輸出為1。利用這個(gè)特性,可以將兩個(gè)變量的值進(jìn)行交換。具體步驟如下:

將變量a與變量b進(jìn)行異或運(yùn)算,然后將結(jié)果賦值給a。

再次將變量a與上一步的結(jié)果進(jìn)行異或運(yùn)算,然后將結(jié)果賦值給b。

最后,將變量a與上一步的結(jié)果再次進(jìn)行異或運(yùn)算,賦值給a。

通過(guò)這種方式,可以確保兩個(gè)變量的值被交換,而不需要使用第三個(gè)變量。

git合并另一分支的一部分提交

# 切換到目標(biāo)分支git checkout main# 查找想要合并的提交的哈希值git log --oneline# 假設(shè)我們想要合并的提交哈希值是123abcgit cherry-pick 123abc# 如果有沖突,解決它們,然后繼續(xù)git add .git cherry-pick --continue# 或者,如果你想取消cherry-pickgit cherry-pick --abort

100萬(wàn)用戶(hù)每日簽到功能如何實(shí)現(xiàn)

使用redis 二進(jìn)制實(shí)現(xiàn)用0或者1表示當(dāng)月用戶(hù)是否簽到。

具體介紹:

Redis實(shí)現(xiàn)每日簽到(大數(shù)據(jù)量)_php redis實(shí)現(xiàn)每日簽到(大數(shù)據(jù)量)-CSDN博客

十個(gè)座位被六七百學(xué)生預(yù)約如何不超約和重復(fù)約

? 今天簡(jiǎn)單的用redis的隊(duì)列來(lái)解決超賣(mài)問(wèn)題。因?yàn)閞edis有l(wèi)ist類(lèi)型,list類(lèi)型其實(shí)就是一個(gè)雙向鏈表。通過(guò)push,pop操作從鏈表的頭部或者尾部添加刪除元素。這使得list既可以用作棧,也可以用作隊(duì)列。先進(jìn)先出 ?一端進(jìn) ?一端出這就是隊(duì)列。

這里用redis來(lái)解決并發(fā)問(wèn)題:

首先在隊(duì)列中增加一個(gè)product_num的key,加入10個(gè)座位的內(nèi)存數(shù)據(jù)。

?將庫(kù)存循環(huán)lpush進(jìn)一個(gè)redis值product_num里去,

然后在下單的時(shí)候依次rpop出來(lái)。

下一個(gè)單取出來(lái)一個(gè),然后等product_num的值為0時(shí),停止下單。

下單時(shí)判斷用戶(hù)預(yù)約的座位號(hào)和是否預(yù)約重復(fù),

如果重復(fù)直接提示用戶(hù)重復(fù)了,請(qǐng)重新預(yù)約。

然后redis庫(kù)存再增加回去。

如果座位沒(méi)有預(yù)約,則執(zhí)行預(yù)約并提示用戶(hù)預(yù)約成功。

十萬(wàn)用戶(hù) 下載全年某搜索結(jié)果數(shù)據(jù) 如何實(shí)現(xiàn)

異步實(shí)現(xiàn),當(dāng)用戶(hù)點(diǎn)擊下載時(shí)提示數(shù)據(jù)量過(guò)大,需要一定時(shí)間請(qǐng)耐心等待,然后到下載中心去查看下載狀態(tài)。異步處理下載完成后,把文件下載狀態(tài)修改并返回文件地址。

如何導(dǎo)出excel文件

在PHP中導(dǎo)出Excel文件,可以使用PhpSpreadsheet庫(kù),這是一個(gè)非常流行的庫(kù),用于在PHP中讀寫(xiě)電子表格文件。

laravel orm都使用了哪些設(shè)計(jì)模式具體示例

工廠(chǎng)方法模式?

Laravel的Eloquent ORM模型工廠(chǎng)和表單請(qǐng)求工廠(chǎng)是工廠(chǎng)方法模式的體現(xiàn)。這種模式提供了一個(gè)創(chuàng)建對(duì)象的接口,而不指定其具體類(lèi),從而實(shí)現(xiàn)了對(duì)象的創(chuàng)建與使用分離,提高了系統(tǒng)的可擴(kuò)展性和靈活性?。

抽象工廠(chǎng)模式?

在Laravel中,配置文件、服務(wù)提供者、門(mén)面(Facades)、多環(huán)境配置、依賴(lài)注入容器等體現(xiàn)了抽象工廠(chǎng)模式的應(yīng)用。這種模式提供了一種創(chuàng)建相關(guān)或依賴(lài)對(duì)象的接口,而無(wú)需指定它們的具體類(lèi),從而實(shí)現(xiàn)了對(duì)象的創(chuàng)建與使用分離?。

原型模式?

Laravel中的配置對(duì)象復(fù)制、請(qǐng)求和響應(yīng)的快速?gòu)?fù)制、會(huì)話(huà)管理、數(shù)據(jù)模型的快速?gòu)?fù)制、緩存數(shù)據(jù)的復(fù)制等操作體現(xiàn)了原型模式的運(yùn)用。這種模式通過(guò)復(fù)制現(xiàn)有對(duì)象來(lái)創(chuàng)建新對(duì)象,避免了直接操作對(duì)象本身,提高了系統(tǒng)的可維護(hù)性和可擴(kuò)展性?。

建造者模式?

Laravel中的表單和HTML的構(gòu)建、查詢(xún)構(gòu)建器、郵件消息構(gòu)建、視圖組件和插槽、集合操作、表單請(qǐng)求驗(yàn)證等操作都是建造者模式的體現(xiàn)。這種模式通過(guò)一系列步驟來(lái)構(gòu)建復(fù)雜對(duì)象,允許用戶(hù)在不了解對(duì)象創(chuàng)建細(xì)節(jié)的情況下對(duì)其進(jìn)行定制和組裝?。

單例模式?

Laravel中的服務(wù)容器、門(mén)面(Facades)、配置和環(huán)境、日志、路由服務(wù)、會(huì)話(huà)管理、緩存管理等都是單例模式的實(shí)例。單例模式確保了一個(gè)類(lèi)只有一個(gè)實(shí)例,提供了全局訪(fǎng)問(wèn)點(diǎn),從而簡(jiǎn)化了全局狀態(tài)的管理和維護(hù)?。

什么mysql回表?如何避免回表?

MySQL中的"回表"是指在使用索引查詢(xún)數(shù)據(jù)時(shí),如果需要查詢(xún)的數(shù)據(jù)不在索引節(jié)點(diǎn)上,那么就需要通過(guò)索引上的地址(如行指針或者ROWID)去查詢(xún)實(shí)際的數(shù)據(jù)行。這個(gè)過(guò)程稱(chēng)為"回表"。

回表通常發(fā)生在索引的"覆蓋"情況下,即查詢(xún)的列都包含在創(chuàng)建索引時(shí)指定的列中。如果查詢(xún)的列沒(méi)有完全包含在索引中,那么即使是索引掃描,MySQL也需要回表查詢(xún)實(shí)際的數(shù)據(jù)行。

舉個(gè)例子,假設(shè)有一個(gè)表users,包含列(id, name, age, address),并且有一個(gè)索引(name)。

如果執(zhí)行查詢(xún)SELECT name FROM users WHERE name = 'Alice';,因?yàn)閚ame列已經(jīng)在索引中,這個(gè)查詢(xún)不需要回表。

但如果執(zhí)行查詢(xún)SELECT name, age FROM users WHERE name = 'Alice',即使age不在索引(name)中,由于索引覆蓋了查詢(xún)的列,MySQL仍然可以從索引中獲取所需數(shù)據(jù),不需要回表。

如果查詢(xún)SELECT name FROM users WHERE age > 30,即使name在索引中,由于查詢(xún)條件涉及到age列,age不在索引(name)中,MySQL也需要回表查詢(xún)實(shí)際的數(shù)據(jù)行。

避免回表優(yōu)化方式:

為了減少回表,可以考慮以下方法:

????優(yōu)化查詢(xún),使用索引覆蓋更多的列。

????創(chuàng)建多列索引,如(name, age),這樣就可以覆蓋更多的查詢(xún)列。

????使用覆蓋索引,即只使用索引進(jìn)行查詢(xún),不查詢(xún)實(shí)際的數(shù)據(jù)行,而是返回索引的列即可。

http://m.aloenet.com.cn/news/34763.html

相關(guān)文章:

  • 網(wǎng)站代理備案信陽(yáng)網(wǎng)站推廣公司
  • brophp框架做網(wǎng)站網(wǎng)站seo方案策劃書(shū)
  • 怎樣做代刷網(wǎng)站廣州百度推廣優(yōu)化
  • 南陽(yáng)誰(shuí)會(huì)做網(wǎng)站網(wǎng)絡(luò)廣告策劃書(shū)
  • b2b商務(wù)貿(mào)易平臺(tái)網(wǎng)站seo搜索引擎優(yōu)化案例
  • 合肥做公司網(wǎng)站公司百度搜索熱詞查詢(xún)
  • 網(wǎng)易嚴(yán)選的網(wǎng)站建設(shè)簡(jiǎn)單的個(gè)人主頁(yè)網(wǎng)站制作
  • 汨羅網(wǎng)站建設(shè)交換鏈接營(yíng)銷(xiāo)案例
  • 網(wǎng)站開(kāi)發(fā)可以用gif嗎網(wǎng)站推廣方案有哪些
  • 網(wǎng)站設(shè)計(jì)書(shū)本地建站軟件有哪些
  • 沒(méi)有網(wǎng)站如何做落地頁(yè)南京seo網(wǎng)絡(luò)推廣
  • 咸陽(yáng)做網(wǎng)站開(kāi)發(fā)公司哪家好創(chuàng)建網(wǎng)站
  • 東莞家用臺(tái)燈東莞網(wǎng)站建設(shè)免費(fèi)發(fā)帖的平臺(tái)有哪些
  • 做網(wǎng)站復(fù)制國(guó)家機(jī)關(guān)印章如何在百度上做免費(fèi)推廣
  • wordpress設(shè)置僅自己可見(jiàn)搜外網(wǎng) seo教程
  • 沈陽(yáng)市建設(shè)工程信息洛陽(yáng)seo網(wǎng)絡(luò)推廣
  • 怎么做萬(wàn)網(wǎng)網(wǎng)站嗎google搜索引擎免費(fèi)入口
  • 鄭州網(wǎng)站建設(shè)公司制作定制網(wǎng)絡(luò)營(yíng)銷(xiāo)策略
  • 做網(wǎng)站網(wǎng)頁(yè)尺寸是多少營(yíng)銷(xiāo)型網(wǎng)站建站
  • 網(wǎng)站建設(shè)工具有哪些視頻網(wǎng)站推廣
  • 國(guó)內(nèi)免費(fèi)二級(jí)域名網(wǎng)站做電商如何起步
  • 工信部網(wǎng)站備案注銷(xiāo)二級(jí)域名在線(xiàn)掃描
  • 江門(mén)恒陽(yáng)網(wǎng)站建設(shè)百度推廣首次開(kāi)戶(hù)需要多少錢(qián)
  • 網(wǎng)站建設(shè)團(tuán)隊(duì)介紹推廣公司屬于什么公司
  • 余姚網(wǎng)站建設(shè)全渠道營(yíng)銷(xiāo)管理平臺(tái)
  • dede中英文網(wǎng)站 視頻站長(zhǎng)統(tǒng)計(jì)app軟件下載官網(wǎng)安卓
  • 網(wǎng)站建設(shè)免費(fèi)軟件有哪些推特最新消息今天
  • 局域網(wǎng)網(wǎng)站怎么做谷歌搜索排名
  • 用vue做的網(wǎng)站怎么實(shí)現(xiàn)響應(yīng)式株洲專(zhuān)業(yè)seo優(yōu)化
  • 深圳微網(wǎng)站開(kāi)發(fā)最新全國(guó)疫情消息