1. WebLogic和Tomcat的區別?java
相同點:WebLogic和Tomcat都是基於java的基礎架構來知足實時處理需求.mysql
不一樣的版本與jdk版本兼容和有所不一樣;由於都是要和前臺交互,因此他們都基於sun公司的servlet來實現的。linux
不一樣點:① WebLogic是j2ee的應用服務器(application server),包括ejb ,jsp,servlet,jms等等web
Tomcat只能算Web Container,是官方指定的JSP&Servlet容器面試
② WebLogic Server既實現了網頁羣集,也實現了EJB組件 羣集,並且不須要任何專門的硬件或操做系統支持。ajax
網頁羣集能夠實現透明的複製、負載平衡以及表示內容容錯,在擴展性方面WebLogic遠遠超越了Tomcat算法
③ Tomcat開源免費,WebLogic不開源難免費spring
2. GB2312、GBK、GB18030 這幾種字符集的主要區別是什麼?sql
① GB2312數據庫
GB 2312 或 GB 2312-80 是簡體中文字符集,共收錄 6763個漢字,對於人名、古漢語等方面出現的罕用字,
GB 2312不能處理,這致使了後來GBK及GB 18030漢字字符集的出現。
② GBK:即漢字內碼擴展規範
GBK共收入21886個漢字和圖形符號,GBK 採用雙字節表示。
③ GB18030
是如今使用的最新內碼子集,共收錄漢字70244個。
3. 說說你知道的幾種數據庫,以及它們之間的區別。
MySQL:體積小、速度快、免費開源;支持多種操做系統。
MySQL最大的缺點是其安全系統,主要是複雜而不標準;沒有一種存儲過程(Stored Procedure)語言
Oracle:能在全部主流操做系統上運行(包括 windows);得到最高認證級別的ISO標準認證
對硬件的要求很高;價格比較昂貴;管理維護麻煩一些;操做比較複雜,須要技術含量較高;
SQL Server: 易用性、適合分佈式組織的可伸縮性;與許多其餘服務器軟件緊密關聯的集成性
SQL Server只能在Windows上運行;沒有得到任何安全證書
4. 前臺與後臺的數據交換方式以及優缺點。
5. 小球落地再次彈起一半的問題:第n次跳多高,總共通過多少米。
6. 二叉搜索樹的遍歷以及算法實現;二叉樹的層數和節點問題。
7. 什麼是視圖,視圖的做用?
視圖是一種虛表,視圖創建在已有表的基礎上。
做用:控制數據訪問;簡化查詢;避免重複訪問相同的數據
1、視圖可以簡化用戶的操做
2、視圖使用戶能以多鍾角度看待同一數據
3、視圖對重構數據庫提供了必定程度的邏輯獨立性
4、視圖可以對機密數據提供安全保護
5、適當的利用視圖能夠更清晰的表達查詢,
視圖的優勢:
提升數據安全性,能夠不讓用戶看到表中的某個字段.好比password,你只給他們執行視圖的權限,不給執行表的權限,他們就沒法查看所有數據.
還有能夠創建一個視圖,內容包括兩個表,更新的時候只須要指定ID,而不用管它來自哪一個表,對應表中的數據就會自動更新.
8. 對事務的理解,事務的特性。
事務是爲了保證對同一數據表操做的一致性。
即多條語句放在事務中執行的時候,要麼一塊兒成功,要麼全不成功
具有 4大特性: 原子性 一致性 隔離性 和持久性
A是原子性(atomic):事務中包含的各項操做必須所有成功執行或者所有不執行。任何一項操做失敗,將致使整個事務失敗,其餘已經執行的任務所做的數據操做都將被撤銷,只有全部的操做所有成功,整個事務纔算是成功完成。
B是一致性(consistent):保證了當事務結束後,系統狀態是一致的。那麼什麼是一致的系統狀態?例如,若是銀行始終遵循着"銀行帳號必須保持正態平衡"的原則,那麼銀行系統的狀態就是一致的。上面的轉帳例子中,在取錢的過程當中,帳戶會出現負態平衡,在事務結束以後,系統又回到一致的狀態。這樣,系統的狀態對於客戶來講,始終是一致的。
c是隔離性(isolated):使得併發執行的事務,彼此沒法看到對方的中間狀態。保證了併發執行的事務順序執行,而不會致使系統狀態不一致。
D是持久性(durable):保證了事務完成後所做的改動都會被持久化,即便是發生災難性的失敗。可恢復性資源保存了一份事務日誌,若是資源發生故障,能夠經過日誌來將數據重建起來
9. 請說出三種數據結構和查詢算法,並各挑出兩種說明其優缺點。
10. SQL多表查詢問題(手寫即選擇給出的SQL的查詢結果)
11. 編程題
① 給出一種定義的語言,求1--1000(包括1000)之間偶數之和----考察快速學習的能力
② 給出三邊,如何判斷是等腰/等邊/通常的三角形?
③ 編寫一個方法,傳入一個1-100的數組,這個數組存儲班上100我的的成績,對成績進行排序,並返回數組。
④ 給出n,打印出一個給定的圖形
12 .Java8新特性
昨天技術面我只記得這麼多了
1、數據庫中是怎麼獲取時間
select now();//輸出當前數據庫時間
select sysdate();//輸出系統時間
select curdate();//輸出 2011-11-08
select curtime();//輸出17:18:49
2、springmvc有哪些註解
1. @Controller
2. @RequestMapping
3. @PathVariable
4. @RequestParam
5. @RequestBody
6. @ResponseBody
3、spring的工做原理,springmvc與spring的關係
spring 是是一個開源框架,是爲了解決企業應用程序開發,功能以下
◆目的:解決企業應用開發的複雜性
◆功能:使用基本的JavaBean代替EJB,並提供了更多的企業應用功能
◆範圍:任何Java應用
簡單來講,Spring是一個輕量級的控制反轉(IoC)和麪向切面(AOP)的容器框架。
◆輕量——從大小與開銷兩方面而言Spring都是輕量的。完整的Spring框架能夠在一個大小隻有1MB多的JAR文件裏發佈。而且Spring所需的處理開銷也是微不足道的。此外,Spring是非侵入式的:典型地,Spring應用中的對象不依賴於Spring的特定類。
◆控制反轉——Spring經過一種稱做控制反轉(IoC)的技術促進了鬆耦合。當應用了IoC,一個對象依賴的其它對象會經過被動的方式傳遞進來,而不是這個對象本身建立或者查找依賴對象。你能夠認爲IoC與JNDI相反——不是對象從容器中查找依賴,而是容器在對象初始化時不等對象請求就主動將依賴傳遞給它。
◆面向切面——Spring提供了面向切面編程的豐富支持,容許經過分離應用的業務邏輯與系統級服務(例如審計(auditing)和事務(transaction)管理)進行內聚性的開發。應用對象只實現它們應該作的——完成業務邏輯——僅此而已。它們並不負責(甚至是意識)其它的系統級關注點,例如日誌或事務支持。
◆容器——Spring包含並管理應用對象的配置和生命週期,在這個意義上它是一種容器,你能夠配置你的每一個bean如何被建立——基於一個可配置原型(prototype),你的bean能夠建立一個單獨的實例或者每次須要時都生成一個新的實例——以及它們是如何相互關聯的。然而,Spring不該該被混同於傳統的重量級的EJB容器,它們常常是龐大與笨重的,難以使用。
◆框架——Spring能夠將簡單的組件配置、組合成爲複雜的應用。在Spring中,應用對象被聲明式地組合,典型地是在一個XML文件裏。Spring也提供了不少基礎功能(事務管理、持久化框架集成等等),將應用邏輯的開發留給了你。
全部Spring的這些特徵使你可以編寫更乾淨、更可管理、而且更易於測試的代碼。它們也爲Spring中的各類模塊提供了基礎支持。
Spring的兩大核心AOP與IOC,能夠單獨用於任何應用,包括與Struts等MVC框架與Hibernate等ORM框架的集成,目前不少公司所謂的輕量級開發就是用 Spring + Struts(2)+Hibernate。
Spring MVC就是一個MVC框架,我的以爲Spring MVC annotation式的開發比Struts2方便,能夠直接代替上面的Struts(固然Struts的作爲一個很是成熟的MVC,功能上感受仍是比Spring強一點,不過Spring MVC已經足夠用了)。固然spring mvc的執行效率比struts高,是由於struts的值棧影響效率
spring mvc相似於struts的一個MVC開框架,其實都是屬於spring,spring mvc須要有spring的架包做爲支撐才能跑起來
若是有人問你什麼事控制反轉(spring的核心面試常問道):你就回答,原本程序是由咱們new 出來的嘛,後來交給程序控制進行new出來了嘛,這就是控制反轉嘛
5、for與foreach的區別
1.若是隻是遍歷集合或者數組,用foreach好些,快些。
2.若是對集合中的值進行修改,就要用for循環了。其實foreach的內部原理其實也是Iterator,但它不能像Iterator同樣能夠人爲的控制,並且也不能調用iterator.remove();更不能使用下標來訪問每一個元素,因此不能用於增長,刪除等複雜的操做。舉個例子:
for(String aid:list){
if(aid.equals("aa")){
list.remove(aid); //這行會報錯,不能修改list的長度
}
}
因此foreach語句是for語句的特殊簡化版本,可是foreach語句並不能徹底取代for語句
6、webService的理解
webservice 只就是POST類型的 HTTP請求;以往的HTTP請求都是 瀏覽器從FORM 裏發出的
用於提交 表單,好比 瀏覽器提交 username=tom&password="123456" 給服務器,服務器驗證完 用戶名和密碼正確後 再返回字符串 "success".
後來 發現 能夠把提交的內容作的更復雜, 由於服務器能夠接受更多東西以計算。
好比:提交給服務器 <username>tom</username>
<password>123456</password>
<bothdata>19800305</bothdate>
........ 還有很長就不寫了
而後服務器返回<result>success</result>
可是這種新的提交方法 再叫做POST表單請求就不合適了,起個新的名子吧,就叫WEBSERVICE,這種提交的格式就叫作 XML 。由於這東西 比 原來那個
username=tom&password="123456" 更容易被人讀懂,並且能夠存儲表達更多東西。
至於於那個WDSL 就是一種格式規範,他就像是小學語文規定「每一個新段落開頭要空兩個字」 沒什麼區別它規定了 提交WEBSERVICE 時 應該
把 開頭寫什麼標示,結尾寫什麼標示
7、EasyUI的下拉框是傳的是什麼數據
8、ajax的原理與怎麼判斷是同步仍是異步
異步
9、同步與異步
Java中交互方式分爲同步和異步兩種:
同步交互:指發送一個請求,須要等待返回,而後纔可以發送下一個請求,有個等待過程;
異步交互:指發送一個請求,不須要等待返回,隨時能夠再發送下一個請求,即不須要等待。
區別:一個須要等待,一個不須要等待,在部分狀況下,咱們的項目開發中都會優先選擇不須要等待的異步交互方式。
哪些狀況建議使用同步交互呢?好比銀行的轉帳系統,對數據庫的保存操做等等,都會使用同步交互操做,其他狀況都優先使用異步交互。
10、數據的持久化
數據持久化就是將內存中的數據模型轉換爲存儲模型,以及將存儲模型轉換爲內存中的數據模型的統稱. 數據模型能夠是任何數據結構或對象模型,存儲模型能夠是關係模型、XML、二進制流等。
使用數據持久化有如下好處:
1、程序代碼重用性強,即便更換數據庫,只須要更改配置文件,沒必要重寫程序代碼。
2、業務邏輯代碼可讀性強,在代碼中不會有大量的SQL語言,提升程序的可讀性。
3、持久化技術能夠自動優化,以減小對數據庫的訪問量,提升程序運行效率。
數據持久化對象的基本操做有:保存、更新、刪除、查詢等。
11、存儲過程的理解
存儲過程是一組預先編譯好的sql代碼,因爲是已經編譯好的代碼,因此執行的時候沒必要再次進行編譯,從而提升了程序的運行效率
十二、數據結構和算法瞭解多少
13、linux環境下,你怎麼搭建Web環境
安裝JDK
先安裝JDK1.6
敲入如下命令
cd /home/liuyan/javaee tar –zxvf jdk-6u22-linux-i586-rpm.bin |
便可解壓縮JDK包。
解壓縮成功後還不算完,咱們還要手工設定一下環境變量!
用VI編輯器編輯一下環境變量文件
vi /etc/profile |
在文件的末尾加上如下幾句話
JAVA_HOME=/home/liuyan/javaee/ jdk-6u22-linux-i586 PATH=$PATH: /home/liuyan/javaee/ jdk-6u22-linux-i586/bin CLASSPATH=.:/home/liuyan/javaee/ jdk-6u22-linux-i586/jre/lib/rt.jar export JAVA_HOME PATH CLASSPATH |
保存退出
注意:其中jdk-6u22-linux-i586是解壓縮jdk後的包名。
按此配置,從新登陸linux後,jdk命令即生效。
在控制檯輸入
java –version |
便可驗證是否安裝成功
安裝Tomcat6
運行一下命令
cd /home/liuyan/javaee tar –zxvf apache-tomcat-6.0.29.tar.gz |
直接解壓縮tomcat就行,tomcat在這3個文件的安裝中算是最簡單的。
解壓縮後的文件夾應該是apache-tomcat-6.0.29
安裝MySql數據庫
運行一下命令
tar –zxvf mysql-5.2.0-falcon-alpha-linux-i686-glibc23.tar.gz |
先將MySql的包解壓縮,由於安裝rpm的文件會涉及到不少依賴包,因此筆者這裏偷懶了,用了一個linux解壓縮文件。
解壓縮完成後,先修改一下解壓縮後的包名
cd /home/liuyan/javaee/ mv mysql-5.2.0-falcon-alpha-linux-i686-glibc23 mysql5 |
將解壓縮後的文件夾重命名爲mysql5
將MySql自帶的配置文件拷貝到系統環境變量中,運行如下命令
cp /home/liuyan/javaee/mysql5/support-files/my-medium.cnf /etc/my.cnf |
下面咱們修改一下Mysql的編碼格式
vi /etc/my.cnf |
修改內容以下
添加 |
這樣mysql編碼都爲utf-8
下面咱們運行如下命令初始化mysql的數據
cd /home/liuyan/javaee/mysql5 scripts/mysql_install_db –user=root |
初始化數據,設定mysql的使用用戶爲root,注意這個root用戶和linux的root用戶是兩碼事。
數據安裝成功後運行如下命令便可之後臺進程的方式啓動mysql服務
cd /home/liuyan/javaee/mysql5 bin/mysqld_safe –user=root |
輸入如下命令
netstat –anp | more |
看看是否有3306的端口被佔用了?
固然,咱們也能夠修改/etc/profile文件增長mysql的環境變量,方法和jdk差很少。
PATH=$PATH: /home/liuyan/javaee/mysql5/bin |
千萬別忘記
要想運行你的Java EE項目,還差一點點,將mysql的jar包拷貝到jdk/jre/lib/ext下面,這樣jre才能找獲得mysql數據庫的驅動程序。
運行如下命令
cd /home/liuyan/javaee/apache-tomcat-6.0.29/bin ./startup.sh |
便可運行您的項目了。
UML是什麼,你用它來作什麼?
統一建模語言
工程中各個模塊、類之間的將架構圖,能夠清晰地分析出各個模塊間的關係!
15、物聯網是幹什麼的?