자바 면접 필기시험 문제 집계 (속속 보충)

17711 단어 자바면접시험
최근 자신 도 면접 을 준비 하 는 한편 익숙 하지 않 은 곳 을 만나면 계속 보충 하 겠 습 니 다.
1. 정렬 과 거품 정렬 선택
/**
     *     
     * @param arr
     * @return
     */
    public static int[] ChooseSort(int[] arr){

        for(int i=0;iint min=i;
            for(int j=i+1;jif(arr[min]>arr[j]){
                    min=j;
                }
            }
            int temp=arr[min];
            arr[min]=arr[i];
            arr[i]=temp;

        }

        return arr;
    }

    /**
     *     
     * @param arr
     * @return
     */
    public static int[] BubbleSort(int[] arr){

        for(int i=0;i1;i++){
            for(int j=0;j1-i;j++){
                if(arr[j]>arr[j+1]){
                    int temp=arr[j];
                    arr[j]=arr[j+1];
                    arr[j+1]=temp;
                }
            }
        }

        return arr;
    }

2. 난수 10000 개 중 최대 1000 개 를 찾 아 코드 를 쓴다.
public static void main(String[] args) {
        int[] arr=RandomCommon();

        for(int i=0;i<1000;i++){
            for(int j=0;j1;j++){
                if(arr[j]1]){
                    int temp=arr[j];
                    arr[j]=arr[j+1];
                    arr[j+1]=temp;
                }
            }
        }
        for(int i=0;i<1000;i++){
            System.out.print(arr[i]+",");
        }
    }

    /**
     *   1w    
     * @return
     */
    public static int[] RandomCommon(){

        int max=100000; //     
        int min=1;  //     
        int n=10000; //     
        int[] result=new int[n]; //    10000   
        int count=0;

        while(countint num=(int) (Math.random()*(max-min)+min);
            boolean flag=true;
            for(int i=0;iif(result[i]==num){
                    flag=false;
                    break;
                }
            }
            if(flag){
                result[count]=num;
                count++;
            }
        }

        return result;
    }

3. 두 짝수 의 소수 (1 과 그 자체 에 의 해 정 제 될 수 있 는 수) 의 합 을 구한다.
public static void main(String[] args) {
        System.out.println(PrimeSum(68)+PrimeSum(98));
    }

    public static int PrimeSum(int a){

        int sum=0;

        //        ,           
        List prime=new ArrayList();
        for(int i=2;i<=Math.sqrt(a);i++){
        //           ,      1   ,    c    ,       ,     ,   a,b.        sqrt(c) ,    sqrt(c) 。
            while(true){
                if(a%i==0){
                    a/=i;
                    prime.add(i);//        
                }else{
                    break;  //if       while  
                }
            }
        }
        if(a!=1){
            prime.add(a); //   a!=1           
        }

        //set               set.add()            
        Set set=new HashSet();
        for (int i = 0; i < prime.size(); i++) {
            if(set.add(prime.get(i))){
                sum+=prime.get(i);
            }
        }
        return sum;
    }

4. 0 - 1000 의 수 를 구하 고 제곱 근 을 구하 고 작은 숫자 0.00001 을 유지 하 며 jdk 에 있 는 도구 류 를 빌 릴 수 없습니다.
public static void main(String[] args) {
        int n=555;  //    
        double x =1;
        double temp =1;
        double result=0;
        do{
        temp = x;                //         
        x = 0.5*(x + n/x);    //              
        result=x-temp;
        result=result <= 0.0D ? 0.0D - result : result;  //Math.abs          result            

        }while(result>0.00001); //    5     

        System.out.println(String.format("%.5f", x)); //   5   
    }

5. 두 개의 숫자 A, B 가 있 습 니 다. 그들 은 모두 500 자리 의 숫자 를 가지 고 있 습 니 다. BigDecimal 로 연산 할 수 없 으 면 A + B 의 결 과 를 어떻게 규정 합 니까?
public static void main(String[] args) {

        String a="123345567789";
        String b="987765543321";
        System.out.println(a.charAt(11));//charAt    0   11    

        int c=0;
        LinkedList value=new LinkedList();
        boolean isNeedCarry=false;

        for(int i=a.length()-1;i>=0;i--){
            boolean isAdded=false; //           1
            c=Integer.parseInt(String.valueOf(a.charAt(i)))+Integer.parseInt(String.valueOf(b.charAt(i)));

            if(isNeedCarry){  //       true       1,    1    true
                isAdded=true;  
                value.addFirst(String.valueOf(c+1).substring(1));  // :    c 9,    1  10,           0,  linkedlist 
                c+=1;
            }

            isNeedCarry=isAddCarry(c); //         c        

            if(isNeedCarry){  //                    linkedList
                if(!isAdded){  
                    value.addFirst(String.valueOf(c).substring(1));
                }
            }else{  //       ,       ,    LinkedList
                value.addFirst(String.valueOf(c));
            }

            if(isNeedCarry&&i==0){
                //          ,      12        13    
                value.addFirst(1);
            }
        }
        for(int i=0;i<value.size();i++){
            System.out.print(value.get(i));
        }
    }

    public static boolean isAddCarry(int i){

        boolean flag=false;

        if(i>=10){
            flag=true;
        }

        return flag;
    }

6. 폴 더 에 있 는 모든 파일 삭제
public static void main(String[] args) {
        DelAllFile("D:/downloads/ipsw");
    }
    /**
     *     
     * @param path
     * @return
     */
    public static boolean DelAllFile(String path){

        boolean flag=false;
        File file=new File(path);

        if(!file.exists()){
            return flag;
        }

        if(!file.isDirectory()){
            //    path             true
            return flag;
        }
        String[] templist=file.list();//           
        File temp=null;
        for(int i=0;iif(path.endsWith(File.separator)){//File.separator          ,    '/'
                //path     '/'          ,temp path          
                temp=new File(path+templist[i]);
            }else{
                //path      '/'      +'/'+      ,temp path          
                temp=new File(path+File.separator+templist[i]);
            }

            if(temp.isFile()){ //temp   
                temp.delete();
            }
            if(temp.isDirectory()){  //temp   
                DelAllFile(temp.getPath()); //        
                temp.delete();          //         
                flag=true;
            }
        }

        return flag;
    }

7. 서열 화 와 반 서열 화
public static void main(String[] args) throws Exception {
        test1();
        test2();
    }

    /**
     *    
     * @throws Exception
     */
    public static void test1() throws Exception{
        OutputStream op=new FileOutputStream("D:/downloads"+File.separator+"a.txt");
        ObjectOutputStream oop=new ObjectOutputStream(op);
        oop.writeObject(new Person("zhangsan", 12));
        oop.close();
    }

    /**
     *     
     * @throws Exception
     */
    public static void test2() throws Exception{

        InputStream in=new FileInputStream("D:/downloads"+File.separator+"a.txt");
        ObjectInputStream ois=new ObjectInputStream(in);
        byte[] buffer=new byte[10];
        int len=-1;
        Person p=(Person) ois.readObject();
        System.out.println(p);
        ois.close();
    }

좋은 웹페이지 즐겨찾기