Java工程師就業(yè)前景
Java工程師就業(yè)前景
2015年,在美國、加拿大、澳大利亞、新加坡等發(fā)達(dá)國家和中等發(fā)達(dá)國家,
JAVA軟件工程師年薪均在4—15萬美金,而在國內(nèi),JAVA軟件工程師也有極好的工作機(jī)會(huì)和很高的薪水。
在未來5年內(nèi),合格軟件人才的需求將遠(yuǎn)大于供給。JAVA軟件工程師是目前
國際高端計(jì)算機(jī)領(lǐng)域就業(yè)薪資非常高的一類軟件工程師。
一般情況下的JAVA軟件工程師是分四個(gè)等級(jí),從軟件技術(shù)員到助理軟件工程
師,再到軟件工程師,**后成為高級(jí)軟件工程師。
根據(jù)IDC的統(tǒng)計(jì)數(shù)字,在所有軟件開發(fā)類人才的需求中,對(duì)JAVA工程師的需
求達(dá)到全部需求量的60%—70%。同時(shí),JAVA軟件工程師的工資待遇相對(duì)較高。
通常來說,具有3—5年開發(fā)經(jīng)驗(yàn)的工程師,擁有年薪15萬元是很正常的一個(gè)
薪酬水平。80%的學(xué)生畢業(yè)后年薪都超過了8萬元。
根據(jù)專業(yè)數(shù)據(jù)分析,由于我國經(jīng)濟(jì)發(fā)展不均衡因素,JAVA軟件工程師工資待
遇在城市之間的差異也較大,一級(jí)城市(如北京、上海等),初級(jí)軟件工程師的待遇大概在4000-6000之間,中級(jí)軟件工程師的待遇在6000—8000之間,
而高級(jí)軟件工程師的待遇基本破萬。
Java設(shè)計(jì)和編程思想
Java基礎(chǔ)
環(huán)境搭建(包括Windows下和
Linux下的Java環(huán)境搭建)
Java語言基礎(chǔ)
Java流程控制
Java常用類
Java面向?qū)ο?/span>
Java類與對(duì)象
介紹面向?qū)ο蠖鄳B(tài)
接口與抽象類
Java高級(jí)
異常處理
I/O、JavaBean
反射
多線程
網(wǎng)絡(luò)編程
泛型/Java集合類
Java與數(shù)據(jù)庫
MySQL
ORACLE
JDBC開發(fā)與應(yīng)用
Redis
課程優(yōu)勢(shì)
1.行業(yè)一線講師講解,深入淺出。
2.全面、完善的java課程體系,幫助學(xué)員更深更廣的體驗(yàn)java魅力。
本階段學(xué)習(xí)目標(biāo)
1.精通java面向?qū)ο笏枷牒突A(chǔ)語法。
2.熟練java中異常處理。
3.精通java中I/O操作。
4.掌握java中多線程操作。
5.精通java中集合類的使用。
6.掌握java中網(wǎng)絡(luò)編程。
7.精通數(shù)據(jù)庫/JDBC/redis/mysql的使用
本階段學(xué)習(xí)效果
1.精通Java語言及其高級(jí)特性。
2.具備本地應(yīng)用開發(fā)能力,能夠開發(fā)一些本地軟件,例如:聊天室,文件傳
輸助手等。
Linux Shell編程
>
簡(jiǎn)介
Shell 是一個(gè)用C語言編寫的程序,它是用戶使用linux的橋梁。Shell既是一種命令語言,又是一種程序設(shè)計(jì)語言。Shell 是指一種應(yīng)用程序,這個(gè)應(yīng)用程序提供了一個(gè)界面,用戶**這個(gè)界面訪問操作系統(tǒng)內(nèi)核的服務(wù)。Bourne Again Shell,由于易用和免費(fèi),Bash在日常工作中被廣泛使用。同時(shí),Bash也是大多數(shù)Linux系統(tǒng)默認(rèn)的Shell。
詳解
1.shell變量
變量名和等號(hào)之間不能有空格;
除了顯式地直接賦值,還可以用語句給變量賦值,如:
for file in `ls /etc`
推薦給所有變量加上花括號(hào),這是個(gè)好的編程習(xí)慣,以免出現(xiàn)引用變量varible時(shí)出現(xiàn)$varible123引起混淆的情況;
使用 readonly 命令可以將變量定義為只讀變量,只讀變量的值不能被改變,如:
myUrl="http://www.w3cschool.cc"
readonly myUrl
使用 unset 命令可以刪除變量,語法為:unset 變量名
字符串是shell編程中**常用**有用的數(shù)據(jù)類型,字符串可以用單引號(hào),也可以用雙引號(hào),也可以不用引號(hào)。
– 單引號(hào)里的任何字符都會(huì)原樣輸出,單引號(hào)字符串中的變量是無效的;
– 單引號(hào)字串中不能出現(xiàn)單引號(hào)(對(duì)單引號(hào)使用轉(zhuǎn)義符后也不行);
– 雙引號(hào)里可以有變量
– 雙引號(hào)里可以出現(xiàn)轉(zhuǎn)義字符
雙引號(hào)中可以拼接字符串,如:
your_name="world"
greeting="hello, "$your_name" !"
greeting_1="hello, ${your_name} !"
echo $greeting $greeting_1 #均輸出hello world !
字符串長度獲?。?
string="abcd"
echo ${#string} #輸出 4
字符串截?。?
string="runoob is a great site"
echo ${string:1:4} # 輸出 unoo
查找字串位置:
string="runoob is a great company"
echo `exPR index "$string" is` # 輸出 8
bash支持一維數(shù)組(不支持多維數(shù)組),并且沒有限定數(shù)組的大小,數(shù)組元素的下標(biāo)由0開始編號(hào)。獲取數(shù)組中的元素要利用下標(biāo),下標(biāo)可以是整數(shù)或算術(shù)表達(dá)式,其值應(yīng)大于或等于0。
可以不使用連續(xù)的下標(biāo),而且下標(biāo)的范圍沒有限制。
在Shell中,用括號(hào)來表示數(shù)組,數(shù)組元素用”空格”或換行符號(hào)分割開
讀取數(shù)組指定下標(biāo)的元素值:
${數(shù)組名[下標(biāo)]}
獲取數(shù)組所有元素:
${array_name[@]}
獲取數(shù)組的長度:
# 取得數(shù)組元素的個(gè)數(shù)
length=${#array_name[@]}
# 或者
length=${#array_name[*]}
# 取得數(shù)組單個(gè)元素的長度
lengthn=${#array_name[n]}
2.shell參數(shù)傳遞
可以在執(zhí)行 Shell 腳本時(shí),向腳本傳遞參數(shù),腳本內(nèi)獲取參數(shù)的格式為:$n。n 代表一個(gè)數(shù)字,0代表腳本文件名,1 為執(zhí)行腳本的**個(gè)參數(shù),2 為執(zhí)行腳本的第二個(gè)參數(shù),以此類推…
如test.sh:
#!/bin/bash
echo "Shell 傳遞參數(shù)實(shí)例!";
echo "執(zhí)行的文件名:$0";
echo "**個(gè)參數(shù)為:$1";
echo "第二個(gè)參數(shù)為:$2";
echo "第三個(gè)參數(shù)為:$3";
執(zhí)行./test.sh 1 world reference,輸出內(nèi)容為:
執(zhí)行的文件名:./test.sh
**個(gè)參數(shù)為:1
第二個(gè)參數(shù)為:world
第三個(gè)參數(shù)為:reference
幾個(gè)用于處理傳遞參數(shù)的字符含義:
$# 傳遞到腳本的參數(shù)個(gè)數(shù)
$* 以一個(gè)單字符串顯示所有向腳本傳遞的參數(shù)。
如"$*"用「"」括起來的情況、以"$1 $2 … $n"的形式輸出所有參數(shù),整體做為一個(gè)字符串回顯。
$$ 腳本運(yùn)行的當(dāng)前進(jìn)程ID號(hào)
$! 后臺(tái)運(yùn)行的**后一個(gè)進(jìn)程的ID號(hào)
$@ 與$*相同,但是使用時(shí)加引號(hào),并在引號(hào)中返回每個(gè)參數(shù)。
如"$@"用「"」括起來的情況、以"$1" "$2" … "$n" 的形式輸出所有參數(shù),每個(gè)參數(shù)做為單獨(dú)的字符串回顯。
$- 顯示Shell使用的當(dāng)前選項(xiàng),與set命令功能相同。
$? 顯示**后命令的退出狀態(tài)。0表示沒有錯(cuò)誤,其他任何值表明有錯(cuò)誤
3.shell運(yùn)算符
原生bash不支持簡(jiǎn)單的數(shù)學(xué)運(yùn)算,但是可以**其他命令來實(shí)現(xiàn),例如 awk 和 expr,expr **常用。
如:
#!/bin/bash
a=3
b=5
cc=`expr $a $b`
echo $cc
注:
表達(dá)式和運(yùn)算符之間要有空格,例如 2 2 是不對(duì)的,必須寫成 2 2,這與我們熟悉的大多數(shù)編程語言不一樣;
完整的表達(dá)式要被 ` ` 包含;
算術(shù)運(yùn)算符:
加法 #如`expr $a $b` 結(jié)果為 30。
- 減法 #如`expr $a - $b` 結(jié)果為 -10。
* 乘法 #如`expr $a \* $b` 結(jié)果為 200,這里*前需要轉(zhuǎn)義符號(hào);
/ 除法 #如`expr $b / $a` 結(jié)果為 2。
% 取余 #如`expr $b % $a` 結(jié)果為 0。
= 賦值 #如a=$b 將把變量 b 的值賦給 a。
== 相等。#用于比較兩個(gè)數(shù)字,相同則返回 true。 如[ $a == $b ] 返回 false。
!= 不相等。#用于比較兩個(gè)數(shù)字,不相同則返回 true。 如[ $a != $b ] 返回 true。
比較運(yùn)算符:
-eq 檢測(cè)兩個(gè)數(shù)是否相等,相等返回 true。 [ $a -eq $b ] 返回 false。
-ne 檢測(cè)兩個(gè)數(shù)是否相等,不相等返回 true。 [ $a -ne $b ] 返回 true。
-gt 檢測(cè)左邊的數(shù)是否大于右邊的,如果是,則返回 true。 [ $a -gt $b ] 返回 false。
-lt 檢測(cè)左邊的數(shù)是否小于右邊的,如果是,則返回 true。 [ $a -lt $b ] 返回 true。
-ge 檢測(cè)左邊的數(shù)是否大于等于右邊的,如果是,則返回 true。 [ $a -ge $b ] 返回 false。
-le 檢測(cè)左邊的數(shù)是否小于等于右邊的,如果是,則返回 true。 [ $a -le $b ] 返回 true。
布爾運(yùn)算符:
! 非運(yùn)算,表達(dá)式為 true 則返回 false,否則返回 true。 [ ! false ] 返回 true。
-o 或運(yùn)算,有一個(gè)表達(dá)式為 true 則返回 true。 [ $a -lt 20 -o $b -gt 100 ] 返回 true。
-a 與運(yùn)算,兩個(gè)表達(dá)式都為 true 才返回 true。 [ $a -lt 20 -a $b -gt 100 ] 返回 false。
邏輯運(yùn)算符:
&& 邏輯的 AND [[ $a -lt 100 && $b -gt 100 ]] 返回 false
|| 邏輯的 OR [[ $a -lt 100 || $b -gt 100 ]] 返回 true
字符串運(yùn)算符:
= 檢測(cè)兩個(gè)字符串是否相等,相等返回 true。 [ $a = $b ] 返回 false。
!= 檢測(cè)兩個(gè)字符串是否相等,不相等返回 true。 [ $a != $b ] 返回 true。
-z 檢測(cè)字符串長度是否為0,為0返回 true。 [ -z $a ] 返回 false。
-n 檢測(cè)字符串長度是否為0,不為0返回 true。 [ -n $a ] 返回 true。
str 檢測(cè)字符串是否為空,不為空返回 true。 [ $a ] 返回 true。
文件測(cè)試運(yùn)算符:
-b file 檢測(cè)文件是否是塊設(shè)備文件,如果是,則返回 true。 [ -b $file ] 返回 false。
-c file 檢測(cè)文件是否是字符設(shè)備文件,如果是,則返回 true。 [ -c $file ] 返回 false。
-d file 檢測(cè)文件是否是目錄,如果是,則返回 true。 [ -d $file ] 返回 false。
-f file 檢測(cè)文件是否是普通文件(既不是目錄,也不是設(shè)備文件),如果是,則返回 true。 [ -f $file ] 返回 true。
-g file 檢測(cè)文件是否設(shè)置了 SGID 位,如果是,則返回 true。 [ -g $file ] 返回 false。
-k file 檢測(cè)文件是否設(shè)置了粘著位(Sticky Bit),如果是,則返回 true。 [ -k $file ] 返回 false。
-p file 檢測(cè)文件是否是有名管道,如果是,則返回 true。 [ -p $file ] 返回 false。
-u file 檢測(cè)文件是否設(shè)置了 SUID 位,如果是,則返回 true。 [ -u $file ] 返回 false。
-r file 檢測(cè)文件是否可讀,如果是,則返回 true。 [ -r $file ] 返回 true。
-w file 檢測(cè)文件是否可寫,如果是,則返回 true。 [ -w $file ] 返回 true。
-x file 檢測(cè)文件是否可執(zhí)行,如果是,則返回 true。 [ -x $file ] 返回 true。
-s file 檢測(cè)文件是否為空(文件大小是否大于0),不為空返回 true。 [ -s $file ] 返回 true。
-e file 檢測(cè)文件(包括目錄)是否存在,如果是,則返回 true。 [ -e $file ] 返回 true。
4.shell echo命令
#!/bin/bash
#-e 開啟轉(zhuǎn)義
#\c 不換行
echo "test\n" #輸出test\n,換行
echo -e "test\n" #輸出test和一個(gè)空行
echo -e "test\c" #輸出test,且不換行
echo `date` #顯示執(zhí)行命令的結(jié)果
運(yùn)行結(jié)果:
test\n
test
test2017年 02月 08日 星期三 14:31:58 CST
5.shell printf命令
printf 命令模仿 C 程序庫(library)里的 printf() 程序。標(biāo)準(zhǔn)所定義,因此使用printf的腳本比使用echo移植性好。printf 使用引用文本或空格分隔的參數(shù),外面可以在printf中使用格式化字符串,還可以指定字符串的寬度、左右對(duì)齊方式等。默認(rèn)printf不會(huì)像 echo 自動(dòng)添加換行符,我們可以手動(dòng)添加 \n。
printf 命令的語法:
printf format-string [arguments...]
如:
printf "%-10s %-8s %-4.2f\n" 郭靖 男 66.1234
注:
%s %c %d %f都是格式替代符
%-10s 指一個(gè)寬度為10個(gè)字符(-表示左對(duì)齊,沒有則表示右對(duì)齊),任何字符都會(huì)被顯示在10個(gè)字符寬的字符內(nèi),如果不足則自動(dòng)以空格填充,超過也會(huì)將內(nèi)容全部顯示出來
%-4.2f 指格式化為小數(shù),其中.2指保留2位小數(shù)。
6.shell test 命令
Shell中的 test 命令用于檢查某個(gè)條件是否成立,它可以進(jìn)行數(shù)值、字符和文件三個(gè)方面的測(cè)試。
數(shù)值測(cè)試:
-eq 等于則為真
-ne 不等于則為真
-gt 大于則為真
-ge 大于等于則為真
-lt 小于則為真
-le 小于等于則為真
num1=100
num2=100
if test $[num1] -eq $[num2]
then
echo 兩個(gè)數(shù)相等!
else
echo 兩個(gè)數(shù)不相等!
fi
字符串測(cè)試:
= 等于則為真
!= 不相等則為真
-z 字符串 字符串的長度為零則為真
-n 字符串 字符串的長度不為零則為真
num1="ru1noob"
num2="runoob"
if test $num1 = $num2
then
echo 兩個(gè)字符串相等!
else
echo 兩個(gè)字符串不相等!
fi
文件測(cè)試:
-e 文件名 如果文件存在則為真
-r 文件名 如果文件存在且可讀則為真
-w 文件名 如果文件存在且可寫則為真
-x 文件名 如果文件存在且可執(zhí)行則為真
-s 文件名 如果文件存在且至少有一個(gè)字符則為真
-d 文件名 如果文件存在且為目錄則為真
-f 文件名 如果文件存在且為普通文件則為真
-c 文件名 如果文件存在且為字符型特殊文件則為真
-b 文件名 如果文件存在且為塊特殊文件則為真
cd /bin
if test -e ./bash
then
echo 文件已存在!
else
echo 文件不存在!
fi
Shell還提供了與( -a )、或( -o )、非( ! )三個(gè)邏輯操作符用于將測(cè)試條件連接起來,其優(yōu)先級(jí)為:”!”**高,”-a”次之,”-o”**低。
如:
cd /bin
if test -e ./notFile -o -e ./bash
then
echo 有一個(gè)文件存在!
else
echo 兩個(gè)文件都不存在
fi
7.Shell 條件控制
sh的流程控制不可為空,在sh/bash里如果else分支沒有語句執(zhí)行,就不要寫這個(gè)else。
if語法結(jié)構(gòu):
if condition
then
command1
command2
...
commandN
fi
例如:
if [ $(ps -ef | grep -c "ssh") -gt 1 ]; then echo "true"; fi
if else語法結(jié)構(gòu):
if condition
then
command1
command2
...
commandN
else
command
fi
if else-if else語法結(jié)構(gòu):
if condition1
then
command1
elif condition2
then
command2
else
commandN
fi
例如:
a=10
b=20
if [ $a == $b ]
then
echo "a 等于 b"
elif [ $a -gt $b ]
then
echo "a 大于 b"
elif [ $a -lt $b ]
then
echo "a 小于 b"
else
echo "沒有符合的條件"
fi
for 循環(huán)
for var in item1 item2 ... itemN
do
command1
command2
...
commandN
done
例如:
for loop in 1 2 3 4 5
do
echo "The value is: $loop"
done
while 語句
while condition
do
command
done
例如:
#!/bin/sh
int=1
while(( $int<=5 ))
do
echo $int
let "int "
done
無限循環(huán)
while :
do
command
done
或
while true
do
command
done
或
for (( ; ; ))
until 循環(huán)
until condition
do
command
done
case
case 值 in
模式1)
command1
command2
...
commandN
;;
模式2)
command1
command2
...
commandN
;;
esac
例如:
echo 輸入 1 到 4 之間的數(shù)字:
echo 你輸入的數(shù)字為:
read aNum
case $aNum in
1) echo 你選擇了 1
;;
2) echo 你選擇了 2
;;
3) echo 你選擇了 3
;;
4) echo 你選擇了 4
;;
*) echo 你沒有輸入 1 到 4 之間的數(shù)字
;;
esac
8.shell 函數(shù)
inux shell 可以用戶定義函數(shù),然后在shell腳本中可以隨便調(diào)用。shell中函數(shù)的定義格式如下:
[ function ] funname [()]
{
action;
[return int;]
}
可以帶function fun() 定義,也可以直接fun() 定義,不帶任何參數(shù)。
參數(shù)返回,可以顯示加:return 返回,如果不加,將以**后一條命令運(yùn)行結(jié)果,作為返回值。 return后跟數(shù)值n(0-255)
無參 無顯示返回值函數(shù)
demoFun(){
echo "這是我的**個(gè) shell 函數(shù)!"
}
帶顯示返回值函數(shù)
funWithReturn(){
echo "這個(gè)函數(shù)會(huì)對(duì)輸入的兩個(gè)數(shù)字進(jìn)行相加運(yùn)算..."
echo "輸入**個(gè)數(shù)字: "
read aNum
echo "輸入第二個(gè)數(shù)字: "
read anotherNum
echo "兩個(gè)數(shù)字分別為 $aNum 和 $anotherNum !"
return $(($aNum $anotherNum))
}
funWithReturn
echo "輸入的兩個(gè)數(shù)字之和為 $? !" ##返回命令執(zhí)行狀態(tài)
帶參函數(shù)
funWithParam(){
echo "**個(gè)參數(shù)為 $1 !"
echo "第二個(gè)參數(shù)為 $2 !"
echo "第十個(gè)參數(shù)為 $10 !"
echo "第十個(gè)參數(shù)為 ${10} !"
echo "第十一個(gè)參數(shù)為 ${11} !"
echo "參數(shù)總數(shù)有 $# 個(gè)!"
echo "作為一個(gè)字符串輸出所有參數(shù) $* !"
}
funWithParam 1 2 3 4 5 6 7 8 9 34 73
處理參數(shù)的幾個(gè)特殊字符
$# 傳遞到腳本的參數(shù)個(gè)數(shù)
$* 以一個(gè)單字符串顯示所有向腳本傳遞的參數(shù)
$$ 腳本運(yùn)行的當(dāng)前進(jìn)程ID號(hào)
$! 后臺(tái)運(yùn)行的**后一個(gè)進(jìn)程的ID號(hào)
$@ 與$*相同,但是使用時(shí)加引號(hào),并在引號(hào)中返回每個(gè)參數(shù)。
$- 顯示Shell使用的當(dāng)前選項(xiàng),與set命令功能相同。
$? 顯示**后命令的退出狀態(tài)。0表示沒有錯(cuò)誤,其他任何值表明有錯(cuò)誤。
8.Shell 輸入/輸出重定向
重定向命令列表
command > file 將輸出重定向到 file。
command < file 將輸入重定向到 file。
command >> file 將輸出以追加的方式重定向到 file。
n > file 將文件描述符為 n 的文件重定向到 file。
n >> file 將文件描述符為 n 的文件以追加的方式重定向到 file。
n >& m 將輸出文件 m 和 n 合并。
n <& m 將輸入文件 m 和 n 合并。
<< tag 將開始標(biāo)記 tag 和結(jié)束標(biāo)記 tag 之間的內(nèi)容作為輸入。
一般情況下,每個(gè) Unix/Linux 命令運(yùn)行時(shí)都會(huì)打開三個(gè)文件:
標(biāo)準(zhǔn)輸入文件(stdin):stdin的文件描述符為0,Unix程序默認(rèn)從stdin讀取數(shù)據(jù)。
標(biāo)準(zhǔn)輸出文件(stdout):stdout 的文件描述符為1,Unix程序默認(rèn)向stdout輸出數(shù)據(jù)。
標(biāo)準(zhǔn)錯(cuò)誤文件(stderr):stderr的文件描述符為2,Unix程序會(huì)向stderr流中寫入錯(cuò)誤信息。
Here Document 是 Shell 中的一種特殊的重定向方式,用來將輸入重定向到一個(gè)交互式 Shell 腳本或程序。它的基本的形式如下:
command << delimiter
document
delimiter
它的作用是將兩個(gè) delimiter 之間的內(nèi)容(document) 作為輸入傳遞給 command。
注:
結(jié)尾的delimiter 一定要頂格寫,前面不能有任何字符,后面也不能有任何字符,包括空格和 tab 縮進(jìn)。
開始的delimiter前后的空格會(huì)被忽略掉。
9.Shell 文件包含
和其他語言一樣,Shell 也可以包含外部腳本。這樣可以很方便的封裝一些公用的代碼作為一個(gè)獨(dú)立的文件。Shell 文件包含的語法格式如下:
. filename # 注意點(diǎn)號(hào)(.)和文件名中間有一空格
或
source filename
參考
http://www.runoob.com/linux/linux-shell.html
相關(guān)推薦:
蘇州JAVA培訓(xùn) 蘇州JAVA培訓(xùn)班 蘇州JAVA培訓(xùn)機(jī)構(gòu)
體驗(yàn)課預(yù)約試聽
倒計(jì)時(shí)
12:00:00