主頁 > 後端開發 > PHP 經典面試題集

PHP 經典面試題集

2020-09-20 10:23:08 後端開發

這篇文章介紹的內容是關于PHP 經典面試題集 PHP 經典面試題集,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下

結合我自己面試情況,面對的一些php面試題列舉出來,基本上結合自己的看法回答的,不妥的地方請大家指出去,與大家一起討論分析,也希望能幫到正在面試的童鞋們:

1.表單提交中的Get和Post的異同點

get 請求一般用于向服務端獲取資料,post 一般向服務端提交資料

get 傳輸的引數在 url 中,傳遞引數大小有限制,post 沒有大小限制,

get 不安全,post 安全性比get高

get請求在服務端用Request.queryString 接受 ,post 請求在服務端用Requset.form 接受

 

2.HTML的base標簽是干什么用的

必須寫在head 中, base 標簽為頁面上的所有鏈接規定默認地址或默認目標

 

3.echo(),print(),print_r()的區別?

echo是PHP陳述句, print和print_r是函式,陳述句沒有回傳值,函式可以有回傳值(即便沒有用)

print() 只能列印出簡單型別變數的值(如int,string)

print_r() 可以列印出復雜型別變數的值(如陣列,物件)

echo 輸出一個或者多個字串

 

4.寫一個email的正則運算式
/^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/
5.陣列[‘a’, ‘b’, ‘c’] 轉換成字串 ‘abc’
echo  implode(‘’,[‘a’, ‘b’, ‘c’]); 

 

echo   join([‘a’, ‘b’, ‘c’],'');
6.獲取字串’aAbB’中A首次出現的位置
$str=‘aAbB’;

echo strpos($str,"A");
7. 撰寫一段用最小代價實作將字串完全反序, e.g. 將 “1234567890” 轉換成 “0987654321”. (用前述你最熟悉的語言撰寫并標注簡單注釋, 不要使用函式,
$s = '1234567890';

$o = '';

$i = 0;

while(isset($s[$i]) && $s[$i] != null) {

    $o = $s[$i++].$o;

}

 

echo $o;
8.請用遞回實作一個階乘求值演算法 F(n): n=5;F(n)=5!=5*4*3*2*1=120
function F($n){    

 if($n==0){         

 return 1;      

 }else{         

 return $n* F($n-1);      

 }

 }var_dump(F(5));
9.將字符長fang-zhi-gang 轉化為駝峰法的形式:FangZhiGang
//方法一

function Fun($str){   

 if(isset($str) && !empty($str)){       

  $newStr='';       

  if(strpos($str,'-')>0){          

   $strArray=explode('-',$str);          

    $len=count($strArray);           

    for ($i=0;$i<$len;$i++){               

    $newStr.=ucfirst($strArray[$i]);           

    } 

          }      

           return $newStr;    }

           }

//方法二function Fun($str){  

 $arr1=explode('_',$str);   

 $str = implode(' ',$arr1);   

 return ucwords($str);

 }

 var_dump(Fun("fang-zhi-gang")); //FangZhiGang
10.陣列內置的排序方法有哪些?
sort($array); //陣列升序排序

rsort($array); //陣列降序排序

 

asort($array);  //根據值,以升序對關聯陣列進行排序

ksort($array);  //根據建,以升序對關聯陣列進行排序

 

arsort($array);   //根據值,以降序對關聯陣列進行排序

krsort($array);  // 根據鍵,以降序對關聯陣列進行排序
11.用PHP寫出顯示客戶端IP與服務器IP的代碼
$_SERVER["REMOTE_ADDR"]

$_SERVER["SERVER_ADDR"]
12.陳述句include和require的區別是什么?為避免多次包含同一檔案,可用(?)陳述句代替它們?
require是無條件包含也就是如果一個流程里加入require,無論條件成立與否都會先執行require

 

include有回傳值,而require沒有(可能因為如此require的速度比include快)

 

包含檔案不存在或者語法錯誤的時候require是致命的錯誤終止執行,include不是
13.session與cookie的區別?
session:儲存用戶訪問的全域唯一變數,存盤在服務器上的php指定的目錄中的(session_dir)的位置進行的存放

cookie:用來存盤連續訪問一個頁面時所使用,是存盤在客戶端,對于Cookie來說是存盤在用戶WIN的Temp目錄中的,

兩者都可通過時間來設定時間長短

14.PHP 不使用第三個變數實作交換兩個變數的值

//方法一

$a.=$b;

$b=str_replace($b,"",$a);

$a=str_replace($b,"",$a);

 

//方法二

list($b,$a)=array($a,$b);

var_dump($a,$b);

15.寫一個方法獲取檔案的擴展名

function get_extension($file){

   //方法一   

   return  substr(strrchr($file,'.'), 1);   

   //方法二   

   return  end(explode('.', $file));

   }echo  get_extension('fangzhigang.png'); //png

16.用PHP列印出前一天的時間格式是2017-3-22 22:21:21

$a= date("Y-m-d H:i:s", strtotime("-1 days")); 

17.sql陳述句應該考慮哪些安全性

(1)防止sql注入,對特殊字符進行轉義,過濾或者使用預編譯sql陳述句系結

(2)使用最小權限原則,特別是不要使用root賬戶,微不同的動作或者操作建立不同的賬戶

(3)當sql出錯時,不要把資料庫出錯的資訊暴露到客戶端

18.優化mysql 資料庫方法

(1)選取適當的欄位,打欄位設定為NOT NULL,在查詢的時候資料庫不用比較NULL;

(2)使用鏈接(join)代替子查詢;

(3)使用聯合(UNION)查詢代替手動創建臨時表;

(4)盡量減少使用(LIKE)關鍵字和通配符

(5)使用事務和外健

19.對于大流量的網站,你會采用什么方法來解決訪問量?

(1)首先確認服務器硬體是否滿足支持當前的流量;

(2)優化資料庫的訪問;

(3)禁止外部盜鏈;

(4)控制大檔案下載;

(5)使用不同的主機分流;

(6)使用流量分析統計;

20.mysql_fetch_row() 和mysql_fetch_array之間有什么區別?

這兩個函式,回傳的都是一個陣列,區別就是第一個函式回傳的陣列是只包含值,我們只能$row[0],$row[1],這樣以陣列下標來讀取資料,

 

而MySQL_fetch_array()回傳的陣列既包含第一種,也包含鍵值對的形式,我們可以這樣讀取資料,(假如資料庫的欄位是 username,passwd):$row['username']$row['passwd']

21.MySQL的幾個概念:主鍵,外鍵,索引,唯一索引

主鍵(primary key) 能夠唯一標識表中某一行的屬性或屬性組,一個表只能有一個主鍵,但可以有多個候選索引,主鍵常常與外鍵構成參照完整性約束,防止出現資料不一致,主鍵可以保證記錄的唯一和主鍵域非空,資料庫管理系統對于主鍵自動生成唯一索引,所以主鍵也是一個特殊的索引,

 

外鍵(foreign key) 是用于建立和加強兩個表資料之間的鏈接的一列或多列,外鍵約束主要用來維護兩個表之間資料的一致性,簡言之,表的外鍵就是另一表的主鍵,外鍵將兩表聯系起來,一般情況下,要洗掉一張表中的主鍵必須首先要確保其它表中的沒有相同外鍵(即該表中的主鍵沒有一個外鍵和它相關聯),

 

索引(index) 是用來快速地尋找那些具有特定值的記錄,主要是為了檢索的方便,是為了加快訪問速度, 按一定的規則創建的,一般起到排序作用,所謂唯一性索引,這種索引和前面的“普通索引”基本相同,但有一個區別:索引列的所有值都只能出現一次,即必須唯一,

 

總結:

 

主鍵一定是唯一性索引,唯一性索引并不一定就是主鍵,

一個表中可以有多個唯一性索引,但只能有一個主鍵,

主鍵列不允許空值,而唯一性索引列允許空值,

主鍵可以被其他欄位作外鍵參考,而索引不能作為外鍵參考,

22.mysql資料庫引擎有哪些?

MyISAM、 ISAM、HEAP、InnoDB、BDB、CVS...

23.談談你對 mysql 引擎中的MyISAM與InnoDB的區別理解?

InnoDB和MyISAM是許多人在使用MySQL時最常用的兩個表型別,這兩個表型別各有優劣,視具體應用而定,基本的差別為:MyISAM型別不支持事務處理等高級處理,而InnoDB型別支持,MyISAM型別的表強調的是性能,其執行數度比InnoDB型別更快,但是不提供事務支持,而InnoDB提供事務支持已經外部鍵等高級資料庫功能,

 

以下是一些細節和具體實作的差別:

 

MyISAM與InnoDB的區別是什么?

1、 存盤結構

MyISAM:每個MyISAM在磁盤上存盤成三個檔案,第一個檔案的名字以表的名字開始,擴展名指出檔案型別,.frm檔案存盤表定義,資料檔案的擴展名為.MYD (MYData),索引檔案的擴展名是.MYI (MYIndex),

InnoDB:所有的表都保存在同一個資料檔案中(也可能是多個檔案,或者是獨立的表空間檔案),InnoDB表的大小只受限于作業系統檔案的大小,一般為2GB,

2、 存盤空間

MyISAM:可被壓縮,存盤空間較小,支持三種不同的存盤格式:靜態表(默認,但是注意資料末尾不能有空格,會被去掉)、動態表、壓縮表,

InnoDB:需要更多的記憶體和存盤,它會在主記憶體中建立其專用的緩沖池用于高速緩沖資料和索引,

3、 可移植性、備份及恢復

MyISAM:資料是以檔案的形式存盤,所以在跨平臺的資料轉移中會很方便,在備份和恢復時可單獨針對某個表進行操作,

InnoDB:免費的方案可以是拷貝資料檔案、備份 binlog,或者用 mysqldump,在資料量達到幾十G的時候就相對痛苦了,

4、 事務支持

MyISAM:強調的是性能,每次查詢具有原子性,其執行數度比InnoDB型別更快,但是不提供事務支持,

InnoDB:提供事務支持事務,外部鍵等高級資料庫功能, 具有事務(commit)、回滾(rollback)和崩潰修復能力(crash recovery capabilities)的事務安全(transaction-safe (ACID compliant))型表,

5、 AUTO_INCREMENT

MyISAM:可以和其他欄位一起建立聯合索引,引擎的自動增長列必須是索引,如果是組合索引,自動增長可以不是第一列,他可以根據前面幾列進行排序后遞增,

InnoDB:InnoDB中必須包含只有該欄位的索引,引擎的自動增長列必須是索引,如果是組合索引也必須是組合索引的第一列,

6、 表鎖差異

MyISAM:只支持表級鎖,用戶在操作myisam表時,select,update,delete,insert陳述句都會給表自動加鎖,如果加鎖以后的表滿足insert并發的情況下,可以在表的尾部插入新的資料,

InnoDB:支持事務和行級鎖,是innodb的最大特色,行鎖大幅度提高了多用戶并發操作的新能,但是InnoDB的行鎖,只是在WHERE的主鍵是有效的,非主鍵的WHERE都會鎖全表的,

7、 全文索引

MyISAM:支持 FULLTEXT型別的全文索引

InnoDB:不支持FULLTEXT型別的全文索引,但是innodb可以使用sphinx插件支持全文索引,并且效果更好,

8、 表主鍵

MyISAM:允許沒有任何索引和主鍵的表存在,索引都是保存行的地址,

InnoDB:如果沒有設定主鍵或者非空唯一索引,就會自動生成一個6位元組的主鍵(用戶不可見),資料是主索引的一部分,附加索引保存的是主索引的值,

9、 表的具體行數

MyISAM:保存有表的總行數,如果select count(*) from table;會直接取出出該值,

InnoDB:沒有保存表的總行數,如果使用select count(*) from table;就會遍歷整個表,消耗相當大,但是在加了wehre條件后,myisam和innodb處理的方式都一樣,

10、 CURD操作

MyISAM:如果執行大量的SELECT,MyISAM是更好的選擇,

InnoDB:如果你的資料執行大量的INSERT或UPDATE,出于性能方面的考慮,應該使用InnoDB表,DELETE 從性能上InnoDB更優,但DELETE FROM table時,InnoDB不會重新建立表,而是一行一行的洗掉,在innodb上如果要清空保存有大量資料的表,最好使用truncate table這個命令,

11、 外鍵

MyISAM:不支持

InnoDB:支持

通過上述的分析,基本上可以考慮使用InnoDB來替代MyISAM引擎了,原因是InnoDB自身很多良好的特點,比如事務支持、存盤 程序、視圖、行級鎖定等等,在并發很多的情況下,相信InnoDB的表現肯定要比MyISAM強很多,另外,任何一種表都不是萬能的,只用恰當的針對業務型別來選擇合適的表型別,才能最大的發揮MySQL的性能優勢,如果不是很復雜的Web應用,非關鍵應用,還是可以繼續考慮MyISAM的,這個具體情況可以自己斟酌,

24. redis 和 memache 快取的區別

總結一:

 

1.資料型別

 

Redis資料型別豐富,支持set list等型別

memcache支持簡單資料型別,需要客戶端自己處理復雜物件

 

2.持久性

 

redis支持資料落地持久化存盤

memcache不支持資料持久存盤

 

3.分布式存盤

 

redis支持master-slave復制模式

memcache可以使用一致性hash做分布式

 

value大小不同

 

memcache是一個記憶體快取,key的長度小于250字符,單個item存盤要小于1M,不適合虛擬機使用

 

4.資料一致性不同

 

redis使用的是單執行緒模型,保證了資料按順序提交,

memcache需要使用cas保證資料一致性,CAS(Check and Set)是一個確保并發一致性的機制,屬于“樂觀鎖”范疇;原理很簡單:拿版本號,操作,對比版本號,如果一致就操作,不一致就放棄任何操作

 

5.cpu利用

 

redis單執行緒模型只能使用一個cpu,可以開啟多個redis行程

 

總結二:

 

1.Redis中,并不是所有的資料都一直存盤在記憶體中的,這是和Memcached相比一個最大的區別,

2.Redis不僅僅支持簡單的k/v型別的資料,同時還提供list,set,hash等資料結構的存盤,

3.Redis支持資料的備份,即master-slave模式的資料備份,

4.Redis支持資料的持久化,可以將記憶體中的資料保持在磁盤中,重啟的時候可以再次加載進行使用,

我個人認為最本質的不同是Redis在很多方面具備資料庫的特征,或者說就是一個資料庫系統,而Memcached只是簡單的K/V快取

 

總結三:

 

redis和memecache的不同在于:

 

1、存盤方式:

memecache 把資料全部存在記憶體之中,斷電后會掛掉,資料不能超過記憶體大小

redis有部份存在硬碟上,這樣能保證資料的持久性,

2、資料支持型別:

redis在資料支持上要比memecache多的多,

3、使用底層模型不同:

新版本的redis直接自己構建了VM 機制 ,因為一般的系統呼叫系統函式的話,會浪費一定的時間去移動和請求,

4、運行環境不同:

redis目前官方只支持Linux 上去行,從而省去了對于其它系統的支持,這樣的話可以更好的把精力用于本系統 環境上的優化,雖然后來微軟有一個小組為其寫了補丁,但是沒有放到主干上

 

memcache只能當做快取,cache

redis的內容是可以落地的,就是說跟MongoDB有些類似,然后redis也可以作為快取,并且可以設定master-slave

25.表中有A B C三列,用SQL陳述句實作:當A列大于B列時選擇A列否則選擇B列,當B列大于C列時選擇B列否則選擇C列,

drop table table1  create table table1(  

    a int,  

    b int,  

    c int  )  insert into table1 values(22,24,23)  

  select * from table1  

  select (case when a>b then a else b end),(case when b>c then b else c end)  from table1  

  select (case when a>b then a  

             when a>c then a  

             when b>c then b else c  

             end)  from table1

26.安裝Linux系統中,用netconfig程式對網路進行配置,要輸入哪些內容?

會讓用戶輸入主機名、域名、域名服務器、IP地址、網關地址和子網掩碼等必要資訊

27. PHP 如何寫介面給人家呼叫?

public function  authenticationApi($data,$url){       

 $ch  = curl_init();       

  curl_setopt($ch, CURLOPT_URL, $url);        

  curl_setopt($ch, CURLOPT_POST, 1);        

  curl_setopt($ch, CURLOPT_HEADER, 0);        

  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);        

  curl_setopt($ch, CURLOPT_POSTFIELDS, $data);    

  //輸出格式可以轉為陣列形式的json格式        

  $tmpInfo = curl_exec($ch);        

  curl_close($ch);        

  return $tmpInfo;    

  }

28.用PHP header()函式實作頁面404錯誤提示功能

Header("HTTP/1.1 404 Not Found");

29.heredoc結構及用法

echo <<<EOT

   <html>

   <head><title>主頁</title></head>

   <body>主頁內容</body>

   </html>

EOT;

 

注意:結束識別符號所在的行不能包含任何其它字符除";"

30.nowdoc結構及用法

$str = <<<'EOD'

       Example of string

       spanning multiple lines

       using nowdoc syntax.

EOD;

31.javascript 判斷彈出視窗是否被屏蔽程式代碼

var wroxWin = window.open("http://www.111cn.net", "_blank");if (wroxWin == null) {

    alert("糟糕!彈出視窗被屏蔽了");}

32. php序列化和反序列化用的函式

serialize() 序列化

 

unserialize() 反序列化

33. 利用下表結構,寫出發貼數最多的十個人名字的SQL陳述句(members(id,username,posts,pass,email)

select memebers.username from members group by posts desc limit 10

34,.以Apache模塊的方式安裝PHP,在檔案http.conf中首先要用陳述句(?)動態裝載PHP模塊,然后再用陳述句(?)使得Apache把所有擴展名為php的檔案都作為PHP腳本處理,

1.LoadModule php5_module "c:/php/php5apache2.dll")

 

2.AddType application/x-httpd-php .php

35.資料庫中的事務是什么?

事務就是一系列的操作,這些操作完成一項任務,只要這些操作里有一個操作沒有成功,事務就操作失敗,發生回滾事件,即撤消前面的操作,這樣可以保證資料的一致性,而且可以把操作暫時放在快取里,等所有操作都成功有提交資料庫,這樣保證費時的操作都是有效操作,

36.apche 和 nginx 的優缺

nginx輕量級,比apache占用更少的記憶體及資源,抗并發,nginx處理請求是異步非阻塞的,而apache 則是阻塞型的,在高并發下nginx 能保持低資源低消耗高性能,apache 相對于nginx 的優點:rewrite比nginx 的rewrite 強大,少bug,穩定,(需要性能用nginx,求穩定就apache),

37.求兩個日期的引數,例如2007-2-5 ~ 2007-3-6 的日期引數

// 方法一:用DateTime類

$day1 = '2003-09-16';

$day2 = '2011-11-23';

$d1 = new dateTime($day1);

$d2 = new dateTime($day2);

echo $d1->diff($d2)->days;

 

// 方法二,用時間戳計算

echo (strtotime($day2) - strtotime($day1))/(24*3600);

38.下面的代碼用來做什么?請解釋,$date='08/26/2003';

print ereg_replace("([0-9]+)/([0-9]+)/([0-9]+)","\\2/\\1/\\3",$date);

     這是把一個日期從 MM/DD/YYYY 的格式轉為 DD/MM/YYYY 格式,我的一個好朋友告訴我可以把這個正規運算式拆解為以下的陳述句,對于如此簡單的表示是來說其實無須拆解,純粹為了解說的方便:

 

// 對應一個或更多 0-9,后面緊隨一個斜號$regExpression = "([0-9]+)/";

// 應一個或更多 0-9,后面緊隨另一個斜號$regExpression .= "([0-9]+)/";

// 再次對應一個或更多 0-9$regExpression .= "([0-9]+)";至于 \\2/\\1/\\3 則是用來對應括號,第一個括號對的是月份 

39.在PHP中,當前腳本的名稱(不包括路徑和查詢字串)記錄在預定義變數(?)中;而鏈接到當前頁面的URL記錄在預定義變數(?)中,

(1) echo $_SERVER['PHP_SELF']; 

(2) echo $_SERVER["HTTP_REFERER"];

40.一個函式的引數不能是對變數的參考,除非在php.ini中把(?)設為on.

allow_call_time_pass_reference

今天就先寫到這里吧!在后期的面試中遇到不同的面試題我會不定期更新

希望此文會給大家帶來幫助,覺寫的不錯的,對你有幫助中的請動動你的手關注我和點贊分享,祝愿正在找作業的你,能找一份滿意的作業,祝你新的旅途愉快!

以上就是PHP 經典面試題集的詳細內容

 

 

相關推薦:

分享一波騰訊PHP面試題

2019年PHP最新面試題(含答案)

Redis 高級面試題 學會這些還怕進不了大廠?

阿里面試官三年經驗PHP程式員知識點匯總,學會你就是下一個阿里人!

php面試題之PHP核心技術

掌握 Redis這些 知識點,面試官一定覺得你很 NB

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/88079.html

標籤:PHP

上一篇:thinkphp呼叫sqlserver儲存程序回傳多個結果集

下一篇:TP中統計指定欄位的總數

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 【C++】Microsoft C++、C 和匯編程式檔案

    ......

    uj5u.com 2020-09-10 00:57:23 more
  • 例外宣告

    相比于斷言適用于排除邏輯上不可能存在的狀態,例外通常是用于邏輯上可能發生的錯誤。 例外宣告 Item 1:當函式不可能拋出例外或不能接受拋出例外時,使用noexcept 理由 如果不打算拋出例外的話,程式就會認為無法處理這種錯誤,并且應當盡早終止,如此可以有效地阻止例外的傳播與擴散。 示例 //不可 ......

    uj5u.com 2020-09-10 00:57:27 more
  • Codeforces 1400E Clear the Multiset(貪心 + 分治)

    鏈接:https://codeforces.com/problemset/problem/1400/E 來源:Codeforces 思路:給你一個陣列,現在你可以進行兩種操作,操作1:將一段沒有 0 的區間進行減一的操作,操作2:將 i 位置上的元素歸零。最終問:將這個陣列的全部元素歸零后操作的最少 ......

    uj5u.com 2020-09-10 00:57:30 more
  • UVA11610 【Reverse Prime】

    本人看到此題沒有翻譯,就附帶了一個自己的翻譯版本 思考 這一題,它的第一個要求是找出所有 $7$ 位反向質數及其質因數的個數。 我們應該需要質數篩篩選1~$10^{7}$的所有數,這里就不慢慢介紹了。但是,重讀題,我們突然發現反向質數都是 $7$ 位,而將它反過來后的數字卻是 $6$ 位數,這就說明 ......

    uj5u.com 2020-09-10 00:57:36 more
  • 統計區間素數數量

    1 #pragma GCC optimize(2) 2 #include <bits/stdc++.h> 3 using namespace std; 4 bool isprime[1000000010]; 5 vector<int> prime; 6 inline int getlist(int ......

    uj5u.com 2020-09-10 00:57:47 more
  • C/C++編程筆記:C++中的 const 變數詳解,教你正確認識const用法

    1、C中的const 1、區域const變數存放在堆疊區中,會分配記憶體(也就是說可以通過地址間接修改變數的值)。測驗代碼如下: 運行結果: 2、全域const變數存放在只讀資料段(不能通過地址修改,會發生寫入錯誤), 默認為外部聯編,可以給其他源檔案使用(需要用extern關鍵字修飾) 運行結果: ......

    uj5u.com 2020-09-10 00:58:04 more
  • 【C++犯錯記錄】VS2019 MFC添加資源不懂如何修改資源宏ID

    1. 首先在資源視圖中,添加資源 2. 點擊新添加的資源,復制自動生成的ID 3. 在解決方案資源管理器中找到Resource.h檔案,編輯,使用整個專案搜索和替換的方式快速替換 宏宣告 4. Ctrl+Shift+F 全域搜索,點擊查找全部,然后逐個替換 5. 為什么使用搜索替換而不使用屬性視窗直 ......

    uj5u.com 2020-09-10 00:59:11 more
  • 【C++犯錯記錄】VS2019 MFC不懂的批量添加資源

    1. 打開資源頭檔案Resource.h,在其中預先定義好宏 ID(不清楚其實ID值應該設定多少,可以先新建一個相同的資源項,再在這個資源的ID值的基礎上遞增即可) 2. 在資源視圖中選中專案資源,按F7編輯資源檔案,按 ID 型別 相對路徑的形式添加 資源。(別忘了先把檔案拷貝到專案中的res檔案 ......

    uj5u.com 2020-09-10 01:00:19 more
  • C/C++編程筆記:關于C++的參考型別,專供新手入門使用

    今天要講的是C++中我最喜歡的一個用法——參考,也叫別名。 參考就是給一個變數名取一個變數名,方便我們間接地使用這個變數。我們可以給一個變數創建N個參考,這N + 1個變數共享了同一塊記憶體區域。(參考型別的變數會占用記憶體空間,占用的記憶體空間的大小和指標型別的大小是相同的。雖然參考是一個物件的別名,但 ......

    uj5u.com 2020-09-10 01:00:22 more
  • 【C/C++編程筆記】從頭開始學習C ++:初學者完整指南

    眾所周知,C ++的學習曲線陡峭,但是花時間學習這種語言將為您的職業帶來奇跡,并使您與其他開發人員區分開。您會更輕松地學習新語言,形成真正的解決問題的技能,并在編程的基礎上打下堅實的基礎。 C ++將幫助您養成良好的編程習慣(即清晰一致的編碼風格,在撰寫代碼時注釋代碼,并限制類內部的可見性),并且由 ......

    uj5u.com 2020-09-10 01:00:41 more
最新发布
  • Rust中的智能指標:Box<T> Rc<T> Arc<T> Cell<T> RefCell<T> Weak

    Rust中的智能指標是什么 智能指標(smart pointers)是一類資料結構,是擁有資料所有權和額外功能的指標。是指標的進一步發展 指標(pointer)是一個包含記憶體地址的變數的通用概念。這個地址參考,或 ” 指向”(points at)一些其 他資料 。參考以 & 符號為標志并借用了他們所 ......

    uj5u.com 2023-04-20 07:24:10 more
  • Java的值傳遞和參考傳遞

    值傳遞不會改變本身,參考傳遞(如果傳遞的值需要實體化到堆里)如果發生修改了會改變本身。 1.基本資料型別都是值傳遞 package com.example.basic; public class Test { public static void main(String[] args) { int ......

    uj5u.com 2023-04-20 07:24:04 more
  • [2]SpinalHDL教程——Scala簡單入門

    第一個 Scala 程式 shell里面輸入 $ scala scala> 1 + 1 res0: Int = 2 scala> println("Hello World!") Hello World! 檔案形式 object HelloWorld { /* 這是我的第一個 Scala 程式 * 以 ......

    uj5u.com 2023-04-20 07:23:58 more
  • 理解函式指標和回呼函式

    理解 函式指標 指向函式的指標。比如: 理解函式指標的偽代碼 void (*p)(int type, char *data); // 定義一個函式指標p void func(int type, char *data); // 宣告一個函式func p = func; // 將指標p指向函式func ......

    uj5u.com 2023-04-20 07:23:52 more
  • Django筆記二十五之資料庫函式之日期函式

    本文首發于公眾號:Hunter后端 原文鏈接:Django筆記二十五之資料庫函式之日期函式 日期函式主要介紹兩個大類,Extract() 和 Trunc() Extract() 函式作用是提取日期,比如我們可以提取一個日期欄位的年份,月份,日等資料 Trunc() 的作用則是截取,比如 2022-0 ......

    uj5u.com 2023-04-20 07:23:45 more
  • 一天吃透JVM面試八股文

    什么是JVM? JVM,全稱Java Virtual Machine(Java虛擬機),是通過在實際的計算機上仿真模擬各種計算機功能來實作的。由一套位元組碼指令集、一組暫存器、一個堆疊、一個垃圾回收堆和一個存盤方法域等組成。JVM屏蔽了與作業系統平臺相關的資訊,使得Java程式只需要生成在Java虛擬機 ......

    uj5u.com 2023-04-20 07:23:31 more
  • 使用Java接入小程式訂閱訊息!

    更新完微信服務號的模板訊息之后,我又趕緊把微信小程式的訂閱訊息給實作了!之前我一直以為微信小程式也是要企業才能申請,沒想到小程式個人就能申請。 訊息推送平臺🔥推送下發【郵件】【短信】【微信服務號】【微信小程式】【企業微信】【釘釘】等訊息型別。 https://gitee.com/zhongfuch ......

    uj5u.com 2023-04-20 07:22:59 more
  • java -- 緩沖流、轉換流、序列化流

    緩沖流 緩沖流, 也叫高效流, 按照資料型別分類: 位元組緩沖流:BufferedInputStream,BufferedOutputStream 字符緩沖流:BufferedReader,BufferedWriter 緩沖流的基本原理,是在創建流物件時,會創建一個內置的默認大小的緩沖區陣列,通過緩沖 ......

    uj5u.com 2023-04-20 07:22:49 more
  • Java-SpringBoot-Range請求頭設定實作視頻分段傳輸

    老實說,人太懶了,現在基本都不喜歡寫筆記了,但是網上有關Range請求頭的文章都太水了 下面是抄的一段StackOverflow的代碼...自己大修改過的,寫的注釋挺全的,應該直接看得懂,就不解釋了 寫的不好...只是希望能給視頻網站開發的新手一點點幫助吧. 業務場景:視頻分段傳輸、視頻多段傳輸(理 ......

    uj5u.com 2023-04-20 07:22:42 more
  • Windows 10開發教程_編程入門自學教程_菜鳥教程-免費教程分享

    教程簡介 Windows 10開發入門教程 - 從簡單的步驟了解Windows 10開發,從基本到高級概念,包括簡介,UWP,第一個應用程式,商店,XAML控制元件,資料系結,XAML性能,自適應設計,自適應UI,自適應代碼,檔案管理,SQLite資料庫,應用程式到應用程式通信,應用程式本地化,應用程式 ......

    uj5u.com 2023-04-20 07:22:35 more