面試題之一(Spring和堆棧和邏輯運算符)

1.&和&&區別?java

      都是邏輯運算符,都是判斷兩邊同時爲真,不然爲假;但&&當第一個爲假時,後面就不執行,而&則仍是要繼續執行,直至結束;程序員

———————————————————————————————編程

 

2.java中棧和堆的區別?服務器

      棧用來存放基本數據類型和引用變量,當有函數要調用的時候,經過壓棧的方式建立新的棧幀,當函數調用結束時,會釋放棧幀;   堆用來存放運行時建立的對象,每個實例對應一個堆,而存放在垃圾回收器中的值將會自動回收(GC)。app

e.g:框架

class Rectangle{

 private int length;

 private int width;

 public Rectangle(int length, int width){

 this.length=length;

 this.width=width;

 }

 public static void main(String args[]){

 Rectangle r=new Rectangle(3,5);

 }

}

 

 

//當程序從main方法開始執行以後,數據的存儲關係以下:模塊化

 

棧                                                 堆函數

—————                            ———————工具

i=1;                                      new Rectangle()this

                _ _ _ _ _ _  >>     width:3   length:5                 

—————                           ————————

局部變量在棧中,對象的引用也在棧中,具體類和參數值在堆中,用完

就做爲垃圾回收。

—————————————————————————————————

 

3.0 說說Spring的用途?

      解決業務邏輯層和其餘的各個層的鬆耦合問題,下降客戶端和服務器之間的耦合度、依耐性。(解決企業開發的複雜性)

3.1 說說Spring核心?

        Spring的核心是控制反轉、依賴注入。AOP(面向切面)至關於每一個

bean和bean之間的關係交給第三方容器進行管理。

 

說明:傳統項目分爲三層:控制層、反轉層、持久層(從上至下)。

 

3.2 說SpringIOC、SpringAOP?

        SpringIOC至關於每一個bean和bean之間的關係交給第三方容器進行管理。

而這個容器就是面向切面的編程,或AOP是一種編程技術,容許程序模塊化橫向

切割關注點,或橫切典型的責任劃分,如日誌和事務管理。SpringAOP就是動態

代理。

 

3.3 Spring的底層實現機制是什麼?

     用Dom4j(解析XML)+ java 反射機制。其中DOM4j其實就是解析XML,用反射機制實例化bean。

 

3.4 SpringAOP用到了什麼代理?

JDK動態代理:對實現接口的類生成代理。(接口類代理)

CGLib代理機制:對類生成代理。

 

動態代理和靜態代理?

靜態代理:有程序員建立或特定工具自動生成源代碼,再對其編譯。再程序運行前

代理類的.class 文件就已經存在了。

動態代理:在程序運行時,用反射機制動態建立而成。

 

Spring用到了哪些注入方式?

1)經過set方式注入

public class Person{

 private Computer computer;//全局變量

 public void setComputer(Computer computer){

  this.computer=computer;

 }//set方法

 public void useComputer(){

  computer.start();

 }

 //用bean文件來注入

}

2)經過構造函數注入

public class CPU{

 private String name;

 public CPU(String name){

  this.name=name;

 }

 public String getName(){

  return name;

 }

}

3)注入對象引用(經過對象引用傳進來)

public class Computer{

 private String name;

 public void start(){

  System.out.println(name+"computer run");

  System.out.println("CPU name is"+cpu.getName());

 }

}

4)經過工廠方式

public class Singleton{

 private Singleton(){

         static final Singleton instance=new Singleton();

 }

 public static final Singleton getInstance(){


 }

}

 

 

Spring有哪些註解?

@AutoWired(按類型注入)

@Service(標示爲注入爲服務層)

@Resourse(按名稱注入)

@Controller(標識控制器bean id)

@RequestMapping(標示映射URL路徑)

 

簡述Spring的優缺點

1.

2.可使用容易提供的衆多服務,入事務管理,消息服務等等

3.容器提供單例模式支持

4.容器提供了AOP技術,用它很容易實現入權限攔截,運行期監控

等功能。

5.容器提供了衆多的輔助類,能加快應用開發。

6.Spring對於主流的應用框架提供了集成支持,如JPA、hibernate等

7.Spring屬於低浸入式設計,代碼的污染極低。

8.獨立於各類應用服務器

9.Spring的DI機制下降了業務對象替換的複雜性。

10.Spring的高度開放性,並不強制應用徹底依賴於Spring,開發者能夠自由選擇

Spring的部分或所有。

缺點:用到了大量的反射(自動實例化內存),而反射很佔內存,

使得運行速度變慢。

——————————————————————————————————

SpringMVC工做流程

//涉及到了一些XML和servlet方面的內容,先放放。

相關文章
相關標籤/搜索