面试题

1、1 	byte a=3;
   2 	byte b=4;
   3	byte c=a+b;
   4	byte d=3+4;
	以上哪一行有编译问题?应该如何解决?为什么会发生这样的问题?
	第三行出现了错误,应将byte换为int,因为a和b 是byte的,但是在计算
	时会自动转换为int,主要是为了防止计算引起的溢出。

2、1  byte a=130;
    以上有没有编译问题?应该如何解决?
	byte a=(byte)130;
	因为130超过了byte的取值范围,所以要使用强制类型转换的方式赋值

3、请你以最快的速度将变量a由2变成8
	int a = 2; a = a<<2;//a<<=2

4、int a = 5;int b = 7;请你将两个数交换
	a.设置一个临时变量	
		int temp = a; a = b; b = temp;
	b.利用 + -
		a = a + b; b = a - b; a = a - b;
	c.利用位运算
		a = a ^ b; b = a ^ b; a = a ^ b;
	d.利用一句话
		b = a + b - (a = b);

5、输入一个数,判断是不是质数(素数)
	只能被1和它本身整出,不能被其他整除,但是1不是质数
      2 ,3,5 ,7,11,13,17,19,23,
分析:从2开始到这个数的前一个数,不能被这期间的任何一个数整出,成为质数
	System.out.println("请输入要判断的数(大于1):");
		Scanner sc = new Scanner(System.in);
		int q = sc.nextInt();
		boolean f = true;
		for(int i=2;i

你可能感兴趣的:(java,笔记)