Java面试题(二)

2022/5/10 11:04:08

本文主要是介绍Java面试题(二),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1.八种基本数据类型及其字节数

2. i++和++i的异同之处

2.1相同点

  1. 它们都是变量自增,都等价于i=i+1
  2. i++和++i的使用仅仅针对变量。 5++和++5会报错,因为5不是变量。

2.2不同点

 

i++ :先运算后增1。如

int x=5;
int y=x++;
System.out.println("x="+x+",y="+y);


//所以这边x先把5赋值给y,所以y=5;
//然后x再自增,x=6;

++i : 先增1后运算。如:

int x=5;
int y=++x;
System.out.println("x="+x+", y="+y);

//x先自增,所以x=6,然后把6赋值给y,所以y也是6

3.&和&& , |和|| 的区别和联系

3.1&和&&的联系(共同点)

&和&&都可以用作逻辑与运算符,但是要看使用时的具体条件来决定。

它相当于是and,整个运算结果才为true,否则,只要有一方为false,结果都为false。

3.2&和&&的区别(不同点)

1. & 称为逻辑与运算符,&& 称为短路与运算符,也可叫逻辑与运算符。

对于&:无论任何情况,&两边的操作数或表达式都会参与计算

对于&&:当&&左边的操作数为false或左边表达式结果为false时,&&右边的操作数或表达式将不参与计算,此时最 终结果都为false。

|和||的区别和联系与&和&&的区别和联系类似

4. 用最有效率的方法算出2乘以8等于多少

使用位运算来实现效率最高。

2 << 3

就是二进制往左移三位

 

 

5.基本数据类型的类型转换规则

基本类型转换分为自动转换强制转换

5.1自动转换规则

容量小的数据类型 可以自动转换成容量大的数据类型

5.2强制转换规则

高级变为低级需要强制转换。

5.3如何转换

public class Test007 {
    public static void main(String[] args) {
        double x=1.2;
        int y= (int) x;
    }
}

 6.if和switch的异同之处

6.1相同之处:

都是分支语句,多超过一种的情况进行判断处理。

6.2不同之处:

switch更适合用于多分支情况,就是有很多种情况需要判断处理,判断条件类型单一,只有一个入口,在分支执行完 后(如果没有break跳出),不加判断地执行下去;

if—elseif---else多分枝主要适用于分支较少的分支结构,判断类 型不是单一,只要一个分支被执行后,后边的分支不再执行。

*switch为等值判断(不允许比如>= <=),而if为等值和区间都可以,if的使用范围大。

7.while和do-while循环的区别

while先判断再执行,第一次判断false,循环体将一次都不执行

do-while先执行再判断,至少执行1次

如果while第一次判断为true,那么和do-while没有区别

8.break和continue的作用

 break和continue都是用来控制循环结构的,主要作用是停止循环。

break:结束当前循环体,不再继续执行

public class Test {
    public static void main(String[] args) {
        for(int i=0; i<12; i++){
            if(i==5){
                break;
            }
            System.out.print(i+" ");
        }
    }
}
//结果:0 1 2 3 4

continue: 结束自身满足的条件,并没有使整个循环终止。

public class Test {
    public static void main(String[] args) {
        for(int i=0; i<12; i++){
            if(i==5){
                continue;
            }
            System.out.print(i+" ");
        }
    }
}
//结果:0 1 2 3 4 6 7 8 9 10 11

9.请使用递归算法计算n!

递归就是:A方法调用A方法!自己调用自己

拓展一个数学概念:阶层

 2! 2*1
 3! 3*2*1
  public class Student {
      public static void main(String[] args) {
          System.out.println(fun(5));
       }
      public static int fun(int n){
           if (n==1){
               return 1;
           }else {
               return n*fun(n-1);
           }
       }
  }

 

缺点:会占用空间内存,小计算可以使用递归

 10.数组的特征

数组是(相同类型数据)的(有序)(集合)

索引从0开始

数组元素有序的,不是大小顺序,是索引的顺序

length:数组的长度

数组的长度是固定的


若存在侵权,请联系,谢谢!

 


这篇关于Java面试题(二)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程