大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

面試題首頁 > Java基礎面試題

String面試題

001String 是最基本的數據類型嗎?

不是。Java 中的基本數據類型只有 8 個:byte、short、int、long、float、double、char、boolean;除了基本類型(primitive type)外,剩下的都是引用類型(reference type)

002String、StringBuffer、StringBuilder區別及使用場景?

1)String是只讀的字符串,因此String引用的字符串內容是不能被改變的。
String str = "abc";
str = "bcd";
如上,第一行str 僅僅是一個引用對象,它指向一個字符串對象“abc”。第二行代碼的含義是讓 str 重新指向了一個新的字符串“bcd”對象,而“abc”對象并沒有任何改變
2)StringBuffer/StringBuilder 表示的字符串對象可以直接進行修改。
3)StringBuilder 是 Java5 中引入的,它和 StringBuffer 的方法完全相同,區別在于它是在單線程環境下使用的,因為它的所有方法都沒有被 synchronized 修飾,因此它的效率理論上也比 StringBuffer 要高。

003String str = “i” 和String str = new String(“1”)一樣嗎?

不一樣,因為內存的分配方式不一樣。String str = "i"的方式JVM會將其分配到常量池中,而 String str = new String("i")JVM會將其分配到堆內存中。

004是否可以繼承String類?

String 類是final類,不可以被繼承。
補充:繼承String本身就是一個錯誤的行為,對String類型最好的重用方式是關聯關系 (Has-A)和依賴關系(Use-A)而不是繼承關系(Is-A)。

005String s=new String(“xyz”);創建了幾個字符串對象

兩個對象,一個是靜態存儲區的"xyz",一個是用 new 創建在堆上的對象。

006String類的常用方法有哪些?

indexof();返回指定字符的的索引。
charAt();返回指定索引處的字符。
replace();字符串替換。
trim();去除字符串兩端空格。
splt();字符串分割,返回分割后的字符串數組。
getBytes();返回字符串byte類型數組。
length();返回字符串長度。
toLowerCase();將字符串轉換為小寫字母。 
toUpperCase();將字符串轉換為大寫字母。
substring();字符串截取。
equals();比較字符串是否相等。

007數組有沒有 length()方法?String 有沒有 length()方法?

數組沒有 length()方法,有 length 的屬性。String 有 length()方法。JavaScript 中,獲得字符串的長度是通過 length 屬性得到的,這一點容易和 Java混淆

008怎樣將 GB2312 編碼的字符串轉換為 ISO-8859-1 編碼的字符串?

String s1 = "你好"; String s2 = newString(s1.getBytes("GB2312"), "ISO-8859-1");

009String 中的 equals 是如何重寫的?

首先會判斷要比較的兩個字符串它們的引用是否相等。如果引用相等的話,直接返回 true ,不相等的話繼續下面的判斷,然后再判斷被比較的對象是否是 String 的實例,如果不是的話直接返回 false,如果是的話,再比較兩個字符串的長度是否相等,如果長度不想等的話也就沒有比較的必要了;長度如果相同,會比較字符串中的每個 字符 是否相等,一旦有一個字符不相等,就會直接返回 false。

010如何實現字符串的反轉及替換?

用遞歸實現字符串反轉,代碼如下所示:

public static String reverse(String originStr) {
?  if(originStr == null || originStr.length() <= 1)
?      return originStr;
?  return reverse(originStr.substring(1)) + originStr.charAt(0);
}

string.substring(from):相當于從from位置截取到原字符串末尾

charAt() 方法用于返回指定索引處的字符。索引范圍為從 0 到 length() - 1。

011寫一個函數,要求輸入一個字符串和一個字符長度,對該字符串進行分隔

public String[] split(String str, int chars){ 
    int n = (str.length()+ chars - 1)/chars; 
    String ret[] = new String[n]; 
    for(int i=0; i<n; i++){ 
        if(i < n-1){ 
            ret[i] = str.substring(i*chars , (i+1)*chars); 
        }else{ 
            ret[i] = str.substring(i*chars); 
        } 
    } 
    return ret; 
} 

012寫一個函數,2 個參數,1 個字符串,1 個字節數,返回截取的字符串,要求字符串中的中文不能出現亂碼:如(“我 ABC”,4)應該截為“我 AB”,輸入(“我ABC 漢 DEF”,6)應該輸出為“我 ABC”而不是“我 ABC+漢的半個”

代碼如下:

public String subString(String str, int subBytes) { 
    int bytes = 0; // 用來存儲字符串的總字節數 
    for (int i = 0; i < str.length(); i++) { 
        if (bytes == subBytes) { 
            return str.substring(0, i); 
        } 
        char c = str.charAt(i); 
        if (c < 256) { 
            bytes += 1; // 英文字符的字節數看作 1 
        } else { 
            bytes += 2; // 中文字符的字節數看作 2 
            if(bytes - subBytes == 1){ 
                return str.substring(0, i); 
            } 
        } 
    } 
    return str; 
}

013用程序給出隨便大小的 10 個數,序號為 1-10,按從小到大順序輸出,并輸出相應的序號

package test; 
import java.util.ArrayList; 
import java.util.Collections; 
import java.util.Iterator; 
import java.util.List; 
import java.util.Random; 
public class RandomSort { 
    public static void printRandomBySort() { 
        Random random = new Random(); // 創建隨機數生成器 
        List list = new ArrayList(); // 生成 10 個隨機數,并放在集合 list 中 
        for (int i = 0; i < 10; i++) { 
            list.add(random.nextInt(1000)); 
        } 
        Collections.sort(list); // 對集合中的元素進行排序 
        Iterator it = list.iterator(); 
        int count = 0; 
        while (it.hasNext()) { // 順序輸出排序后集合中的元素 
            System.out.println(++count + ": " + it.next()); 
        } 
    } 
    public static void main(String[] args) { 
        printRandomBySort(); 
    } 
} 

014寫一個方法,輸入一個文件名和一個字符串,統計這個字符串在這個文件中出現的次數

public int countWords(String file, String find) throws Exception { 
    int count = 0; 
    Reader in = new FileReader(file); 
    int c; 
    while ((c = in.read()) != -1) { 
        while (c == find.charAt(0)) { 
            for (int i = 1; i < find.length(); i++) { 
                c = in.read(); 
                if (c != find.charAt(i)) 
                    break; 
                if (i == find.length() - 1) 
                    count++; 
             } 
        } 
    } 
    return count; 
}

目錄

返回頂部
主站蜘蛛池模板: www.啪啪.com| 免费费看的欧亚很色大片 | 阳光灿烂的日子在线观看 | 日本一区二区免费视频 | 欧美一级特黄特黄毛片 | 中日韩欧美中文字幕毛片 | 一区二区三区中文字幕 | 成人在线亚洲 | 在线观看日本免费视频大片一区 | 国产成人一区二区三区在线视频 | 久久久夜色精品国产噜噜 | 114毛片免费观看网站 | 综合网视频| 国产精品日韩在线观看 | 女人l8毛片a一级毛片免费 | 精品一区二区三区四区乱码90 | 精品 日韩 国产 欧美在线观看 | 老司机精品视频个人在观看 | 国产一区二区不卡免费观在线 | 久久久不卡国产精品一区二区 | 99久久这里只精品国产免费 | 国产成人免费视频 | 久久久高清免费视频 | 国产精品一区在线观看你懂的 | 国内视频在线 | 亚洲成在人天堂一区二区 | 日本中文一二区有码在线观看 | 奇米网狠狠 | 日本一道一区 | 天天做人人爱夜夜爽2020 | 成 人 黄 色 免费网 | 福利久久| 精品人人| 欧美成人国产一区二区 | 中文乱码精品一区二区三区 | 无遮挡又黄又爽又色的视频免费 | 欧美最猛的24k毛片视频 | 在线视频不卡国产在线视频不卡 | 网站久久 | 一本一本久久a久久综合精品蜜桃 | 伊人99在线观看 |