java同一包protect_Java基础知识 - 欢迎来到夜故事,一个人的故事 - OSCHINA - 中文开源技术交流社区...
1、public、protect、private以及不聲明私有性之間區別?
私有性
當前類
同一包下
子孫類
其他類
public
√
√
√
√
protect
√
√
√
×
friendly
√
√
×
×
private
√
×
×
×
不聲明時是friendly級別
2、ArrayList和Vector的區別,HashMap和Hashtable的區別?
ArrayList
a.異步,非線程安全;b.由于非同步,性能好;c.數據超過本身容量,只會按本身容量的50%增加,節約內存空間
Vector
a.同步,線程安全;b.由于同步,性能不好;③數據超過本身容量,會翻倍增加,耗內存空間
HashMap
a.異步,非線程安全;b.由于非同步,性能好
HashTable
a.同步,線程安全;b.由于同步,性能不好
3、char型變量能不能定義為一個中文?為什么?
char型變量是用來存儲Unicode編碼的字符的,unicode編碼字符集中包含了漢字,所以,char型變量中當然可以存儲漢字啦。
不過,如果某個特殊的漢字沒有被包含在unicode編碼字符集中,那么,這個char型變量中就不能存儲這個特殊漢字。
補充說明:unicode編碼占用兩個字節,所以,char類型的變量也是占用兩個字節。
4、多線程有幾種表示方法,都是什么?同步有幾種實現方法,都是什么?
多線程有兩種實現方法:
方法一:繼承Thread類,重寫方法run();
方法二:實現Runnable接口,實現方法run();
實現同步有幾種方法:
例如:synchronized,wait,notify都可以實現同步。
5、內部類的實現方式?
6、垃圾回收機制,如何優化程序?
程序無法控制直接進行回收,但可以間接設置進行回收,有以下幾種方式:
a.將對象設置成null,比如:
student=null
b.重新為引用變量賦值,比如:
Student student = new Student()
student = new Student();
c.對于“三角戀”關系,比如:
Student a = new Student();
Student b = new Student();
Student c = new Student();
a = b;
b = c;
c = a;
以上就是屬于“三角戀”關系,如何進行間接設置回收:
a = null;b=null;c=null;
這樣就都會在堆上,會被回收。
d.強制回收,System.gc():
但也不能保證立即回收。
7、float型float f=3.4是否正確?
不正確。
精度不準確,應該用強制類型轉換,如下所示:float f=(float)3.4 或float f = 3.4f
在java里面,沒小數點的默認是int,有小數點的默認是 double;
編譯器可以自動向上轉型,如int 轉成 long 系統自動轉換沒有問題,因為后者精度更高
double 轉成 float 就不能自動做了,所以后面的加上個 f
=========jsp=======
1、jsp有哪些內置對象?作用分別是什么?
九大內置對象,分別為:
Page,pageContext,request,response,session,application,out,config,exception
Page指的是JSP被翻譯成Servlet的對象的引用.
pageContext對象可以用來獲得其他8個內置對象,還可以作為JSP的域范圍對象使用.pageContext中存的值是當前的頁面的作用范圍》
request代表的是請求對象,可以用于獲得客戶機的信息,也可以作為域對象來使用,使用request保存的數據在一次請求范圍內有效。
Session代表的是一次會話,可以用于保存用戶的私有的信息,也可以作為域對象使用,使用session保存的數據在一次會話范圍有效
Application:代表整個應用范圍,使用這個對象保存的數據在整個web應用中都有效。
Response是響應對象,代表的是從服務器向瀏覽器響應數據.
Out:JSPWriter是用于向頁面輸出內容的對象
Config:指的是ServletConfig用于JSP翻譯成Servlet后 獲得Servlet的配置的對象.
Exception:在頁面中設置isErrorPage=”true”,即可使用,是Throwable的引用.用來獲得頁面的錯誤信息。
2、jsp有哪些動作?作用分別是什么?
6種動作,分別是:
sp:include:在頁面被請求的時候引入一個文件。
jsp:useBean:尋找或者實例化一個JavaBean。
jsp:setProperty:設置JavaBean的屬性。
jsp:getProperty:輸出某個JavaBean的屬性。
jsp:plugin:根據瀏覽器類型為Java插件生成OBJECT或EMBED標記。
jsp:forward:把請求轉到一個新的頁面。
1)兩種跳轉方式區別
a.forward跳轉: forward跳轉:服務器端跳轉,地址欄不改變;
b.response跳轉:response.sendRedirect("跳轉頁面地址"); response跳轉:客戶端跳轉,地址欄改變;
request.getRequestDispatcher("/message.jsp").forward(request, response);
2)兩種include方式區別:
有兩種實現方法,動態,靜態。
動態:用于包含動態頁面,并且可以隨時檢查頁面的變化,采用jsp:include動作可以實現,例如:
靜態,適合于包含靜態頁面,不檢查頁面的變化,采用include偽碼實現
=========servlet=======
1、說一說Servlet的生命周期?
a.加載和實例化:創建servlet對象
b.初始化init:建立數據庫連接,初始化參數,從ServletConfig拿
c.服務service:處理業務邏輯
d.銷毀destory:Servlet從服務中被移除時進行銷毀
2、Servlet版本間的不同?
太多不同,我只記得2.5以上的servlet可以多個url映射到同一個servlet
=========jdbc=======
1、連接jdbc的基本流程
a.加載驅動:
Class.forName(driverClass)
b.創建連接:
Connection conn=DriverManager.getConnection(URL, USER, PASSWORD);
c.獲取statement或者prepareStatement:
Statement st=conn.createStatement();
或者
PreparedStatement pst=conn.prepareStatement(sql);
d.執行sql:
ResultSet rs=st.executeQuery("select * from user");
或者
pst.execute();
2、Class.forName的作用?為什么要用?
Class.forName(xxx.xx.xx) 返回的是一個類,Java里面任何class都要裝載在虛擬機上才能運行。這句話就是裝載類用的
A a = (A)Class.forName("pacage.A").newInstance();
這和你A a = new A();是一樣的效果。
最后用最簡單的描述來區分new關鍵字和newInstance()方法的區別:
newInstance: 弱類型。低效率。只能調用無參構造。
new: 強類型。相對高效。能調用任何public構造。
=========xml=======
總結
以上是生活随笔為你收集整理的java同一包protect_Java基础知识 - 欢迎来到夜故事,一个人的故事 - OSCHINA - 中文开源技术交流社区...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java shape用法_Java PS
- 下一篇: JAVA如何在画板加分数_自学了java