導航:首頁 > 面試求職 > java面試基礎題

java面試基礎題

發布時間:2021-01-27 06:38:18

❶ Java面試常見基礎問題有哪些

考的都是java的基礎,基礎好的話很容易進入公司,一般都會問
String,StringBuffer,StringBudilder區別
ArrayList,vector 等的區別
hashMap,hashTable 的區別
多線程版的實現方式和方法了權
傳參數方面的 考傳的是本身還是副本 如 a(String value); a方法的value參數是傳本身還是副本
其它的問題都是最基本的,基本能答上來
還有就是框架的知識了,比如spring 依賴注入,事務深入點的話 攔截器等
考其它框架的話 基本上問的都是比較基礎的 難的話很少問到
db方面的話 簡單考下你的sql , 可能會寫幾個表 要查什麼讓你寫sql 主要考 多表連接查詢,分組,分組後的查詢,排序,取最大最小之類的 看你sql熟練否
我面試過10多間公司 基本都是上面我說到的問題

❷ java面試/筆試題

1.JSP、Servlet、JavaBean技術的出現給我們構建強大的企業應用系統提供了可能。但用這些技術構建的系統非常的繁亂,所以在此之上,我們需要一個規則、一個把這些技術組織起來的規則,這就是框架,Struts便應運而生。
經過長達五年的發展,Struts已經逐漸成長為一個穩定、成熟的框架,並且佔有了MVC框架中最大的市場份額。但是Struts某些技術特性上已經落後於新興的MVC框架。面對Spring MVC、Webwork2 這些設計更精密,擴展性更強的框架,Struts受到了前所未有的挑戰。但站在產品開發的角度而言,Struts仍然是最穩妥的選擇。
Struts2.0為其它框架提供了更好的集成。
使得與Spring的集成非常的容易。

2.Struts的工作流程:

在web應用啟動時就會載入初始化ActionServlet,ActionServlet從

struts-config.xml文件中讀取配置信息,把它們存放到各種配置對象

當ActionServlet接收到一個客戶請求時,將執行如下流程.

-(1)檢索和用戶請求匹配的ActionMapping實例,如果不存在,就返回請求路徑無效信息;

-(2)如果ActionForm實例不存在,就創建一個ActionForm對象,把客戶提交的表單數據保存到ActionForm對象中;

-(3)根據配置信息決定是否需要表單驗證.如果需要驗證,就調用ActionForm的validate()方法;

-(4)如果ActionForm的validate()方法返回null或返回一個不包含ActionMessage的ActuibErrors對象,就表示表單驗證成功;

-(5)ActionServlet根據ActionMapping所包含的映射信息決定將請求轉發給哪個Action,如果相應的Action實例不存在,就先創建這個實例,然後調用Action的execute()方法;

-(6)Action的execute()方法返回一個ActionForward對象,ActionServlet在把客戶請求轉發給ActionForward對象指向的JSP組件;

-(7)ActionForward對象指向JSP組件生成動態網頁,返回給客戶;

3.在struts配置文件中配置具體的錯誤提示,再在FormBean中的validate()方法具體調用。

4.(1) 對JDBC訪問資料庫的代碼做了封裝,大大簡化了數據訪問層繁瑣的重復性代碼。

(2) Hibernate是一個基於JDBC的主流持久化框架,是一個優秀的ORM實現。他很大程度的簡化DAO層的編碼工作

(3)hibernate使用Java反射機制,而不是位元組碼增強程序來實現透明性。

(4)hibernate的性能非常好,因為它是個輕量級框架。映射的靈活性很出色。它支持各種關系資料庫,從一對一到多對多的各種復雜關系。

5.原理:

(1).讀取並解析配置文件

(2).讀取並解析映射信息,創建SessionFactory

(3).打開Sesssion

(4).創建事務Transation

(5).持久化操作

(6).提交事務

(7).關閉Session

(8).關閉SesstionFactory

6.

Hibernate的最大的好處就是簡化資料庫的操作,允許你的代碼以對象模式來訪問資料庫內容,
比如通常我們找一個User的資料需要select出所需要的資料,而通過hibnate我們可以把這個User的資料作為一個對象來看待
,通過User.getName()或者User.getId()等操作來獲得,這樣就完全統一了上層JAVA或者C#等OO語言中對於資料庫的非OO操作的不和諧了.
另外對於復雜的表和表之間的關聯我們也不用去使用復雜的Select等SQL來操作,而使用對象可以方便獲得,
比如多對多關系某用戶屬於的部門的名稱,雖然底層資料庫使用了3個表的主鍵關聯操作,
但是我們可以通過User.getDep().getName()來簡單的獲得,這個就是持久化對象的好處了

7.
(1)、spring能簡化企業級開發, spring可以用簡單的java bean來代替實現復雜的EJB。(大部分情況下)
(2)、spring是一個輕量級的IOC和AOP框架,可以spring的IOC實現松耦合,而作為一個AOP框架他又能分離系統服務,實現內聚開發
(3)、spring是非侵入式,基於spring的系統可以不依賴於spring的類。

良好的spring運用可以使程序代碼清晰,容易維護,容易測試。

8.
Spring是個很不錯的框架。內部最核心的就是IOC了,
動態注入,讓一個對象的創建不用new了,可以自動的生產,這其實就是利用java里的反射
反射其實就是在運行時動態的去創建、調用對象,Spring就是在運行時,跟xml Spring的配置
文件來動態的創建對象,和調用對象里的方法的 。
Spring還有一個核心就是AOP這個就是面向切面編程,可以為某一類對象 進行監督和控制(也就是
在調用這類對象的具體方法的前後去調用你指定的 模塊)從而達到對一個模塊擴充的功能。這些都是通過
配置類達到的。
Spring目的:就是讓對象與對象(模塊與模塊)之間的關系沒有通過代碼來關聯,都是通過配置類說明
管理的(Spring根據這些配置 內部通過反射去動態的組裝對象)
要記住:Spring是一個容器,凡是在容器里的對象才會有Spring所提供的這些服務和功能。
Spring里用的最經典的一個設計模式就是:模板方法模式。(這里我都不介紹了,是一個很常用的設計模式)
Spring里的配置是很多的,很難都記住,但是Spring里的精華也無非就是以上的兩點,把以上兩點跟理解了
也就基本上掌握了Spring.

9.
(1).spring mvc請所有的請求都提交給DispatcherServlet,它會委託應用系統的其他模塊負責負責對請求進行真正的處理工作。

(2).DispatcherServlet查詢一個或多個HandlerMapping,找到處理請求的Controller.

(3).DispatcherServlet請請求提交到目標Controller

(4).Controller進行業務邏輯處理後,會返回一個ModelAndView

(5).Dispathcher查詢一個或多個ViewResolver視圖解析器,找到ModelAndView對象指定的視圖對象

(6).視圖對象負責渲染返回給客戶端。

❸ 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.什麼是值傳遞和引用傳遞?

對象被值傳遞,意味著傳遞了對象的一個副本。因此,就算是改變了對象副本,也不會影響源對象的值。

對象被引用傳遞,意味著傳遞的並不是實際的對象,而是對象的引用。因此,外部對引用對象所做的改變會反映到所有的對象上。

最後祝你面試順利!

❹ Java面試題-基礎+集合原理(一)

—、面向抄對象的特徵
面向對象的三個基本特徵是:封裝、繼承、多態。
1、封裝
封裝最好理解了。封裝是面向對象的特徵之一,是對象和類概念的主要特性。 封裝,也就是把客觀事物封裝成抽象的類,並且類可以把自己的數據和方法只讓 可信的類或者對象操作,對不可信的進行信息隱藏。
2、繼承
面向對象編程(OOP)語言的一個主要功能就是「繼承」。繼承是指這樣一種能力: 它可以使用現有類的所有功能,並在無需重新編寫原來的類的情況下對這些功能 進行擴展。
3、多態
多態性(polymorphism是允許你將父對象設置成為和一個或更多的他的子對象 相等的技術,賦值之後,父對象就可以根據當前賦值給它的子對象的特性以不同 的方式運作。簡單的說,就是一句話:允許將子類類型的指針賦值給父類類型的 指針。

實現多態,有二種方式,重寫,重載。

詳見如下:網頁鏈接

❺ 一般java面試都會問些什麼問題

在回答之前建議你去蛙 課上看看,有很多Java面試時會考到的技術視頻教程,而且每周都會更新一個一線大廠的技術。
1.hashmap0.75是什麼?構造函數怎麼傳?線程安全么,不安全會導致什麼問題?
2.arraylist和linkedlist區別,arraylist構造函數有什麼用,不傳入會導致什麼問題?同時還是問線程安全么?
3.collections下面的同步方法和concurrent包下的有什麼區別?
4.創建線程的三種方式和區別,線程池的構造函數,給定n核cpu,io密集怎麼創建線程池,cpu密集怎麼創建線程池?
5.jvm有哪些區?cms gc原理,逃逸分析和標量替換是什麼?做過哪些調優,用了什麼參數?解決過什麼內存泄露或者堆棧溢出問題么?用什麼工具或者手段監控並解決?
6.spring restcontroller和controller區別是什麼?autowired和resource 區別是什麼?beanfactory和factorybean區別是什麼?
7.mybaties的#{}和${}有什麼區別?同時引出preparedstatement和statement有什麼區別?
8.http怎麼開啟長連接?緩存怎麼實現?
9.描述tcp四次揮手流程和狀態
10.mysql常用優化手段,一個欄位如果只有0或1需要加索引么?如果還有另外一個欄位經常被查詢,這倆欄位做什麼索引?最左前綴原則是什麼?如何避免回表?如何實現樂觀鎖?事務隔離級別都有什麼?
11.linux最尾部活動查看實時日誌用什麼命令?如何查看進程並結束?
12.描述epoll和select原理和差距
13.git merge和rebase區別?cherry-pick是什麼?
14.你項目里寫什麼了,就會問其中實現部分的方案和設計思路,也問技術點。

❻ 我要面試了,給些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.找出下列代碼可能存在的錯誤,並說明原因:

二、JSP&Servlet技術
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。
.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.簡述邏輯操作(如&,|)與條件操作(如&&,||)的區別。
32.簡述 Java Server Page 和 Servlet 的聯系和區別。
33.簡述synchronized和java.util.concurrent.locks.Lock的異同 ?
34.EJB規范規定EJB中禁止的操作有哪些?
35.java除了8種基本類型外,在虛擬機里還有哪一種,有什麼作用?
36.除了使用new關鍵字創建對象意外,試列舉另外三種以上創建實例的方式?
37.classloader中,JDK的API、Classpath中的同web-inf中的class載入方式有什麼區別?
38.列舉三種以上垃圾回收演算法,並比較其優缺點?
39.編寫代碼實現一個線程池

40.描述一下JVM載入class文件的原理機制?
41.試舉例說明一個典型的垃圾回收演算法?
42.請用java寫二叉樹演算法,實現添加數據形成二叉樹功能,並以先序的方式列印出來.
43.請寫一個java程序實現線程連接池功能?
44.給定一個C語言函數,要求實現在java類中進行調用。

45.如何獲得數組的長度?
46.訪問修飾符「public/private/protected/預設的修飾符」的使用
47.用關鍵字final修飾一個類或者方法時,有何意義?
48.掌握類和對象的概念,掌握面向對象編程的本質
49.靜態變數和靜態方法的意義,如何引用一個類的靜態變數或者靜態方法?
50.JAVA語言如何進行異常處理,關鍵字:thorws,throw,try,catch,finally
51.Object類(或者其子類)的finalize()方法在什麼情況下被調用?
52.一個「.java」原文件中是否可以包括多個類(不是內部類)?
53.掌握內部類和介面的概念
54.StringTokenizer類的使用
55.數據結構,如何遍歷List中的元素?
如果要按照鍵值保存或者訪問數據,使用什麼數據結構?
要掌握Collection相關的介面和類的使用
56.使用StringBuffer類與String類進行字元串連接時有何區別?
57.調用Thread類的destroy()方法有什麼後果?
58.多線程,用什麼關鍵字修飾同步方法?stop()和suspend()方法為何不推薦使用?
59.使用socket建立客戶端與伺服器的通信的過程
60.JAVA語言國際化應用,Locale類,Unicode
61.描述反射機制的作用
62.如何讀寫一個文件?
63.在圖形界面中,一個按鈕如何處理滑鼠點擊事件?
64.在圖形界面中,一個表格,如何實現編輯單元格時彈出下拉框?
65.如何載入圖片?
66.什麼是模態對話框?
67.闡述MVC的概念
68.GUI布局管理器的使用,FlowLayout,BorderLayout,GridBagLayout
69.如何構造一棵樹?選擇樹的一個節點時,如何得到這個節點?
70.向編輯框中輸入字元時,如何控制只輸入整數?
71.描述使用JDBC連接資料庫的過程
72.EJB分為幾類?什麼是BMP,CMP?
73.什麼是JNDI?

74.ADO是什麼?ActiveX數據對象,是一個應用級程序介面.
75.四種JDBC方式?目前的版本?
76.EJB有哪幾種?區別是什麼?
77.JavaBean與EJB有什麼區別?
78.軟體開發生命周期有哪幾個階段?
79.軟體開發有哪些因素?
80.軟體開發中如何進行版本控制?
81.UML中,類視圖如何表示類中的繼承與聚合?
82.客戶端游標與伺服器端游標的區別?
83.動態游標與靜態游標的區別?
84.dotnet由哪幾個基本框架組成?
85.Oracle中SGA是什麼?
86.web servers是什麼?
87.UNIX中QT是什麼意思?
88.在軟體開發生命周期中的哪個階段開始測試?
89.dotnet與J2EE的比較?
90.什麼是ActiveX?
91.Java中IDL是什麼?
92.ISO9000和CMM是什麼?IS09000和CMM(軟體能力成熟度模型)認證是國際上通用的軟體質量評估方法.CMM的五個成熟度等級。

閱讀全文

與java面試基礎題相關的資料

熱點內容
晉升考核自我評價 瀏覽:480
職場新人自我介紹日語 瀏覽:700
職攜求職公寓 瀏覽:354
醉駕人找工作 瀏覽:973
百度廈門六中藝術特長報名表 瀏覽:868
勁霸經編面試 瀏覽:364
小孩綜合素質自我評價 瀏覽:470
玉環學校洗碗招聘信息 瀏覽:15
教師教育自我評價 瀏覽:192
2014合肥168中學特長生音樂錄取名單 瀏覽:478
應屆生面試自我介紹範文3分鍾 瀏覽:800
丹陽人才招聘網 瀏覽:72
生物學科特長怎麼寫 瀏覽:250
昌碩面試後多久通知 瀏覽:925
陝西省鐵餅特長生 瀏覽:751
碩展科技有限公司招聘 瀏覽:346
2019年南陽卷煙廠招聘信息 瀏覽:461
時尚招聘信息 瀏覽:341
安吉潔美電子招聘信息 瀏覽:106
個人簡歷問候語 瀏覽:924