java面試,上機題 + Linux常用命令【持續整理。。。】

1. 假如有字符串”6sabcsssfsfs33”,用最快速的方法去掉字符”s3”,不能用java內置字符串方法。

2. 寫一個大小寫轉換的程序,將小寫的金額如1345,轉為大寫的金額”壹仟叄佰肆拾伍元”,要求支持到千萬,不需要支持小數。

3. 寫一個泛型類,加入Add()方法,Delete()方法,Find()方法,內部數據用List存儲。

4. 有僱員類,兩個私有變量name,salary;經理類還有自己的私有變量bonus;僱員類包含getName()和getSalary(),經理類除上述方法外,還有自己的setBonus()方法

要求:建立員工數組,記錄數為10,記錄信息自定義,並且經理作為其中一個元素,其他元素為員工,對此數組按名稱進行排序。

附加題:

利用上一題的實體類,增加一個Node類,此Node類採用樹形組合的結構,既包含自己也包含子對象,Node類中有的主要屬性Key,name和人員對象等,增加方法如下:

方法一:Add,參數為Key,Name,員工對象,父節點Key,此方法添加一個員工或經理。

方法二:Find,此方法要求遞歸遍歷所有節點,按名稱查找出某個員工

驗證:一個公司中包括一個總經理,總經理管理三個經理,每個經理管理五個員工,另外一個員工由總經理管理,請按樹形的層次建立多個Node對象,並且要有一個根Node對象(總經理)

將一個字符串逆序輸出,不使用中間變量!

StringBuffer buffer = new StringBuffer("abc");

System.out.println(buffer.reverse());

10000個數求第二大的數,不使用排序

Linux常用命令:

Linux命令查找:http://linux.51yip.com/

1. 磁盤管理

cd:切換目錄;

ll:展示當前目錄文件夾;ls:橫著展示;(可以帶參數 -a;例:ll -a可以展示隱藏文件)

dir:列出當前當前目錄下的文件或文件夾;(用的少)

mkdir:創建文件夾;

df:查看系統磁盤使用情況 (df -h:列出跟詳細)

du:查看文件和目錄的磁盤空間使用情況 (du -sh)

pwd:顯示當前目錄;

2. 文件管理

mv:文件(夾)重命名或將文件(夾)移動到指定目錄;

rm、rm -rf:刪除文件或者目錄;(rm:不能刪除文件夾,只能文件;刪文件加 -rf)

touch:創建一個新文件或將文件的最後修改時間改為當前時間(無就創建,有就修改為當前 時間);

cat:將整個文件內容輸出到控制檯;

more:逐屏輸出(空格鍵下一頁,回車鍵逐行展示)

less:逐屏輸出(用的少)

head:顯示頭十行;

tail:末尾十行(查看tomcat日誌常用:tail -f

cp:複製文件內容(是否覆蓋:y/ncp -rf:目錄文件夾,文件都可以複製

find:查找文件,例:find /-name(名字) ,find /-mtime +5(查找五天前修改的文件)

(find ./ :當前目錄下)

whereis:查找文件主要用於程序名的搜索,而且只搜索二進制文件(

-b),man說明手冊(-m),源代碼文件(-s),如果參數省略返回所有信息。

which:在path變量指定的路徑中,搜索某個系統命令的位置,並且返回第一個搜索結果(例: which mkdir

3. 系統設置

date:顯示或設置系統日期時間,date -s 時間:修改時間

shutdown -h now:關機;

rebox:重啟;

psps -ef:列出系統的當前進程、

ps -aux:多了內存和CPU佔比

kill:殺掉進程(kill -pid),強制殺掉(kill -pid -9

su:切換用戶(高級用戶--->普通用戶:不需要輸密碼;普通--->高級:密碼)

top:系統運行負載情況(退出:ctrl+c

uptime:系統負載情況(非動態)

free:查看內存使用情況 ;-m以MB結尾

uname:查看系統信息 ;-a 展示所有

hostname:查看主機名

who、whoami:表示當前登錄系統的;

clear:清除(回到頂部)

crontab:linux下的定時任務;

crontab使用:編輯創建crontab:crontab -e

查看:crontab:crontab -l

刪除:crontab:crontab -r

*/1 * * * * echo "hello world" >> /opt/crontab.log)輸出

>:重定向覆蓋輸出

>>:重定向輸出追加

|:管道符號,用於把管道左邊的輸出作為右邊的輸出(grep:過濾)

4. 用戶管理

useradd:添加用戶

userdel:刪除用戶 (包括文件夾:userdel -r)

passwd:修改用戶密碼,修改當前登錄用戶密碼passwd,修改指定用戶密碼

5. 網絡通訊

ifconfig:查看系統IP

netstat:查看網絡端口,netstat -nlp

ping:測試某個地址是否可以連通

6. 文件權限

chmod:更改權限

7. 備份壓縮

tar:解壓:(

tar -zxvf xxx.tar.gz; tar -xf xxx.tar)|

壓縮:(tar -zcvf xxx.tar.gz ./aa/* ; tar -zcvf xxx.tar ./aa/*)

zip:壓縮為zip格式,zip aa.zip aa.log

unzip:解壓zip格式的壓縮包,unzip aa.zip

curl:抓取網絡文件的內容(頁面內容)

wget:網絡下載(wget 完整路徑

常用快捷鍵tab:命令1自動補全或顯示可選項;ctrl + c終止當前進程;ctrl + d關閉終端

Vi:是linux下標配的純字符界面的文本編輯器,由於不是圖形界面,相關的操作都要通過鍵盤輸入命令來完成,需要記住一些常用的操作命令。

Vim:是vi的升級版,完全兼容vi,vim也可以完全當成vi使用,vim是在vi的基礎上增加一些功能,比如語法著色等。

啟動vi:(vi 文件名)如果參數中的文件存在,則打開該文件,如果參數中的文件不存在,則會新建該文件(不是立即創建,而是在保存的時候創建)

Vi操作模式:命令模式:(按a或者j,進入編輯模式,此時,底部會出現insert

在命令模式下,按 :wq保存退出;按 :q!

不保存退出

Vi常用快捷鍵:dd:刪除光標所在行;yy:複製光標所在行到緩衝區;

p: 粘貼緩存區中的內容;gg:光標回到文件第一行;

GG:光標回到文件最後一行;^:光標移動至當前行的行首;

$:光標移動至當前行的行尾

Linux目錄說明:

bin ->usr/bin:這個目錄存放最常使用命令

boot:這個目錄存放啟動linux時使用的一些核心文件,包括一些連接文件及鏡像文件

dev:dev是Device(設備)的縮寫,該目錄下存放的是linux的外部設備,linux中的設 備也是以文件形式存在;

etc:這個目錄存放所有的系統管理所需要的配置文件

home:用戶的主目錄,在linux中,每個用戶都有一個自己的目錄,一般該目錄名以用 戶的賬號命名

Lib -> usr/lib:存放系統最基本的動態鏈接庫,其作用類似於windows裡的DLL文件, 幾乎所有的應用程序都需要用到這些共享庫

Lib ->usr/lib64:64位的系統動態連接共享庫

media:linux會自動識別一些設備,U盤、光驅等;當識別後,linux會把識別的設備掛 載到這個目錄下

mnt:讓用戶臨時掛載別的文件系統,我們可以將光驅掛載在/mnt/上,然後進入目錄 就可以查看光驅裡的內容

opt:安裝其他軟件目錄

proc:虛擬目錄,系統內存映射

root:超級管理員目錄

run:程序運行時產生的文件

sbin:系統管理員使用的命令

srv:該目錄存放一些服務啟動之後需要提取的數據

sys:系統目錄

tmp:臨時文件

usr:應用程序存放目錄

var:類似臨時目錄,經常修改的

Rpm及yum

rpm:軟件包管理方式,使用rpm我們可以方便的進行軟件的安裝、查詢、卸載等,但是使用rpm命令安裝rpm軟件包,不能解決軟件包之間的依賴問題,需要自己一個一個去安裝依賴的軟件包。

yum:軟件包管理器,基於rpm,能夠制定服務器自動下載rpm包並且進行安裝,可以自動處理軟件包之間的依賴關係,並且一次安裝所有依賴包,無須繁瑣的一次次下載、安裝。

Rpm與yum區別

Rpm只能安裝一個指定的軟件包,如果該軟件包存在依賴關係,比如安裝A包,需要先安裝B包,採用rpm就要先安裝B,再安裝A。

Yum能自動檢測軟件包之間的關係,可以直接yum安裝A包,yum能檢測到A與B的依賴關係,自動安裝B包。

Rpm常用命令:安裝rpm包的軟件:rpm -ivh xxx.rpm

查看是否安裝了某個rpm包:rpm -pa | grep xxx

刪除某個rpm安裝包:rpm -e xxx,rpm

Yum常用命令:查找軟件包命令:yum search 文件名

安裝指定的軟件yum install 軟件名

刪除軟件包命令yum remove 包名

列出所有已安裝的軟件包命令 yum list install

清理yum安裝已下載的包命令 yum clean all (yum install 後的rpm包存放在 /var/cache/yum/下)


分享到:


相關文章: