百度二面经验之谈

百度二面经验之谈

前因

本人即将两年工作经验,有PHP一年多,Java半年多,工作舒服惬意,从不加班。某段时间,自己有些闲得蛋疼,就点开了BOSS直聘。谁让他经常给我推送消息呢,题主现在的工作就是boss上找的。瞎点了点,结果一堆HR发消息给我,然后我就修改了期望薪资,随随便便就发了简历。没想到百度的HR联系我了,PHP相关的职位。然后我就投了,没几天一面来了。可能我在项目组重构了框架,重写了整个系统,心里有些高傲,所以一面稳稳的过了,而且觉得一面的小姐姐问的技术太浅了。
在准备二面的准备过程中,拿出了大学的数据结构,从二叉树看到排序,感觉自己又回来了。虽然平衡二叉树的自旋和排序二叉树的删除还不能手撕代码,但是的确比平时更理解了一些。毕竟温故而知新嘛。

行为

面试我是提前一个小时到的,因为太紧张了,所以早早去了。看到了百度的专利墙,上面写满了百度的专利,我也看到了李彦宏的专利。深深的被伟大的公司和企业文化所折服。百度真的不愧为中国互联网的一面大旗,很强。
面试前,面试官到了准备了半天才来接我,因为毕竟我当前工作是Java,但是面试官是PHP,我估计他找了一些面试题。
面试在二楼的平台进行,我们找了个角落。便开始了面试。题主我不得不承认我的心高气傲真的不是个好习惯。面试官问的问题,我都延伸的很远。但是很细节的问题,都回答的很失败,这个面试官真的对细节和基础考察的很到位。

细节

  • 1.JDK和JRE的区别
	这个问题和没问一样
  • 2.Java中的强引用和弱引用GC回收时,有什么不同
	这个题主真的是忘了,但是题主说了半天,Java的内存结构,
	然后用Java和Go和PHP进行了内存模型对比,但是感觉面试官没啥反应。可能因为没答到点上。
  • 3.final修饰方法参数有什么用
	// 这么细节的问题,题主直接跪了,哎,对不起自己日日夜夜的努力啊。以下是代码,题主回来自己敲了一遍,结果都不能编译,因为finally没有return。
	static class Axx{
        private String name;

        public void setName(String name) {
            this.name = name;
        }

        @Override
        public String toString() {
            return "Axx{" +
                    "name='" + name + '\'' +
                    '}';
        }
    }
	public static void main(String[] args) {
        Axx axx = new Axx();
        axx.setName("aa");
        ax(axx);
        System.out.println(axx.toString());
        axx.setName("aa");
        axx(axx);
        System.out.println(axx.toString());
        String aff = "yes";
        F(aff);
        System.out.println(aff);
    }

    public static void ax(Axx a){
        a.setName("yyy");
    }

    public static void axx(final Axx a){
        a.setName("yyy");
    }
    public static void F(String a){
        a = "666";
    }
    // 题主跪在了final修饰的方法参数上,和字符串上。
  • 4.finally代码块内返回值的问题
	// 这么细节的问题,题主直接跪了,哎,对不起自己日日夜夜的努力啊。
	// 以下是代码,题主回来自己敲了一遍,结果都不能编译,因为此方法没有合理的return。
	 public static int test (){
        int value = 6;
        try{
            return  value;
        }catch (Exception e){

        }finally {
            value++; 
        }
    }
    // 题主自己敲了下代码后发现了这个问题的坑
    // return 的位置会影响返回结果,题主先说一下return位置的问题。
    // 如果return放在try{}catch(){}finally{}外部,这是方案A
    // 如果return放在finally代码块中,这是方案B
    // 题主当时脑子里只有一个思想finally中的代码,除了掉电,或者System.exit(0)都执行;
    // 当时我说这个返回值是7,后来我敲了一遍发现了问题,也就是方案A和方案B的问题。
    // 方案A的返回值的6,方案B的返回值是7。这是为什么呢?题主很好奇,于是对比了一下字节码
    // 左右分别是方案A,方案B。 

在这里插入图片描述
根据对比图发现,方案B 存在goto语句,也就是返回值会变化的原因。

  • 4.邮箱正则

结果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

izliang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值