20200110一家面試題

1、如何對插入mysql數據的原數據進行加密,寫出加密函數?

加密:INSERT INTO t_pass_info(id,pass_info) VALUES (1,ENCODE(‘dong’,‘bb’));
解密:SELECT DECODE(ENCODE(‘dong’,‘aa’),‘aa’);

2、有數組a[n],用java代碼將數組元素順序顛倒

public static void main(String[] args) {
        /*
         * 有數組a[n],用java代碼將數組元素順序顛倒
         */
        int a[]={11,8,2,24,90,23};
        
        //首先可以用集合的方法把數組元素顛倒
        List<Integer> list=new ArrayList<Integer>();
        for(Integer i:a) {
            list.add(i);
        }
        Collections.reverse(list);
        for(Integer i:list) {
            System.out.print(i+" ");
        }
        
        //也可以用循環首尾互換的方法搞定
        for(int i=0;i<a.length>>1;i++) {
            int temp;
            temp=a[i];
            a[i]=a[a.length-1-i];
            a[a.length-1-i]=temp;
        }
        System.out.println();
        for(int i:a) {
            System.out.print(i+" ");
        }
    }

3、請列舉排序都有哪幾種方法?請使用一種方法進行排序

此題在上一篇也出現過,這裏就不寫了

4、一個用戶表有一個積分字段,假如數據庫中有800多萬個用戶(包含有效和失效用戶),若要在每一季度第一天凌晨將有效用戶的積分減半,你會怎麼做?

我當時回答的是直接用定時任務跑批執行sql,修改語句
還不清楚怎麼解決,有好的答案希望分享~~

5、寫一個jdbc鏈接並訪問oracle數據的程序代碼?

private static String url="jdbc:oracle:thin:@localhost:1521:orcl";     

    private static String user="system";    

    private static String password="manager";    

    private static Connection conn;    

    private Statement statement = null;

    private ResultSet rs = null;
    Class.forName("oracle.jdbc.driver.OracleDriver");    
    conn=DriverManager.getConnection(url, user, password); 
    statement = conn.createStatement();
    rs=statement.executeQuery(sql);
    while (rs.next()){
        //do something
    }
    rs.close();
    statement.close();
    conn.close(); 

6.你對springcloud理解是什麼?AOP和IOC主要用來解決哪種業務場景?

引用下面的話: springcloud理解—
SpringCloud是Spring爲微服務架構思想做的一個一站式實現。
  從某種程度可以理解爲,微服務是一個概念、一個項目開發的架構思想。SpringCloud是微服務架構的一種java實現。
SpringCloud是基於SpringBoot的一套實現微服務的框架。
  爲微服務體系開發中的架構問題,提供了一整套的解決方案,它提供了微服務開發所需要的配置管理、服務發現、斷路器、智能路由、微代理、控制總線、全局鎖、決策競選、分佈式會話和集羣狀態管理等組件。最重要的是,跟SpringBoot框架一起使用的話,會讓開發微服務架構的雲服務非常方便。
  Spring Cloud是一個基於Spring Boot實現的雲應用開發工具;Spring boot專注於快速、方便集成的單個個體,Spring Cloud是關注全局的服務治理框架;spring boot使用了默認大於配置的理念,很多集成方案已經幫你選擇好了,能不配置就不配置,Spring Cloud很大的一部分是基於Spring boot來實現。
IOC和AOP應用場景:
AOP:面向切面,找出多個Bean有一定規律的代碼,開發拆開,運行合併
面向規則編程,日誌監控,事物開啓/關閉,權限控制
IOC:控制反轉,將創建對象的權利交給spring(BeanFactory) 衣來伸手飯來張口
DI: 依賴注入,DI:依賴查找。能夠保存對象與對象之間的關聯關係
自動賦值:構造方法, set賦值,直接賦值(反射,暴力強吻)
構造:xml賦值
set:@Resource(“beanName”) public void setXXX(){}
直接:@Autowried private Object object;

7、你用過常用的設計模式有哪些?用java寫出來。

工廠、單利、模板、原型、策略、適配器、委派。。。。

//餓漢式單例模式例子
public class HungrystaticSingleton {
    private  static final HungrySingleton singleton=new HungrySingleton();
    private HungrySingleton(){}
    public static HungrySingleton getInstance(){
        return singleton;
    }
}
//懶漢式單例模式例子
public class LazyDoubleCHeckSingleton {
    private static LazyDoubleCHeckSingleton singleton=null;
    private  LazyDoubleCHeckSingleton(){}
    public  static LazyDoubleCHeckSingleton getInstance(){
        if(singleton==null){
            synchronized (LazySimpleSingleton.class){
                if(singleton==null){
                    singleton=new LazyDoubleCHeckSingleton();
                }
            }
        }
        return singleton;
    }
}

8、堆和棧的區別是什麼?若有一個64k的字符串,是放到堆上,還是棧上,理由是什麼?

只有引用及基本數據類型是直接存在棧上。對象類型可能是在堆、方法區、常量池中。
堆棧都是內存的可用區域,但是 堆的速度慢容量大,棧的速度快容量小。一個64K的字符串,自然放在堆。棧的內存是很寶貴的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章