每天少不了的幾道題,程式碼不能停(1)
阿新 • • 發佈:2019-02-02
1.用程式碼實現單利模式
public class single { //惡漢式 private single(){} private static single d1=new single(); public static single getsingle(){ return d1; } } class single2{ //懶漢式 private single2(){} private static single2 s=null; public static single2 getSingle2(){ if(s==null){ return new single2(); }return s; } }
2.一個字串,包含空格等標點符號,寫一個函式計算出出現次數最多的字母和該字母出現的次數。
package interview;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 一個字串,包含空格等標點符號,寫一個函式計算出出現最多的字母和該字母出現的次數
* @author zhoupeng
*
*/
public class Two {
static String str="faker ,andkobe *&ok?ilikeit?youngerheiheiwade";
Map<String,Integer> map=new HashMap<String,Integer>();
List list=new ArrayList();
public static void main(String[] args) {
Two t=new Two();
t.Fun(str);
}
public void Fun(String str){
//將一個字串轉換為字元陣列再轉換為每一個字元陣列。
char [] ch=str.toCharArray();
//System.out.println(ch[1]);
String[] sta=new String[ch.length];
for(int i=0;i<ch.length;i++){
sta[i]=String.valueOf(ch[i]);
}
//對字元陣列中的元素進行篩選,如果是字母就放入到List中
for(int i=0;i<sta.length;i++){
if(sta[i].matches("^[a-zA-Z]$")){
list.add(sta[i]);
}
}
//將陣列中的元素放入到map中去並對其計數。
Integer j = 0;
for(int i=0;i<list.size();i++){
if(!map.containsKey(list.get(i))){
j=1;
map.put((String) list.get(i), j);
}else{
j++;
map.put((String) list.get(i), j);
}
}
System.out.println(list);
System.out.println(map);
//便利map並將出現次數最多的字母與相應次數賦值列印
Integer max=0;
String zimu="";
for(Map.Entry<String, Integer> entry:map.entrySet()){
String sf=entry.getKey();
Integer sn=entry.getValue();
if(sn>max){
max=sn;
zimu=entry.getKey();
}
}
System.out.println("出現次數最多的字母:"+zimu+" ---出現次數為"+max);
}
}
表示這題寫出來的時候整個人都瘋掉了,當然肯定會有更好的實現,這裡我只是把我自己的初級實現寫了出來3.編碼實現單向連結串列,並實現單向連結串列的反轉。比如一個連結串列是這樣的:1->2->3->4->5通過反轉後形成5->4->3->2->1。即實現單向連結串列類,在該類中提供一個單向連結串列的反轉方法,請寫出完整的程式碼。
TODU
4.將一個GBK編碼的文字檔案轉存為UTF-8編碼的文字檔案
TODU
5.JVM的啟動引數都有哪些,分別表示什麼。常用的診斷命令,jinfo,jmap,jstack,jps的作用和使用方式各是什麼?