面试编程题(一)

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

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");
	}
}


结果



阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xingshixinghun/article/details/52347167
个人分类: 面试题
上一篇初识MyBatis框架
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭