自由飛翔

          我在仰望,java之上

          統計

          留言簿(2)

          我關注的blog

          閱讀排行榜

          評論排行榜

          面試題(通信行業公司)

          一、unix:
          1.ps -ef|grep tomcat
          2.mkdir dir
          3.打tar包:tar -cvf XXX.tar XXX
          4.解壓tar包:tar -xvf XXX.tar
          二、java
          1.HashMap和HashTable的區別:
          HashMap不是線程安全的,
          HashTable是線程安全的
          HashTable不允許null值(key和value都不可以),HashMap允許null值(key和value都可以)。
          HashTable使用Enumeration,HashMap使用Iterator。
          HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。
          Hashtable是基于陳舊的Dictionary類,完成了Map接口;HashMap是Java 1.2引進的Map接口的一個實現(HashMap繼承于AbstractMap,AbstractMap完成了Map接口)。
          HashTable中hash數組默認大小是11,增加的方式是 old*2+1。HashMap中hash數組的默認大小是16,而且一定是2的指數。
          哈希值的使用不同,HashTable直接使用對象的hashCode。
          2.什么是java的序列化?如何實現java的序列化:

          序列化就是一種用來處理對象流的機制,所謂對象流也就是將對象的內容進行流化。可以對流化后的對象進行讀寫操作,也可將流化后的對象傳輸于網絡之間。序列化是為了解決在對對象流進行讀寫操作時所引發的問題。

          序列化的實現:將需要被序列化的類實現Serializable接口,然后使用一個輸出流(如:FileOutputStream)來構造一個ObjectOutputStream(對象流)對象,接著,使用ObjectOutputStream對象的writeObject(Object obj)方法就可以將參數為obj的對象寫出(即保存其狀態),要恢復的話則用輸入流。

          3.什么是java的單例模式?寫一個單例模式;
          單例模式:確保某一個類只有一個實例,而且自行實例化并向整個系統提供這個實例。這個類稱為單例類。

            代碼清單1:餓漢式單例類

          public class EagerSingleton 

              private static final EagerSingleton m_instance = new EagerSingleton(); 

             /** 
             * 私有的默認構造方法 
             */
           
             private EagerSingleton() { } 

             /** 
             * 靜態方法獲得單例 
             */ 
             public static EagerSingleton getInstance() 
             {
                return m_instance; 
             }
          }

          代碼清單2:懶漢式單例類

          package com.javapatterns.singleton.demos;
          public class LazySingleton
          {
              private static LazySingleton m_instance = null;


              /**
              * 私有的默認構造方法,保證外界無法直接實例化
              */
              private LazySingleton() { }


              /**
              * 靜態方法,返還此類的惟一實例
              */
              public synchronized static LazySingleton getInstance()
              {
                  if (m_instance == null)
                  {
                      m_instance = new LazySingleton();
                  }
                  return m_instance;
              }
          }

          4.靜態塊與構造器在繼承中的執行順序:

          public class TestExeuteOrder {

          public static void main(String[] args) {
          Parent p = new ChildTest();
          p = new ChildTest();

          }

          }
          class ChildTest extends Parent{
          static{
          System.out.println("in child static");
          }
          public ChildTest(){
          System.out.println("in child construtor");
          }
          }

          class Parent{
          static{
          System.out.println("in parent static");
          }
          public Parent(){
          System.out.println("in parent construtor");
          }
          }
          運行結果:
          in parent static
          in child static
          in parent construtor
          in child construtor
          in parent construtor
          in child construtor
          5.成員內部類:
          public class TestExeuteOrder{
          class Inner{
          void test(){
          if(TestExeuteOrder.this.flag){
          System.out.println("what a funny");
          }
          }
          }
          private boolean flag = true;
          public TestExeuteOrder(){
          new Inner().test();
          }
          public static void main(String[] args){
          new TestExeuteOrder();
          }
          }
          運行結果:
          what a funny
          6.參數傳遞:
          public class TestExeuteOrder{

          public static void main(String[] args){
          String a = "ello";
          TestExeuteOrder t = new TestExeuteOrder();
          t.change(a);
          System.out.println(a);
          }
          public void change(String str){
          str += "H";
          }
          }
          結果:
          ello
          7.參數傳遞2:
          public class TestExeuteOrder{

          public static void main(String[] args){
          StringBuffer x = new StringBuffer("A");
          StringBuffer y = new StringBuffer("B");
          change(x,y);
          System.out.println(x+" "+y);
          }
          public static void change(StringBuffer a,StringBuffer b){
          a.append(b);
          b = a;
          }
          }
          結果為:
          AB B
          8.

          public class TestExeuteOrder{
          public static void main(String[] args){
          String a = "good";
          char[] b = new char[]{'a','b','c'};
          method(a,b);
          System.out.println("a="+a+"------>b="+new String(b));
          }
          public static void method(String a,char[] b){
          a = "Test ok";
          b[0] = 'g';
          }
          }
          結果:
          a=good------>b=gbc
          三、SQL:

           

          1.存儲過程與函數的區別:
          1)前者,程序頭部聲明用的是procedure;后者,程序頭部聲明用的是function;
          2)前者,不需要描述返回類型,后者需要;
          3)前者可以作為一個獨立的pl/sql語句來執行;后者不能獨立運行,必須作為表達式的一部分條用;
          4)sql語句中不可調用procedure,但可以調用function;
          2.查詢student表中name重復的記錄:

          select * from student where name in(select name from student group by sname having count(*) >1);

          3.table表中有兩列A,B,如果A>B選擇A,如果A<B,選擇B:

          select( case when s1.A>s1.B then s1.A  when s1.A<s1.B then s1.B end) re from student s1;

           



          Gavin

          posted on 2012-03-30 16:00 GavinMiao 閱讀(743) 評論(0)  編輯  收藏 所屬分類: 面試題

          主站蜘蛛池模板: 哈巴河县| 汉沽区| 文登市| 黄大仙区| 云和县| 同心县| 清新县| 花莲市| 嘉兴市| 望谟县| 邢台市| 额尔古纳市| 满城县| 霸州市| 寿光市| 崇州市| 车致| 博野县| 望江县| 枣强县| 梨树县| 丹凤县| 色达县| 宽甸| 夹江县| 德昌县| 丰都县| 武义县| 拜城县| 叶城县| 肥西县| 洛隆县| 西乌珠穆沁旗| 建宁县| 邛崃市| 赣州市| 井研县| 云阳县| 芦溪县| 武隆县| 黔南|