java知識(shí)

面試準(zhǔn)備

Writen By CoolGhost,Started With 2016/10

  • 連接Oracle數(shù)據(jù)庫(kù)操作
    ResultSet rs = null;
    Statement stmt = null;
    Connection conn = null;
    try {
        Class.forName("oracle.jdbc.driver.OracleDriver");
        conn = DriverManager.getConnection("jdbc:oracle:thin:@ip:port", "username", "password");
        stmt = conn.createStatement();
        rs = stmt.executeQuery("select * from dept");
        while (rs.next()) {
            System.out.println(rs.getString("deptno"));
        }
    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    } catch (SQLException e) {
        e.printStackTrace();
    } finally {
        try {
            if (rs != null) {
                rs.close();
                rs = null;
            }
            if (stmt != null) {
                stmt.close();
                stmt = null;
            }
            if (conn != null) {
                conn.close();
                conn = null;
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
    
  • java單例模式
    public class Singleton {
      private Singleton() {}
      private static Singleton single=null;
      public static Singleton getInstance() {
           if (single == null) {
               single = new Singleton();
           }
          return single;
      }
    }
    
  • java路徑
    兩種方法:一種是\\\另外一種是/
  • java正則
    public class RegexMatches
    {
        private static final String REGEX = "\\bcat\\b";
        private static final String INPUT =
                "cat cat cat cattie cat";
        public static void main( String args[] ){
            Pattern p = Pattern.compile(REGEX);
            Matcher m = p.matcher(INPUT); // 獲取 matcher 對(duì)象
            int count = 0;
            while(m.find()) {
                count++;
                System.out.println("Match number "+count);
                System.out.println("start(): "+m.start());
                System.out.println("end(): "+m.end());
            }
        }
    }
    
    注意意推,java中只用正則\需要進(jìn)行轉(zhuǎn)義,如\\d
  • String骗露、StringBuffer船惨、StringBuilder
    • 其中咒钟,String被final修飾拣宰,為不可變類夜涕,不能被繼承挟裂,并且其值不能被改變蒋譬。進(jìn)行添加操作的時(shí)候會(huì)轉(zhuǎn)換成 StringBuffer類型
    • StringBuffer割岛、StringBuilder均為可變類,其功能基本類似犯助,但是StringBuilder線程不安全
    • String因?yàn)槭遣豢勺冾愌⑵幔虼瞬贿m合用來(lái)頻繁的進(jìn)行修改操作,而StirngBuilder和StringBuffer主要看是否運(yùn)用在多線程中剂买。另外三者都是借助char[]實(shí)現(xiàn)
  • 浮點(diǎn)默認(rèn)為dobule類型惠爽,如需float類型,(float)0.1或0.1f
  • Switch
    基本類型中l(wèi)ong瞬哼、float婚肆、double類型不能用于switch、而非基本類型的String可以用于switch
  • 線程
    線程也被稱為輕量級(jí)進(jìn)程坐慰,是程序執(zhí)行的最小單元较性,一個(gè)進(jìn)程可以擁有多個(gè)線程,各個(gè)線程之間共享程序的內(nèi)存空間。
  • 多線程有點(diǎn)
    • 多線程可以減少程序響應(yīng)時(shí)間
    • 線程的創(chuàng)建和切換開銷較小
    • 單線程浪費(fèi)多CPU執(zhí)行能力
    • 多線程能簡(jiǎn)化程序結(jié)構(gòu)赞咙,便于理解和維護(hù)
  • Servlet的生命周期
    初始化階段:調(diào)用init()方法责循;響應(yīng)客戶請(qǐng)求階段:調(diào)用service()方法,并依據(jù)請(qǐng)求類型調(diào)用dopost和doget方法攀操;終止階段:調(diào)用destroy()方法
  • java讀取文件
    //字節(jié)流,不會(huì)出現(xiàn)亂碼
    File file=new File(filePath);
    if(file.isFile() && file.exists()){ //判斷文件是否存在
        InputStreamReader read = new InputStreamReader(new FileInputStream(file),encoding);//考慮到編碼格式
        BufferedReader bufferedReader = new BufferedReader(read);
        String lineTxt = null;
        while((lineTxt = bufferedReader.readLine()) != null){
            System.out.println(lineTxt);
        }
        read.close();
    }else{
        System.out.println("找不到指定的文件");
    }
    
    //字符流院仿,可能出現(xiàn)亂碼
    FileReader fr=new FileReader(filePath);
    BufferedReader bufferedReader = new BufferedReader(fr);
    
  • servlet和cgi
    servlet處于服務(wù)器進(jìn)程中,它通過(guò)多線程方式運(yùn)行其service方法速和,一個(gè)實(shí)例可以服務(wù)于多個(gè)請(qǐng)求歹垫,并且其實(shí)例一般不會(huì)銷毀,而CGI對(duì)每個(gè)請(qǐng)求都產(chǎn)生新的進(jìn)程颠放,服務(wù)完成后就銷毀排惨,所以效率上低于servlet。
  • jsp跳轉(zhuǎn)方式
    有兩種:
    • forward跳轉(zhuǎn):<jsp:forward page ="跳轉(zhuǎn)頁(yè)面地址">
      • 服務(wù)器端跳轉(zhuǎn)慈迈,地址欄不改變若贮。
      • 執(zhí)行到跳轉(zhuǎn)語(yǔ)句后馬上執(zhí)行跳轉(zhuǎn)省有,之后的代碼不再執(zhí)行(跳轉(zhuǎn)之前一定要釋放全部資源)痒留。
      • request設(shè)置的屬性在跳轉(zhuǎn)后的頁(yè)面仍然可以使用。
    • response跳轉(zhuǎn):response.sendRedirect("跳轉(zhuǎn)頁(yè)面地址")
      • 客戶端跳轉(zhuǎn)蠢沿,地址欄改變伸头。
      • 所有代碼執(zhí)行完畢后跳轉(zhuǎn)。
      • 跳轉(zhuǎn)后頁(yè)面不能使用上一個(gè)頁(yè)面的request舷蟀。
      • 使用地址重寫傳遞參數(shù)(response.sendRedirect("URL?參數(shù)名=參數(shù)值"))恤磷。
  • java數(shù)組初始化賦值
    int[] nums = {0,1,2,3,4,5,6,7,8,9};
    int[] nums = new int[]{0,1,2,3,4,5,6,7,8,9};
    
  • 抽象類
    其子類權(quán)限只能擴(kuò)大,不能縮小野宜。
  • java static
    public class Alpha {
        static int i = 1;
        static {
            i++;
        }
        public Alpha() {
            i++;
        }
        public static void main(String[] args) {
            Alpha t1 = new Alpha();
            System.out.println(t1.i);       //3
            Alpha t2 = new Alpha();
            System.out.println(t2.i);//4 靜態(tài)資源只執(zhí)行一次
        }
    }
    
  • SQL truncate 扫步、delete與drop區(qū)別
    • truncate 和 delete 只刪除數(shù)據(jù)不刪除表的結(jié)構(gòu)
    • delete 語(yǔ)句是數(shù)據(jù)庫(kù)操作語(yǔ)言(dml),事務(wù)提交之后才生效。truncate匈子、drop 是數(shù)據(jù)庫(kù)定義語(yǔ)言(ddl)河胎,立即生效,不處罰事務(wù)虎敦。
  • mybatis
    • statementType設(shè)置為CALLABLE游岳,默認(rèn)情況下是PREPARED
    • 一般使用#,$符號(hào)只有在特定情況下其徙,如表前綴才使用胚迫,可能帶來(lái)SQL注入
    • jdbctype如果不設(shè)定,并且如果參數(shù)為null唾那,則會(huì)1111錯(cuò)誤
  • spring mvc
    • 運(yùn)行流程


      流程
      流程
      • 用戶發(fā)送請(qǐng)求時(shí)访锻,首先被DispatcherServlet捕獲
      • DispatcherServlet對(duì)請(qǐng)求URL進(jìn)行解析,得到請(qǐng)求資源標(biāo)識(shí)符(URI)。然后根據(jù)該URI朗若,調(diào)用HandlerMapping
      • HandlerMapping根據(jù)請(qǐng)求恼五,訪問(wèn)不同Controller進(jìn)行處理
      • Controller進(jìn)行業(yè)務(wù)的處理,完成后將返回的數(shù)據(jù)和跳轉(zhuǎn)到的界面封裝到ModelAndView
      • ViewResolver解析Controller返回的ModelAndView哭懈,讀取其信息灾馒,然后渲染界面完成一次請(qǐng)求
    • mvc:view-controller,讓請(qǐng)求不通過(guò)Handler,直接訪問(wèn)到響應(yīng)視圖遣总。而在配置這個(gè)標(biāo)簽之后睬罗,默認(rèn)的@RequestMapping將會(huì)失效,這個(gè)時(shí)候需要配置mvc:annotation-driven旭斥。而mvc:resources則是用來(lái)配置靜態(tài)資源比如:css容达,js之類。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末垂券,一起剝皮案震驚了整個(gè)濱河市花盐,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌菇爪,老刑警劉巖算芯,帶你破解...
    沈念sama閱讀 211,884評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異凳宙,居然都是意外死亡熙揍,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,347評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門氏涩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)届囚,“玉大人,你說(shuō)我怎么就攤上這事是尖∫庀担” “怎么了?”我有些...
    開封第一講書人閱讀 157,435評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵饺汹,是天一觀的道長(zhǎng)蛔添。 經(jīng)常有香客問(wèn)我,道長(zhǎng)首繁,這世上最難降的妖魔是什么作郭? 我笑而不...
    開封第一講書人閱讀 56,509評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮弦疮,結(jié)果婚禮上夹攒,老公的妹妹穿的比我還像新娘。我一直安慰自己胁塞,他們只是感情好咏尝,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,611評(píng)論 6 386
  • 文/花漫 我一把揭開白布压语。 她就那樣靜靜地躺著,像睡著了一般编检。 火紅的嫁衣襯著肌膚如雪胎食。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,837評(píng)論 1 290
  • 那天允懂,我揣著相機(jī)與錄音厕怜,去河邊找鬼。 笑死蕾总,一個(gè)胖子當(dāng)著我的面吹牛粥航,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播生百,決...
    沈念sama閱讀 38,987評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼递雀,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了蚀浆?” 一聲冷哼從身側(cè)響起缀程,我...
    開封第一講書人閱讀 37,730評(píng)論 0 267
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎市俊,沒(méi)想到半個(gè)月后杨凑,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,194評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蠢甲,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,525評(píng)論 2 327
  • 正文 我和宋清朗相戀三年搞糕,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了窍仰。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片驹吮。...
    茶點(diǎn)故事閱讀 38,664評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖频祝,靈堂內(nèi)的尸體忽然破棺而出常空,到底是詐尸還是另有隱情漓糙,我是刑警寧澤,帶...
    沈念sama閱讀 34,334評(píng)論 4 330
  • 正文 年R本政府宣布漾根,位于F島的核電站辐怕,受9級(jí)特大地震影響是牢,放射性物質(zhì)發(fā)生泄漏驳棱。R本人自食惡果不足惜社搅,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,944評(píng)論 3 313
  • 文/蒙蒙 一暮的、第九天 我趴在偏房一處隱蔽的房頂上張望源织。 院中可真熱鬧谈息,春花似錦轻姿、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,764評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)洛搀。三九已至,卻和暖如春谎砾,著一層夾襖步出監(jiān)牢的瞬間瓶堕,已是汗流浹背谭梗。 一陣腳步聲響...
    開封第一講書人閱讀 31,997評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工闰蛔, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留序六,地道東北人蚤吹。 一個(gè)月前我還...
    沈念sama閱讀 46,389評(píng)論 2 360
  • 正文 我出身青樓例诀,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親裁着。 傳聞我的和親對(duì)象是個(gè)殘疾皇子繁涂,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,554評(píng)論 2 349

推薦閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法,類相關(guān)的語(yǔ)法二驰,內(nèi)部類的語(yǔ)法扔罪,繼承相關(guān)的語(yǔ)法,異常的語(yǔ)法桶雀,線程的語(yǔ)...
    子非魚_t_閱讀 31,598評(píng)論 18 399
  • 小編費(fèi)力收集:給你想要的面試集合 1.C++或Java中的異常處理機(jī)制的簡(jiǎn)單原理和應(yīng)用步势。 當(dāng)JAVA程序違反了JA...
    八爺君閱讀 4,578評(píng)論 1 114
  • 一. Java基礎(chǔ)部分.................................................
    wy_sure閱讀 3,805評(píng)論 0 11
  • 1. 面向?qū)ο蟮奶卣饔心男┓矫妫?抽象:抽象是將一類對(duì)象的共同特征總結(jié)出來(lái)構(gòu)造類的過(guò)程,包括數(shù)據(jù)抽象和行為抽象兩方...
    程序熊大閱讀 4,364評(píng)論 6 74
  • 從前的記憶,依然很清晰 漠魏。我仍然記得你總是喜歡牽著我的小手走街串巷倔矾,依然記得你總是喜歡帶著我去家邊的油菜地上,你...
    不要藏在心里就好閱讀 234評(píng)論 1 0