2019Java秋招笔试、面试经验

JAVA语言方面

考完出来心情挺淡定的,但是一和同学讨论,感觉自己好多好多都错了
前面是笔试经验,后面是面试经验。重点在后面

1.overload & override

  1. 首先是一个论述题,麻了!overloadoverride的区别
    我连这两个是什么都不知道,因为接触到的(无论是上课,还是自学的书),都没见过,或者说注意到这两个单词,直到和同学一说,我才知道原来这两个就是 重载重写。我很纳闷为什么重写不用overwrite呢= =
    好气啊

overload:方法的重载就是在同一个类种允许同时存在一个以上的同名方法,只要这些方法的参数个数或类型不同即可。重载条件:

  1. 参数类型不同,构成重载
  2. 参数个数不同,构成重载
  3. 参数顺序不同,构成重载

虽然在方法重载中可以使两个方法的返回类型不同,但只有返回类型不同并不足以区分两个方法的重载还需要通过参数的个数以及参数的类型来设置

override:重写(还可以称为覆盖)就是在子类中将父类的成员方法的名称保留,重写成员方法的实现内容,更改成员方法的存储权限,或是修改成员方法的返回值类型
在继承中还有一种特殊的重写方式,子类与父类的成员方法返回值、方法名称、参数类型及个数完全相同,唯一不同的是方法实现内容,这种特殊重写方式被称为重构

 注:重写父类方法时,修改方法的修饰权限只能从小的范围到大的范围改变

2.子类重写父类的方法

谈到重写,就又想到了道选择题,又错了= =

子类重写父类的方法还可以修改方法的返回值类型,但是,这种重写方式需要遵循一个规则,即重写的返回值类型必须是父类中统一方法返回值类型的子类

  • 正确
public class overRide {
	public static void main(String[] args) {
		SubParent a = new SubParent();
		System.out.println(a.try1());
	}

}
class Parent{
	public Parent try1() {
		return new Parent();
	}
}
class SubParent extends Parent{
	public SubParent try1() {
		return new SubParent();
	}
}

在这里插入图片描述

  • 否则会产生错误

public class overRide {
	public static void main(String[] args) {
		SubParent a = new SubParent();
		System.out.println(a.try1());
	}

}
class Parent{
	public int try1() {
		return 4;
	}
}
class SubParent extends Parent{
	public double try1() {
		return 5;
	}
}

在这里插入图片描述

3.实例化子类对象时父类构造方法

在实例化子类对象时,父类无参构造方法将被自动调用,但有参构造方法并不能被自动调用,只能依赖于super关键字显示地调用父类的构造方法。

  • 错误

public class ex3 {
	int a;
	ex3(int a){
		this.a = a;
		System.out.println("调用父类构造函数");
	}
	public static void main(String[] args) {
		child a = new child();
	}
}
class child extends ex3{
	child(){
		System.out.println("调用子类");
	}
}

在这里插入图片描述

  • 正确
public class ex3 {
   int a;
   ex3(int a){
   	this.a = a;
   	System.out.println("调用父类构造函数");
   }
   public static void main(String[] args) {
   	child a = new child(2);
   }
}
class child extends ex3{
   child(int a){
   	super(a);
   	System.out.println("调用子类");
   }
}

在这里插入图片描述

4.二叉树遍历

然后一道就是二叉树遍历,就写了个二叉树出来,而且还没写全。网上查了下,主要方法有递归法堆栈法嗯,是这样的:
Animationer–Java实现二叉树先序,中序,后序遍历

注意:在企鹅电话面试的时候,也说了个二叉树的遍历,但是这里和上面的二叉树类的实例化不同,想想,好像的确企鹅面试官说得在理。一棵树,当然先从根节点开始往下来实例化,中间左右节点的增加可以用二叉树类的addr、addl等方法去增加子树;否则的话,当一棵树过于庞大,例如n=10000这样,从叶子结点开始的话,就会很麻烦,不如直接从根节点开始,然后有哪个需要存储的话,就add哪个结点。而且,二叉树是链式结构,链式结构重要的是存储的容量,以及内容可以动态变化。所以建二叉树,从根节点建比较好。

5.字符串转换成整数

将一个字符串转换成一个整数(实现Integer.valueOf(string)的功能,但是string不符合数字要求时返回0),要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数


public class solution {
    public static int StrToInt(String str) {
        int result = 0;
        int len = str.length();
        if(len <= 0)
            return 0;
        int i = 0;
        int flag  = 0;
        if(str.charAt(i) == ' ')
        {
            i++;
        }
        if(str.charAt(i) == '+')
        {
            flag = 1;
            i++;
        }
        else if(str.charAt(i) == '-')
        {
                flag = -1;
                i++;
        }
        while(str.charAt(i) != '\0')
        {
            if(str.charAt(i) >= '0' && str.charAt(i) <= '9')
            {
                result = result * 10 + (str.charAt(i)- '0');
                i++;
            }
            else{
                result = 0;
                break;
            }
        }
        if(flag == -1)
            result = -result;
        return result;
    }
    public static void main(String[] args) {
		System.out.println(solution.StrToInt(" -18967561\0"));
	}
}

参考dy丶—将一个字符串转换成一个整数(实现Integer.valueOf(string)的功能,但是string不符合数字要求时返回0),要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数

微调了一下,因为不知道他用的是不是C还是什么语言,直接str[]的,我就改了一下,变成Java形式。

6.垃圾回收

垃圾回收器基本原理,垃圾回收器可以马上回收内存吗,怎么主动通知虚拟机进行垃圾回收

 参考Thinking in Java
  1. Java有垃圾回收器负责回收无用对象占据的内存资源。
  2. 假定你的对象(并非使用new)获得了一块“特殊”的内存区域,由于 垃圾回收器只知道释放那些经由new分配的内存 ,所以它不知道该如何释放该对象的这块“特殊”内存。
  3. Java允许在类中定义一个名为 finalize(),它的工作原理“假定”是这样的:一旦垃圾回收器准备好释放对象占用的内存空间,将首先调用其finalize()方法,并且在下一次垃圾回收动作发生时,才会真正回收对象占用的内存

7.BOXING & UNBOXING

数据分为哪两类,装箱和拆箱。

wrapper class 包装类

计算机基础方面

1.网络七层结构

网络的七层结构,每层的应用等。

2.IP/TCP协议

各类协议的作用


2020.4.10

面试经验

时隔多日再来更新

秋招10月中后旬签了杭州一个互联网金融公司,然后就不再找了。总共是得了7个offer,有小公司也有大公司,签了之后也陆陆续续来了不少电话问我这边的情况,如果找的话估计还有得签。
前面讲的是技术,后面主要讲讲经验
笔试的话,主要是刷力扣题和牛客题,完成各类算法型、应用型题目。
面试,其中项目经验尤为重要,9月初面的华为,基础还好,但是就是没有项目经验,导致面试官没啥可以问了,然后就疯狂深究底层和基础和算法等等等,被虐得一败涂地。后来下定决心一定要做个项目出来。

项目从9月初做到10月初,完全自己想自己构造自己实现的项目。到签了之后,也还是只完成一大半的功能,没有完善、没有上线。但仍靠这个项目得了不少offer。

项目

  • 关于项目的几点
  1. 能尽早做就尽早做,当然要做和要找的工作相关的项目
  2. 最好自己想自己构思,就算想不出也能参考现有的去完成,多发现身边的东西,身边缺什么,就可以做什么。
  3. 如果是自己想的,当然最好,如果网上抄的【非常不建议,群面的时候遇到过几个就网上抄抄来的,被疯狂怼】,一定要有自己的改动,要有自己的亮点
  4. 做这个项目主要用了什么方面的知识,主要用了什么技术,要及时更新下来。
  5. 每次遇到的困难都要记载下来,然后用了什么方法去解决。
  6. 项目最好能展示出来,我做的一个app,就能很轻易的向面试官展示,如果你做的网页,或者应用什么的,也可以用图片的方式展示给面试官看。

HR面以及终面

项目这点可以从一面说到终面,所以说项目很重要。可以凭借项目的特点、知识点以及一些基础的对应方向知识点,跟一面面试官扯过去。但是别以为一面过后,HR面、终面就稳了,曾经试过HR面被刷、终面被刷。

  • 下面是几点建议:
  1. 气势,气质要hold住,要有宠辱不惊的态度,这样就会给面试官一种【哇,这人很稳啊,的气质】,当然这是针对技术类型的喔,非技术类型的我也不知道。
  2. 一面过后,你就得查查这个公司了,首先百度,查下这公司主要是做什么的,主要的发展方向、发展地点、最近的动态等。然后,可以上微信小程序offershow或者直接百度,查这个公司的薪资,这就方便HR或者主管问你期望薪资的时候,你可以往公司给的凑。
  3. 要有礼貌,有气势有气质不代表没有礼貌,首先仪容得好,我估计我终面被刷的很大原因就是当时突然想留胡子,然后一堆胡子像个大叔一样- -,给了主管比较差的印象。然后出入敲门或者关门,打招呼之类的,当然得做好。
  4. 然后要好好考虑加班问题,终面这个,挺多面试官都问我对加班怎么看,个人觉得如实回答吧,因为如果实在不喜欢加班的话,到时候去了公司也是折磨啊。还是得看个人情况。我的一惯回答就是:我对加班无所谓啊,但年轻人就应该拼一点啊,年轻不拼老了怎么拼。

现在特殊时期,春招也差不多尾声了,希望没找到工作的各位早日找到吧!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值