本文目錄一覽:
java面試題:酒店預訂!
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println(“是否是會員?y/n”);
String H = input.next();
System.out.println(“請輸入入住日期:”);
System.out.println(“例如2009-03-16”);
String in = input.next();
System.out.println(“請輸離開日期:”);
System.out.println(“例如2009-03-16”);
String out = input.next();
//String in = s.substring(5,15);
//String out = s.substring(15,26);
//System.out.println(in+” “+out);
SimpleDateFormat sdf = new SimpleDateFormat(“yyyy-MM-dd”);
Calendar c1 = Calendar.getInstance();
Calendar c2 = Calendar.getInstance();
try {
c1.setTime(sdf.parse(in));
c2.setTime(sdf.parse(out));
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
long time1 = c1.getTimeInMillis();
long time2 = c2.getTimeInMillis();
long tian = (time2-time1)/(1000*24*3600);
long tian1 = tian;
System.out.println(“tian “+tian);
int week1 = c1.get(Calendar.DAY_OF_WEEK)-1;
//System.out.println(week1);
//int week2 = c2.get(Calendar.DAY_OF_WEEK)-1;
//System.out.println(week2);
int count = 0;
while(tian10){
if(week1 == 6 || week1==0){
count++;
}
if(week1==6){
week1 = 0;
week1–;
}
tian1–;
week1++;
}
System.out.println(“count “+count);
long rujia;
long qitian;
long hanting;
if(H.equals(“y”)){
rujia = (tian-count)*80+count*80;
System.out.println(“tian “+tian);
qitian = (tian-count)*110+count*50;
hanting = (tian-count)*100+count*40;
}else{
rujia = (tian-count)*110+count*90;
qitian = (tian-count)*160+count*60;
hanting = (tian-count)*220+count*150;
}
System.out.println(“tian ” + tian);
System.out.println(“rujia “+rujia);
System.out.println(“hanting “+hanting);
System.out.println(“qitian “+qitian);
if(rujiaqitian rujiahanting){
System.out.println(“如家”);
}else if(qitianrujia qitianhanting){
System.out.println(“七天”);
}else if(hantingrujia hantingqitian){
System.out.println(“漢庭”);
}else if(hanting==rujia || hanting==qitian){
System.out.println(“漢庭”);
}else if(qitian==rujia qitianhanting){
System.out.println(“七天”);
}
}
我沒怎麼測試 自己測測吧 還有一些約束用戶輸入啥的 嚴謹性什麼的
java面試題
Java 把內存劃分成兩種:一種是棧內存,另一種是堆內存。
在函數中定義的一些基本類型的變量和對象的引用變量都在函數的棧內存中分配。
當在一段代碼塊定義一個變量時,Java就在棧中為這個變量分配內存空間,當超過變量的作用域後,Java會自動釋放掉為該變量所分配的內存空間,該內存空間可以立即被另作他用。
堆內存用來存放由new創建的對象和數組。
在堆中分配的內存,由Java虛擬機的自動垃圾回收器來管理。
在堆中產生了一個數組或對象後,還可以在棧中定義一個特殊的變量,讓棧中這個變量的取值等於數組或對象在堆內存中的首地址,棧中的這個變量就成了數組或對象的引用變量。
引用變量就相當於是為數組或對象起的一個名稱,以後就可以在程序中使用棧中的引用變量來訪問堆中的數組或對象。
java中變量在內存中的分配
1、類變量(static修飾的變量):在程序加載時系統就為它在堆中開闢了內存,堆中的內存地址存放於棧以便於高速訪問。靜態變量的生命周期–一直持續到整個”系統”關閉
2、實例變量:當你使用java關鍵字new的時候,系統在堆中開闢並不一定是連續的空間分配給變量(比如說類實例),然後根據零散的堆內存地址,通過哈希算法換算為一長串數字以表徵這個變量在堆中的”物理位置”。 實例變量的生命周期–當實例變量的引用丟失後,將被GC(垃圾回收器)列入可回收“名單”中,但並不是馬上就釋放堆中內存
3、局部變量:局部變量,由聲明在某方法,或某代碼段里(比如for循環),執行到它的時候在棧中開闢內存,當局部變量一但脫離作用域,內存立即釋放
Java基礎面試題都有哪些?
一般面試官都會讓面試者回答哪些Java基礎面試題啊?難不難啊? 針對這一系列的疑問,廣州增城Java培訓學校收集了部分Java基礎面試題與大家分享,希望對各位參加了廣州專業Java培訓的學生,有一定的幫助! 一、Java基礎知識 1.Java有那些基本數據類型,String是不是基本數據類型,他們有何區別。 2.字符串的操作: 寫一個方法,實現字符串的反轉,如:輸入abc,輸出cba 寫一個方法,實現字符串的替換,如:輸入bbbwlirbbb,輸出bbbhhtccc。 3.數據類型之間的轉換 如何將數值型字符轉換為數字(Integer,Double) 如何將數字轉換為字符 如何取小數點前兩位,並四捨五入。 4.日期和時間 如何取得年月日,小時分秒 如何取得從1970年到現在的毫秒數 如何獲取某個日期是當月的最後一天 如何格式化日期 5.數組和集合 6.文件和目錄(I/O)操作 如何列出某個目錄下的所有文件 如何列出某個目錄下的所有子目錄 判斷一個文件或目錄是否存在 如何讀寫文件 7.Java多態的實現(繼承、重載、覆蓋) 8.編碼轉換,怎樣實現將GB2312編碼的字符串轉換為ISO-8859-1編碼的字符串。 9.Java中訪問數據庫的步驟,Statement和PreparedStatement之間的區別。 10.找出下列代碼可能存在的錯誤,並說明原因: 二、JSPServlet技術 1.描述JSP和Servlet的區別、共同點、各自應用的範圍 2.在Web開發中需要處理HTML標記時,應做什麼樣的處理,要篩選那些字符( “”) 3.在JSP中如何讀取客戶端的請求,如何訪問CGI變量,如何確定某個Jsp文件的真實路徑。 4.描述Cookie和Session的作用,區別和各自的應用範圍,Session工作原理。 5.列出Jsp中包含外部文件的方式,兩者有何區別。 6.說明Jsp中errorPage的作用,應用範圍。 7.介紹在Jsp中如何使用JavaBeans。 8.簡單介紹JSP的標記庫 9.Jsp和Servlet中的請求轉發分別如何實現。 三、J2EE相關知識 1.介紹J2EE、J2SE、J2SE的區別。 2.J2EE是一種技術還是一種平台,他提供了那些技術。 3.什麼是Application Server,它有什麼功能和優點。 4.簡單介紹連接池的優點和原理。 5.Web.xml的作用 四、其他 1.Web安全性的考慮(表單驗證、瀏覽器Basic方式的驗證,應用程序的安全性,SSL,代碼考慮) 2.簡單介紹您所了解的MVC。 3.簡單介紹所了解的XML。 4.文檔和編碼規範 5.Java中的分頁、效率考慮。 6.簡單介紹您所了解的structs。 Java面試題收藏: 1.xml在項目中的作用 2.s-EJB 與 e-EJB的區別 3.會話面的作用 4.cmp與bmp的優缺點 5.j2me程序的必需的幾個部分 6.c/s與b/s的區別 7.構建一個connect pool然後再調用它, 8.j2ee平台與dotnet平台的區別 9.ejb的life cycle 10.session bean 和 entity bean的區別 11.ejb中的transaction機制 12.synchronized (生產者和消費) 13.String 和 StringBuffer 14.Serializable 15.MVC (Struts的工作流程) 16.什麼是MDA 17.tcp與udp的區別 18.鏈表與散列表和數組的區別 19.堆和棧的區別 20.ejb的分類及區別 21.你對現在軟件業以及國內軟件業的看法 22.談談java多線程 23.談談文件加密技術 24.軟件開發生命周期 25.路由協議種類及特點 26.java的awt和swing組件的GUI設計的關鍵 27.對於java流的認識 28.簡單描述一下awt與swing區別。 29.簡述java編程中事件處理模式。 30.你編寫過applet嗎?applet的安全權限如何?試列舉java application或者applet中與servlet/jsp通信可以採用的方式。 31.簡述邏輯操作(如|)與條件操作(如||)的區別。
java基礎面試題有哪些?
下面是10道java基礎面試題,後附答案
1.什麼是 Java 虛擬機?為什麼 Java 被稱作是“平台無關的編程語言”?
Java 虛擬機是一個可以執行 Java 字節碼的虛擬機進程。Java 源文件被編譯成能被 Java 虛擬機執行的字節碼文件。
Java 被設計成允許應用程序可以運行在任意的平台,而不需要程序員為每一個平台單獨重寫或者是重新編譯。Java 虛擬機讓這個變為可能,因為它知道底層硬件平台的指令長度和其他特性。
2.“static”關鍵字是什麼意思?Java 中是否可以覆蓋(override)一個 private 或者是static 的方法?
“static”關鍵字表明一個成員變量或者是成員方法可以在沒有所屬的類的實例變量的情況下被訪問。
Java 中 static 方法不能被覆蓋,因為方法覆蓋是基於運行時動態綁定的,而 static 方法是編譯時靜態綁定的。static 方法跟類的任何實例都不相關,所以概念上不適用。
3.JDK 和 JRE 的區別是什麼?
Java 運行時環境(JRE)是將要執行 Java 程序的 Java 虛擬機。它同時也包含了執行 applet 需要的瀏覽器插件。Java 開發工具包 (JDK)是完整的 Java 軟件開發包,包含了 JRE,編譯器和其他的工具(比如:JavaDoc,Java 調試器),可以讓開發者開發、編譯、執行 Java 應用程序。
4.是否可以在 static 環境中訪問非 static 變量?
static 變量在 Java 中是屬於類的,它在所有的實例中的值是一樣的。當類被 Java 虛擬機載入的時候,會對 static 變量進行初始化。如果你的代碼嘗試不用實例來訪問非 static 的變量,編譯器會報錯,因為這些變量還沒有被創建出來,還沒有跟任何實例關聯上。
5.Java 支持的數據類型有哪些?什麼是自動拆裝箱?
Java 語言支持的 8 中基本數據類型是:
byte
short
int
long
float
double
boolean
char
自動裝箱是 Java 編譯器在基本數據類型和對應的對象包裝類型之間做的一個轉化。比如:把 int 轉化成 Integer,double 轉化成 double,等等。反之就是自動拆箱。
6.Java 支持多繼承么?
不支持,Java 不支持多繼承。每個類都只能繼承一個類,但是可以實現多個接口。
7.Java 中,什麼是構造函數?什麼是構造函數重載?什麼是複製構造函數?
當新對象被創建的時候,構造函數會被調用。每一個類都有構造函數。在程序員沒有給類提供構造函數的情況下,Java 編譯器會為這個類創建一個默認的構造函數。
Java 中構造函數重載和方法重載很相似。可以為一個類創建多個構造函數。每一個構造函數必須有它自己唯一的參數列表。
Java 不支持像 C++中那樣的複製構造函數,這個不同點是因為如果你不自己寫構造函數的情況下,Java 不會創建默認的複製構造函數。
8.Java 中的方法覆蓋(Overriding)和方法重載(Overloading)是什麼意思?
Java 中的方法重載發生在同一個類裡面兩個或者是多個方法的方法名相同但是參數不同的情況。與此相對,方法覆蓋是說子類重新定義了父類的方法。方法覆蓋必須有相同的方法名,參數列表和返回類型。覆蓋者可能不會限制它所覆蓋的方法的訪問。
9.接口和抽象類的區別是什麼?
Java 提供和支持創建抽象類和接口。它們的實現有共同點,不同點在於:
接口中所有的方法隱含的都是抽象的。而抽象類則可以同時包含抽象和非抽象的方法。
類可以實現很多個接口,但是只能繼承一個抽象類
類如果要實現一個接口,它必須要實現接口聲明的所有方法。但是,類可以不實現抽象類聲明的所有方法,當然,在這種情況下,類也必須得聲明成是抽象的。
抽象類可以在不提供接口方法實現的情況下實現接口。
Java 接口中聲明的變量默認都是 final 的。抽象類可以包含非 final 的變量。
Java 接口中的成員函數默認是 public 的。抽象類的成員函數可以是 private, protected 或者是 public。
接口是絕對抽象的,不可以被實例化。抽象類也不可以被實例化,但是,如果它包含 main 方法的話是可以被調用的。
10.什麼是值傳遞和引用傳遞?
對象被值傳遞,意味着傳遞了對象的一個副本。因此,就算是改變了對象副本,也不會影響源對象的值。
對象被引用傳遞,意味着傳遞的並不是實際的對象,而是對象的引用。因此,外部對引用對象所做的改變會反映到所有的對象上。
最後祝你面試順利!
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/249047.html