深圳有爲JAVA筆試html
1.定義一個線程類有幾種方法?分別是什麼? java
答:兩種方法,一種繼承Thread類,重寫run()方法,第二種實現runnable接口,實現run()方法。算法
2.抽象類和接口的區別?sql
答:(1)抽象類能夠有非抽象方法,接口的方法都是抽象。(2)抽象類能夠有構造方法,接口沒有構造方法。(3)抽象類中抽象方法的訪問修飾符能夠是public,protected,接口中必須是public,且默認是public abstract(4)抽象類中能夠有普通成員屬性,接口中沒有普通成員屬性 (5)一個類只能實現一個類,一個類能夠繼承多個接口。(6)抽象類和接口中的均可以有靜態的成員屬性,抽象類中靜態成員屬性能夠是任意的,接口中的只能是public static final數據庫
3.面向對象的特徵有哪些方面?編程
答:封裝、繼承、多態、抽象設計模式
4.在java中,數組是基本數據類型嗎?數組
不是緩存
5.long和Long的區別安全
答:long:基本數據類型,Long包裝類
6.|和||的區別
答:||表示邏輯或,且有短路的功能。|還有按位或運算的意思。
7.char型變量能不能存儲一箇中文漢字
答:能夠。
8.是否能夠繼承String類
答:否
9.hashtable和hashmap的區別
答:hashtable線程安全,hashmap線程不安全。且hashmap容許空鍵值,hashtable不行。
10.如何實現多態?寫一實現多態的代碼,並說明一下。
List list=new ArrayList();
父類型的引用指向子類對象
11.final,finally,finalize的區別
答:(1)final是修飾符,用來修飾變量,方法和類,分別表示變量不可變,方法不可覆蓋,類不可繼承,
(2)finally是處理異常的一部分,表示老是不能執行。
(3)finalize是object的一個方法,在垃圾收集器執行的時候回調用此對象的此方法。
12.synchronized關鍵字的用法?
答:同步代碼塊和同步方法。
13.下面一段程序會輸出什麼?
public class Test2 { public static void main(String[] args) { A a=new B(); a.display(); } }
class A{ protected int val=1000;
static{ System.out.println("A static"); }
public A(){ val++; System.out.println("A construtor(),val="+val); }
public void display(){ val++; System.out.println("A display(),val="+val); } }
class B extends A{ static{ System.out.println("B static"); }
public B(){ val++; System.out.println("B constructor(),val="+val); }
public void display(){ val++; System.out.println("B constructor(),val="+val); } } |
輸出結果:
A static B static A construtor(),val=1001 A construtor(),val=1002 A construtor(),val=1003
|
14.編程題:用最有效的方法算出2乘以16等於幾?
2<<4
15.如何判斷一個單鏈表是有環的?並用你的算法實現。
設置兩個指針(fast, slow),初始值都指向頭,slow每次前進一步,fast每次前進二步,若是鏈表存在環,則fast一定先進入環,而slow後進入環,兩個指針一定相遇。(固然,fast先行頭到尾部爲NULL,則爲無環鏈表)
程序以下:
bool IsExitsLoop(slist *head) { slist *slow=head, *fast= head; while ( fast &&fast->next ) { slow = slow->next; fast = fast->next->next; if ( slow ==fast ) break; } return !(fast == NULL || fast->next == NULL); } |
16說出servlet的生命週期,並說出servlet與CGI的區別、
答:(1)servlet被服務器實例化後,容器運行其init()方法,請求到達service方法,service方法自動派遣運行與請求對應的doget或dopost方法,當服務器決定將實例銷燬的時候,調用其destroy方法。
(2)servlet處於服務器進程中,他經過多線程的方式運行其service方法,一個實例能夠服務於多個請求,而且其實例通常不會銷燬,而CGI對每一個請求都產生新的進程,服務完成後就銷燬,因此效率上低於servlet。
17.寫出你所知道的設計模式?
答:單例模式,觀察者模式,工廠模式,裝飾模式,代理模式,適配器模式。
18.數據庫表結構以下
Student(S#,sname,ssex) 學生表
Course(C#,cname,T#)課程表
SC(S#,C#,score)成績表
Teacher(T#,tname)教師表
試用sql語句描述
A:查出學生「小張」所選的全部課程。
B:查出選修課程「數學」且成績及格的學生
C:刪除學生「小王」的全部成績記錄
D:將教師」李老師」的所教課程的全部學生的成績加5分。
A:
select c.cname from student s1,course c,sc s2 where s1.sid=s2.sid and c.cid=s2.cid and s1.sname='小張'; |
B
select s1.* from student s1,course c,sc s2 where s1.sid=s2.sid and c.cid=s2.cid and c.cname='數學' and s2.score>60; |
C子查詢
delete from sc where sid=(select sid from student where sname='小王'); |
D
update sc set score=score+5 where cid=(select cid from course where tid =(select tid from teacher where tname='李老師')); |
增強練習:http://www.cnblogs.com/zengxiangzhan/archive/2009/09/23/1572276.html
測試數據庫建表語句
/* Navicat MySQL Data Transfer
Source Server : localhost_3306 Source Server Version : 50627 Source Host : localhost:3306 Source Database : test_mianshi
Target Server Type : MYSQL Target Server Version : 50627 File Encoding : 65001
Date: 2016-10-22 21:16:47 */
SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- -- Table structure for `course` -- ---------------------------- DROP TABLE IF EXISTS `course`; CREATE TABLE `course` ( `cid` int(11) NOT NULL DEFAULT '0', `cname` varchar(50) DEFAULT NULL, `tid` int(11) NOT NULL DEFAULT '0', PRIMARY KEY (`cid`,`tid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ---------------------------- -- Records of course -- ---------------------------- INSERT INTO `course` VALUES ('1', '數學', '1'); INSERT INTO `course` VALUES ('2', '英語', '2'); INSERT INTO `course` VALUES ('3', '語文', '3');
-- ---------------------------- -- Table structure for `sc` -- ---------------------------- DROP TABLE IF EXISTS `sc`; CREATE TABLE `sc` ( `sid` int(11) NOT NULL DEFAULT '0', `cid` int(11) NOT NULL DEFAULT '0', `score` int(11) DEFAULT NULL, PRIMARY KEY (`sid`,`cid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ---------------------------- -- Records of sc -- ---------------------------- INSERT INTO `sc` VALUES ('1', '1', '60'); INSERT INTO `sc` VALUES ('1', '2', '70'); INSERT INTO `sc` VALUES ('1', '3', '80'); INSERT INTO `sc` VALUES ('2', '1', '90'); INSERT INTO `sc` VALUES ('2', '3', '85'); INSERT INTO `sc` VALUES ('3', '1', '90'); INSERT INTO `sc` VALUES ('3', '2', '80'); INSERT INTO `sc` VALUES ('3', '3', '50');
-- ---------------------------- -- Table structure for `student` -- ---------------------------- DROP TABLE IF EXISTS `student`; CREATE TABLE `student` ( `sId` int(11) NOT NULL AUTO_INCREMENT, `sname` varchar(50) DEFAULT NULL, `ssex` varchar(50) DEFAULT NULL, PRIMARY KEY (`sId`) ) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;
-- ---------------------------- -- Records of student -- ---------------------------- INSERT INTO `student` VALUES ('1', 'tom1', '男'); INSERT INTO `student` VALUES ('2', '小張', '男'); INSERT INTO `student` VALUES ('3', '小王', '男');
-- ---------------------------- -- Table structure for `teacher` -- ---------------------------- DROP TABLE IF EXISTS `teacher`; CREATE TABLE `teacher` ( `tid` int(11) NOT NULL DEFAULT '0', `tname` varchar(50) DEFAULT NULL, PRIMARY KEY (`tid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ---------------------------- -- Records of teacher -- ---------------------------- INSERT INTO `teacher` VALUES ('1', '李老師'); INSERT INTO `teacher` VALUES ('2', '王老師'); INSERT INTO `teacher` VALUES ('3', '張老師');
|
19.對於大型併發網絡通訊系統設計,須要考慮哪些方面(選作)?
1.靜態資源:cdn,大帶寬,緩存
2.動態資源:多開服務器,負載均衡,集羣。
參考案例:http://www.infoq.com/cn/articles/weixin-bonus-load
20.如何提升大吞吐量數據插入數據庫的效率(選作)?
1. 加大服務器內存,把大吞吐量數據涉及的表緩存在內存中,對庫表的操做就變成了對內存的操做而不須要訪問硬盤。由於硬盤的讀寫速度是機械運動的速度而內存讀寫的速度是電的速度, 它們的速度差異在1000倍以上.
2. 利用服務器端光標, 批量地刷新數據庫.
21.對計算機哪一方面有深刻研究,並簡要說明(選作)?