JAVA面試程序題

一、

1兼丰、請用Java寫一個冒泡排序方法

【參考答案】

public static void Bubble(int a[]){

for(int i=0;i

for(int j=a.length-1;j>i;j--){

if(a[j]

a[j]=a[j]+a[j-1];

a[j-1]=a[j]-a[j-1];

a[j]=a[j]-a[j-1];

}

}

}

}

2梦染、子線程循環(huán)10次叠赦,接著主線程循環(huán)100涛漂,接著又回到子線程循環(huán)10次看蚜,接著再回到主線程又循環(huán)100,如此循環(huán)50次甩鳄,請寫出程序逞度。

【參考答案】

最終的程序代碼如下:

public class ThreadTest {

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

new ThreadTest().init();

}

public void init()

{

final Business business = new Business();

new Thread(

new Runnable()

{

public void run() {

for(int i=0;i<50;i++)

{

business.SubThread(i);

}

}

}

).start();

for(int i=0;i<50;i++)

{

business.MainThread(i);

}

}

private class Business

{

boolean bShouldSub = true;//這里相當(dāng)于定義了控制該誰執(zhí)行的一個信號燈

public synchronized void MainThread(int i)

{

if(bShouldSub)

try {

this.wait();

}catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

for(int j=0;j<5;j++)

{

System.out.println(Thread.currentThread().getName() + ":i=" + i +",j=" + j);

}

bShouldSub= true;

this.notify();

}

public synchronized void SubThread(int i)

{

if(!bShouldSub)

try {

this.wait();

}catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

for(int j=0;j<10;j++)

{

System.out.println(Thread.currentThread().getName() + ":i=" + i +",j=" + j);

}

bShouldSub = false;

this.notify();

}

}

}

備注:不可能一上來就寫出上面的完整代碼,最初寫出來的代碼如下妙啃,問題在于兩個線程的代碼要參照同一個變量档泽,即這兩個線程的代碼要共享數(shù)據(jù),所以揖赴,把這兩個線程的執(zhí)行代碼搬到同一個類中去:

package com.huawei.interview.lym;

public class ThreadTest {

private static booleanbShouldMain= false;

public static void main(String[] args) {

// TODO Auto-generated method stub

/*new Thread(){

public void run()

{

for(int i=0;i<50;i++)

{

for(int j=0;j<10;j++)

{

System.out.println("i=" + i + ",j=" + j);

}

}

}

}.start();*/

//final String str = new String("");

new Thread(

new Runnable()

{

public void run()

{

for(int i=0;i<50;i++)

{

synchronized (ThreadTest.class) {

if(bShouldMain)

{

try {

ThreadTest.class.wait();}

catch (InterruptedException e) {

e.printStackTrace();

}

}

for(int j=0;j<10;j++)

{

System.out.println(

Thread.currentThread().getName() +

"i=" + i + ",j=" + j);

}

bShouldMain= true;

ThreadTest.class.notify();

}

}

}

}

).start();

for(int i=0;i<50;i++)

{

synchronized (ThreadTest.class) {

if(!bShouldMain)

{

try {

ThreadTest.class.wait();}

catch (InterruptedException e) {

e.printStackTrace();

}

}

for(int j=0;j<5;j++)

{

System.out.println(

Thread.currentThread().getName() +

"i=" + i + ",j=" + j);

}

bShouldMain= false;

ThreadTest.class.notify();

}

}

}

}

下面使用jdk5中的并發(fā)庫來實(shí)現(xiàn)的:

import java.util.concurrent.Executors;

import java.util.concurrent.ExecutorService;

import java.util.concurrent.locks.Lock;

import java.util.concurrent.locks.ReentrantLock;

import java.util.concurrent.locks.Condition;

public class ThreadTest

{

private static Lock lock = new ReentrantLock();

private static Condition subThreadCondition = lock.newCondition();

private static boolean bBhouldSubThread = false;

public static void main(String [] args)

{

ExecutorService threadPool = Executors.newFixedThreadPool(3);

threadPool.execute(new Runnable(){

public void run()

{

for(int i=0;i<50;i++)

{

lock.lock();

try

{

if(!bBhouldSubThread)

subThreadCondition.await();

for(int j=0;j<10;j++)

{

System.out.println(Thread.currentThread().getName() + ",j=" + j);

}

bBhouldSubThread = false;

subThreadCondition.signal();

}catch(Exception e)

{

}

finally

{

lock.unlock();

}

}

}

});

threadPool.shutdown();

for(int i=0;i<50;i++)

{

lock.lock();

try

{

if(bBhouldSubThread)

subThreadCondition.await();

for(int j=0;j<10;j++)

{

System.out.println(Thread.currentThread().getName() + ",j=" + j);

}

bBhouldSubThread = true;

subThreadCondition.signal();

}catch(Exception e)

{

}

finally

{

lock.unlock();

}

}

}

3馆匿、寫一個程序,把一個文件的數(shù)組按對角線做對稱變換,并輸出!

【參考答案】

一個正方形里面全數(shù)字,寫一個程序,成對角線轉(zhuǎn)變!我做的這個是3行3列的對角互換,也許轉(zhuǎn)換規(guī)則不一樣

public class testMain {

public static void main(String[] args) {

int a[][]=new int[3][3];

int c=1;

//初始化數(shù)據(jù)

for(int i=0;i<3;i++){

for(int j=0;j<3;j++){

a[i][j]=c++;

}

}

System.out.println("轉(zhuǎn)換之前:");

for(int i=0;i<3;i++){

for(int j=0;j<3;j++){

System.out.print("a["+i+"]["+j+"]="+a[i][j]+" ??");

}

System.out.println("\n");

}

for(int i=0;i<3;i++){

for(int j=0;j<3;j++){

if((i+1<3&&j+1<3)&&i==j&&i!=0&&i!=3-i){

int temp=a[i-1][j-1];

a[i-1][j-1]=a[i+1][j+1];

a[i+1][j+1]=temp;

temp=a[i-1][j+1];

a[i-1][j+1]=a[i+1][j-1];

a[i+1][j-1]=temp;

}

}

}

System.out.println("轉(zhuǎn)換之后:");

for(int i=0;i<3;i++){

for(int j=0;j<3;j++){

System.out

print("a["+i+"]["+j+"]="+a[i][j]+" ??");

}

System.out.println("\n");

}

}

}

4燥滑、寫一個方法渐北,傳入一個int型的數(shù)字,把它的四個字節(jié)碼取出來铭拧,并且把它按大小順序通過控制臺輸出腔稀?

【參考答案】

public?static?void?main(String[]?args)?{

int?num?=?-800000000;

String?str?=?Integer.toBinaryString(num);?//獲得num的二進(jìn)制

if(num>=0)?{????//如果輸入的數(shù)為正數(shù),位數(shù)可能不足32位,要補(bǔ)0羽历;負(fù)數(shù)肯定是32位

if(str.length()<32)?{?//二進(jìn)制不足32位焊虏,就在前面補(bǔ)0

int?n0?=?32-str.length();?//看差幾個0

String?temp?=?"";

for(int?i=0;i

temp?=?temp?+?"0";?//拼0

}

str?=?temp?+?str;

}

}

String?s1?=?str.substring(0,?8);

String?s2?=?str.substring(8,?16);

String?s3?=?str.substring(16,?24);

String?s4?=?str.substring(24,?32);

System.out.println(str);

System.out.println(s1);

System.out.println(s2);

System.out.println(s3);

System.out.println(s4);

int?n1=Integer.parseInt(s1,2);//以二進(jìn)制把字符串解析為10進(jìn)制的數(shù)

int?n2=Integer.parseInt(s2,2);

int?n3=Integer.parseInt(s3,2);

int?n4=Integer.parseInt(s4,2);

System.out.println(n1);

System.out.println(n2);

System.out.println(n3);

System.out.println(n4);????????//整數(shù)大小自己比較吧

}

【分析】

5、設(shè)計4個線程秕磷,其中兩個線程每次對j增加1诵闭,另外兩個線程對j每次減少1。寫出程序澎嚣。

【參考答案】

以下程序使用內(nèi)部類實(shí)現(xiàn)線程疏尿,對j增減的時候沒有考慮順序問題。

public class ThreadTest1

{

private int j;

public static void main(String args[]){

ThreadTest1 tt=new ThreadTest1();

Inc inc=tt.new Inc();

Dec dec=tt.new Dec();

for(int i=0;i<2;i++){

Thread t=new Thread(inc);

t.start();

t=new Thread(dec);

t.start();

}

}

private synchronized void inc(){

j++;

System.out.println(Thread.currentThread().getName()+"-inc:"+j);

}

private synchronized void dec(){

j--;

System.out.println(Thread.currentThread().getName()+"-dec:"+j);

}

class Inc implements Runnable{

public void run(){

for(int i=0;i<100;i++){

inc();

}

}

}

class Dec implements Runnable{

public void run(){

for(int i=0;i<100;i++){

dec();

}

}

}

}

----------隨手再寫的一個-------------

class A

{

JManger j =new JManager();

main()

{

new A().call();

}

void call

{

for(int i=0;i<2;i++)

{

new Thread(

new Runnable(){ public void run(){while(true){j.accumulate()}}}

).start();

new Thread(new Runnable(){ public void run(){while(true){j.sub()}}}).start();

}

}

}

class JManager

{

private j = 0;

public synchronized void subtract()

{

j--

}

public synchronized void accumulate()

{

j++;

}

}

6易桃、十六進(jìn)制的216轉(zhuǎn)換十進(jìn)制是多少褥琐?

216是16進(jìn)制,轉(zhuǎn)10進(jìn)制:

=2*16^2+1*16^1+6*16^0

=512+16+6

=536

以下函數(shù)htoi函數(shù)的功能是將一個十六進(jìn)制數(shù)字的字符串晤郑,轉(zhuǎn)換成它等價的十進(jìn)制整數(shù)值敌呈。

Public int htoi(char s[])

{

Int i , n ;

N=0;

For(i=0 , s[i]<’\0’;i++)

{

If(s[i]>=0&&s[i]<=9) n=_______

If(s[i]>=’a’&&s[i]<=’f’) n=_________

If(s[i]>=’A’&&s[i]<=’F’) n=_________

}

Return (n);

}

7、如何把一段逗號分割的字符串轉(zhuǎn)換成一個數(shù)組?

【參考答案】

可以說說我的思路:

1.用正則表達(dá)式造寝,代碼大概為:String [] result = orgStr.split(“,”);

2.用StingTokenizer ,代碼為:

StringTokenizer ?tokener = StringTokenizer(orgStr,”,”);

String [] result = new String[tokener .countTokens()];

Int i=0;

while(tokener.hasNext(){result[i++]=toker.nextToken();}

8磕洪、編寫一個函數(shù)將一個十六進(jìn)制數(shù)的字符串參數(shù)轉(zhuǎn)換成整數(shù)返回。

【參考答案】

String str =“13abf”;

int len = str.length;

int sum = 0;

for(int i=0;i

char c = str.charAt(len-1-i);

int n = Character.digit(c,16);

sum += n * (1<<(4*i));

}

其實(shí)诫龙,也可以用Integer.parseInt(str,16)析显,但面試官很可能是想考我們的編碼基本功。

9签赃、讀取一個文件在控制臺打印出來

【參考答案】

File file =newFile("E:\\JRadioButtonDemo.java");

longfile_length= file.length();

try{

//輸入流

FileInputStream input =newFileInputStream(file);

byteb_data [] =newbyte[(int)file_length];

input.read(b_data);

System.out.println(newString(b_data));

input.close();

}catch(FileNotFoundException e) {

//TODOAuto-generated catch block

e.printStackTrace();

}catch(IOException e) {

//TODOAuto-generated catch block

e.printStackTrace();

10谷异、遞歸實(shí)現(xiàn)1,1,2,3,5,8,.30個數(shù)是多少分尸?【上海菲耐德】

【參考答案】

public?static?int?Foo(int?i)

{

if?(i?<=?0)

return?0;

else?if(i?>?0?&&?i?<=?2)

return?1;

else?return?Foo(i?-1)?+?Foo(i?-?2);

}

int?i=Foo(30);

System.out.println(i);

11、求一個字符串中第一個無重復(fù)的字符

publicstaticvoidgetUniqueString(String str){

booleanbool =true;

for(inti=0;i

String s1 = str.substring(i, i+1);

if(str.indexOf(s1, i+1)==-1){

System.out.println(s1);

bool =false;

}

}

}

12歹嘹、寫一個遞歸函數(shù)箩绍,輸入一個整數(shù),反序輸出這個整數(shù)

//寫一個遞歸函數(shù)荞下,輸入一個整數(shù)伶选,反序輸出這個整數(shù)

publicstaticvoidprintOut(intn) {

System.out.print(n % 10);

if(n >= 10){

printOut(n / 10);

}

}

13史飞、有一個數(shù)據(jù)文件:123 34 ?17 ?651234 ?345....這些數(shù)據(jù)都是隨機(jī)產(chǎn)生的,編寫程序讀出該文件.并將其以從大到小的順序輸出到另一個文件中.

public void readtext(){

File file = new File("D:\test.txt");

List list= new ArrayList();

try {

BufferedReader br=new BufferedReader(new FileReader(file));

String data = "";

String line = null;

while ( (line = br.readLine()) != null) {

data = data.concat(line);

}

StringTokenizer stoken = new StringTokenizer(data, " ");

while (stoken.hasMoreTokens()) {

int i = Integer.parseInt(stoken.nextToken());

list.add(i);

}

}catch(Exception ex) {}

String[] str = new String[list.size()];

for(int i=0;i

str[i]=list.get(i);

}

Object iTemp= null;

for(int i=1;i

for(int j=list.size()-1;j>=i;j--) {

if(str[j]>str[j-1]) {

iTemp = str[j-1];

str[j-1] = str[j];

str[j] = iTemp;

}

}

String result = "";

for(int i=0;i

result +=str[i]+" ";

}

//將result寫入另外一個文件即可尖昏。

}

14、從一到十九共十九個數(shù),打印出利用這十九個整數(shù)任意多個相加等于20所以可能性,每個數(shù)字在同一個算式中只出現(xiàn)一次.

public void test(){

Integer[] a = new Integer[19];

for(int i=1;i<20;i++){

a[i-1]=i;

}

for(int i=0;i<18;i++){

for(int j=18-i;j<18;j++)

if(a[i]+a[j]==20)

System.out.println(a[i]+"+"+a[i+1]+"="+20);

}

}

15构资、一個字符串中可能存在A-Z的全角字符抽诉,寫一個方法把里面的全角字符轉(zhuǎn)變成半角字符?

答:采用建立字典表進(jìn)行查找轉(zhuǎn)換

public??static?String?translate(String?s){

String?qj?=?"ABCDEFGHIJKLMNOPQRSTUVWXYZ";

String?bj?=?"ABCDEFGHIJKLMNOPQRSTUVWXYZ";

StringBuffer?sb?=?new?StringBuffer();

for(int?i=0;i

char?c?=?s.charAt(i);

int?pos?=?qj.indexOf(c);

if(pos>=0){

System.out.println(c?+?","?+?pos);

sb.append(bj.charAt(pos));

}else{

sb.append(c);

}

}

return?sb.toString();

}

16吐绵、Stack堆棧迹淌,實(shí)現(xiàn)進(jìn)棧、出棧己单“η裕【云巢動脈面試題】

package t1;

public class mystack {

private Object[] data;

private int top=-1;

private int size;

public mystack()

{

data=new Object[5];

size=5;

}

public mystack(int size)

{

data=new Object[size];

this.size=size;

}

public void push(Object obj)

{

if(this.isfull())

{

return ;

}

top++;

data[top]=obj;

}

public Object pop() {

if(this.isempty())

{

return null;

}

Object obj=data[top];

top--;

return obj ;

}

public boolean isfull()

{

if(top==data.length)

{

return true;

}

else

{

return false;

}

}

public boolean isempty()

{

if(top==-1)

{

return true;

}

else

{

return false;

}

}

}

17、定義兩個變量ab纹笼,不使用第三個變量纹份,使兩個值交換

public class testMain {

public void test(int a,int b){

System.out.println("交換前a = "+a);

System.out.println("交換前b = "+b);

a=a+b;

b=a-b;

a=a-b;

System.out.println("交換后a = " +a);

System.out.print("交換后b = "+b);

}

public static void main(String args[]){

new testMain().test(10,13);

}

}

18、針對一個分期付款廷痘,總期為1年蔓涧,給定分期金額,期數(shù)和開始還款時間笋额,計算出各期還款日期元暴。

package?demo;

import?java.util.Calendar;

import?java.util.Date;

public?class?TestDemo?{

//分期付款,總期為1年兄猩,給定分期金額茉盏,期數(shù)和開始還款時間

//計算出各期還款日期

public?void?huankuan(double?amount,int??num,Date?start){

int?period?=?365/num;?//一年中分期間隔天數(shù)

Calendar?cal?=?Calendar.getInstance();

cal.set(Calendar.YEAR,?start.getYear()+1900);

cal.set(Calendar.MONTH,?start.getMonth());

cal.set(Calendar.DATE,?start.getDate());

for(int?i=1;i<=num;i++){

System.out.println("第"?+?i?+?"期還款日期:?"?+?cal.getTime().toLocaleString());

cal.add(Calendar.DATE,?period);

}

}

public?static?void?main(String[]?args)?{

TestDemo?demo?=?new?TestDemo();

demo.huankuan(20000.00,?1,?new?Date());

}

}

19、用一個方法查出宜個數(shù)值類型數(shù)組的最大值枢冤,用遞歸方式實(shí)現(xiàn)援岩。【高達(dá)軟件】

方法1

public class Test1 {

public static int a(int[] i,int j){

if(i.length-1>j){

if(i[j]>i[j+1]){

i[j+1]=i[j];

}

return a(i,j+1);

}else{

return i[i.length-1];

}

}

}

方法2 ?--非遞歸

public ?static int ?test(int ?[]num){

int x=0;

int log ??= ?num.Length;

for(intt=0;t

if(num[t]>x){

x=num[t];

}

}return ?x;

}

方法3 ---遞歸不改變原數(shù)組中的元素

public static int getMax(int[]a, int index,int max){

int len = a.length;

if(len==1){

return a[len-1];

}

if(index==0){

max = a[index];

}

if(index==len){

return max;

}

if(max

max = a[index];

}

index++;

return getMax(a,index,max);

}

//測試

int max = getMax(new int[]{2,5,18,3,38,10,2},0,0);

System.out.println(max);

20掏导、C編寫將一個100以內(nèi)的自然數(shù)分解質(zhì)因數(shù)

/* ?100以內(nèi)素數(shù)*/

#include

main()

{

int i,j;

for(i=2;i<100;i++)

{

for(j=2;j

{

if(i%j==0)

break;

}

if(i==j)

{

printf("%d ",i);

}

}

}

/*分解質(zhì)因數(shù)*/

main()

{

int ??n,i;

printf( "please ??input ??a ??number:\n ");

scanf( "%d ",&n);

printf( "%d= ",n);

for(i=2;i <=n;i++)

while(n!=i)

{

if(n%i==0)

{

printf( "%d* ",i);

n=n/i;

} else{break;}

}

printf( "%d ",n);

getch();

}

21享怀、main方法中將字符串中的數(shù)字排序并輸出STRING A="56.89.5.3.75.98.98.26.15.44"

String s=”56.89.5.3.75.98.98.26.15.44”;

String s1[]=s. split (“.”);

Integer ii[]=new Integer[s1.length];

For(int i=0;i

ii[i]=Integer.parseInt(s1[i]);

}

Arrays.sort(ii);

for(Integer o: ii){

System.out.println(o+”s”);

}

22、40趟咆,用你所知道的數(shù)學(xué)方法計算出24

0的階乘等于1即0L泶伞=1那么4個0就是4了

又4的階乘為244C诽搿=24

23、判斷身份證:要么是15位鳞贷,要么是18位坯汤,最后一位可以為字母,并寫程序提出其中的年月日搀愧。

答:我們可以用正則表達(dá)式來定義復(fù)雜的字符串格式惰聂,(\d{17}[0-9a-zA-Z]|\d{14}[0-9a-zA-Z])可以用來判斷是否為合法的15位或18位身份證號碼。

因?yàn)?5位和18位的身份證號碼都是從7位到第12位為身份證為日期類型咱筛。這樣我們可以設(shè)計出更精確的正則模式搓幌,使身份證號的日期合法,這樣我們的正則模式可以進(jìn)一步將日期部分的正則修改為[12][0-9]{3}[01][0-9][123][0-9]迅箩,當(dāng)然可以更精確的設(shè)置日期溉愁。

在jdk的java.util.Regex包中有實(shí)現(xiàn)正則的類,Pattern和Matcher。以下是實(shí)現(xiàn)代碼:

import java.util.regex.Matcher;

import java.util.regex.Pattern;

public class RegexTest {

/**

* @param args

*/

public static void main(String[] args) {

//測試是否為合法的身份證號碼

String[] strs = { "130681198712092019", "13068119871209201x",

"13068119871209201", "123456789012345", "12345678901234x",

"1234567890123" };

Pattern p1 = Pattern.compile("(\\d{17}[0-9a-zA-Z]|\\d{14}[0-9a-zA-Z])");

for (int i = 0; i < strs.length; i++) {

Matcher matcher = p1.matcher(strs[i]);

System.out.println(strs[i] + ":" + matcher.matches());

}

Pattern p2 = Pattern.compile("\\d{6}(\\d{8}).*"); //用于提取出生日字符串

Pattern p3 = Pattern.compile("(\\d{4})(\\d{2})(\\d{2})");//用于將生日字符串進(jìn)行分解為年月日

for (int i = 0; i < strs.length; i++) {

Matcher matcher = p2.matcher(strs[i]);

boolean b = matcher.find();

if (b) {

String s = matcher.group(1);

Matcher matcher2 = p3.matcher(s);

if (matcher2.find()) {

System.out

.println("生日為" + matcher2.group(1) + "年"

+ matcher2.group(2) + "月"

+ matcher2.group(3) + "日");

}

}

}

}

}

24饲趋、編寫一個程序拐揭,將a.txt文件中的單詞與b.txt文件中的單詞交替合并到c.txt文件中,a.txt文件中的單詞用回車符分隔奕塑,b.txt文件中用回車或空格進(jìn)行分隔堂污。

答:

package cn.itcast;

import java.io.File;

import java.io.FileReader;

import java.io.FileWriter;

public class MainClass{

public static void main(String[] args) throws Exception{

FileManager a = new FileManager("a.txt",new char[]{'\n'});

FileManager b = new FileManager("b.txt",new char[]{'\n',' '});

FileWriter c = new FileWriter("c.txt");

String aWord = null;

String bWord = null;

while((aWord = a.nextWord()) !=null ){

c.write(aWord + "\n");

bWord = b.nextWord();

if(bWord != null)

c.write(bWord + "\n");

}

while((bWord = b.nextWord()) != null){

c.write(bWord + "\n");

}

c.close();

}

}

class FileManager{

String[] words = null;

int pos = 0;

public FileManager(String filename,char[] seperators) throws Exception{

File f = new File(filename);

FileReader reader = new FileReader(f);

char[] buf = new char[(int)f.length()];

int len = reader.read(buf);

String results = new String(buf,0,len);

String regex = null;

if(seperators.length >1 ){

regex = "" + seperators[0] + "|" + seperators[1];

}else{

regex = "" + seperators[0];

}

words = results.split(regex);

}

public String nextWord(){

if(pos == words.length)

return null;

return words[pos++];

}

}

25、編寫一個程序龄砰,將d:\java目錄下的所有.java文件復(fù)制到d:\jad目錄下儡湾,并將原來文件的擴(kuò)展名從.java改為.jad溉瓶。

答:listFiles方法接受一個FileFilter對象杏节,這個FileFilter對象就是過慮的策略對象兵睛,不同的人提供不同的FileFilter實(shí)現(xiàn),即提供了不同的過濾策略圃泡。

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.FilenameFilter;

import java.io.IOException;

import java.io.InputStream;

import java.io.OutputStream;

public class Jad2Java {

public static void main(String[] args) throws Exception {

File srcDir = new File("java");

if(!(srcDir.exists() && srcDir.isDirectory()))

throw new Exception("目錄不存在");

File[] files = srcDir.listFiles(

new FilenameFilter(){

public boolean accept(File dir, String name) {

return name.endsWith(".java");

}

}

);

System.out.println(files.length);

File destDir = new File("jad");

if(!destDir.exists()) destDir.mkdir();

for(File f :files){

FileInputStream ?fis = new FileInputStream(f);

String destFileName = f.getName().replaceAll("\\.java$", ".jad");

FileOutputStream fos = new FileOutputStream(new File(destDir,destFileName));

copy(fis,fos);

fis.close();

fos.close();

}

}

private static void copy(InputStream ips,OutputStream ops) throws Exception{

int len = 0;

byte[] buf = new byte[1024];

while((len = ips.read(buf)) != -1){

ops.write(buf,0,len);

}

}

}

由本題總結(jié)的思想及策略模式的解析:

1.

class jad2java{

1.得到某個目錄下的所有的java文件集合

1.1得到目錄File srcDir = new File("d:\\java");

1.2得到目錄下的所有java文件:File[] files = srcDir.listFiles(new MyFileFilter());

1.3只想得到.java的文件:class MyFileFilter implememyts FileFilter{

public boolean accept(File pathname){

return pathname.getName().endsWith(".java")

}

}

2.將每個文件復(fù)制到另外一個目錄碟案,并改擴(kuò)展名

2.1得到目標(biāo)目錄,如果目標(biāo)目錄不存在颇蜡,則創(chuàng)建之

2.2根據(jù)源文件名得到目標(biāo)文件名价说,注意要用正則表達(dá)式,注意.的轉(zhuǎn)義风秤。

2.3根據(jù)表示目錄的File和目標(biāo)文件名的字符串鳖目,得到表示目標(biāo)文件的File。

//要在硬盤中準(zhǔn)確地創(chuàng)建出一個文件缤弦,需要知道文件名和文件的目錄领迈。

2.4將源文件的流拷貝成目標(biāo)文件流,拷貝方法獨(dú)立成為一個方法,方法的參數(shù)采用抽象流的形式狸捅。

//方法接受的參數(shù)類型盡量面向父類衷蜓,越抽象越好,這樣適應(yīng)面更寬廣尘喝。

}

分析listFiles方法內(nèi)部的策略模式實(shí)現(xiàn)原理

File[] listFiles(FileFilter filter){

File[] files = listFiles();

//Arraylist acceptedFilesList = new ArrayList();

File[] acceptedFiles = new File[files.length];

int pos = 0;

for(File file: files){

boolean accepted = filter.accept(file);

if(accepted){

//acceptedFilesList.add(file);

acceptedFiles[pos++] = file;

}

}

Arrays.copyOf(acceptedFiles,pos);

//return (File[])accpetedFilesList.toArray();

}

26磁浇、編寫一個截取字符串的函數(shù),輸入為一個字符串和字節(jié)數(shù)朽褪,輸出為按字節(jié)截取的字符串置吓,但要保證漢字不被截取半個,如“我ABC”缔赠,4衍锚,應(yīng)該截取“我AB”,輸入“我ABCDEF”橡淑,6构拳,應(yīng)該輸出“我ABC”咆爽,而不是“我ABC+漢的半個”梁棠。

答:

首先要了解中文字符有多種編碼及各種編碼的特征。

假設(shè)n為要截取的字節(jié)數(shù)斗埂。

public static void main(String[] args) throws Exception{

String str = "我a愛中華abc def';

String str = "我ABC漢";

int num = trimGBK(str.getBytes("GBK"),5);

System.out.println(str.substring(0,num) );

}

public static int ?trimGBK(byte[] buf,int n){

int num = 0;

boolean bChineseFirstHalf = false;

for(int i=0;i

{

if(buf[i]<0 && !bChineseFirstHalf){

bChineseFirstHalf = true;

}else{

num++;

bChineseFirstHalf = false;

}

}

return num;

}

27符糊、有一個字符串,其中包含中文字符呛凶、英文字符和數(shù)字字符男娄,請統(tǒng)計和打印出各個字符的個數(shù)。

答:String content =“中國aadf的111薩bbb菲的zz薩菲”;

HashMap map = new HashMap();

for(int i=0;i

{

char c = content.charAt(i);

Integer num = map.get(c);

if(num == null)

num = 1;

else

num = num + 1;

map.put(c,num);

}

for(Map.EntrySet entry : map)

{

system.out.println(entry.getkey() +“:”+ entry.getValue());

}

如果一串字符如"aaaabbc中國1512"要分別統(tǒng)計英文字符的數(shù)量漾稀,中文字符的數(shù)量模闲,和數(shù)字字符的數(shù)量,假設(shè)字符中沒有中文字符崭捍、英文字符尸折、數(shù)字字符之外的其他特殊字符。

int engishCount;

int chineseCount;

int digitCount;

for(int i=0;i

{

char ch = str.charAt(i);

if(ch>=’0’&& ch<=’9’)

{

digitCount++

}

else if((ch>=’a’&& ch<=’z’) || (ch>=’A’&& ch<=’Z’))

{

engishCount++;

}

else

{

chineseCount++;

}

}

System.out.println(……………);

28殷蛇、從類似如下的文本文件中讀取出所有的姓名实夹,并打印出重復(fù)的姓名和重復(fù)的次數(shù),并按重復(fù)次數(shù)排序:

1,張三,28

2,李四,35

3,張三,28

4,王五,35

5,張三,28

6,李四,35

7,趙六,28

8,田七,35

package com.huawei.interview;

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.util.Comparator;

import java.util.HashMap;

import java.util.Iterator;

import java.util.Map;

import java.util.TreeSet;

public class GetNameTest {

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

//InputStream ips = GetNameTest.class.getResourceAsStream("/com/huawei/interview/info.txt");

//用上一行注釋的代碼和下一行的代碼都可以粒梦,因?yàn)閕nfo.txt與GetNameTest類在同一包下面亮航,所以,可以用下面的相對路徑形式

Map results = new HashMap();

InputStream ips = GetNameTest.class.getResourceAsStream("info.txt");

BufferedReader in = new BufferedReader(new InputStreamReader(ips));

String line = null;

try {

while((line=in.readLine())!=null)

{

dealLine(line,results);

}

sortResults(results);

}catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

static class User

{

public ?String name;

public Integer value;

public User(String name,Integer value)

{

this.name = name;

this.value = value;

}

@Override

public boolean equals(Object obj) {

// TODO Auto-generated method stub

//下面的代碼沒有執(zhí)行匀们,說明往treeset中增加數(shù)據(jù)時缴淋,不會使用到equals方法。

boolean result = super.equals(obj);

System.out.println(result);

return result;

}

}

private static void sortResults(Map results) {

// TODO Auto-generated method stub

TreeSet sortedResults = new TreeSet(

new Comparator(){

public int compare(Object o1, Object o2) {

// TODO Auto-generated method stub

User user1 = (User)o1;

User user2 = (User)o2;

/*如果compareTo返回結(jié)果0,則認(rèn)為兩個對象相等重抖,新的對象不會增加到集合中去

*所以圆存,不能直接用下面的代碼,否則仇哆,那些個數(shù)相同的其他姓名就打印不出來沦辙。

* */

//return user1.value-user2.value;

//return user1.value

if(user1.value

{

return -1;

}else if(user1.value>user2.value)

{

return 1;

}else

{

return user1.name.compareTo(user2.name);

}

}

}

);

Iterator iterator = results.keySet().iterator();

while(iterator.hasNext())

{

String name = (String)iterator.next();

Integer value = (Integer)results.get(name);

if(value > 1)

{

sortedResults.add(new User(name,value));

}

}

printResults(sortedResults);

}

private static void printResults(TreeSet sortedResults)

{

Iterator iterator ?= sortedResults.iterator();

while(iterator.hasNext())

{

User user = (User)iterator.next();

System.out.println(user.name + ":" + user.value);

}

}

public static void dealLine(String line,Map map)

{

if(!"".equals(line.trim()))

{

String [] results = line.split(",");

if(results.length == 3)

{

String name = results[1];

Integer value = (Integer)map.get(name);

if(value == null) value = 0;

map.put(name,value + 1);

}

}

}

}

29、寫一個Singleton出來讹剔。

第一種:飽漢模式

public class SingleTon {

private SingleTon(){

}

//實(shí)例化放在靜態(tài)代碼塊里可提高程序的執(zhí)行效率油讯,但也可能更占用空間

private final static SingleTon instance = new SingleTon();

public static SingleTon getInstance(){

return instance;

}

}

第二種:饑漢模式

public class SingleTon {

private SingleTon(){}

private static instance = null;//new SingleTon();

public static synchronized SingleTon getInstance(){

if(instance == null)

instance = new SingleTon();

return instance;

}

}

第三種:用枚舉

public enum SingleTon{

ONE;

}

第三:更實(shí)際的應(yīng)用(在什么情況用單例)

public class SequenceGenerator{

//下面是該類自身的業(yè)務(wù)功能代碼

private int count = 0;

public synchronized int getSequence(){

++count;

}

//下面是把該類變成單例的代碼

private SequenceGenerator(){}

private final static instance = new SequenceGenerator();

public static SingleTon getInstance(){

return instance;

}

}

第四:

public class MemoryDao

{

private HashMap map = new HashMap();

public void add(Student stu1){

map.put(SequenceGenerator.getInstance().getSequence(),stu1);

}

//把MemoryDao變成單例

}

Singleton模式主要作用是保證在Java應(yīng)用程序中,一個類Class只有一個實(shí)例存在延欠。

一般Singleton模式通常有幾種種形式:

第一種形式:定義一個類陌兑,它的構(gòu)造函數(shù)為private的,它有一個static的private的該類變量由捎,在類初始化時實(shí)例話兔综,通過一個public的getInstance方法獲取對它的引用,繼而調(diào)用其中的方法。

public class Singleton {

private Singleton(){}

//在自己內(nèi)部定義自己一個實(shí)例狞玛,是不是很奇怪软驰?

//注意這是private只供內(nèi)部調(diào)用

private static Singleton instance = new Singleton();

//這里提供了一個供外部訪問本class的靜態(tài)方法,可以直接訪問

public static Singleton getInstance() {

return instance;

}

}

第二種形式:

public class Singleton {

private static Singleton instance = null;

public static synchronized Singleton getInstance() {

//這個方法比上面有所改進(jìn)心肪,不用每次都進(jìn)行生成對象锭亏,只是第一次

//使用時生成實(shí)例,提高了效率硬鞍!

if (instance==null)

instance=new Singleton();

return instance;

}

}

其他形式:

定義一個類慧瘤,它的構(gòu)造函數(shù)為private的,所有方法為static的固该。

一般認(rèn)為第一種形式要更加安全些

30锅减、一個整數(shù),大于0伐坏,不用循環(huán)和本地變量怔匣,按照n2n著淆,4n劫狠,8n的順序遞增,當(dāng)值大于5000時永部,把值按照指定順序輸出來独泞。

例:n=1237

則輸出為:

1237,

2474苔埋,

4948懦砂,

9896,

9896,

4948荞膘,

2474罚随,

1237,

提示:寫程序時羽资,先致謝按遞增方式的代碼淘菩,寫好遞增的以后,再增加考慮遞減部分屠升。

public static void doubleNum(int n)

{

System.out.println(n);

if(n<=5000)

doubleNum(n*2);

System.out.println(n);

}

Gaibaota(N) = Gaibaota(N-1) + n

31潮改、1個人10,第2個比第1個人大2歲腹暖,依次遞推汇在,請用遞歸方式計算出第8個人多大?

package cn.demo;

import java.util.Date;

public class A1 {

public static void main(String [] args)

{

System.out.println(computeAge(8));

}

public static int computeAge(int n)

{

if(n==1) return 10;

returncomputeAge(n-1) + 2;

}

}

public static void toBinary(int n,StringBuffer result)

{

if(n/2 != 0)

toBinary(n/2,result);

result.append(n%2);

}

32脏答、排序都有哪幾種方法糕殉?請列舉。用JAVA實(shí)現(xiàn)一個快速排序殖告。

交換式排序阿蝶、選擇排序、插入排序丛肮、希爾排序赡磅、快速排序

public class QuickSort {

/**

*快速排序

* @param strDate

* @param left

* @param right

*/

public void quickSort(String[] strDate,int left,int right){

String middle,tempDate;

int i,j;

i=left;

j=right;

middle=strDate[(i+j)/2];

do{

while(strDate[i].compareTo(middle)<0&& i

i++; //找出左邊比中間值大的數(shù)

while(strDate[j].compareTo(middle)>0&& j>left)

j--; //找出右邊比中間值小的數(shù)

if(i<=j){ //將左邊大的數(shù)和右邊小的數(shù)進(jìn)行替換

tempDate=strDate[i];

strDate[i]=strDate[j];

strDate[j]=tempDate;

i++;

j--;

}

}while(i<=j); //當(dāng)兩者交錯時停止

if(i

quickSort(strDate,i,right);//從

}

if(j>left){

quickSort(strDate,left,j);

}

}

/**

* @param args

*/

public static void main(String[] args){

String[] strVoid=new String[]{"11","66","22","0","55","22","0","32"};

QuickSort sort=new QuickSort();

sort.quickSort(strVoid,0,strVoid.length-1);

for(int i=0;i

System.out.println(strVoid[i]+" ");

}

}

}

33魄缚、有數(shù)組a[n]宝与,用java代碼將數(shù)組元素順序顛倒

//用下面的也可以

//for(int i=0,int j=a.length-1;i

import java.util.Arrays;

public class SwapDemo{

public static void main(String[] args){

int [] a = new int[]{

(int)(Math.random() * 1000),

(int)(Math.random() * 1000),

(int)(Math.random() * 1000),

(int)(Math.random() * 1000),

(int)(Math.random() * 1000)

};

System.out.println(a);

System.out.println(Arrays.toString(a));

swap(a);

System.out.println(Arrays.toString(a));

}

public static void swap(int a[]){

int len = a.length;

for(int i=0;i

int tmp = a[i];

a[i] = a[len-1-i];

a[len-1-i] = tmp;

}

}

}

34、寫一個方法冶匹,用一個for循環(huán)打印九九乘法表

/**?*//**

*打印九九乘法口訣表

*/

public?void?nineNineMulitTable(){

for?(int?i?=?1,j?=?1;?j?<=?9;?i++)?{

System.out.print(i+"*"+j+"="+i*j+"?");

if(i==j){

i=0;

j++;

System.out.println();

}

}

}

35习劫、給定一個java.util.Date對象,如何轉(zhuǎn)化為”2007-3-22?20:23:22”格式的字符串嚼隘》汤铮【高達(dá)軟件】

/**?*//**

*將某個日期以固定格式轉(zhuǎn)化成字符串

*?@param?date

*?@return?str

*/

public?String?date2FormatStr(Date?date)

{

SimpleDateFormat?sdf?=?new?SimpleDateFormat("yyyy-MM-dd?HH:mm:ss");

String?str?=?sdf.format(date);

return?str;

}

36、金額轉(zhuǎn)換飞蛹,阿拉伯?dāng)?shù)字的金額轉(zhuǎn)換成中國傳統(tǒng)的形式如:(¥1011)->(一千零一拾一元整)輸出谤狡。

去零的代碼:

return sb.reverse().toString().replaceAll("零[拾佰仟]","零").replaceAll("零+萬","萬").replaceAll("零+元","元").replaceAll("零+","零");

public class RenMingBi {

/**

* @param args add by zxx ,Nov 29, 2008

*/

private static final char[] data = new char[]{

'零','壹','貳','叁','肆','伍','陸','柒','捌','玖'

};

private static final char[] units = new char[]{

'元','拾','佰','仟','萬','拾','佰','仟','億'

};

public static void main(String[] args) {

// TODO Auto-generated method stub

System.out.println(

convert(135689123));

}

public static String convert(int money)

{

StringBuffer sbf = new StringBuffer();

int unit = 0;

while(money!=0)

{

sbf.insert(0,units[unit++]);

int number = money%10;

sbf.insert(0, data[number]);

money /= 10;

}

return sbf.toString();

}

}

37、寫一個方法卧檐,能夠判斷任意一個整數(shù)是否素數(shù)

/** *//**

*判斷任意一個整數(shù)是否素數(shù)

* @param num

* @return boolean

*/

public boolean isPrimeNumber(int num)

{

for (int i = 2; i <= Math.sqrt(num); i++) {

if(num%i==0)

{

return false;

}

}

return true;

}

38墓懂、12霉囚、3捕仔、455個數(shù)字,用Java寫一個Main函數(shù)榜跌,打印所有不同的排序

static int[] bits = new int[] { 1, 2, 3, 4, 5 };

/**

* @param args

*/

public static void main(String[] args) {

sort("", bits);

}

private static void sort(String prefix, int[] a) {

if (a.length == 1) {

System.out.println(prefix + a[0]);

}

for (int i = 0; i < a.length; i++) {

sort(prefix + a[i], copy(a, i));

}

}

private static int[] copy(int[] a,int index){

int[] b = new int[a.length-1];

System.arraycopy(a, 0, b, 0, index);

System.arraycopy(a, index+1, b, index, a.length-index-1);

return b;

}

39闪唆、寫一個方法,輸入任意一個整數(shù)钓葫,返回它的階乘

/**?*//**

*獲得任意一個整數(shù)的階乘

n

!

*/

public?int?factorial(int?num)

{

//遞歸

if(num?==?1)

{

return?1;

}

return?num*factorial(num-1);

}

40悄蕾、寫一個方法,用二分查找法判斷任意整數(shù)在任意整數(shù)數(shù)組里面是否存在础浮,若存在就返回它在數(shù)組中的索引位置笼吟,不存在返回-1

/**?*//**

*二分查找特定整數(shù)在整型數(shù)組中的位置(遞歸)

dataset

data

beginIndex

endIndex

index

*/

public?int?binarySearch(int[]?dataset,int?data,int?beginIndex,int?endIndex){

int?midIndex?=?(beginIndex+endIndex)/2;

//如果查找的數(shù)要比開始索引的數(shù)據(jù)要小或者是比結(jié)束索引的書要大,或者開始查找的索引值大于結(jié)束的索引值返回-1沒有查到

if(data?dataset[endIndex]||beginIndex>endIndex){

return?-1;

}

if(data?

return?binarySearch(dataset,data,beginIndex,midIndex-1);

}else?if(data>dataset[midIndex])

{

return?binarySearch(dataset,data,midIndex+1,endIndex);

}else?{

return?midIndex;

}

}

/**?*//**

*二分查找特定整數(shù)在整型數(shù)組中的位置(非遞歸)

dataset

data

index

*/

public?int?binarySearch(int[]?dataset?,int?data)

{

int?beginIndex?=?0;

int?endIndex?=?dataset.length?-?1;

int?midIndex?=?-1;

if(data?dataset[endIndex]||beginIndex>endIndex){

return?-1;

}

while(beginIndex?<=?endIndex)?{

midIndex?=?(beginIndex+endIndex)/2;

if(data?

endIndex?=?midIndex-1;

}?else?if(data>dataset[midIndex])?{

beginIndex?=?midIndex+1;

}else?{

return?midIndex;

}

}

return?-1;

}

41霸旗、如果一個序列的前四個數(shù)字分別是2,9,28,65請問第五個數(shù)字是?

13+1=2

23+1=9

32+1=28

43+1=65

所以繼續(xù)的話應(yīng)是

53+1=126

42贷帮、編寫函數(shù)找出11000之內(nèi)能被3整除且不是偶數(shù)的整數(shù),并按個位數(shù)的大小從大到小排序

public List find() {

List list=new ArrayList();

for (int i = 1; i <=1000; i++) {

if (i%3==0 && i%2!=0) {

list.add(i);

}

}

return list;

}

43诱告、java方法編寫計算指定目錄下所有文件占空間大小

//返回文件大小private void getFileSize()throws RuntimeException,IOException

{//初始化文件大小為0撵枢;

this.longSize=0;

//如果文件存在而且是文件,直接返回文件大小

if(file.exists()&&file.isFile()){

this.longSize= file.length();

}

//文件存在而且是目錄精居,遞歸遍歷文件目錄計算文件大小else if(file.exists()&&file.isDirectory()){

getFileSize(file);//遞歸遍歷

}else{

throw new RuntimeException("指定文件不存在");

}

}

44锄禽、一個list中,有b.a.b.c.b.b.寫個方法去掉所有b

public List qub(List list) {

List alist=new ArrayList();

for (int i = 0; i < list.size(); i++) {

String a=(String)list.get(i);

if (!a.equals("b")) {

alist.add(a);

}

}

return alist;

}

45靴姿、設(shè)計線程的生產(chǎn)者和消費(fèi)者模式

package com;

import java.io.*;

import java.util.*;

public class Test1 {

Vector v = new Vector();

int index = -1;

boolean isput = false;

public synchronized void put(String name) throws InterruptedException{

if(isput){

wait();

}

v.add(name);

index++;

isput = true;

notify();

System.out.println(Thread.currentThread().getName());

}

public synchronized ?void get() throws InterruptedException{

if(!isput){

wait();

}

System.out.println(Thread.currentThread().getName()+"取:"+v.get(index));

isput = false;

notify();

}

public static void main(String[] args) throws CloneNotSupportedException, FileNotFoundException, IOException, InterruptedException {

Test1 t = new Test1();

A a = new A(t);

B b = new B(t);

new Thread(a).start();

new Thread(b).start();

}

}

class A implements Runnable{

Test1 t;

public A(Test1 t){

this.t = t;

}

@Override

public void run() {

int i ?=0 ;

while(true){

if(i==0){

try {

t.put("男");

} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}else{

try {

t.put("女");

} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

i = (i+1)%2;

}

}

}

class B implements Runnable{

Test1 t;

public B(Test1 t){

this.t = t;

}

@Override

public void run() {

// TODO Auto-generated method stub

while(true){

try {

t.get();

} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

}

46沃但、寫一個方法求兩個數(shù)的公約數(shù)

importjava.util.ArrayList;

importjava.util.List;

publicclassMaxNum {

intnum=0;

publicListMaxs(inta){//先找出能被第一個數(shù)整除的數(shù)

List list=newArrayList();

for(inti = 1; i <= a; i++) {

if(a%i==0){

list.add(i);

}

}

returnlist;

}

publicvoidTest(inta,intb){

List list=newMaxNum().Maxs(a);

for(inti = 0; i < list.size(); i++) {

intbb=(Integer) list.get(i);

if(b%bb==0){//找出能被第二個數(shù)整出并且也能被第二個數(shù)整除的數(shù)

num=bb;

}

}

System.out.println("最大公約數(shù)為:"+num);

}

publicstaticvoidmain(String[] args) {

newMaxNum().Test(100,1000);

}

}

47、實(shí)現(xiàn)字符串的反轉(zhuǎn)佛吓。如:abcd輸出dcba

答:

StringBufferstringBuffer =

newStringBuffer().append("abc").reverse();

System.out.println(stringBuffer.toString());

48宵晚、編寫程序?qū)⒂蓴?shù)字及字符組成的字符串中的數(shù)字截取出來并按順序輸出,例如:ABC137GMNQQ2049PN5FFF”輸出結(jié)果應(yīng)該為01234579

package com.tarena;

import java.util.Arrays;

public class NumberSplitChar {

public static void main(String[] args) {

String str=”ABC137GMNQQ2049PN5FFF”;

char[] beforechars=str.toCharArray();

char[] afterchars=new char[beforechars.length];

int j=0;

for(int i=0;i

if(beforechars[i]>=’0' && beforechars[i]<=’9'){

afterchars[j++]=beforechars[i];

}

}

Arrays.sort(afterchars);

for(int i=(afterchars.length-j);i

System.out.print(afterchars[i]);

}

}

}

下載完整面試題文件:

https://www.duyunwl.cn/2019/03/08/java面試題大全/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末维雇,一起剝皮案震驚了整個濱河市淤刃,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌吱型,老刑警劉巖逸贾,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異津滞,居然都是意外死亡铝侵,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進(jìn)店門触徐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來咪鲜,“玉大人,你說我怎么就攤上這事锌介∈染鳎” “怎么了猾警?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長隆敢。 經(jīng)常有香客問我发皿,道長,這世上最難降的妖魔是什么拂蝎? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任穴墅,我火速辦了婚禮,結(jié)果婚禮上温自,老公的妹妹穿的比我還像新娘玄货。我一直安慰自己,他們只是感情好悼泌,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布松捉。 她就那樣靜靜地躺著,像睡著了一般馆里。 火紅的嫁衣襯著肌膚如雪隘世。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天鸠踪,我揣著相機(jī)與錄音丙者,去河邊找鬼。 笑死营密,一個胖子當(dāng)著我的面吹牛械媒,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播评汰,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼纷捞,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了键俱?” 一聲冷哼從身側(cè)響起兰绣,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎编振,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體臭埋,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡踪央,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了瓢阴。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片畅蹂。...
    茶點(diǎn)故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖荣恐,靈堂內(nèi)的尸體忽然破棺而出液斜,到底是詐尸還是另有隱情累贤,我是刑警寧澤示损,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布脆贵,位于F島的核電站双泪,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一寨昙、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽皮壁。三九已至湿滓,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工筷屡, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人纠拔。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓秉剑,卻偏偏與公主長得像,于是被迫代替她去往敵國和親稠诲。 傳聞我的和親對象是個殘疾皇子侦鹏,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,762評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 【程序1】 題目:古典問題:有一對兔子,從出生后第3個月起每個月都生一對兔子臀叙,小兔子長到第三個月后每個月又生一對兔...
    葉總韓閱讀 5,126評論 0 41
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法略水,類相關(guān)的語法,內(nèi)部類的語法劝萤,繼承相關(guān)的語法渊涝,異常的語法,線程的語...
    子非魚_t_閱讀 31,581評論 18 399
  • Java經(jīng)典問題算法大全 /*【程序1】 題目:古典問題:有一對兔子稳其,從出生后第3個月起每個月都生一對兔子驶赏,小兔子...
    趙宇_阿特奇閱讀 1,844評論 0 2
  • 小編費(fèi)力收集:給你想要的面試集合 1.C++或Java中的異常處理機(jī)制的簡單原理和應(yīng)用。 當(dāng)JAVA程序違反了JA...
    八爺君閱讀 4,573評論 1 114
  • 五月觀花欲訴蓮既鞠, 風(fēng)吹雨噬綠盈氈煤傍。 楊桃艷絢呈嬌態(tài), 杏柳叨歡顯媚憐嘱蛋。 鎖怨封情波意寄蚯姆, 含眸閉蕩頌清乾。 江南泛...
    喜在心間閱讀 1,012評論 0 0