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的字符串,自然放在堆。棧的內存是很寶貴的。