关闭

面试编程题(一)

50人阅读 评论(0) 收藏 举报
分类:

几道面试编程题,保存在这里了

package demo.test;

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

public class A {
	public static void main(String[] args) {
		/*//对一串数字排序
		int [] intArr={5,9,1,4,2,6,3,14,8,0,7};
		//数组排序
		Arrays.sort(intArr);
		for (int i : intArr) {
			System.out.println(i);
		}
		//选择排序
		for(int i =0;i<intArr.length-1;i++){
			for (int j = i+1; j < intArr.length; j++) {
				if(intArr[i]>intArr[j]){
					intArr[i]+=intArr[j];
					intArr[j]=intArr[i]-intArr[j];
					intArr[i]-=intArr[j];
				}
			}
		}
		for (int i : intArr) {
			System.out.println(i);
		}
		//冒泡排序
		for(int i =0;i<intArr.length-1;i++){
			for (int j = 0; j < intArr.length-i-1; j++) {
				if(intArr[j]>intArr[j+1]){
					intArr[j]+=intArr[j+1];
					intArr[j+1]=intArr[j]-intArr[j+1];
					intArr[j]-=intArr[j+1];
				}
			}
		}
		for (int i : intArr) {
			System.out.println(i);
		}*/
		
		/*100以内的质数
		for(int i=1;i<=100;i++){
			int j=2;
			for(;j<=i/2;j++){
				if(i%j==0 && i>2){
					break;
				}
			}
			if(j>i/2){				
				System.out.println(i+"是质数");				
			}
		}*/
		
		/*//判断是否是对称数,比如34543,223322
		//第一种,换成字符串比较
		Scanner scanner = new Scanner(System.in);
		System.out.println("请输入一个数:");
		String aa = scanner.next();
		try {
			int a = Integer.valueOf(aa);		
		} catch (Exception e) {
			System.out.println("你输入的不是数字");
			return;
		}
		boolean judge = true;
		for (int i = 0; i < aa.length()/2; i++) {
			System.out.println(aa.substring(i, i+1));
			if(!aa.substring(i, i+1).equals(aa.substring(aa.length()-i-1, aa.length()-i))){
				judge=false;
			}
		}
		System.out.println(judge);
		
		//第二种,高低位互换构造一个新的数,与原来的数进行比较
		boolean judge = true;
		Scanner scanner = new Scanner(System.in);
		System.out.println("请输入一个数:");
		String number = scanner.next();
		scanner.close();
		int a=0,b=0;
		try {
			a = Integer.valueOf(number);		
		} catch (Exception e) {
			System.out.println("你输入的不是数字");
			return;
		}
		for(int temp=a;temp>0;){
			b=b*10+temp%10;
			temp/=10;
		}
		if(b!=a){
			judge=false;
		}
		System.out.println(judge);*/
	}
}

今天还遇到一道很有意思的题:

public class A {
	public static void main(String[] args) {
		B b = new C();
	}
}

class B{
	static{
		System.out.println("1");
	}
	public B() {
		System.out.println("2");
	}
}
class C extends B{
	static{
		System.out.println("a");
	}
	public C() {
		System.out.println("b");
	}
}

输出结果是什么呢?


变一下

public class A {
	public static void main(String[] args) {
		B b = new C();
		b=new C();
	}
}
结果



再变一下

public class A {
	public static void main(String[] args) {
		B b = new C();
		b=new C();
		b=new C(110);
	}
}

class B{
	static{
		System.out.println("1");
	}
	public B() {
		System.out.println("2");
	}
	public B(int num){
		System.out.println(num+"1");
	}
}
class C extends B{
	static{
		System.out.println("a");
	}
	public C() {
		System.out.println("b");
	}
	public C(int num){
		System.out.println(num+"a");
	}
}


结果



0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1628次
    • 积分:121
    • 等级:
    • 排名:千里之外
    • 原创:11篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档