079期综合面试题系列三

2020-09-09 22:01 Java最全面试题库

  点击上方蓝色字体,关注我吧

2020年百日百更原创Java最全面试题库之往期回顾

【000期】Java最全面试题库思维导图

【020期】JavaSE系列面试题汇总(共18篇)

【028期】JavaWeb系列面试题汇总(共10篇)

【042期】JavaEE系列面试题汇总(共13篇)

【049期】数据库系列面试题汇总(共6篇)

【053期】中间件系列面试题汇总(共3篇)

【065期】数据结构与算法面试题汇总(共11篇)

【076期】分布式面试题汇总(共10篇)

【077期】综合面试题系列(一)

【078期】综合面试题系列(二)


开篇介绍

大家好,我是Java最全面试题库提裤姐,今天这篇是综合面试题系列的第三篇,主要总结了各个大厂的面试题相关的问题;在后续,会沿着第一篇开篇的知识线路一直总结下去,做到日更!如果我能做到百日百更,希望你也可以跟着百日百刷,一百天养成一个好习惯。


Q:

选择题

执行完以下代码 int[] x = new int[25];后,以下说法正确的是A
A.x[24]为0
B.x[24]未定义
C.x[25]为0
D.x[0]为空

解析:int是java的基本数据类型,它的默认值是0

编译运行以下程序,关于输出结果的说法正确的是C

1    public static void main(String[] args) {
2        int x = 4;
3        System.out.println("value is " + (x > 4 ? 99.9 : 9));
4    }

A.输出结果为:value is 99.99
B.输出结果为:value is 9
C.输出结果为:value is 9.0
D.编译错误

解析::运算符会把左右两边统一为一种类型,向上转型。

下列标识符不合法的有ACD
A.new
B.$Usdollars
C.1234
D.car.taxi

标识符由数字(0~9)和字母(A~Z 和 a~z)、美元符号($)、下划线(_)以及 Unicode 字符集中符号大于 0xC0 的所有符号组合构成(各符号之间没有空格)。
标识符的第一个符号为字母、下划线和美元符号,后面可以是任何字母、数字、美元符号或下划线。
不能使用任何 Java 关键字作为标识符

在Java线程状态转换时,下列转换不可能发生的有AC
A.初始态->运行态
B.就绪态->运行态
C.阻塞态->运行态
D.初始态->就绪态

image.png


Q:

简答题

在下面的Java语句中,前三条语句创建了几个对象,分别是什么?后面的输出分别是什么?

1String s1 = new String("ABC");
2String s2 = "ABC";
3String s3 = new String("ABC");
4System.out.println(s1==s2); //false
5System.out.println(s1==s3); //false
6System.out.println(s2==s3.intern()); //true

new String("ABC");这种方式创建字符对象的时候,JVM首先会检查字符串常量池中是否存在“ABC”字符串,如果已经存在,则不会再字符串常量池创建了,如果还没有存在,就会在字符串常量池中创建“ABC”字符串,然后还会去到堆内存中再创建一份字符串的对象,把字符串常量池中的“ABC”字符串内容拷贝至堆内存的字符串对象,然后返回堆内存中字符串对象的内存地址。

String s2 = "ABC";这种方式创建字符串,JVM首先会检查字符串常量池中是否存在该字符串对象,如果已经存在,就不会在字符串常量池中创建了,直接返回该字符串常量池中内存地址,如果不存在常量池中,就会在常量池中先创建该字符串对象然后再返回。

当一个字符串调用 intern() 方法时,如果字符串常量池中已经存在一个字符串和该字符串值相等(使用 equals() 方法进行确定),那么就会返回字符串常量池中字符串的引用;否则,就会在字符串常量池中添加一个新的字符串,并返回这个新字符串的引用。而“ABC”在前面已经创建过,所以返回true。


Q:

编程题

一个整数,它加上100 后是一个完全平方数,再加上168 又是一个完全平方数,请问该数是多少?

 1public class Demo{
2    public static void main(String[] args){
3        int i = 0;
4        boolean flag = false;
5        while(true){
6            flag = isSqrt(i + 100) && isSqrt(i + 100 + 168);
7            if(flag){
8                System.out.println("这个数是:"+i);
9                break;
10            }else{
11                i++;
12            }
13        }
14    }
15    //判断是不是完全平方数的函数,是就返回 true,反之则返回 false
16    public static boolean isSqrt(int num){
17        int m =(int)Math.sqrt(num);
18        if(m * m == num)
19            return true;
20        return false;
21    }
22}










“一个专注于分享各类Java面试题的号主,长按二维码关注我吧 ”

祝大家都能拿到心仪的offer!







长按识别二维码

等风也等你



文章都看完了不点个 吗

本文章转载自公众号:tikujie

首页 - Java 相关的更多文章: