Java笔试面试题汇总(3)

2019-08-30 12:59

反码:11111111 11111111 11111111 11100111 补码:11111111 11111111 11111111 11101000

11111111 11111111 11111111 11101000

1111111111 11111111 11111111 111010(00) 补码

补码:1111111111 11111111 11111111 111010 反码:1111111111 11111111 11111111 111001 原码:1000000000 00000000 00000000 000110

结果:-6

>>>的移动:

计算出24的二进制:11000

原码:10000000 00000000 00000000 00011000 反码:11111111 11111111 11111111 11100111 补码:11111111 11111111 11111111 11101000

11111111 11111111 11111111 11101000 0011111111 11111111 11111111 111010(00)

结果:1073741818 /*

面试题:

请自己实现两个整数变量的交换 */

class OperatorDemo {

public static void main(String[] args) { int a = 10; int b = 20;

System.out.println(\+a+\+b);

//方式1:使用第三方变量(开发中用的)

int c = a; a = b; b = c;

System.out.println(\+a+\+b); System.out.println(\);

//方式2:用位异或实现(面试用)

//左边:a,b,a //右边:a ^ b

a = a ^ b;

b = a ^ b; //a ^ b ^ b = a a = a ^ b; //a ^ b ^ a = b

System.out.println(\+a+\+b);

//方式3:用变量相加的做法

a = a + b; //a=30 b = a - b; //b=10 a = a - b; //a=20

System.out.println(\+a+\+b);

//方式4:一句话搞定

b = (a+b) - (a=b); //b=30-20=10,a=20 System.out.println(\+a+\+b); } } /*

练习:

获取两个整数中的最大值 获取三个整数中的最大值 比较两个整数是否相同 */

public class OperatorTest {

public static void main(String[] args) { //获取两个整数中的最大值 int x = 100; int y = 200;

int max = (x > y? x: y);

System.out.println(\+max); System.out.println(\);

//获取三个整数中的最大值 int a = 10; int b = 30; int c = 20;

//分两步:

//A:先比较a,b的最大值

//B:拿a,b的最大值再和c进行比较 int temp = ((a > b)? a: b); //System.out.println(temp); max = (temp > c? temp: c);

System.out.println(\+max);

//一步搞定

//int max = (a > b)?((a > c)? a: c):((b > c)? b: c); //这种做法不推荐。

//int max = a > b?a > c? a: c:b > c? b: c; //System.out.println(\ System.out.println(\);

//比较两个整数是否相同 int m = 100; int n = 200;

boolean flag = (m == n); System.out.println(flag); } }

If语句与三目运算符的区别:

由于if语句的第二种格式刚才也完成了三元运算符可以完成的效果。 所以,我们就认为他们可以完成一样的操作。 但是,他们就一点区别没有吗?肯定不是。

区别:

三元运算符实现的,都可以采用if语句实现。反之不成立。

什么时候if语句实现不能用三元改进呢?

当if语句控制的操作是一个输出语句的时候就不能。

为什么呢?因为三元运算符是一个运算符,运算符操作完毕就应该有一个结果,而不是一个输出。

面试题:

字符参与运算

是查找ASCII里面的值 'a' 97 'A' 65 '0' 48

System.out.println('a'); //a System.out.println('a' + 1); //98

字符串参与运算

这里其实是字符串的连接

System.out.println(\+'a'+1); //helloa1 System.out.println('a'+1+\); //98hello System.out.println(\+5+5); //5+5=55 System.out.println(5+5+\); //10=5+5 24.

面试题:

byte可以作为switch的表达式吗? //可以 long可以作为switch的表达式吗? //不可以

String可以作为switch的表达式吗? //JDK7以后可以是字符串 25. 面试题

静态代码块,构造代码块,构造方法的执行顺序? 静态代码块 > 构造代码块 > 构造方法 静态代码块:只执行一次

构造代码块:每次调用构造方法都执行 class Code { //静态代码块 static {

int a = 100;

System.out.println(a); }

//构造代码块 {

int x = 1000;

System.out.println(x); }

//构造方法

public Code(){

System.out.println(\); }

//构造代码块 {

int y = 2000;

System.out.println(y); }

//静态代码块 static {

int b = 200;

System.out.println(b); } }

public class CodeDemo {

public static void main(String[] args) { //局部代码块 {

int x = 10;

System.out.println(x); }

//找不到符号

//System.out.println(x); {

int y = 20;

System.out.println(y); }

System.out.println(\);

Code c1 = new Code();

System.out.println(\); Code c2 = new Code(); } }

输出结果: 10 20

--------------- 100 200 1000 2000 code

--------------- 1000 2000 Code

看程序写结果: class Student { static {

System.out.println(\静态代码块\);


Java笔试面试题汇总(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:广东省关于〈幼儿园收费管理暂行办法〉的实施细则和《广东省关于

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: