java 筆試題

JAVA-2003筆試題
一、選擇題(每小題2,共10分)

  1. 下列語句序列執行后,m 的值是( C )
    int a=10, b=3, m=5;
    if( a==b ) m+=a; else m=++a*m;
    A.15 B.50 C.55 D.5
  2. 若已定義byte[]x={11,22,33,-66}其中0≤k≤3,則對x數組元素錯誤的引用是( C )
    A x[3-k] B x[k] C x[k+1] D x[0]
  3. 下列程序片段運行的結果是( D )
    int a = 36; int b = (a++)%5; System.out.println(“a=”+a+",b="+b);
    A a=36,b=0 B a=37,b=2 C a=36,b=1 D a=37,b=1
    4、下列關于二維數組a的結論,正確的是( C )
    int[][] a= {{1,2,3},{4,5,6,7},{8,9},{10,11,12,13,14,15}};
    A. a[3][2]為9 B. a[2].length為4 C. a.length為4 D. a[1]為4
    5、設 x = 1 , y = 2 , z = 3,則表達式 y+=z--/++x 的值是( A )
    A. 3 B. 3. 5 C. 4 D. 5

二、填空題(每題2分,共計20分):

  1. Linux常用文件的命令是(6個): cp cd pwd mkdir ll ls mv touch rm
    2、Spring事務注解@Transactional可以作用在 類 類方法 接口 接口方法
    3、加密主要分為 對稱加密 非對稱加密 單向加密
    4、常用的加密算法是(說2個): MD5 BASE64 SHA HMAC
    5、鹽值加密概念: 通過加入一些隨機數進行加密的方式叫做鹽值加密
    6、try{}里有一個return語句,在try后的finally里的code什么時候執行,return前還是return后: return 前
    7、jdk8中ArrayList初始化容量是 0 進行add方法添加后的大小是 10
    8、LinkedList初始化大小是 0 原因: LinkedList 是一個雙向鏈表,沒有初始化大小,也沒有擴容機制,就是一直在前面或者后面新增就好了
    9、HashMap初始化容量是 0 進行put方法添加后的大小是 16
    10、@ResponseBody注解描述: 主要用于返回json 字符串

三、閱讀程序寫結果(每小題5,共15分)
1、閱讀以下程序,補充代碼完成功能(用冒泡排序完成數據降序排序)
public static void main(String[] args) {
int score[] = {67, 69, 75, 87, 89, 90, 99, 100};
for (int i = 0; i < arr.length - 1; i++) {
for (int j = 0; j < arr.length - 1 - i; j++) {
//降序
if (arr[j] < arr[j + 1]){
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
System.out.print("[");
for (int k = 0; k < arr.length; k++) {
if(k == arr.length - 1) {
System.out.print(arr[k] + “]”);
}else {
System.out.print(arr[k] + “,”);
}
}
}

2、閱讀代碼(輸出打印結果)

輸出結果是(5分):
2
4
1
3

輸出結果是(5分):

8

11

7

6

10

9

四、簡答題(每題2分,共30分)
1、序列化ID有什么用,為什么要進行序列化操作?

作用:這個序列化ID起著關鍵的作用,它決定著是否能夠成功反序列化!簡單來說,java的序列化機

制是通過在運行時判斷類的serialVersionUID來驗證版本一致性的。在進行反序列化時,JVM會把傳來

的字節流中的serialVersionUID與本地實體類中的serialVersionUID進行比較,如果相同則認為是一

致的,便可以進行反序列化,否則就會報序列化版本不一致的異常。

因為:序列化采用數據流來存儲,以數據流傳輸會提高網絡的傳輸速度,并且可以直接對數據流進行操

作,從而減少了對數據表的操作過程,減少數據出錯的幾率。

好處:數據操作規范類似于xml文件,保證數據的一致性和安全性。

2、Object類包含哪些方法?(至少5個)

(1)clone方法:保護方法,實現對象的淺克隆。

(2)getClass方法:獲得運行時的類型。

(3)toString方法:該方法用的比較多,一般子類都有覆蓋。

(4)equals方法:一般equals和 == 是不一樣的,但是在 Object 中兩者是一樣的。

(5)hashCode方法:該方法用于哈希查找,可以減少在查找中使用 equals 的次數,重寫了 equals 方

法一般都要重寫 hashCode 方法。

3、請描述String為什么用final修飾?

因為 String 類不能被繼承,不會被修改,并且在程序中出現的頻率比較高,所以使用 final 修飾

String 便于提高安全性和效率。

4、Java類為什么是單繼承的?

因為如果提供多繼承的話可能會出現錯誤,例如:一個類繼承了兩個父類,而兩個父類中有相同的方法,

那么子類的調用結果就會含糊不清,出現錯誤,所以java 類是單繼承的。
5、Maven有哪些優點和缺點(各至少3點)?
優點:(1)簡化了項目依賴管理。
(2)易于上手,便于滿足工作要求。
(3)有助于多模塊項目的開發。
缺點:(1)學習難度大。
(2)出現問題難以調試。
(3)當依賴很多時,程序會出現卡頓的情況。

6、描述HashMap底層實現原理?

(1)JDK1.7:數組 + 鏈表。

(2)JDK1.8:數組 + 鏈表 + 紅黑樹。

7、ThreadLocal、synchronized 和 Lock 有什么區別?有哪些使用場景?

(1)ThreadLocal 為解決多線程程序的并發問題提供了一種新思路,使用這個工具類可以更簡潔

地編寫出優美的多線程程序。應用場景主要是用來解決數據庫連接,Session 管理等。

(2)Lock 有比 synchronized 更精確的線程語義和更好的性能,synchronized 會自動釋放鎖,而Lock

卻要求程序員手工釋放,而且必須在 finally 語句中釋放。

(3)synchronized 無法判斷鎖的狀態,而 Lock 可以判斷鎖的狀態度。

8、HashMap和ConcurrentHashMap、LinkedHashMap的區別?

(1)HashMap 不保證順序,即為無序的,具有很快的訪問速度,HashMap 最多只允許一條記錄的鍵為

Null,允許多條記錄的值為 Null,HashMap 不支持線程的同步,是線程不安全的。

(2)LinkedHashMap 是繼承于 HashMap,是基于 HashMap 和雙向鏈表來實現的, LinkedHashhMap 是

有序的, 它可以保證 HashMap 集合有序,存入的順序和取出的順序一致,是線程不安全的。

(3)ConcurrentHashMap是基于分段鎖設計來實現線程安全性,只有在同一個分段內才存在競爭關系,

不同的分段鎖之間沒有鎖競爭,是線程安全的。

9、TCP 為什么要三次握手,兩次不行嗎?為什么?

兩次不行,因為三次握手可以有效地防止已失效的連接請求會再次傳送到服務器端,因而會產生錯誤。

10、描述下@Resource和@Autowired、@Qualifier注解區別?
(1)@Resource:Spring 的注解,默認按名稱 name 注入,如果沒有找到相同名稱的 Bean,則會按照
類型進行匹配,同時還可以通過名稱 name 和類型 type 屬性進行選擇性注入。
(2)@Autowired:Spring 的注解,默認按類型 type 注入。
(3)@Qualifier:Spring 的注解,按名稱 name 注入。

11、url中 ? 和 # 的區別?

(1)?代表查詢字符串(query)。

(2)# 代表url中的hash(fragment)。

12、MyBatis中 #{} 和 KaTeX parse error: Expected 'EOF', got '#' at position 12: {} 的區別? (1)#?{} 是預編譯處理,{} 是字符串替換。
(2)使用 #{} 可以有效地防止 SQL 注入,提高系統的安全性。
(3)MyBatis 在處理 #{} 時,會把 SQL 中的 #{} 替換為 ? 號,并使用 PreparedStatement 的 set
方法來賦值,而MyBatis 在處理 ${} 時,會把 ${} 替換成變量的值。

13、描述Spring/MyBatis所用設計模式(各至少2個)

兩者都有單例模式、工廠模式、代理模式。

14、寫出Jquery ajax語法?

$.ajax({
     url:‘地址’,
     data:{
     參數:xxx,
     參數:xxx
     },
     type:‘POST/GET’,
     success:function(str){ //成功回調函數
     alert(str);
     },
     error:function (err){ //失敗回調函數
     alert(err);
     }
   });

15、描述你熟悉的設計模式(除單例、工廠以外,是什么、作用是什么)?
(1)代理模式:Mybatis 實現的核心,比如 MapperProxy、ConnectionLogger。為其他對象提供一個
代理以便控制這個對象的訪問。
(2)Builder 模式 :例如 SqlSessionFactoryBuilder、XMLConfigBuilder、XMLMapperBuilder、
XMLStatementBuilder、CacheBuilder。
(3)適配器模式:將一個類的方法接口轉換成客戶希望的另外一個接口。

四、描述題(每題5分。共計25分)
1、如果某段業務與數據庫交互的程序運行較慢你將如何處理(說出你的解決方案 至少3點)

2、描述你所知道的JAVA開發中常用的代碼優化方案(至少3點)

4、描述你所知道的WEB安全漏洞,并給出解決方案(至少3點)

4、如何設計出優秀的數據庫表結構(擴展、查詢性能等方面考慮)

5、項目中高并發是不可避免的,自我總結從哪幾點出發,解決高并發(至少3點)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/450388.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/450388.shtml
英文地址,請注明出處:http://en.pswp.cn/news/450388.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

objectdatasouce的溫故

在做ecxel的時候&#xff0c;需要前臺做一個聯動的效果。 記錄一下這個數據源的用法&#xff0c;大學時候用的&#xff0c;忘得差不多了 首先就是往頁面拖拽一個objectdatasouce的控件 然后配置數據源&#xff1a; 選擇業務對象(其實就是選擇你要用的哪個類&#xff0c;如果下拉…

都會五星回評,歡迎留下地址-博客之星

歡迎五星回評地址https://bbs.csdn.net/topics/603961857

jQuery核心

jQuery(selector) jQuery 的核心功能都是通過這個函數實現的。 jQuery中的一切都基于這個函數&#xff0c;或者說都是在以某種方式使用這個函數。這個函數最基本的用法就是向它傳遞一個表達式&#xff08;通常由 CSS 選擇器組成&#xff09;&#xff0c;然后根據這個表達式來查…

Feign api調用方式

Feign使用簡介 基本用法 基本的使用如下所示&#xff0c;一個對于canonical Retrofit sample的適配。 interface GitHub {// RequestLine注解聲明請求方法和請求地址,可以允許有查詢參數RequestLine("GET /repos/{owner}/{repo}/contributors")List<Contributor&g…

預處理

C語言##預算符 和#運算符一樣&#xff0c;##運算符可以用于宏函數的替換部分。這個運算符把兩個語言符號組合成單個語言符號。看例子&#xff1a;#define XNAME(n) x ## n如果這樣使用宏&#xff1a;XNAME(8)則會被展開成這樣&#xff1a;x8看明白了沒&#xff1f; ##就是個粘合…

Lambda表達式使用2

1.概述    本篇主要介紹lambda中常用的收集器&#xff0c;收集器的作用就是從數據流中生成需要的數據接口。    最常用的就是Collectors.toList()&#xff0c;只要將它傳遞給collect()函數&#xff0c;就能夠使用它了。    在我們使用收集器的時候經常會用到“方法…

notepad++ 使用去掉自動檢查紅線

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 notepad新升級了之后就有自動判斷的紅線&#xff0c;單詞拼錯了就給提示&#xff0c;看著這紅線實在難受 在 菜單選項&#xff1a;[插件…

cAdvisor+InfluxDB+Grafana 監控Docker

容器的監控方案其實有很多&#xff0c;有docker自身的docker stats命令、有Scout、有Data Dog等等&#xff0c;本文主要和大家分享一下比較經典的容器開源監控方案組合&#xff1a;cAdvisorInfluxDBGrafan 一、概念 1). InfluxDB是什么nfluxDB是用GO語言編寫的一個開源分布式時…

C語言return關鍵字

return 用來終止一個函數并返回其后面跟著的值。return &#xff08;Val&#xff09;&#xff1b;//此括號可以省略。但一般不省略&#xff0c;尤其在返回一個表達式的值時。return 可以返回些什么東西呢&#xff1f;看下面例子&#xff1a;char * Func(void){char str[30];…r…

win7旗艦版怎么降級到專業版

一、操作準備及注意事項 1、UltraISO光盤制作工具9.5 2、備份C盤及桌面文件 二、win7旗艦版改成專業版的步驟 1、當前系統為Win7 SP1 64位旗艦版&#xff1b; 2、按WinR打開運行&#xff0c;輸入regedit打開注冊表編輯器&#xff0c;定位到HKEY_LOCAL_MACHINE\Software\Microso…

JPA criteria 查詢:類型安全與面向對象

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 JPA的標準查詢,名為:JPA criteria查詢. 相比JPQL,其優勢是類型安全,更加的面向對象.使用標準查詢,開發人員可在編譯的時候就檢查 查詢的…

Algs4-1.4.18數組的局部最小元素

1.4.18數組的局部最小元素。編寫一個程序&#xff0c;給定一個含有N個不同整數的數組&#xff0c;找到一個局部最小元素:滿足a[i]<a[i-1],且a[i]<a[i1]的索引i。程序在最壞情況下所需的比較次數為~2lgN。答&#xff1a;檢查數組的中間值a[N/2]以及和它相鄰的元素a[N/2-1]…

編程技能和做員工的技能——哪個更重要?

摘要&#xff1a;不管我們程序員如何認識這個問題&#xff0c;如果你想在給別人編程打工中獲得事業成功&#xff0c;編程技能不是第一重要的。學會如何做一個好的員工才是重要的&#xff0c;甚至是非常重要的。從最最基本的層面上講&#xff0c;每個員工都應該為最求兩種基本的…

nginx-exporter安裝使用

一、沒有vts的啟動方式 #nginx_exporter -telemetry.address:9113 -nginx.scrape_uri"http://127.0.0.1:10000/nginx_statusnginx_exporter -telemetry.address:9113 -nginx.scrape_uri"https://xx.xx.xx.xx:18443" -insecure #端口9113應該是nginx_exporter監…

spring data jpa 的 in 查詢 Specification 實現

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 只是一個簡單需求&#xff1a; 查詢所有部門id 屬于 idList 的數據 Page<WorkWeight> page workWeightRepository.findAll(new…

在移動互聯網上賺錢,行不行

移動互聯網已被證實是互聯網產業發展的大趨勢。不過&#xff0c;究竟如何賺錢&#xff0c;對海外企業與中國企業來說都是難題。本月初&#xff0c;幾位業界大佬與風投來了一番討論&#xff0c;議題還是一個“在移動互聯網上賺錢&#xff0c;行還是不行”。 百度試圖通過用戶習慣…

計算機網絡知識簡單介紹

一、網絡基礎 1.網絡指的是什么&#xff1f; 計算機與計算機之間通過物理鏈接介質&#xff08;網絡設備&#xff09;連接到一起。 計算機與計算機之間基于網絡協議通信&#xff08;網絡協議就相當于計算機界的英語&#xff09; 2.osi七層協議&#xff1a; 互聯網協議按照功能不…

Linux下安裝FFmpeg

FFmpeg官網&#xff1a;http://www.ffmpeg.org 官網介紹 FFmpeg is the leading multimedia framework, able to decode, encode, transcode, mux, demux, stream, filter and play pretty much anything that humans and machines have created. It supports the most obscure…

HTTP協議狀態碼詳解

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 狀態碼含義100客戶端應當繼續發送請求。這個臨時響應是用來通知客戶端它的部分請求已經被服務器接收&#xff0c;且仍未被拒絕。客戶端應…

【Python web 開發】viewset 實現商品詳情頁的接口

我們如何來完成商品詳情頁的接口呢&#xff1f; 首先要配置一個商品詳情的url 按照我們正常的接口配法 &#xff0c;應該是后面要加一個id 的&#xff0c;為什么這里沒有加id 呢? ,應該是rooter register 的作用吧&#xff0c;等我在學習一遍基礎再來回答&#xff1f; 那么我…