【代碼百題計划】細化到知識點的練習題及筆試題(含參考答案),助你輕松搞定代碼基礎


 

【免費打卡學習】參與方式

0、本文文末評論區打卡,文末登錄才可以打卡以及查看所有打卡記錄

1、以下練習題,請用對應的知識點完成,也就是距離此題最近的二級標題(或者一級標題);

2、給代碼要求說出結果的題,不一定都能正常運行,如果有編譯異常或者運行時異常,需要給出原因及解決方案;

 

測試該學哪門語言?為啥選java?

大家可以看高薪招聘要求。

推薦一個高級(java,可能有些測試一聽到java就說難,那是因為你沒掌握學習方式,缺少練習),加上1-2個腳本(python、shell),很多招聘也是這么要求的,可以說是標配,如果你有精力,后續可以再學下go;腳本語言會基礎即可(比如,我用python主要是造一些性能測試數據),盡量深入高級的,也就是java(Java已經發展了近20年,豐富的周邊框架打造了一個繁榮穩固的生態圈,短期內很難完全被替代),而且,當前項目絕大多數是java吧(其次是go,python的太少了),我接觸到的項目都是java、go。

學java的好處就是:測試應用廣,自動化、測開、性能、白盒都能做,和開發無障礙交流,有問題,也可以免費問開發,何樂而不為呢?

開發會的(代碼),你也大概懂,開發不會的(比如性能、自動化持續集成),你也會,妥妥的提升測試地位,再也不用抱怨被開發歧視了。

 

只要多練習,java真的不難,和python差不多

 

完成本文的練習題可以達到的能力

1、打牢java基礎,輕松應對java筆試題

2、編寫java接口自動化測試框架:java + testng + httpclient + allure + ...

3、熟練應用beanshell

4、完成jmeter二次開發

 

考考你:你真的會hello world么?

請說出下面每個單詞所表示的含義、作用

package com.qzcsbj;

public class Test {
    public static void main(String[] args) {
        System.out.println("Hello World.");
    }
}

 

為什么public修飾的類的類名必須與java源文件名相同?

上面類可以private、protected來修飾么?為什么只能是public和默認?

 

更多關於“hello world”的思考:https://www.cnblogs.com/uncleyong/p/16018215.html

 

工欲善其事,必先利其器

idea安裝、配置、基本使用

https://www.cnblogs.com/uncleyong/p/10971923.html

idea已經放網盤,網盤地址:

鏈接:https://pan.baidu.com/s/17MxVRfp7A_q8uz7iFYk25w 
提取碼:qzbj 
復制這段內容后打開百度網盤手機App,操作更方便哦

java必備基礎

詳見:https://www.cnblogs.com/uncleyong/p/10530261.html

 

參考資料:官方api文檔

https://docs.oracle.com/javase/8/docs/api/index.html

 

java基礎練習:變量、數據類型、輸入、輸出、運算符

練習1:判斷輸入的值是否是偶數,另外,要處理輸入錯誤

(目的:熟悉輸入、輸出,特別是Scanner對象的方法)

 

練習2:輸入並輸出姓名、年齡、身高

 

練習3:從控制台獲取Java、Oracle、HTML三門課程的成績,計算總分和平均分(平均分保留2位小數,要求四舍五入;按如下格式輸出)

 

 

練習4:輸入一個數字,反轉輸出,如:輸入123,輸出321

 

練習5:輸入tom和jack的年齡,比較年齡並輸出相差多少歲,要求使用條件運算符

 

練習6:交換兩個數值變量的值(至少兩種方法)

 

練習7:下面結果分別是?說明原因

int a = 97;
char b = a;
System.out.println(b);

  

char c = 97;
System.out.println(c);

 

int m = 3;
int n = m++ + ++m;
System.out.println("m:"+m+", n:"+n);

 

練習8:下面結果分別是?說明原因

public class Test {
    public static void main(String[] args) {
        short a=1;
        a = a+1;
        System.out.println(a);
    }
}

 

public class Test {
    public static void main(String[] args) {
        short b=1;
        b+=1;
        System.out.println(b);
    }
}

 

本節參考答案:https://www.cnblogs.com/uncleyong/p/17043874.html

 

java基礎練習:選擇結構(if、switch)

if:if...else...及if嵌套

練習1:提示用戶輸入三個整數,判斷並輸出最大值、最小值

 

練習2:

如果今天是周日且晴天,就出去嗨

如果今天是周日但不是晴天,睡懶覺

如果今天不是周日,繼續996

說明:天氣、星期幾的變量,自己定義即可;主要練習if嵌套

 

練習3:由鍵盤輸入三個整數分別存入變量num1、num2、num3,對它們進行排序(使用 if-else if-else),並且從小到大輸出。 

 

 

練習4:提示用戶輸入三角形的邊a、b、c,范圍必須在 [1,100) 之間,判斷三角形的類型:1.非三角形;2.等邊三角形;3.直角三角形;4.等腰三角形;5.普通三角形

 

switch

練習1:周一跑步,周二、三、四打羽毛球,周五游泳,其它休息

int today=4;

 

練習2:輸入 2022 年的某個月份和日期,例如 month=4,day=21,經過程序計算,打印出輸入的月份和日期是 2022年的第幾天:31+28+31+21

 

本節參考答案:https://www.cnblogs.com/uncleyong/p/17043943.html

 

java基礎練習:循環結構(while、do...while、for、break、continue、return)

while

練習1:輸出比i(i=5)小的正整數

 

 

練習2:求1到100之間所有偶數的和 

 

練習3:循環提示用戶輸入一個非零整數,直接輸入數字0為止,然后輸出其中的最大值和最小值

 

練習4:從鍵盤讀入個數不確定的整數,並判斷讀入的正數和負數的個數,輸入為0時結束程序

 

練習5:如果輸入的是整數,輸出是偶數還是奇數,然后結束;如果輸入的不是整數,提示用戶重新輸入,直到輸入整數

 

do while

練習1:下面輸出結果是?說明原因

package com.qzcsbj.demo.entity;

public class T2 {
    public static void main(String[] args) {
        int i = 5;
        do {
            System.out.println(i);
            i--;
        }while (i>5);
    }
}

 

練習2:打印輸出 [0,200] 之間所有能被7整除,但不能被4整除的所有整數,要求每行打印5個,並統計個數

 

for

練習1:求1到100之間所有偶數的和

 

練習2:循環輸入五門課程的成績,計算平均分

 

練習3:任意輸入一個整數,根據這個值輸出加法表

 

練習4:打印 1-100000之間的所有素數,並統計耗時,如果耗時大於200ms,就需要優化

(素數: 有且僅有兩個正約數的整數. 即 2 ~ i-1 之間沒有一個是其約數)

 

break

練習1:將1-10之間的整數相加,當累加值大於20時停止相加,輸出當前整數和累加值

 

continue

練習1:輸出1到10之間所有的奇數

 

return

練習1:下面輸出結果是?說明原因

package com.qzcsbj;

import java.util.Scanner;

/**
 * @公眾號 : 全棧測試筆記
 * @博客 : www.cnblogs.com/uncleyong
 * @微信 : ren168632201
 * @描述 : <>
 */
public class Test {
    public static void main(String[] args) {
        System.out.println(test());
        test2();
    }
    public static int test(){
        for (int i = 0; i < 5; i++) {
            System.out.println(i);
            if (i==1){
                return i;
            }
        }
        return 10;
    }
    public static void test2(){
        for (int i = 0; i < 5; i++) {
            System.out.println(i);
            if (i==1){
                return ;
            }
        }
        System.out.println("hello");
        return;
    }
}

 

雙重for循環

練習1:實現輸出九九乘法表

 

 

練習2:某次技能大賽,共有3個班參加,每個班有4名學生參加,計算每個班級的平均分(只統計成績≥80分的學生的平均分)

 
 
練習3:打印如下樣式的直角三角形

 

 

練習4:打印等腰三角形

 

 

練習5:打印等邊三角形

 

練習6:輸入帶*字符串,把*左移輸出,其他字母按原順序輸出,例如輸入“as*c*gkl**o*p*h”,輸出******ascgkloph

 

本節參考答案:https://www.cnblogs.com/uncleyong/p/17043949.html

 

java基礎練習:方法、遞歸

方法

練習1:定義方法(不用jdk提供的方法),計算x的y次方,如2的5次方

  

練習2:猜數字游戲:隨機生成 [0,100] 之間的隨機數,讓用戶猜生成的數字,顯示猜大了、猜小了,如果猜對了,提示共猜了多少次。用Math.random()方法

 

遞歸

練習1:用遞歸實現,計算x的y次方,如2的5次方

 

練習2:用遞歸實現,輸出n(n=5)到0的整數

 

練習3:遞歸實現5的階乘(5*4*3*2*1)

 

本節參考答案:https://www.cnblogs.com/uncleyong/p/17043952.html

 

java基礎練習:數組(一維、二維、傳值傳地址)

一維數組

練習1:定義一個int類型數組,動態賦值,然后將數組中元素反轉,最后輸出,要求:動態賦值定義方法;反轉定義方法

 

練習2:有一個數組 [1, 3, 66, 16, 28, 666, 168] ,循環輸出數組中的元素並計算所有數的總和,並將最大值放到最前面,最小值放到最后面,然后輸出數組  

 

增強for

練習1:輸出數組的值[1, 3, 66, 16, 28, 666, 168]

 

傳值、傳地址

練習1:下面輸出結果是?說明原因

package com.qzcsbj;

import java.util.Arrays;
import java.util.Scanner;

/**
 * @公眾號 : 全棧測試筆記
 * @博客 : www.cnblogs.com/uncleyong
 * @微信 : ren168632201
 * @描述 : <>
 */
public class Test {
    public static void main(String[] args) {
        /*
         * 基本數據類型
         */
        int a = 5;
        int b = a;
        b = 8;
        System.out.println(a);
        System.out.println(b);

        /*
         * 引用數據類型
         */
        int[] c = { 1,2,3 };
        int[] d = c; 
        d[0] = 666;
        System.out.println(Arrays.toString(c));
        System.out.println(Arrays.toString(d));


        change(a,c);
        System.out.println(a);
        System.out.println(Arrays.toString(c));

    }

    public static void change(int i, int[] array) {
        i = 666;
        array[array.length - 1] = 999;
        System.out.println(i);
        System.out.println(Arrays.toString(array));
    }
}

 

二維數組(含冒泡)

練習1:輸出二維數組的每個元素,int[][] d = { { 1, 2, 9 }, { 5 }, { 1, 3 }, { 9, 7, 0 } }; 

 

練習2:有2個班,每個班有3名學生,提示用戶分別輸入學生的成績,將數據保存到二維數組中,並計算每個班的平均分、全校的最高分、最低分,最后輸出平均分最高的班以及對應的平均分

 

練習3:冒泡實現排序,[9,6,4,5,3],輸出:[3, 4, 5, 6, 9],要求打印每一輪每一次冒泡后的結果

 

不定長參數

練習1:下面的輸出結果是?說明原因,另外,不定長參數的本質是什么?

package com.qzcsbj;

import java.util.Arrays;
import java.util.Scanner;

/**
 * @公眾號 : 全棧測試筆記
 * @博客 : www.cnblogs.com/uncleyong
 * @微信 : ren168632201
 * @描述 : <>
 */
public class Test {
    public static void main(String[] args) {
        // String[] names=new String[]{"tom","jack"};
        m1(6, new String[] { "tom", "jack" }); 

        m2(6,"tom","jack","alice"); 
        m2(6,"tom");
        m2(6);
        m2(6,new String[] { "tom", "jack" });

    }

    public static void m1(int n, String[] args) {
        System.out.println("m1");
    }

    public static void m2(int n,String... args){
        System.out.println("不定長參數個數:"+args.length);
        if (args.length > 0){
            System.out.println("不定長參數第一個:"+args[0]);
        }
    }
}

 

筆試題

練習1:數組中有一個數字出現的次數超過數組長度的一半

例如:{1,2,3,2,2,2,5,4,2},數字2在數組中出現了5次,超過數組長度的一半,因此輸出2

 

本節參考答案:https://www.cnblogs.com/uncleyong/p/17043958.html

 

java基礎練習: 類(對象屬性、對象數組)、構造方法及this、方法重載、對象初始化

練習1:創建一個用戶類,為用戶設置年齡(0-120),並打印年齡,如果設置的不合法,給出提示

 

練習2:定義Boy、Girl類,對象boy給對象girl求婚,且girl答復;要求,boy對象的求婚方法傳入girl對象,girl對象的答復方法傳入求婚的對象

 

練習3:分別用面向過程和面向對象的思維,計算半徑為3的圓的面積

 

全局變量、局部變量、this

練習1:寫代碼演示為什么要用this,解決了什么問題? 

 

練習2:下面結果分別是?並說明原因

public class Test {
    static String str;
    public static void main(String[] args)
    {
        static String str;
        System.out.println(str);
    }
}

  

public class Test {
    static String str;
    public static void main(String[] args)
    {
        String str;
        System.out.println(str);
    }
}

  

public class Test {
    static String str;
    public static void main(String[] args)
    {
        System.out.println(str);
    }
}

 

對象屬性

練習1:創建Person類(name,age,address),address是對象屬性,Address類(province、city),創建一個Person類對象person,並給所以屬性賦值,最后打印person

 

對象數組

練習1:定義學生類(姓名、學號),錄入學生信息,並將學生保存到數組中

 

構造方法、this、方法重載

練習1:定義一個類(三個屬性),三參構造方法中,調用兩參構造方法

 

對象初始化順序

練習1:寫代碼驗證對象初始化順序:代碼塊(靜態、非靜態)、構造

 

綜合練習

練習1:定義一個Person類,要求:屬性(name,age,phone),方法(study)並實現方法重載,實現封裝,實例化多個對象,輸出某個對象的信息,最后輸出創建了多少對象

 

練習2:定義一個Card的撲克牌類的創建和洗牌

該類有兩個private訪問權限的字符串變量face和suit:
分別描述一張牌的牌面值(如:A、K、Q、J、10、9、…、3、2等)和花色(如:“黑桃”、“紅桃”、“梅花”和“方塊”)。
定義Card類中的public訪問權限的構造方法,為類中的變量賦值;
定義protected訪問權限的方法getFace(),得到撲克牌的牌面值;
定義protected訪問權限的方法getSuit(),得到撲克牌的花色;
定義方法toString(),返回表示撲克牌的花色和牌面值字符串(如“紅桃A”、“梅花10”等)。
(1)使用Card類的構造方法給deck數組的52張牌賦值,請寫出實現上述功能的程序段。
(2)請編寫模擬洗牌的程序段,即把數組deck中的撲克牌隨機打亂存放順序。

 

本節參考答案:https://www.cnblogs.com/uncleyong/p/17043964.html

 

java基礎練習:封裝、繼承、多態

封裝

練習1:舉例演示封裝的好處

 

繼承、構造調用、super

練習1:在子類中調用父類無參、帶參構造方法

 

方法重寫

練習1:創建父類Person,子類Japan、Chinese,重寫父類方法,實現子類的差異化

  

多態

練習1:設計幾個類,實現多態,主人給寵物喂食物

 

筆試題

練習1:定義MyDate類,在MyDate類中覆蓋equals方法,使其判斷當兩個MyDate類型對象的年月日都相同時,結果為ture,否則為false。

MyDate m1 = new MyDate(14, 3, 2022);
MyDate m2 = new MyDate(14, 3, 2022);

 

 

本節參考答案:https://www.cnblogs.com/uncleyong/p/17043968.html

 

java基礎練習:抽象類、接口

筆試題

練習1:下面輸出結果是?並說明原因,如有問題,修改方案至少2種

package com.qzcsbj;


/**
 * @公眾號 : 全棧測試筆記
 * @博客 : www.cnblogs.com/uncleyong
 * @微信 : ren168632201
 * @描述 : <>
 */

interface A{
    int x = 0;
}
class B{
    int x = 1;
}
public class Test extends B implements A{
    public void p(){
        System.out.println(x);
    }
    public static void main(String[] args) {
        new Test().p();
    }
}

  

面向對象綜合練習

練習1:寫一個寵物超市系統(java面向對象練習題,綜合運用:封裝、繼承、多態),需求詳見:https://www.cnblogs.com/uncleyong/p/12580618.html

 

本節參考答案:https://www.cnblogs.com/uncleyong/p/17043973.html

 

java基礎練習:訪問修飾符、非訪問修飾符

練習1:訪問修飾符public、private、protected,以及不寫(默認)時的區別?寫代碼驗證

 

練習2:如何訪問非本類的private修飾的屬性、方法?

public class Person{
    private String name;
    private int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    private String getName() {
        return name;
    }

    private int getAge() {
        return age;
    }
}

 

Person p = new Person("jack", 18);

 

練習3:下面輸出結果是?並說明原因

package com.qzcsbj;

/**
 * @公眾號 : 全棧測試筆記
 * @博客 : www.cnblogs.com/uncleyong
 * @微信 : ren168632201
 * @描述 : <>
 */
public class Test {
    public static void main(String[] args) {
        Person.test(2);
    }
}

class Person{
    public static void test(final int m){ 
        final int n =1; 
        n=2;
        System.out.println(n); 
        m=3; 
        System.out.println(m);
    }
}

 

本節參考答案:https://www.cnblogs.com/uncleyong/p/17043976.html

 

java基礎練習:常用類(Object、String、StringBuffer、包裝類)

Object

練習1:根據給定的類(類的屬性:name,age,phone,job),重寫equals方法,要求是name,age相同,即認為對象相同,要求:不能用工具生成,自己實現的equals不能和工具生成的一樣

 

String 

練習1:提示用戶輸入字符串,1.計算字符串包含多少個數字、英文字母以及其他字符,2.計算字符串中字母a出現的次數

 

 
練習2:提示用戶輸入字符串,1.統計每個字母出現的次數(忽略大小寫)並輸出,2.統計每個數字出現的次數,存儲到數組nums中  

上面圖中輸出的數組,對應0-9的出現次數

 

正則 

練習1:一次性獲取三門課程的成績,保存到數組,然后輸出

 

String常量池

練習1:下面輸出結果是?並說明原因

package com.qzcsbj;

public class Test {
    public static void main(String[] args) {
        System.out.println("=========使用雙引號直接創建字符串=======");
        String addr = "北京";
        System.out.println(Integer.toHexString(addr.hashCode()));  
        addr = "上海";
        System.out.println(Integer.toHexString(addr.hashCode())); 
        String name = "jack";
        System.out.println(Integer.toHexString(name.hashCode()));   
        String name2 = "jack";
        System.out.println(Integer.toHexString(name2.hashCode()));    
        System.out.println("equals:" + name.equals(name2)); 
        System.out.println("name==name2: "+(name==name2)); 
        System.out.println();

        System.out.println("=========使用構造方法創建字符串=======");
        String name3 = new String("jack");
        System.out.println(Integer.toHexString(name3.hashCode()));  
        String name4 = new String("jack");
        System.out.println(Integer.toHexString(name4.hashCode()));  
        System.out.println("equals:" + name3.equals(name4));  
        System.out.println("name3==name4: "+(name3==name4));  
        System.out.println();

        System.out.println("=========兩種方式對象比較=======");
        System.out.println("name==name3: "+(name==name3));  
        System.out.println("equals:" + name.equals(name3));  

    }
}

 

練習2:下面的輸出結果是?並說明原因

String s1 = new String("qzcsbj");
String s2 = new String("qzcsbj");
String s3 = "qzcsbj";
String s4 = "qzcsbj";
String s5 = "qz";
String s6 = "csbj";
String s7 = s5 + s6;
String s8 = "qz" + "csbj";
String s9 = s5 + "csbj";
 
System.out.println(s1==s2);
System.out.println(s1.equals(s2));
System.out.println(s3==s4);
System.out.println(s3.equals(s4));
System.out.println(s1==s3);
System.out.println(s1.equals(s3));
System.out.println(s3==s7);
System.out.println(s3.equals(s7));
System.out.println(s3==s8);
System.out.println(s3.equals(s8));
System.out.println(s3==s9);
System.out.println(s3.equals(s9));
System.out.println(s8==s7);
System.out.println(s8.equals(s7));
System.out.println(s9==s7);
System.out.println(s9.equals(s7));

 

練習3:下面的輸出結果是?並說明原因

public class Test {
    public static void main(String[] args) {
        Integer a = 666, b = 666;
        System.out.println(a == b);
        Integer c = 66, d = 66;
        System.out.println(c == d);
    }
}

 

String和StringBuffer性能對比

練習1:寫代碼測試字符串拼接的性能,比如拼接10萬次

 

練習2:下面輸出結果是?並說明原因 

package com.qzcsbj;

/**
 * @公眾號 : 全棧測試筆記
 * @博客 : www.cnblogs.com/uncleyong
 * @微信 : ren168632201
 * @描述 : <>
 */
public class Test {
    public static void main(String[] args) {
        String s1 = "hello";
        String s2 = "java";
        System.out.println(s1+ "," + s2);
        test(s1,s2);
        System.out.println(s1+ "," + s2);

        StringBuffer stringBuffer1 = new StringBuffer("hello");
        StringBuffer stringBuffer2 = new StringBuffer("java");
        System.out.println(stringBuffer1+ "," + stringBuffer2);
        test2(stringBuffer1,stringBuffer2);
        System.out.println(stringBuffer1+ "," + stringBuffer2);
    }

    public static void test(String s1,String s2){
        s1 = s2;
        s2=s1+s2;
        System.out.println(s1+ "," + s2);
    }

    public static void test2(StringBuffer stringBuffer1,StringBuffer stringBuffer2){
        stringBuffer1 = stringBuffer2;
        stringBuffer2.append(stringBuffer1);
        System.out.println(stringBuffer1+ "," + stringBuffer2);
    }
}

 

包裝類

練習1:下面輸出結果是?並說明原因 

package com.qzcsbj;

/**
 * @公眾號 : 全棧測試筆記
 * @博客 : www.cnblogs.com/uncleyong
 * @微信 : ren168632201
 * @描述 : <>
 */
public class Test {
    public static void main(String[] args) {
        
        int m = 6;
        Integer n = new Integer(1);
        int p = m + n;  
        System.out.println(p); 


        
        int x=3;
        Integer y = new Integer(3);
        Integer z = new Integer(3);
        System.out.println(y==z);  
        System.out.println(x==z); 

       
        Integer integer = new Integer(10); 
        test(integer); 
        System.out.println(integer);  

    }
    public static void test(Integer integer){
        integer=666; // 修改為666
    }
}

 

 

練習2:下面代碼是否正確?並說明原因

Object obj=5;

 

筆試題

練習1:刪除字符串下標是3的倍數的字符 ,s = "aabbcdeefg",輸出abcdef

 

練習2:輸入一個字符串,輸出出現次數最多的前2個字符及出現次數

 

練習3:輸入字符串(中間有若干個空格隔開),要求:以空格隔開,刪除空格兩邊字符串的重復字符再輸出,例:aabbbcc ddaaaffggbb變為abc dafgb(注意:輸入的空格得保留下來)

 

本節參考答案:https://www.cnblogs.com/uncleyong/p/17043984.html

 

java基礎練習:常用類(Date、SimpleDateFormat、Calendar、Math、Random)

Date、SimpleDateFormat

練習1:假設1910年1月1日是星期一,請寫一個函數:該函數輸入為1910年1月1日后的任意一天日期,格式為字符串YYYY-MM-DD,輸出為該日期是星期幾的英文。 

 

Calendar

練習1:獲取2008年2月有多少天

 

練習2:輸入4位年份,輸出當年2月天數,不能用判斷是否閏年的方式。如:輸入2019,輸出的是28天

 

筆試題

練習1:實現一個類,打印昨天的當前時刻

 

本節參考答案:https://www.cnblogs.com/uncleyong/p/17043990.html

 

java基礎練習:集合-Collection(ArrayList、LinkedList等)

ArrayList

練習1:定義Student類並創建對象,把對象放入ArrayList,循環ArrayList,打印學生信息

 

練習2:提示用戶輸入整數,存放到ArrayList集合中,輸入0代表結束。分別使用for、foreach、iterator循環集合,並刪除所有是3的倍數的元素

 

練習3:定義一個學生類Stu,屬性:id、name、age

1.提示用戶循環輸入學生的信息,存儲到ArrayList集合中

2.輸出所有學生的信息 

3.根據學號修改指定學生信息

4.根據學號刪除學生

 

練習4:list1=[A,B,C],list2=[B,C,A],對比兩個列表,內容相同返回ture,不同返回false

假設list中是String類型對象,下面運行結果是true

String[] strArray = {"A","B","C"};
List list1 = Arrays.asList(strArray);
String[] strArray2 = {"B","C","A"};
List list2 = Arrays.asList(strArray2);
 
 

ArrayList和LinkedList性能對比:讀取操作

練習1:使用Java編程語言定義兩個容器存儲結構link, array分別如下:

private List<Integer> link = new LinkedList<Integer>();

private List<Integer> array = new ArrayList<Integer>(); 

現在要測試link和array存儲10萬個Integer對象,比較link與array讀取這10萬條存儲數據的效率,請寫出實現的代碼。

 

本節參考答案:https://www.cnblogs.com/uncleyong/p/17043994.html

 

java基礎練習:集合-Map(HashMap)、Collections工具類

練習1:班級有不同數量的學生,用map保存;循環取出學生信息
 

練習2:統計一個字符串中每個字符出現的次數,保存到HashMap集合中

 

練習3:統計一個字符串中每個字符出現的次數,保存到HashMap集合中,通過排序,打印輸出次數最多的前三個字符及次數

 

本節參考答案:https://www.cnblogs.com/uncleyong/p/17043998.html

 

java基礎練習:異常

練習1:下面結果是?並說明原因;另外,多個catch的時候,有什么要求?

package com.qzcsbj;

public class TestException {
    public static void main(String[] args) {
        int[] nums = { 12, 4, 23 };

        try {
            System.out.println(nums[3]);
            System.out.println(5 / 0);
            System.out.println("try中最后的代碼。。。");
        } catch (ArrayIndexOutOfBoundsException e) {
            System.out.println("數組下標越界異常。。。:" + e.getMessage());
        } catch (ArithmeticException e) {
            System.out.println("算術異常。。。:" + e.getMessage());
        }
       
        System.out.println("異常之后的代碼。。。");
    }
}

 

本節參考答案:https://www.cnblogs.com/uncleyong/p/17044001.html

 

java基礎練習:枚舉、泛型

練習1:list1=[A,B,C],list2=[B,C,A],對比兩個列表,內容相同返回ture,不同返回false。要求定義一個泛型方法實現(解決類型侵入的問題)

說明:A可以任意類型的對象,

比如Student對象

List<Student> stu1s = new ArrayList<>();
stu1s.add(new Student("jack",18));
stu1s.add(new Student("tom",19));

List<Student> stu2s = new ArrayList<>();
stu2s.add(new Student("tom",19));
stu2s.add(new Student("jack",18));

也可以是String對象

String[] strArray = {"A","B","C"};
List list1 = Arrays.asList(strArray);
String[] strArray2 = {"B","C","A"};
List list2 = Arrays.asList(strArray2);

 

本節參考答案:https://www.cnblogs.com/uncleyong/p/17044004.html

 

java基礎練習:I/O輸入輸出流

練習1:獲取目錄下的所有文件,包括子目錄下的文件

 

練習2:刪除給定目錄下的空目錄(包含子目錄下的),測試文件夾見Q群文件

qzcsbj(目錄)
	|-test1(目錄)
	|-test2(目錄)
		|-test3(目錄)
	|-test4(目錄)
		|-test2.txt(文件)
	|-test1.txt(文件)

 

練習3:將一個音頻文件復制一份

 

練習4:將一個文本文件復制一份

 

練習5:提示用戶輸入一行英文(比如:hello java),將英文單詞的首尾字母大寫,其它字母小寫,然后逐行保存到文件test.txt中,文件內容為:

Hello
Java

 

本節參考答案:https://www.cnblogs.com/uncleyong/p/17044010.html

 

java基礎練習:反射

練習1:讀取所有數據並保存到對象集合

List<TestCase> testcases = new ArrayList<TestCase>();

下面excel的表單名是:testcase

 

本節參考答案:https://www.cnblogs.com/uncleyong/p/17044014.html

 

java基礎練習:JDBC

練習1:解析配置文件jdbc.properties

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://192.168.168.168:3360/gifts?useUnicode=true&characterEncoding=utf-8&useSSL=true
jdbc.username=root
jdbc.password=123456

 

 

練習2:從數據庫查詢數據

sql查詢結果:

 

代碼操作結果

 

本節參考答案:https://www.cnblogs.com/uncleyong/p/15867779.html

 

java自動化基礎:配置文件解析(properties)

練習1:解析配置文件jdbc.properties

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://192.168.168.168:3360/gifts?useUnicode=true&characterEncoding=utf-8&useSSL=true
jdbc.username=root
jdbc.password=123456

 

 

本節參考答案:https://www.cnblogs.com/uncleyong/p/15867779.html

 

java自動化基礎:fastjson的使用(處理json字符串、json數組)

 

練習1:將json字符串轉化成map,字符串:{"username":"qzcsbj", "password":"123456"}

 

練習2:json數組轉換為對象集合,[{"name":"jack","age":"18"},{"name":"tom","age":"19"}]

 

本節參考答案:https://www.cnblogs.com/uncleyong/p/16683578.html

 

java自動化基礎:jsonpath的使用

 

練習1:從下面提取token

{"code":9420, "msg":"恭喜qzcsbj,登錄成功","token":"538bbaba44be5d3d3856718e6c637d02"}

格式化

{
  "code": 9420,
  "msg": "恭喜qzcsbj,登錄成功",
  "token": "538bbaba44be5d3d3856718e6c637d02"
}

  

練習2:從下面提取username是“韌”的phone

{"code":"0","msg":"sucess","data":[{"username":"韌","realname":"tester1","sex":"1","phone":"13800000001"},{"username":"全棧測試筆記","realname":"tester2","sex":"1","phone":"13800000002"}]}

格式化

{
  "code": "0",
  "msg": "sucess",
  "data": [
    {
      "username": "韌",
      "realname": "tester1",
      "sex": "1",
      "phone": "13800000001"
    },
    {
      "username": "全棧測試筆記",
      "realname": "tester2",
      "sex": "1",
      "phone": "13800000002"
    }
  ]
}

 

 

本節參考答案:https://www.cnblogs.com/uncleyong/p/16676791.html

 

java自動化基礎:java操作excel(通過POI)

 

練習1:讀取所有數據,並打印出來,表單名:testcase

 

 

 

本節參考答案:https://www.cnblogs.com/uncleyong/p/15867741.html

 

java自動化基礎:HttpClient的使用(get、post請求)

詳見:https://www.cnblogs.com/uncleyong/p/15867745.html

 

java自動化基礎:TestNG用法

詳見:https://www.cnblogs.com/uncleyong/p/15867747.html

 

★★★★☆【綜合應用】:java接口自動化測試框架實現

java + testng + httpclient + allure + ...

詳見:https://www.cnblogs.com/uncleyong/p/15867903.html

 

【參考答案】

上面每個章節末尾有參考答案的鏈接。

 

【bak】

原文會持續更新,原文地址:https://www.cnblogs.com/uncleyong/p/15828510.html

更多筆試題:https://www.cnblogs.com/uncleyong/p/11119489.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM