1. 程式人生 > >錯題集錦(二) -- Java專項

錯題集錦(二) -- Java專項

錯題集錦(二) – Java專項

標籤(空格分隔): 找工作

JVM的記憶體模型

執行緒共享:

  • 堆(Heap):主要存放一些物件例項
  • 方法區(Method Area / Non-Heap):用於儲存已被JVM載入的類的資訊、常量、靜態變數等資料。

執行緒自有:

  • 程式計數器(Program Counter Register):當前執行緒所執行的位元組碼的行號指示器。
  • 虛擬機器棧(JVM Stack,也可稱作Java方法棧):主要存放基本資料型別、物件引用、returnAddress型別。
  • 本地方法區(Native Method Stack):主要為Native方法服務。

Servlet與CGI(Common Gateway Interface)的比較

與CGI程式一樣,Servlet可以相應使用者的指令,也可以收集使用者白丹的資訊並給予動態反饋。
1. 呼叫一個CGI程式時,伺服器端就要新啟動一個程序(當用戶訪問量高的時候,就會消耗系統越多的處理時間);而Servlet充分發揮了伺服器端資源並高效的利用,每次呼叫Servlet時並不是新啟用一個程序。
2. CGI程式不具備平臺無關性;而Servlet具備java的平臺無關性,可移植行好;
3. 傳統的技術中,一般為二層的結構:Web伺服器+資料庫伺服器,當網站訪問量大的時候,無法克服CGI程式與資料庫連線時速度慢的瓶頸;而Servlet有執行緒池的概念,可以利用多執行緒的優點,在系統快取中事先建立好若干與資料庫的連線,當需要時只需要要一個連線即可,速度快。

Servlet的生命週期

Servlet的生命週期分為5個階段:載入、建立、初始化、處理客戶請求、解除安裝。

  1. 載入:容器通過類載入器使用Servlet類對應的檔案載入Servlet;
  2. 建立:通過Servlet建構函式建立一個Servlet物件;
  3. 初始化:呼叫init方法進行初始化;
  4. 處理客戶請求:每當有一個客戶請求,容器會建立一個執行緒來處理使用者請求;
  5. 解除安裝:呼叫destroy方法讓Servlet自己釋放其佔用的資源。

Servlet是執行緒不安全的,在Servlet類中可能會定義共享的變數,在併發的多執行緒訪問下,不同的執行緒對成員變數的修改會引發錯誤。

Struts1和Struts2的對比

  1. Action類:
    • Struts1要求Action類繼承一個抽象物件;
    • Struts2的Action類可以實現一個Action介面,也可以實現其他介面;
  2. Servlet依賴:
    • Struts1 Action依賴於Servlet API;
    • Struts2 Action不依賴於容器,允許Action脫離容器單獨被測試;
  3. 執行緒模式:
    • Struts1 Action是單例模式並且必須是執行緒安全的;(單例的)
    • Struts2 Action物件為每一個請求產生一個例項,因此沒有執行緒安全問題。(多例的)

AWT與Swing

  • AWT:是通過呼叫作業系統的native方法實現的,所以在Window系統上的AWT就是Windows風格,在Linux系統上的AWT就是XWindows風格;
  • Swing:是通過Lightweight元件,不是通過native方法實現的,所以Swing的視窗風格更加多樣化。

forward和redirect

redirect:請求重定向。客戶端行為,本質上為2次請求,位址列改變,前一次請求物件消失。
forward:請求轉發。伺服器行為,位址列不變。

new

JVM中一個位元組以下的整形資料會在JVM啟動的時候載入進記憶體。除非用new Integer()顯式的建立物件,否則都是同一個物件。
基本資料型別int,double等比較的時候比較的是數值。

JVM配置引數含義

  • -Xmx:最大堆大小;
  • -Xms:初始堆大小;
  • -Xmn:年輕代大小;
  • -XXsurvivorRatio:年輕代中Eden區與Survivor區的大小比值;

相關推薦

集錦 -- Java專項

錯題集錦(二) – Java專項 標籤(空格分隔): 找工作 JVM的記憶體模型 執行緒共享: 堆(Heap):主要存放一些物件例項 方法區(Method Area / Non-Heap):用於儲存已被JVM載入的類的資訊、常量、靜態變數等

java選擇題集錦持續更新

關於以下application,說法正確是什麼? public class Test { static int x=10; static {x+=5;} public static void main(String[] args) //4 { System.out.pri

Java練習十

Java練習十題集(二) 1.程式設計輸出以下格式的資料。 When i=0 1 When i=1 7   8   9 6   1   2 5   4   3 Whe

Java工程師常見面試題集錦網際網路人必看!附答案及視訊教程,持續更新

大牛也怕面試題,尤其是基礎題,在面試中如果出現一兩題回答不準確很有可能你就被拒之門外了。CSDN學院年終傾情奉獻,海量面試題(附答案)免費分享,幫助大家順利過關。 本週繼續更新10道面試題。 Java工程師常見面試題集錦(一)網際網路人必看! https://blog.csdn

java面試題集錦

面向物件部分(二) 上一篇 1、什麼是多型.  多型是面向物件的重要特性,簡單點說:“一個介面,多種實現”,就是同一種事物表現出的多種形態。 程式設計其實就是一個將具體世界進行抽象化的過程,多型就是抽象化的一種體現,把一系列具體事物的共同點抽象出來, 再

Java面試技巧:Java面試題集錦

2.1 HashMap和Hashtable的區別。   HashMap是Hashtable的輕量級實現(非執行緒安全的實現),他們都完成了Map介面,主要區別在於HashMap允許空(null)鍵值(key),由於非執行緒安全,效率上可能高於Hashtable.   

劍指Offer-53Java:0到n-1中缺失的數字

參考自:《劍指Offer——名企面試官精講典型程式設計題》 題目:0到n-1中缺失的數字 一個長度為n-1的遞增排序陣列中的所有數字都是唯一的,並且每個數字都在範圍0到n-1之內。在範圍0到n-1的

Java學習筆記---java 修飾符

技術 外部類 blog 訪問權限 定義 log 發生 繼承 指向 一、java 修飾符 Java語言提供了很多修飾符,主要分為以下兩類: 訪問修飾符 非訪問修飾符 1、訪問控制修飾符 Java中,可以使用訪問控制符來保護對類、變量、方法和構造方法的訪問。Javav支持

Java數組的使用

align als 使用 gpo out let 有序數組 return height Java數組   無序數組插入刪除查詢操作: public class ArrayList { private static int[] intArray; priv

java集合框架綜述

args 目的 res arraylist 意義 lec 多少 多條 無序集合 一集合框架圖 說明:對於以上的框架圖有如下幾點說明 1.所有集合類都位於java.util包下。Java的集合類主要由兩個接口派生而出:Collection和Map,Colle

JavaSE學習總結——Java語言基礎

默認 ase oid 64位 pac 交互 log 類型 blank 目錄 一、Java程序預覽 1.1、Hello World 1.2、Eclipse使用 1.2.1、項目位置 1.2.2、重置窗口布局 1.2.3、設置字體 1.2.4、修改控制臺字體 1.2.4

MongoDB學習之java連接

代碼 core UC mongo bte 就是 ava jar包 lan 上一章完了下mongodb的安裝和IDE工具,現在開始使用java進行連接。 第一步:使用jar包, 這裏需要三個包,具體為啥我也不清楚,反正因為報錯,我就按照官方文檔一個個的都下載了。 鏈接:htt

ElasticSearch6-- Java API連接es

RR work monitor 才會 你會 art 端口 有用 erro 此ElasticSearch系列基於最新版的6.2.4版本。 一、pom.xml依賴 <dependencies> <dependency>

SSM集成activiti6.0錯誤集錦

build eid ava maven構建 foreach PC mybatis date 映射文件 項目環境 Maven構建 數據庫:Orcle12c 服務器:Tomcat9 <java.version>1.8</java.version> &l

AD 域服務簡介- Java 獲取 AD 域用戶

set env red smo 關系數據庫 sign exception ini 性能 博客地址:http://www.moonxy.com 一、前言 先簡單簡單回顧上一篇博文中關於 AD 域和 LDAP目錄訪問協議的基本概念。 AD(Active Directory)活

[初賽備戰]計算機基礎知識1

成功 文本 知識 重裝 占用 其中 nbsp 系統盤 疑問 這裏整理一些錯題,太sb的題就沒放上來了,有些題還有疑問,求大佬解答,然後解析都是來自網絡(wiki和百度百科),無法保證正確性。 在微機中,通用寄存器的位數是() A.8 位 B.16 位

Java開發筆記Java工程的帝國區劃

頂部 圖片 最有 屬於 聚集地 合格 ext info 主界面 上一篇文章介紹了如何運行了第一個Java程序“Hello World”。然而這個開發環境看起來那麽陌生,一個個名字符號完全不知道它們是幹啥的呀,對於初學者來說,好比天書一般,多看幾眼感覺都要走火入魔了。因此接下

Java集合專題-詳細分析HashtableJDK1.8集合底層實現的思想

(一)詳細分析Hashtable1.8集合底層實現的思路和原始碼 (1)先來看一下Hashtable的結構圖:首先他和HashMap結構都是一樣的,都是由陣列和連結串列進行實現的(在JDK1.8是用陣列和連結串列和紅黑樹的),每一個數組裡面存的是一個Entry節點,節點裡面有Key、

Java編譯 Java前端編譯:Java原始碼編譯成Class檔案的過程

Java編譯(二)Java前端編譯: Java原始碼編譯成Class檔案的過程               在上篇文章《Java三種編譯方式:前端編

LeetCode刷記錄

LeetCode刷題記錄(二) 繼續陣列和字串卡片的題目,這一篇主要介紹一道二維陣列相關的題目。 1、對角線遍歷 題目: 我的思路: 這一題我的思路比較複雜,我先觀察幾種型別的二維陣列 1、 M=N型別的二維陣列,例如: [1, 2, 3]