专栏首页墨白的Java基地面8-15K可能会遇到的面试题

面8-15K可能会遇到的面试题

点击上方“框架师”,选择“置顶公众号”

我们一起学习进步!

正文

引言:

23号也就是周一约了3家面试,上午面了一家,下午面了一家,推掉了第三家的面试,下面说说面试内容,第一家共有6道笔试题,第二家无笔试题,面试官问了数据库索引相关内容,以及目前所做的最新项目所使用的相关技术,下面就贴上昨天遇到的面试题,小伙伴们可以试着自己做一下,如果你答题很轻松,那么我觉得你可以往8-12K方向去面试了,因为以下题目是来自两家8-15K公司的面试内容,三年经验;

  • 第一题
class A {
    static {
        System.out.println("1");
    }

    public A() {
        System.out.println("2");
    }
}

class B extends A {
    static {
        System.out.println("A");
    }

    public B() {
        System.out.println("B");
    }
}

/**
 * 需求:请说出下面程序的运行结果
 */
public class Demo1 {
    public static void main(String[] args) {
        A ab = new B();
        ab = new B();
    }
}
  • 第二题
/**
 * 第二题:编程填空
 * 需求:下面程序实现将一整数逆序后放入一数组中,例如1234,变为{4,3,2,1}
 * 请在程序A,B,C中填入正确答案使程序运行结果正确
 */
public class Demo2 {
    public static void main(String[] args) {
        int[] rs = new int[5];
        revert(rs, 12345); // 12345 变为 {5,4,3,2,1}
    }

    static int revert(int[] rs, int number) {
        return revert(rs, A, number);
    }

    static int revert(int[] rs, int i, int number) {
        if (i < rs.length) {
            rs[i] = number % 10;
            number = B;
            return revert(rs, C, number);
        } else {
            return 0;
        }
    }
}
  • 第三题
/**
 * 需求:对于一个有序数组,在数组中查找指定元素,如果存在则输出元素的位置,
 * 否则输出-1,如:[1,3,5,7,9],5,返回的索引值是(2)
 * 请在A,B,C部分填空完成需求
 */
    public static int commonBinarySearch(int[] arr, int key) {
        int low = 0;
        int high = arr.length - 1;
        int middle = 0;
        if (key < arr[low] || key > arr[high] || low > high) {
            return -1;
        }
        while (low <= high) {
            middle = A;
            if (arr[middle] > key) {
                high = B;
            } else if (arr[middle] < key) {
                low = C;
            } else {
                return middle;
            }
        }
        return -1;
    }
  • 第四题
/**
 * 需求:有N个人围成一圈,按顺序编号(1-N号),从1号开始报数(从1-3报数),
 * 凡报到3的人退出圈子,退出圈子的下一位重新从1开始报数,问最后留下来的是原来
 * 第几号;
 * 请在A,B,C,D处填空完成需求
 */
public class Demo4 {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.println("请输入总人数: ");
        int num = input.nextInt();
        int[] arr = new int[num];
        for (int i = 0; i < num; i++) {
            arr[i] = i + 1;
        }
        int index = 0;
        int sum = 0;
        while (A) {
            if (B) {
                C
                if (D) {
                    sum = 0;
                    arr[index] = 0;
                    num--;
                }
            }
            index++;
            if (index == arr.length) {
                index = 0;

            }
        }
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] == 1) {
                System.out.println("第" + (i + 1) + "留了下来");
            }
        }
    }
}
  • 第五题(数据库)
    /**
     * 需求:数据库中有一张表(Achievement),用于存储学生的考试成绩,
     * 它包含3个字段,姓名(name),课程名(course),分数(score),针对应用有三个业务规则:
     * a丶假设该校没有重名的同学(没有两个名字叫一样的同学);
     * b丶该表只存储每个学生每个科目最新的考试成绩(不存储历史考试成绩);
     * c丶同一个学生可以学习多个课程;
     *
     * 需求一:如果需要给这个表,创建一个主键,请问会建在什么列上?
     *
     * 需求二:请编写SQL语句查询出:有多少个学生有科目不及格(只需要返回一个数字即可);
     *
     * 需求三:请编写SQL语句查询出:有3科或者3科以上没有及格的同学的名单;
     */
  • 第六题(思考题)
    /**
     * 有一个长度为10000的整数,请编写程序把1-10000这一万个数字填充到该数组
     *
     * 需求一:1-10000这一万个数字必须全部填充到数组中;
     *
     * 需求二:填充进去的数据系列,要比较随机,不能有序或基本有序;
     */
  • MySQL数据库索引是什么?缺点?优点?
    /**
     * 索引的本质是什么?索引有什么优点,缺点是什么?
     * 索引是帮助MySQL高效获取数据的数据结构。因此,索引的本质是一种数据结构。
     * 在数据之外,数据库系统还可以维护满足特定查找算法的数据结构,这些数据结构
     * 以某种方式指向真实数据,
     * 这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。
     *
     * 优点:
     * 1、提高数据检索效率,降低数据库的IO成本;
     * 2、通过索引对数据进行排序,降低了数据排序的成本,降低了CPU的利用率;
     *
     * 缺点:
     * 1、索引实际上也是一张表,索引会占用一定的存储空间;
     * 2、更新数据表的数据时,需要同时维护索引表,
     * 因此,会降低insert、update、delete的速度;
     */

结语:面试结果还未知,但是第一家估计过不了,毕竟我还是知道自己什么段位的,第二家聊的还算愉快,但是结果也是回去等通知

本文分享自微信公众号 - 框架师(mohu121),作者:MoBai白

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-03-24

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Java性能优化的50个细节(典藏版)

    在JAVA程序中,性能问题的大部分原因并不在于JAVA语言,而是程序本身。养成良好的编码习惯非常重要,能够显著地提升程序性能。

    框架师
  • 带你学习最简单的分页插件PageHelper

    PageHelper是国内非常优秀的一款开源的mybatis分页插件,它支持基本主流与常用的数据库, 例如mysql、 oracle、mariaDB、 DB2、...

    框架师
  • 一文搞懂CDN的技术架构和原理

    框架师
  • loj#2002. 「SDOI2017」序列计数(dp 矩阵乘法)

    质数的限制并没有什么卵用,直接容斥一下:答案 = 忽略质数总的方案 - 没有质数的方案

    attack
  • 牛客寒假算法基础集训营4 F. Applese的QQ群(二分+拓扑排序+dfs)

    题目链接:https://ac.nowcoder.com/acm/contest/330/F

    Ch_Zaqdt
  • 数码管问题(c++实现)

        描述:液晶数码管用七笔阿拉数字表示的十个数字,把横和竖的一 个短划都称为一笔,即7有3笔,8有7笔等。对于十个数字一种排列,要做到  两相邻数字都可以由...

    用户2038589
  • View的工作原理

    View的绘制流程是从ViewRoot的PerformTraversals方法开始的。它经过measure,layout,draw三个过程将view绘制出来。m...

    提莫队长
  • 洛谷P4383 [八省联考2018]林克卡特树lct(DP凸优化/wqs二分)

    小L 最近沉迷于塞尔达传说:荒野之息(The Legend of Zelda: Breath of The Wild)无法自拔,他尤其喜欢游戏中的迷你挑战。

    attack
  • DFS+记忆化搜索 -- 简单练习

    题意:你要去滑雪,你想在整个场地上找到一条最长的路好让你能够滑的尽兴!那么你要找出这条路

    杨鹏伟
  • 「CodeForces - 598B」Queries on a String

    字符串s(1 ≤ |s| ≤ 10 000),有m(1 ≤ m ≤ 300)次操作,每次给l,r,k,代表将r位置插入l位置前,执行k(1 ≤ k ≤ 1 00...

    饶文津

扫码关注云+社区

领取腾讯云代金券