Java面试题-基础篇一

时间:2022-06-04
本文章向大家介绍Java面试题-基础篇一,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

1、一个"java"源文件中是否可以包含多个类(不是内部类)?有什么限制

可以有多个类,但只能有一个public的类,并且public的类名必须和文件名一致。

2、Java有没有goto?

是java中的保留字段,目前并没有使用。

3、char型变量中能不能存储一个中文汉字?为什么?

char型变量是用来存储Unicode编码的字符的,Unicode编码字符集中包含了汉字,所以,char型变量中可以存储汉字。不过,如果某个特殊的汉字没有被包含在Unicode编码字符集中,那么,这个char型变量中就不能存储这个特殊汉字。补充说明:Unicode编码占用两个字节,所以,char类型的变量也是占用两个字节。

4、在JAVA中如何跳出当前的多重嵌套循环?

在Java中,要想跳出多重循环,可以在外面的循环语句前定义一个标号,然后在里层循环体的代码中使用带有标号的break语句,即可跳出外层循环。

例如:

for(int i=0;i<10;i++){
   for(intj=0;j<10;j++){
       System.out.println(“i=” + i + “,j=” + j);
       if(j == 5) break ok;
   }
}

另外,我个人通常并不使用标号这种方式,而是让外层的循环条件表达式的结果可以受到里层循环体代码的控制,例如,要在二维数组中查找到某个数字。

int arr[][] ={{1,2,3},{4,5,6,7},{9}};
boolean found = false;
for(int i=0;i<arr.length&&!found;i++)       {
        for(intj=0;j<arr[i].length;j++){
              System.out.println(“i=” + i + “,j=” + j);
              if(arr[i][j] ==5) {
                      found =true;
                      break;
              }
        }
}

5、如何获取年月日,小时分钟秒?

1.public class DateTimeTest {
2. public static void main(String[] args) {
3.   Calendar cal = Calendar.getInstance();
4.   System.out.println(cal.get(Calendar.YEAR));
5.   System.out.println(cal.get(Calendar.MONTH)); // 0 - 11
6.   System.out.println(cal.get(Calendar.DATE));
7.   System.out.println(cal.get(Calendar.HOUR_OF_DAY));
8.   System.out.println(cal.get(Calendar.MINUTE));
9.   System.out.println(cal.get(Calendar.SECOND));
10.   // Java 8
11.   LocalDateTime dt = LocalDateTime.now();
12.   System.out.println(dt.getYear());
13.   System.out.println(dt.getMonthValue()); // 1 - 12
14.   System.out.println(dt.getDayOfMonth());
15.   System.out.println(dt.getHour());
16.   System.out.println(dt.getMinute());
17.   System.out.println(dt.getSecond());
18. }
19.}

6、switch 能否作用在byte上,是否能作用在long上是否能作用在String上?

java5以前switch(expr)中,expr只能是 byte,short,char,int。从java5开始,java中引入了枚举 expr也可以是enum类型。

7、数组中有没有length()方法? String有没有length()方法

数组没有length()方法,但是有length属性。String有length()方法。在javaScript中,获得字符串的长度是通过length属性得到的,这一点和java容易混淆。

8、用最有效率的方法算出2乘以8等於几?

2<< 3,(左移三位)因为将一个数左移n位,就相当于乘以了2的n次方,那么,一个数乘以8只要将其左移3位即可,而位运算cpu直接支持的,效率最高,所以,2乘以8等於几的最效率的方法是2<< 3。

9、使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变?

使用final关键字修饰一个变量时,是指引用变量不能变,引用变量所指向的对象中的内容还是可以改变的。例如,对于如下语句:

final StringBuffer a=new StringBuffer("immutable");

执行如下语句将报告编译期错误:

a=new StringBuffer("");

但是,执行如下语句则可以通过编译:

a.append(" broken!");

有人在定义方法的参数时,可能想采用如下形式来阻止方法内部修改传进来的参数对象:

public void method(final  StringBuffer param){
}

实际上,这是办不到的,在该方法内部仍然可以增加如下代码来修改参数对象:

param.append("a");

10,冒泡排序的实现

口诀:n个数字来比较,外层循环N-1,内层循环N-1-i,两两相比小靠前。

代码示例:

public static void main(String[] args) {
    int[] number=new int[]{22,12,33,45,66};
    int temp;
    //冒泡排序
    for(int i=0;i<number.length-1;i++){
      for(int j=0;j<number.length-1-i;j++){
        if(number[j]>number[j+1]){
          temp=number[j+1];
          number[j+1]=number[j];
          number[j]=temp;
        }
      }
    }
          for (int i =0; i < number.length; i++) {
      System.out.print(number[i]+" ");
    }
  }

这些都是一些基础的面试题,以后每天小编都会给大家弄几道,帮助大家巩固基础。

注:所有的收集来自于各大互联网平台