查看路徑
顯示當(dāng)前目錄的路徑
查看命令的可執(zhí)行文件所在路徑, Linux 下,每一條命令其實(shí)都對應(yīng)一個可執(zhí)行程序,在終端中輸入命令,按回車的時候,就是執(zhí)行了對應(yīng)的那個程序, which 命令本身對應(yīng)的程序也存在于 Linux 中。
總的來說一個命令就是一個可執(zhí)行程序。
瀏覽和切換目錄
列出文件和目錄,它是 Linux 最常用的命令之一。
【常用參數(shù)】
cd 是英語 change directory 的縮寫,表示切換目錄。
cd / --> 跳轉(zhuǎn)到根目錄
cd ~ --> 跳轉(zhuǎn)到家目錄
cd .. --> 跳轉(zhuǎn)到上級目錄
cd ./home --> 跳轉(zhuǎn)到當(dāng)前目錄的home目錄下
cd /home/lion --> 跳轉(zhuǎn)到根目錄下的home目錄下的lion目錄
cd --> 不添加任何參數(shù),也是回到家目錄
[注意] 輸入cd /ho + 單次 tab 鍵會自動補(bǔ)全路徑 + 兩次 tab 鍵會列出所有可能的目錄列表。
列舉目錄大小信息。
【常用參數(shù)】
一次性顯示文件所有內(nèi)容,更適合查看小的文件。
cat cloud-init.log
【常用參數(shù)】
分頁顯示文件內(nèi)容,更適合查看大的文件。
less cloud-init.log
【快捷操作】
顯示文件的開頭幾行(默認(rèn)是10行)
head cloud-init.log
【參數(shù)】
顯示文件的結(jié)尾幾行(默認(rèn)是10行)
tail cloud-init.log復(fù)制代碼
【參數(shù)】
創(chuàng)建一個文件
touch new_file復(fù)制代碼
創(chuàng)建一個目錄
mkdir new_folder復(fù)制代碼
【常用參數(shù)】
文件的復(fù)制和移動
拷貝文件和目錄
cp file file_copy --> file 是目標(biāo)文件,file_copy 是拷貝出來的文件cp file one --> 把 file 文件拷貝到 one 目錄下,并且文件名依然為 file
cp file one/file_copy --> 把 file 文件拷貝到 one 目錄下,文件名為file_copy
cp *.txt folder --> 把當(dāng)前目錄下所有 txt 文件拷貝到 folder 目錄下
【常用參數(shù)】
移動(重命名)文件或目錄,與cp命令用法相似。
mv file one --> 將 file 文件移動到 one 目錄下
mv new_folder one --> 將 new_folder 文件夾移動到one目錄下mv *.txt folder --> 把當(dāng)前目錄下所有 txt 文件移動到 folder 目錄下mv file new_file --> file 文件重命名為 new_file
文件的刪除和鏈接
刪除文件和目錄,由于 Linux 下沒有回收站,一旦刪除非常難恢復(fù),因此需要謹(jǐn)慎操作
rm new_file --> 刪除 new_file 文件
rm f1 f2 f3 --> 同時刪除 f1 f2 f3 3個文件
【常用參數(shù)】
英文 Link 的縮寫,表示創(chuàng)建鏈接。
學(xué)習(xí)創(chuàng)建鏈接之前,首先要理解鏈接是什么,我們先來看看 Linux 的文件是如何存儲的:
Linux 文件的存儲方式分為3個部分,文件名、文件內(nèi)容以及權(quán)限,其中文件名的列表是存儲在硬盤的其它地方和文件內(nèi)容是分開存放的,每個文件名通過 inode 標(biāo)識綁定到文件內(nèi)容。
Linux 下有兩種鏈接類型:硬鏈接和軟鏈接。
使鏈接的兩個文件共享同樣文件內(nèi)容,就是同樣的 inode ,一旦文件1和文件2之間有了硬鏈接,那么修改任何一個文件,修改的都是同一塊內(nèi)容,它的缺點(diǎn)是,只能創(chuàng)建指向文件的硬鏈接,不能創(chuàng)建指向目錄的(其實(shí)也可以,但比較復(fù)雜)而軟鏈接都可以,因此軟鏈接使用更加廣泛。
這個部分暫時不展開。
用戶
Linux 是一個多用戶的操作系統(tǒng)。在 Linux 中,理論上來說,我們可以創(chuàng)建無數(shù)個用戶,但是這些用戶是被劃分到不同的群組里面的,有一個用戶,名叫 root ,是一個很特殊的用戶,它是超級用戶,擁有最高權(quán)限。
以 root 身份運(yùn)行命令
這兩個命令需要 root 用戶權(quán)限
刪除用戶,需要 root 用戶權(quán)限
切換用戶,需要 root 用戶權(quán)限
群組的管理
Linux 中每個用戶都屬于一個特定的群組,如果你不設(shè)置用戶的群組,默認(rèn)會創(chuàng)建一個和它的用戶名一樣的群組,并且把用戶劃歸到這個群組。
創(chuàng)建群組,用法和 useradd 類似
刪除一個已存在的群組
查看用戶所在群組
用于修改用戶的賬戶。
【常用參數(shù)】
用于修改文件的群組。
改變文件的所有者,需要 root 身份才能運(yùn)行。
【常用參數(shù)】
文件權(quán)限管理
修改訪問權(quán)限。
【常用參數(shù)】
其中 drwxr-xr-x 表示文件或目錄的權(quán)限。讓我們一起來解讀它具體代表什么?
現(xiàn)在再來理解這句權(quán)限 drwxr-xr-x 的意思:
現(xiàn)在理解了權(quán)限,我們使用 chmod 來嘗試修改權(quán)限。chmod 它不需要是 root 用戶才能運(yùn)行的,只要你是此文件所有者,就可以用 chmod 來修改文件的訪問權(quán)限。
chmod 640 hello.c
# 分析
6 = 4 + 2 + 0 表示所有者具有 rw 權(quán)限
4 = 4 + 0 + 0 表示群組用戶具有 r 權(quán)限
0 = 0 + 0 + 0 表示其它用戶沒有權(quán)限
對應(yīng)文字權(quán)限為:-rw-r-----
chmod u+rx file --> 文件file的所有者增加讀和運(yùn)行的權(quán)限
chmod g+r file --> 文件file的群組用戶增加讀的權(quán)限
chmod o-r file--> 文件file的其它用戶移除讀的權(quán)限
chmod g+r file --> 文件file的群組用戶增加讀的權(quán)限,其它用戶移除讀的權(quán)限
chmod go-r file --> 文件file的群組和其他用戶移除讀的權(quán)限
chmod +x file --> 文件file的所有用戶增加運(yùn)行的權(quán)限
chmod u=rwx,g=r,o=- file --> 文件file的所有者分配讀寫和執(zhí)行的權(quán)限,群組其它用戶分配讀的權(quán)限,其他用戶沒有任何權(quán)限
搜索包含關(guān)鍵字的所有文件和目錄。后接需要查找的文件名,也可以用正則表達(dá)式。
yum -y install mlocate --> 安裝包updatedb --> 更新數(shù)據(jù)庫復(fù)制代碼locate file.txtlocate fil*.txt
[注意] locate 命令會去文件數(shù)據(jù)庫中查找命令,而不是全磁盤查找,因此剛創(chuàng)建的文件并不會更新到數(shù)據(jù)庫中,所以無法被查找到,可以執(zhí)行 updatedb 命令去更新數(shù)據(jù)庫。
find
用于查找文件,它會去遍歷你的實(shí)際硬盤進(jìn)行查找,而且它允許我們對每個找到的文件進(jìn)行后續(xù)操作,功能非常強(qiáng)大。
find <何處> <何物> <做什么>
find -name "file.txt" --> 當(dāng)前目錄以及子目錄下通過名稱查找文件
find . -name "syslog" --> 當(dāng)前目錄以及子目錄下通過名稱查找文件
find / -name "syslog" --> 整個硬盤下查找syslog
find /var/log -name "syslog" --> 在指定的目錄/var/log下查找syslog文件find /var/log -name "syslog*" --> 查找syslog1、syslog2 ... 等文件,通配符表示所有
find /var/log -name "*syslog*" --> 查找包含syslog的文件
[注意] find 命令只會查找完全符合 "何物" 字符串的文件,而 locate 會查找所有包含關(guān)鍵字的文件。
find /var -size +10M --> /var 目錄下查找文件大小超過 10M 的文件
find /var -size -50k --> /var 目錄下查找文件大小小于 50k 的文件
find /var -size +1G --> /var 目錄下查找文件大小查過 1G 的文件
find /var -size 1M --> /var 目錄下查找文件大小等于 1M 的文件
find -name "*.txt" -atime -7
--> 近 7天內(nèi)訪問過的.txt結(jié)尾的文件
find . -name "file" -type f
--> 只查找當(dāng)前目錄下的file文件
find . -name "file" -type d
--> 只查找當(dāng)前目錄下的file目錄
軟件倉庫
Linux 下軟件是以包的形式存在,一個軟件包其實(shí)就是軟件的所有文件的壓縮包,是二進(jìn)制的形式,包含了安裝軟件的所有指令。Red Hat 家族的軟件包后綴名一般為 .rpm ,Debian 家族的軟件包后綴是 .deb 。
Linux 的包都存在一個倉庫,叫做軟件倉庫,它可以使用 yum 來管理軟件包, yum 是 CentOS 中默認(rèn)的包管理工具,適用于 Red Hat 一族??梢岳斫獬?Node.js 的 npm 。
yum 常用命令
grep
全局搜索一個正則表達(dá)式,并且打印到屏幕。簡單來說就是,在文件中查找關(guān)鍵字,并顯示關(guān)鍵字所在行。
grep text file # text代表要搜索的文本,file代表供搜索的文件
對文件的行進(jìn)行排序。
sort name.txt # 對name.txt文件進(jìn)行排序
為了演示方便,我們首先創(chuàng)建一個文件 name.txt ,放入以下內(nèi)容:
ChristopherShawnTedRockNoahZacharyBella
執(zhí)行 sort name.txt 命令,會對文本內(nèi)容進(jìn)行排序。
word count 的縮寫,用于文件的統(tǒng)計。它可以統(tǒng)計單詞數(shù)目、行數(shù)、字符數(shù),字節(jié)數(shù)等。
wc name.txt # 統(tǒng)計name.txt
[root@lion ~]# wc name.txt 13 13 91 name.txt
刪除文件中的重復(fù)內(nèi)容。
uniq name.txt # 去除name.txt重復(fù)的行數(shù),并打印到屏幕上
【注意】它只能去除連續(xù)重復(fù)的行數(shù)。
剪切文件的一部分內(nèi)容。
cut -c 2-4 name.txt # 剪切每一行第二到第四個字符
在 Linux 中一個命令的去向可以有3個地方:終端、文件、作為另外一個命令的入?yún)ⅰ?/p>
命令一般都是通過鍵盤輸入,然后輸出到終端、文件等地方,它的標(biāo)準(zhǔn)用語是 stdin 、 stdout 以及 stderr 。
把本來要顯示在終端的命令結(jié)果,輸送到別的地方(到文件中或者作為其他命令的輸入)。
> 表示重定向到新的文件, cut -d , -f 1 notes.csv > name.csv ,它表示通過逗號剪切notes.csv 文件(剪切完有3個部分)獲取第一個部分,重定向到 name.csv 文件。
我們來看一個具體示例,學(xué)習(xí)它的使用,假設(shè)我們有一個文件 notes.csv ,文件內(nèi)容如下:
Mark1,951/100,很不錯1Mark2,952/100,很不錯2Mark3,
953/100,很不錯3Mark4,954/100,很不錯4Mark5,955/100,很不錯5Mark6,956/100,很不錯6
執(zhí)行命令:cut -d , -f 1 notes.csv > name.csv 最后輸出如下內(nèi)容:
Mark1Mark2Mark3Mark4Mark5Mark6
【注意】使用 > 要注意,如果輸出的文件不存在它會新建一個,如果輸出的文件已經(jīng)存在,則會覆蓋。因此執(zhí)行這個操作要非常小心,以免覆蓋其它重要文件。
表示重定向到文件末尾,因此它不會像 > 命令這么危險,它是追加到文件的末尾(當(dāng)然如果文件不存在,也會被創(chuàng)建)。
再次執(zhí)行 cut -d , -f 1 notes.csv >> name.csv ,則會把名字追加到 name.csv 里面。
Mark1Mark2Mark3Mark4Mark5Mark6Mark1Mark2Mark3Mark4Mark5Mark6
我們平時讀的 log 日志文件其實(shí)都是用這個命令輸出的。
標(biāo)準(zhǔn)錯誤輸出
cat not_exist_file.csv > res.txt 2> errors.log
標(biāo)準(zhǔn)錯誤輸出(追加到文件末尾)同 >> 相似。
< 符號用于指定命令的輸入。
cat < name.csv # 指定命令的輸入為 name.csv
雖然它的運(yùn)行結(jié)果與 cat name.csv 一樣,但是它們的原理卻完全不同。
將鍵盤的輸入重定向?yàn)槟硞€命令的輸入。
sort -n << END # 輸入這個命令之后,按下回車,終端就進(jìn)入鍵盤輸入模式,其中END為結(jié)束命令(這個可以自定義)wc -m << END # 統(tǒng)計輸入的單詞復(fù)
把兩個命令連起來使用,一個命令的輸出作為另外一個命令的輸入,英文是 pipeline ,可以想象一個個水管連接起來,管道算是重定向流的一種。
舉幾個實(shí)際用法案例:
cut -d , -f 1 name.csv | sort > sorted_name.txt
# 第一步獲取到的 name 列表,通過管道符再進(jìn)行排序,最后輸出到sorted_name.txt
du | sort -nr | head
# du 表示列舉目錄大小信息# sort 進(jìn)行排序,-n 表示按數(shù)字排序,-r 表示倒序# head 前10行文件
grep log -Ir /var/log | cut -d : -f 1 | sort | uniq
# grep log -Ir /var/log 表示在log文件夾下搜索 /var/log 文本,-r 表示遞歸,-I 用于排除二進(jìn)制文件# cut -d : -f 1 表示通過冒號進(jìn)行剪切,獲取剪切的第一部分# sort 進(jìn)行排序# uniq 進(jìn)行去重復(fù)制代碼
在 Windows 中通過 Ctrl + Alt + Delete 快捷鍵查看軟件進(jìn)程。
幫助我們快速了解系統(tǒng)中目前有哪些用戶登錄著,以及他們在干什么。
用于顯示當(dāng)前系統(tǒng)中的進(jìn)程, ps 命令顯示的進(jìn)程列表不會隨時間而更新,是靜態(tài)的,是運(yùn)行 ps 命令那個時刻的狀態(tài)或者說是一個進(jìn)程快照。
獲取進(jìn)程的動態(tài)列表。
結(jié)束一個進(jìn)程, kill + PID 。
主要是切換進(jìn)程的狀態(tài)。我們先了解下 Linux 下進(jìn)程的五種狀態(tài):
默認(rèn)情況下,用戶創(chuàng)建的進(jìn)程都是前臺進(jìn)程,前臺進(jìn)程從鍵盤讀取數(shù)據(jù),并把處理結(jié)果輸出到顯示器。例如運(yùn)行 top 命令,這就是一個一直運(yùn)行的前臺進(jìn)程。
后臺進(jìn)程的優(yōu)點(diǎn)是不必等待程序運(yùn)行結(jié)束,就可以輸入其它命令。在需要執(zhí)行的命令后面添加& 符號,就表示啟動一個后臺進(jìn)程。
啟動后臺進(jìn)程,它的缺點(diǎn)是后臺進(jìn)程與終端相關(guān)聯(lián),一旦關(guān)閉終端,進(jìn)程就自動結(jié)束了。
cp name.csv name-copy.csv &
使進(jìn)程不受掛斷(關(guān)閉終端等動作)的影響。
nohup cp name.csv name-copy.csv
nohup 命令也可以和 & 結(jié)合使用。
nohup cp name.csv name-copy.csv &
使一個"后臺暫停運(yùn)行"的進(jìn)程,狀態(tài)改為"后臺運(yùn)行"。
顯示當(dāng)前終端后臺進(jìn)程狀態(tài)。
fg 使進(jìn)程轉(zhuǎn)為前臺運(yùn)行,用法和 bg 命令類似。
我們用一張圖來表示前后臺進(jìn)程切換:
我們可以使程序在后臺運(yùn)行,成為后臺進(jìn)程,這樣在當(dāng)前終端中我們就可以做其他事情了,而不必等待此進(jìn)程運(yùn)行結(jié)束。
我們常常使用 tar 將多個文件歸檔為一個總的文件,稱為 archive 。然后用 gzip 或 bzip2 命令將 archive 壓縮為更小的文件。
創(chuàng)建一個 tar 歸檔。
tar -cvf sort.tar sort/
# 將sort文件夾歸檔為sort.tar
tar -cvf archive.tar file1 file2 file3
# 將 file1 file2 file3 歸檔為archive.tar復(fù)制代碼
"壓縮/解壓"歸檔,默認(rèn)用 gzip 命令,壓縮后的文件后綴名為 .tar.gz 。
gzip archive.tar # 壓縮gunzip archive.tar.gz # 解壓
可以用 tar 命令同時完成歸檔和壓縮的操作,就是給 tar 命令多加一個選項(xiàng)參數(shù),使之完成歸檔操作后,還是調(diào)用 gzip 或 bzip2 命令來完成壓縮操作。
tar -zcvf archive.tar.gz archive/ # 將archive文件夾歸檔并壓縮
tar -zxvf archive.tar.gz # 將archive.tar.gz歸檔壓縮文件解壓
之前講過使用 cat less more 可以查看文件內(nèi)容,但是壓縮文件的內(nèi)容是不能使用這些命令進(jìn)行查看的,而要使用 zcat、zless、zmore 進(jìn)行查看。
zcat archive.tar.gz
"壓縮/解壓" zip 文件( zip 壓縮文件一般來自 windows 操作系統(tǒng))。
# Red Hat 一族中的安裝方式y(tǒng)um install zip yum install unzip 復(fù)制代碼
unzip archive.zip
# 解壓 .zip 文件
unzip -l archive.zip
# 不解開 .zip 文件,只看其中內(nèi)容
zip -r sort.zip sort/
# 將sort文件夾壓縮為 sort.zip,其中-r表示遞歸
簡單來說,編譯就是將程序的源代碼轉(zhuǎn)換成可執(zhí)行文件的過程。大多數(shù) Linux 的程序都是開放源碼的,可以編譯成適合我們的電腦和操縱系統(tǒng)屬性的可執(zhí)行文件。
基本步驟如下:
我們來編譯安裝 htop 軟件,首先在它的官網(wǎng)下載源碼:http://bintray.com/htop/source…[1]
下載好的源碼在本機(jī)電腦上使用如下命令同步到服務(wù)器上:
scp 文件名 用戶名@服務(wù)器ip:目標(biāo)路徑
scp ~/Desktop/htop-3.0.0.tar.gz root@121.42.11.34:.
也可以使用 wegt 進(jìn)行下載:
wegt+下載地址
wegt https://bintray.com/htop/source/download_file?file_path=htop-3.0.0.tar.gz
tar -zxvf htop-3.0.0.tar.gz
# 解壓cd htop-3.0.0 # 進(jìn)入目錄
執(zhí)行 ./configure ,它會分析你的電腦去確認(rèn)編譯所需的工具是否都已經(jīng)安裝了。
執(zhí)行 make 命令
執(zhí)行 make install 命令,安裝完成后執(zhí)行 ls /usr/local/bin/ 查看是否有 htop 命令。如果有就可以執(zhí)行 htop 命令查看系統(tǒng)進(jìn)程了。
查看 ip 網(wǎng)絡(luò)相關(guān)信息,如果命令不存在的話, 執(zhí)行命令 yum install net-tools 安裝。
參數(shù)解析:
ip 地址和主機(jī)名的互相轉(zhuǎn)換。
通過非對稱加密以及對稱加密的方式(同 HTTPS 安全連接原理相似)連接到遠(yuǎn)端服務(wù)器。
config 文件可以***h ,方便批量管理多個 ssh 連接。
配置文件分為以下幾種:
配置當(dāng)前用戶的 config :
# 創(chuàng)建config
vim ~/.ssh/config
# 填寫一下內(nèi)容
Host lion # 別名 HostName 172.x.x.x # ip 地址 Port 22 # 端口 User root # 用戶
這樣配置完成后,下次登錄時,可以這樣登錄 ssh lion 會自動識別為 root 用戶。
[注意] 這段配置不是在服務(wù)器上,而是你自己的機(jī)器上,它僅僅是設(shè)置了一個別名。
可以使我們直接從終端控制臺下載文件,只需要給出文件的HTTP或FTP地址。
它是 Secure Copy 的縮寫,表示安全拷貝。scp 可以使我們通過網(wǎng)絡(luò),把文件從一臺電腦拷貝到另一臺電腦。
scp 是基于 ssh 的原理來運(yùn)作的, ssh 會在兩臺通過網(wǎng)絡(luò)連接的電腦之間創(chuàng)建一條安全通信的管道, scp 就利用這條管道安全地拷貝文件。
scp source_file destination_file
# source_file 表示源文件,destination_file 表示目標(biāo)文件
其中 source_file 和 destination_file 都可以這樣表示:user@ip:file_name , user 是登錄名, ip 是域名或 ip 地址。file_name 是文件路徑。
scp root@192.168.1.5:/root/file.txt file.txt # 表示把遠(yuǎn)程電腦上的 file.txt 文件拷貝到本機(jī)
scp file.txt root@192.168.1.5:/root # 表示把我的電腦中當(dāng)前文件夾下的 file.txt 文件拷貝到遠(yuǎn)程電腦
rsync 命令主要用于遠(yuǎn)程同步文件。它可以同步兩個目錄,不管它們是否處于同一臺電腦。它應(yīng)該是最常用于"增量備份"的命令了。它就是智能版的 scp 命令。
yum install rsync復(fù)制代碼
rsync -arv Images/ backups/
# 將Images 目錄下的所有文件備份到 backups 目錄下
rsync -arv Images/ root@192.x.x.x:backups/
# 同步到服務(wù)器的backups目錄下
默認(rèn)地, rsync 在同步時并不會刪除目標(biāo)目錄的文件,例如你在源目錄中刪除一個文件,但是用 rsync 同步時,它并不會刪除同步目錄中的相同文件。如果向刪除也可以這么做:rsync -arv --delete Images/ backups/ 。
關(guān)閉系統(tǒng),需要 root 身份。
重啟系統(tǒng),需要 root 身份。
reboot
直接運(yùn)行即可關(guān)機(jī),不需要 root 身份。
Vim 是從 vi 發(fā)展出來的一個文本編輯器。其代碼補(bǔ)完、編譯及錯誤跳轉(zhuǎn)等方便編程的功能特別豐富,在程序員中被廣泛使用。和 Emacs 并列成為類 Unix 系統(tǒng)用戶最喜歡的編輯器。
也成為正常模式,這是 Vim 的默認(rèn)模式,每次運(yùn)行 Vim 程序的時候,就會進(jìn)入這個模式。
例如執(zhí)行 vim name.txt 則會進(jìn)入交互模式。
交互模式特征:
這個模式是我們熟悉的文本編輯器的模式,就是可以輸入任何你想輸入的內(nèi)容。進(jìn)入這個模式有幾種方法,最常用的方法是按字母鍵 i ( i、I、a、A、o、O 都可以進(jìn)入插入模式,只是所處的位置不同),退出這種模式,只需要按下 Esc 鍵。
命令模式也稱為底線命令模式,這個模式下可以運(yùn)行一些命令例如"退出","保存",等動作。
也可以用這個模式來激活一些 Vim 配置,例如語法高亮,顯示行號,等。甚至還可以發(fā)送一些命令給終端命令行,例如 ls、cp 。
為了進(jìn)入命令模式,首先要進(jìn)入交互模式,再按下冒號鍵。
用一張圖表示三種模式如何切換:
基本操作
在終端命令行中輸入 vim 回車后 Vim 就會被運(yùn)行起來,也可以用 Vim 來打開一個文件,只需要在 vim 后面再加文件名。如 vim file.name ,如果文件不存在,那么會被創(chuàng)建。
進(jìn)入文件之后,此時處于交互模式,可以通過輸入 i 進(jìn)入插入模式
在 Vim 的交互模式下,我們可以在文本中移動光標(biāo)。
當(dāng)然也可以使用四個方向鍵進(jìn)行移動,效果是一樣的。
在交互模式下,按字母鍵 w 可以一個單詞一個單詞的移動。
在交互模式下,按下冒號鍵 : 進(jìn)入命令模式,再按下 q 鍵,就可以退出了。
如果在退出之前又修改了文件,就直接想用 :q 退出 Vim ,那么 Vim 會顯示一個紅字標(biāo)明錯誤信息。此時我們有兩個選擇:
在交互模式下,將光標(biāo)定位到一個你想要刪除的字符上,按下字母鍵 x 你會發(fā)現(xiàn)這個字符被刪除了。
也可以一次性刪除多個字符,只需要在按 x 鍵之前輸入數(shù)字即可。
如果之前用 dd 或者 yy 剪切復(fù)制過來的,可以使用 p 來粘貼。同樣也可以使用 數(shù)字+p來表示復(fù)制多次。
在交互模式下,將光標(biāo)置于想要替換的字符上。按下 r 鍵,接著輸入你要替換的字符即可。
如果要撤銷最近的修改,只需要按下 u 鍵,如果想要撤銷最近四次修改,可以按下4,再按下 u 。
取消撤銷,也就是重做之前的修改使用 ctrl + r 。
Vim 編輯的文件中,每一行都有一個行號,行號從1開始,逐一遞增。
行號默認(rèn)是不顯示,如果需要它顯示的話,可以進(jìn)入命令模式,然后輸入 set nu ,如果要隱藏行號的話,使用 set nonu 。
處于交互模式下,按下 / 鍵,那么就進(jìn)入查找模式,輸入你要查找的字符串,然后按下回車。光標(biāo)就會跳轉(zhuǎn)到文件中下一個查找到的匹配處。如果字符串不存在,那么會顯示 "pattern not found" 。
[注意] 用斜杠來進(jìn)行的查找是從當(dāng)前光標(biāo)處開始向文件尾搜索,如果你要從當(dāng)前光標(biāo)處開始,向文件頭搜索則使用 ? ,當(dāng)然也可以先按下 gg 跳轉(zhuǎn)到第一行在進(jìn)行全文搜索。
替換光標(biāo)所在行第一個匹配的字符串:
# 語法:s/舊字符串/新字符串# 實(shí)例:s/one/two
替換光標(biāo)所在行所有舊字符串為新字符串:
# 語法:s/舊字符串/新字符串/g
替換第幾行到第幾行中所有字符串:
# 語法:n,m s/舊字符串/新字符串/g
# 實(shí)例:2,4 s/one/two/g
最常用的就是全文替換了:
# 語法:%s/舊字符串/新字符串/g
可以用冒號 +r ( :r ) 實(shí)現(xiàn)在光標(biāo)處插入一個文件的內(nèi)容。
:r filename # 可以用Tab鍵來自動補(bǔ)全另外一個文件的路徑
關(guān)于軟件測試,要掌握的知識和技能有很多。 秋千學(xué)姐分類梳理了 500個 軟件測試知識體系中的重點(diǎn)問題答案,對于工作中的技能提升和求職面試都有很大幫助,
很實(shí)操很干貨,如果你需要,我發(fā)給你
包含功能測試、接口測試、自動化測試、數(shù)據(jù)庫、Linux、計算機(jī)網(wǎng)絡(luò)、抓包、算法、Python等內(nèi)容
另外送軟件測試各類電子書籍
面試或者工作中碰到的軟件測試問題,歡迎在知乎、公眾號、小紅書提問, 秋千學(xué)姐 幫你解答
軟件測試|推薦閱讀:
秋千說軟件測試:想拿30k軟件測試offer,看大廠365道軟件測試常問面試真題匯總
秋千說軟件測試:2022最火的軟件測試面試_計算機(jī)網(wǎng)絡(luò)真題答案-通過率百分之百
秋千說軟件測試:2022軟件測試20k的offer,自動化測試面試題答案分享一波
秋千說軟件測試:2022軟件測試拿了20k的offer,Python面試題答案分享一波
秋千說軟件測試:2022軟件測試20k的offer,線程進(jìn)程協(xié)程面試題答案分享一波
秋千說軟件測試:2022軟件測試拿了20k的offer,計算機(jī)網(wǎng)絡(luò)面試題答案分享一波
秋千說軟件測試:2022軟件測試20k的offer,計算機(jī)網(wǎng)絡(luò)面試題答案分享一波
職場經(jīng)驗(yàn)|推薦閱讀:
秋千說軟件測試:從年薪200萬領(lǐng)導(dǎo)身上學(xué)到的職場干貨,彎道超車
秋千說軟件測試:裁員最先裁哪類員工?看紅樓夢檢抄大觀園就知道了
面試跳槽|推薦閱讀:
秋千說軟件測試:你的離職原因應(yīng)該這么說,跳槽必看
秋千說軟件測試:面試成功被夸邏輯思維強(qiáng),來分享面試技巧了
秋千說軟件測試:就業(yè)不景氣,對抗焦慮和迷茫,只需要做對這1點(diǎn)
秋千說軟件測試:為什么你的面試總是掛?面試官最討厭的這些雷區(qū)別踩
會計面試的題目大致分為普遍性的問題以及專業(yè)性的問題,主要有以下結(jié)論經(jīng)典試題:
1、一般納稅人可抵扣票證有哪些?納稅申報的流程如何?
2、客戶扣款(已開具發(fā)票)如何進(jìn)行會計處理?需要附哪些原始單據(jù)?
3、年終獎是如何計算繳納個人所得稅的?
4、財政年報和匯算清繳報表口徑有什么差異?
5、公司購買裝修材料用來裝修租用的辦公用房,如何進(jìn)行會計處理?
6、公司開辦費(fèi)如何進(jìn)行會計核算?所得稅清繳時如何進(jìn)行調(diào)整?
7、你為什么離開以前的公司?
8、你目前的工作是什么?說說你工作的流程。
9、你覺得費(fèi)用支出如何處理?(一般為服務(wù)行業(yè))
10、公司成本如何核算?(一般為制造企業(yè))
11、請你談?wù)劗厴I(yè)之后的工作經(jīng)歷。
12、你現(xiàn)在或最近所做的工作,其職責(zé)是什么?你擔(dān)任什么職務(wù)?
13、你認(rèn)為你在工作中的成就是什么?
14、在你主管的部門中,遇到過什么困難?你是如何處理或應(yīng)付過去的?
15、請談一下你在企業(yè)中職務(wù)升遷和收入變化情況。
經(jīng)典的面試題,沒有特別為會計行業(yè)的,但是我作為外企的財務(wù)經(jīng)理,面試人員合計沒有五百,也有四百了,給你分享我經(jīng)歷的公司財務(wù)面試專業(yè)題是什么。
1.固定資產(chǎn)購買,折舊和處置的會計憑證
這個問題是我們面試全球Top30的名校實(shí)習(xí)生時的面試題,看起來簡單,但是真正回答出來的,只有十分之一的人。(考驗(yàn)專業(yè)知識)
2.關(guān)于報銷的問題,如果公司的某個大老板報銷他的出差費(fèi)用,但是他的有筆發(fā)票丟失了,他拿了替代的發(fā)票,請問你怎么做?(考驗(yàn)溝通+職場會計專業(yè)知識+實(shí)務(wù)操作)
3.請描述一下從購買原材料到款項(xiàng)支付所有涉及的會計賬務(wù)處理。
這個考驗(yàn)了一條線,一個流程的業(yè)務(wù)數(shù)字程度和涉及的財務(wù)知識。
在就業(yè)市場競爭激烈的今天,面試已成為企業(yè)招聘中不可或缺的環(huán)節(jié)。無論是畢業(yè)生還是職場人士,都需要準(zhǔn)備好應(yīng)對各種各樣的面試題。而在面試題中,有一類經(jīng)典面試題是經(jīng)常被問到的,掌握了這些題目的解答技巧,對于成功通過面試將起到關(guān)鍵作用。
自我介紹是每個面試中必不可少的環(huán)節(jié),能夠清晰、簡潔地介紹自己對招聘崗位的適應(yīng)度和個人優(yōu)勢將給面試官留下良好的第一印象。
解答此題需要注意以下幾點(diǎn):
通過這個問題,面試官想了解你是否對該公司有所了解,并評估你的研究和準(zhǔn)備能力。
在回答這個問題時,應(yīng)該:
這個問題用來評估你的問題解決能力和應(yīng)變能力?;卮饡r應(yīng)該:
面試官通過這個問題來了解你離職的原因,是為了評估你是否穩(wěn)定性和適應(yīng)能力強(qiáng)。
回答此問題時應(yīng)注意:
這是一個考察你的長期職業(yè)目標(biāo)和規(guī)劃的問題。
解答此題時應(yīng)該:
通過這個問題,面試官想了解你的自我認(rèn)知和反思能力。
回答此問題時應(yīng)注重:
以上就是一些經(jīng)典面試題以及針對這些問題的解答技巧。掌握了這些題目的解答方法,將能夠更加自信、流暢地回答面試官的問題,給對方留下深刻印象。當(dāng)然,在面試過程中,還需要注意言談舉止、形象儀態(tài)等方面的表現(xiàn),與優(yōu)秀的答案相結(jié)合,才能在眾多競爭者中脫穎而出,成功獲得心儀的工作機(jī)會。
A、別的同仁認(rèn)為我是老板前的紅人,所以處處排擠我。
B、調(diào)薪的結(jié)果令我十分失望,完全與我的付出不成正比。
C、老板不愿授權(quán),工作處處受限,綁手綁腳、很難做事。
D、公司營運(yùn)狀況不佳,大家人心惶惶。
解答:超過一半的人事主管選擇C,其次為D.選擇C的回答,可以顯示應(yīng)征者的企圖心、能力強(qiáng),且希望被賦予更多的職責(zé)。選擇D,則是因離職原因?yàn)閭€人無法改變的客觀外在因素,因此,面談?wù)咭簿筒粫€人的能力或工作表現(xiàn),有太多的存疑。
我在??途W(wǎng)刷到過很多Java面試題,但是都沒有答案!
但這一次我分享的就是有一份【Java面試寶典】含答案!你可以進(jìn)行參考!最全的 Java 面試題,題目涉及 Java 基礎(chǔ)、集合、多線程、IO、分布式、Spring全家桶、MyBatis、Dubbo、緩存、消息隊(duì)列、Linux…等等。題庫共 600+ 道,帶全部答案,非常齊全!——【傳送門免費(fèi)貨區(qū)】
JVM
多線程
spring
MyBatis
SpringBoot
MySQL
網(wǎng)絡(luò)
git
1. 解釋下什么是面向?qū)ο螅棵嫦驅(qū)ο蠛?a>面向過程的區(qū)別?
2. 面向?qū)ο蟮娜筇匦裕糠謩e解釋下?
3. JDK、JRE、JVM 三者之間的關(guān)系?
4. 重載和重寫的區(qū)別?
5. Java 中是否可以重寫一個 private 或者 static 方法?
6. 構(gòu)造方法有哪些特性?
7. 在 Java 中定義一個不做事且沒有參數(shù)的構(gòu)造方法有什么作用?
8. Java 中創(chuàng)建對象的幾種方式?
9. 抽象類和接口有什么區(qū)別?
10. 靜態(tài)變量和實(shí)例變量的區(qū)別?
11. 12、short s1 = 1;s1 = s1 + 1;有什么錯?那么 short s1 = 1; s1 += 1;呢?有沒有錯誤?
12. Integer 和 int 的區(qū)別?
13. 裝箱和拆箱的區(qū)別
14. switch 語句能否作用在 byte 上,能否作用在 long 上,能否作用在 String 上?
15. 16、final、finally、finalize 的區(qū)別
16. == 和 equals 的區(qū)別?
17. 兩個對象的 hashCode() 相同,則 equals() 也一定為 true 嗎?
18. 為什么重寫 equals() 就一定要重寫 hashCode() 方法?
19. & 和 && 的區(qū)別?
20. Java 中的參數(shù)傳遞時傳值呢?還是傳引用?
21. Java 中的 Math.round(-1.5) 等于多少?
22. 如何實(shí)現(xiàn)對象的克???
23. 深克隆和淺克隆的區(qū)別?
24. 什么是 Java 的序列化,如何實(shí)現(xiàn) Java 的序列化?
25. 什么情況下需要序列化?
26. Java 的泛型是如何工作的 ? 什么是類型擦除 ?
27. 什么是泛型中的限定通配符和非限定通配符 ?
28. List 和 List 之間有什么區(qū)別 ?
29. Java 中的反射是什么意思?有哪些應(yīng)用場景?
30. 反射的優(yōu)缺點(diǎn)?
31. Java 中的動態(tài)代理是什么?有哪些應(yīng)用?
32. 怎么實(shí)現(xiàn)動態(tài)代理?
33. static 關(guān)鍵字的作用?
34. super 關(guān)鍵字的作用?
35. 字節(jié)和字符的區(qū)別?
36. String 為什么要設(shè)計為不可變類?
37. String、StringBuilder、StringBuffer 的區(qū)別?
38. String 字符串修改實(shí)現(xiàn)的原理?
39. String str = "i" 與 String str = new String("i") 一樣嗎?
40. String 類的常用方法都有那些?
41. final 修飾 StringBuffer 后還可以 append 嗎?
42. Java 中的 IO 流的分類?說出幾個你熟悉的實(shí)現(xiàn)類?
43. 字節(jié)流和字符流有什么區(qū)別?
44. BIO、NIO、AIO 有什么區(qū)別?
1. finally 塊中的代碼什么時候被執(zhí)行?
2. finally 是不是一定會被執(zhí)行到?
3. try-catch-finally 中,如果 catch 中 return 了,finally 還會執(zhí)行嗎?
4. try-catch-finally 中那個部分可以省略?
5. Error 和 Exception 的區(qū)別?
6. 運(yùn)行時異常與受檢異常有何異同?
7. throw 和 throws 的區(qū)別?
8. 常見的異常類有哪些?
9. 主線程可以捕獲到子線程的異常嗎?
1. Java 中常用的容器有哪些?
2. ArrayList 和 LinkedList 的區(qū)別?
3. ArrayList 實(shí)現(xiàn) RandomAccess 接口有何作用?為何 LinkedList 卻沒實(shí)現(xiàn)這個接口?
4. ArrayList 的擴(kuò)容機(jī)制?
5. Array 和 ArrayList 有何區(qū)別?什么時候更適合用 Array?
6. HashMap 的實(shí)現(xiàn)原理/底層數(shù)據(jù)結(jié)構(gòu)?JDK1.7 和 JDK1.8
7. HashMap 的 put 方法的執(zhí)行過程?
8. HashMap 的 get 方法的執(zhí)行過程?
9. HashMap 的 resize 方法的執(zhí)行過程?
10. HashMap 的 size 為什么必須是 2 的整數(shù)次方?
11. HashMap 多線程死循環(huán)問題?
12. HashMap 的 get 方法能否判斷某個元素是否在 map 中?
13. HashMap 與 HashTable 的區(qū)別是什么?
14. HashMap 與 ConcurrentHashMap 的區(qū)別是什么?
15. HashTable 和 ConcurrentHashMap 的區(qū)別?
16. ConcurrentHashMap 的實(shí)現(xiàn)原理是什么?
17. HashSet 的實(shí)現(xiàn)原理?
18. HashSet 怎么保證元素不重復(fù)的?
19. LinkedHashMap 的實(shí)現(xiàn)原理?
20. Iterator 怎么使用?有什么特點(diǎn)?
21. Iterator 和 ListIterator 有什么區(qū)別?
22. Iterator 和 Enumeration 接口的區(qū)別?
23. fail-fast 與 fail-safe 有什么區(qū)別?
24. Collection 和 Collections 有什么區(qū)別?
1. 并行和并發(fā)有什么區(qū)別?
2. 線程和進(jìn)程的區(qū)別?
3. 守護(hù)線程是什么?
4. 創(chuàng)建線程的幾種方式?
5. Runnable 和 Callable 有什么區(qū)別?
6. 線程狀態(tài)及轉(zhuǎn)換?
7. sleep() 和 wait() 的區(qū)別?
8. 線程的 run() 和 start() 有什么區(qū)別?
9. 在 Java 程序中怎么保證多線程的運(yùn)行安全?
10. Java 線程同步的幾種方法?
11. Thread.interrupt() 方法的工作原理是什么?
12. 談?wù)剬?ThreadLocal 的理解?
13. 在哪些場景下會使用到 ThreadLocal?
14. 說一說自己對于 synchronized 關(guān)鍵字的了解?
15. 如何在項(xiàng)目中使用 synchronized 的?
16. 說說 JDK1.6 之后的 synchronized 關(guān)鍵字底層做了哪些優(yōu)化,可以詳細(xì)介紹一下這些優(yōu)化嗎?
17. 談?wù)?synchronized 和 ReenTrantLock 的區(qū)別?
18. synchronized 和 volatile 的區(qū)別是什么?
19. 談一下你對 volatile 關(guān)鍵字的理解?
20. 說下對 ReentrantReadWriteLock 的理解?
21. 說下對悲觀鎖和樂觀鎖的理解?
22. 樂觀鎖常見的兩種實(shí)現(xiàn)方式是什么?
23. 樂觀鎖的缺點(diǎn)有哪些?
24. CAS 和 synchronized 的使用場景?
25. 簡單說下對 Java 中的原子類的理解?
26. atomic 的原理是什么?
27. 說下對同步器 AQS 的理解?
28. AQS 的原理是什么?
29. AQS 對資源的共享模式有哪些?
30. AQS 底層使用了模板方法模式,你能說出幾個需要重寫的方法嗎?
31. 說下對信號量 Semaphore 的理解?
32. CountDownLatch 和 CyclicBarrier 有什么區(qū)別?
33. 說下對線程池的理解?為什么要使用線程池?
34. 創(chuàng)建線程池的參數(shù)有哪些?
35. 如何創(chuàng)建線程池?
36. 線程池中的的線程數(shù)一般怎么設(shè)置?需要考慮哪些問題?
37. 執(zhí)行 execute() 方法和 submit() 方法的區(qū)別是什么呢?
38. 說下對 Fork和Join 并行計算框架的理解?
39. JDK 中提供了哪些并發(fā)容器?
40. 談?wù)剬?CopyOnWriteArrayList 的理解?
41. 談?wù)剬?BlockingQueue 的理解?分別有哪些實(shí)現(xiàn)類?
42. 談?wù)剬?ConcurrentSkipListMap 的理解?
1. 請介紹一下您的運(yùn)維經(jīng)驗(yàn)和技能。
2. 對于 Linux 操作系統(tǒng),你有哪些熟練操作技巧?
3. 如何排查桌面應(yīng)用程序的故障?
4. 如何設(shè)置和管理軟件包倉庫?
5. 請講述一下您的網(wǎng)絡(luò)配置和管理經(jīng)驗(yàn)。
6. 如何執(zhí)行服務(wù)器備份和恢復(fù)?
7. 如何使用監(jiān)控工具來掌握系統(tǒng)健康狀態(tài)?
8. 如何解決網(wǎng)絡(luò)連接問題?
9. 如何處理和分析日志文件?
10. 如何保證系統(tǒng)和應(yīng)用程序的安全性?
以下是對部分經(jīng)典城市規(guī)劃師面試問題的參考回答:
1. 請介紹你對城市規(guī)劃的理解和認(rèn)識。
回答:城市規(guī)劃是一種綜合性的學(xué)科和實(shí)踐,旨在通過有效的土地利用、基礎(chǔ)設(shè)施規(guī)劃、環(huán)境保護(hù)和社會發(fā)展,為城市創(chuàng)造可持續(xù)、宜居和具有發(fā)展?jié)摿Φ目臻g。城市規(guī)劃師負(fù)責(zé)研究、設(shè)計和實(shí)施城市發(fā)展的策略和規(guī)劃方案,以滿足人們的需求,提高居民生活質(zhì)量,并推動城市的經(jīng)濟(jì)、社會和環(huán)境可持續(xù)發(fā)展。
2. 請分享一個你參與的城市規(guī)劃項(xiàng)目,并介紹你在其中的角色和貢獻(xiàn)。
回答:我曾參與一項(xiàng)城市更新項(xiàng)目,旨在改善老舊城區(qū)的環(huán)境和社會條件。我作為項(xiàng)目團(tuán)隊(duì)的一員,負(fù)責(zé)收集和分析相關(guān)數(shù)據(jù),進(jìn)行社會調(diào)查和市民參與活動,并與政府部門、社區(qū)組織和居民進(jìn)行密切合作。我的角色是協(xié)助制定城市規(guī)劃方案,并提出具體的改進(jìn)建議,以提高城市的可達(dá)性、環(huán)境質(zhì)量和社會公平性。通過我的努力,我們成功實(shí)施了一系列項(xiàng)目,改善了居民的生活條件,并促進(jìn)了城市的整體發(fā)展。
3. 你認(rèn)為一個成功的城市規(guī)劃師應(yīng)具備哪些核心技能和素質(zhì)?
回答:一個成功的城市規(guī)劃師應(yīng)具備以下核心技能和素質(zhì):
- 扎實(shí)的城市規(guī)劃理論和知識基礎(chǔ)。
- 準(zhǔn)確的數(shù)據(jù)分析和解讀能力。
- 具備綜合思維和系統(tǒng)思考的能力。
- 良好的溝通和協(xié)調(diào)能力,能夠有效與各利益相關(guān)者合作。
- 創(chuàng)新和創(chuàng)造性思維,能夠提出可行的規(guī)劃解決方案。
- 具備項(xiàng)目管理和團(tuán)隊(duì)合作能力。
- 對城市發(fā)展和社會問題的關(guān)注和熱情。
4. 如何應(yīng)對城市規(guī)劃中的可持續(xù)發(fā)展挑戰(zhàn)?
回答:可持續(xù)發(fā)展是城市規(guī)劃中的重要考量因素。我認(rèn)為可以從以下幾個方面來應(yīng)對可持續(xù)發(fā)展挑戰(zhàn):
- 制定綜合的規(guī)劃策略,平衡經(jīng)濟(jì)、環(huán)境和社會的發(fā)展目標(biāo)。
- 優(yōu)化土地利用,提高資源利用效率和空間利用。
當(dāng)然,還有其他一些常見的城市規(guī)劃師面試問題的參考回答:
5. 如何處理城市規(guī)劃中的利益沖突和社會參與問題?
回答:在城市規(guī)劃中,利益沖突和社會參與是常見的挑戰(zhàn)。我認(rèn)為應(yīng)該采取以下措施來處理這些問題:
- 建立公正、透明和包容性的決策過程,確保各利益相關(guān)者的參與和意見被充分考慮。
- 進(jìn)行廣泛的社會參與和公眾咨詢,收集不同群體的意見和需求,以便更好地滿足社會多樣化的利益。
- 尋求權(quán)衡和妥協(xié),通過對話和協(xié)商來解決利益沖突,尋找共同利益的點(diǎn)。
- 提供清晰的溝通和信息傳遞渠道,使各方能夠了解決策的過程和結(jié)果。
6. 你認(rèn)為城市規(guī)劃與環(huán)境保護(hù)之間的關(guān)系是什么?如何平衡二者?
回答:城市規(guī)劃與環(huán)境保護(hù)密切相關(guān),二者之間存在緊密的關(guān)系。城市規(guī)劃應(yīng)該在保護(hù)和改善環(huán)境質(zhì)量的基礎(chǔ)上,實(shí)現(xiàn)城市的可持續(xù)發(fā)展。平衡二者可以通過以下方式實(shí)現(xiàn):
- 制定環(huán)境友好型規(guī)劃策略,包括綠色基礎(chǔ)設(shè)施、生態(tài)保護(hù)和資源管理等,以確保城市的生態(tài)系統(tǒng)健康。
- 促進(jìn)低碳和可再生能源的使用,減少對環(huán)境的不良影響。
- 鼓勵可持續(xù)交通和城市設(shè)計,減少交通擁堵和碳排放。
- 引入環(huán)境評估和監(jiān)測機(jī)制,對城市規(guī)劃方案的環(huán)境影響進(jìn)行評估和監(jiān)測。
7. 請談?wù)勀銓Τ鞘薪煌ㄒ?guī)劃的理解和看法。
回答:城市交通規(guī)劃是城市規(guī)劃中的重要組成部分。我認(rèn)為城市交通規(guī)劃應(yīng)該致力于提供高效、可持續(xù)和安全的交通系統(tǒng),以滿足居民的出行需求。在交通規(guī)劃中,應(yīng)該考慮以下方面:
- 綜合交通網(wǎng)絡(luò)規(guī)劃,包括道路、公共交通、自行車道等,以提高交通系統(tǒng)的連通性和便利性。
- 促進(jìn)可持續(xù)交通方式的發(fā)展,如公共交通、步行和自行車,以減少對汽車的
經(jīng)典面試題逆向思維
在職場競爭日益激烈的今天,找工作已經(jīng)成為許多人急需解決的問題。面試是進(jìn)入一家公司的敲門磚,而面試官往往會提出各種經(jīng)典面試題來了解應(yīng)聘者的能力和思維方式。如何在面試中脫穎而出?逆向思維或許是一個有效的策略。
逆向思維,顧名思義,就是指與常規(guī)思維方向相反的思考方式。在面對經(jīng)典面試題時,我們往往會被固有的思維模式所限制,導(dǎo)致回答平淡無奇。而通過逆向思維,我們可以打破常規(guī),提供獨(dú)特且出色的答案,給面試官留下深刻印象。
接下來,我們將結(jié)合具體面試題,探討如何運(yùn)用逆向思維進(jìn)行回答,展現(xiàn)出與眾不同的魅力。
常規(guī)思維:大多數(shù)人會覺得這個任務(wù)很困難,因?yàn)閺棿皬V告往往被用戶視為打擾。他們可能會選擇設(shè)計一個盡量不顯眼的彈窗,或者提供一個“X”按鈕來關(guān)閉。
逆向思維解法:我會設(shè)計一個極具創(chuàng)意的彈窗廣告,讓用戶在不知不覺中產(chǎn)生好奇心和共鳴,從而愿意與之互動,而不需要關(guān)閉按鈕。比如,利用文字和圖案設(shè)計吸引用戶點(diǎn)擊,引發(fā)購買欲望。
常規(guī)思維:大多數(shù)人可能會覺得這個任務(wù)根本無法完成,因?yàn)橛拿娣e實(shí)在太大。他們可能會選擇放棄或者設(shè)計一個縮小比例尺的地圖。
逆向思維解法:我會選擇運(yùn)用抽象的符號和顏色來代表地理元素,同時利用房間的立體空間進(jìn)行布局,呈現(xiàn)出英國的整體輪廓和重要標(biāo)志,讓觀者一目了然。
在面試中,經(jīng)典面試題往往是考察應(yīng)聘者思維跳躍和創(chuàng)造力的重要手段。通過逆向思維,我們可以打破思維定式,提供出色的答案,展現(xiàn)獨(dú)特的視角和能力。希望本文對你在應(yīng)對經(jīng)典面試題時有所啟發(fā),祝你面試順利!
大家好,歡迎來到我的博客!今天我要為大家分享的是關(guān)于Java基礎(chǔ)面試題(經(jīng)典)的內(nèi)容。在準(zhǔn)備面試之前,了解一些常見的面試題是非常重要的。這些問題考察了你對Java編程語言的基本理解和掌握情況,對于未來在實(shí)際工作中能否運(yùn)用Java來解決問題起到了很好的檢驗(yàn)作用。
Java基礎(chǔ)面試題(經(jīng)典)是指那些在Java編程語言的學(xué)習(xí)和應(yīng)用過程中廣泛問及的經(jīng)典問題。這些問題涵蓋了Java基礎(chǔ)知識、語法、面向?qū)ο缶幊?、集合框架、異常處理、多線程等方面。掌握了Java基礎(chǔ)面試題(經(jīng)典),你可以更好地理解和運(yùn)用Java編程語言。
在求職過程中,掌握J(rèn)ava基礎(chǔ)面試題(經(jīng)典)有助于提升你的競爭力。很多招聘者在面試中會問及一些經(jīng)典的Java基礎(chǔ)問題,這些問題旨在考察你對Java核心知識的掌握程度。通過事先準(zhǔn)備并熟悉這些問題,你可以在面試中展現(xiàn)自己的知識水平,給招聘者留下深刻的印象,提高你被錄用的機(jī)會。
接下來,我將為大家提供一些Java基礎(chǔ)面試題(經(jīng)典)的示例,希望能幫助大家更好地準(zhǔn)備面試。
Java是一種面向?qū)ο缶幊陶Z言,面向?qū)ο缶幊淌且环N軟件開發(fā)方法,通過將實(shí)際世界中的事物抽象成對象來解決問題。在Java中,對象是根據(jù)類(Class)定義的,類是對象的模板,用于描述對象的屬性和行為。
在Java中,字符串是不可變的,也就是說一旦創(chuàng)建了一個字符串對象,就不能再改變它。當(dāng)對字符串進(jìn)行修改時,實(shí)際上是創(chuàng)建了一個新的字符串對象,原始字符串對象并沒有改變。
靜態(tài)方法是屬于類的方法,可以直接通過類名調(diào)用,而不需要創(chuàng)建類的實(shí)例。靜態(tài)方法中不能直接訪問類的非靜態(tài)成員,只能訪問靜態(tài)成員。實(shí)例方法是屬于類的實(shí)例的方法,需要通過創(chuàng)建類的實(shí)例來調(diào)用,可以訪問類的靜態(tài)和非靜態(tài)成員。
繼承是面向?qū)ο缶幊讨械囊粋€重要概念,它允許一個類(稱為子類或派生類)繼承另一個類(稱為父類或基類)的屬性和方法。在Java中,可以通過使用關(guān)鍵字“extends”來實(shí)現(xiàn)繼承。
多態(tài)性是指一個對象在不同情況下具有不同的表現(xiàn)形式或表現(xiàn)行為的能力。在Java中,多態(tài)性可以通過繼承和接口來實(shí)現(xiàn)。當(dāng)子類繼承父類或?qū)崿F(xiàn)接口時,可以以父類或接口類型引用子類對象,實(shí)現(xiàn)編譯時的多態(tài)性。
Java中的異常處理機(jī)制可以幫助我們更好地處理代碼中可能出現(xiàn)的錯誤和異常情況。它通過使用try-catch語句塊來捕獲和處理可能發(fā)生的異常,從而保證程序的正常執(zhí)行。
Java中的集合框架提供了一組實(shí)現(xiàn)了常用數(shù)據(jù)結(jié)構(gòu)的類和接口。常見的集合框架包括List(列表)、Set(集合)、Map(映射)等。它們分別提供了不同的數(shù)據(jù)存儲和訪問方式,適用于不同的場景和需求。
線程是程序執(zhí)行的最小單元,它代表了一個獨(dú)立的執(zhí)行路徑。在Java中,可以通過繼承Thread類或?qū)崿F(xiàn)Runnable接口來創(chuàng)建線程。線程的創(chuàng)建和控制可以使用Thread類提供的方法來實(shí)現(xiàn),如start()、sleep()、join()等。
通過準(zhǔn)備和熟悉Java基礎(chǔ)面試題(經(jīng)典),你可以增加在Java面試中的競爭力,并展示自己的知識水平和技能。我希望本篇博客能夠?qū)δ阍诿嬖囍械臏?zhǔn)備有所幫助。
如果你對Java基礎(chǔ)面試題(經(jīng)典)有任何疑問或想進(jìn)一步討論,歡迎在評論區(qū)留言。謝謝大家的閱讀!