从学习方面深谈如何进入国内***互联网公司1
本文将从学习方面手把手的告诉你,LZ作为一个非科班毕业,出身于三流大学的草根,是如何凭借自己的努力,进入到国内***互联网公司的。由于LZ是J***a后端出身,所以接下来的内容,会与J***a后端息息相关,非J***a后端的同学可以适当参考,但切勿照搬。本篇既然咱们是要谈如何进入BAT,那么咱们就从面试的角度来谈学习这件事,LZ会谈谈***互联网公司对于J***a后端程序员的要求,相应的,也会谈谈如何达到这样的要求。为了简单起见,LZ将这些要求分为三个层次,分别为基本要求、可选要求以及加分要求,接下来,咱们就一个一个的来谈一谈。一、基本要求基本要求就是指,你必须要学会的知识,而且这里面大部分内容,在面试里出现的概率都是极高的。因此,这部分内容你没有选择,只能选择啃下它,你可以花一年,也可以花十年,或者带到***里学习也可以。1)语言的基础部分:基本要求的***个,当然是语言的基础部分。基础部分其实就是语法以及一些关键字的作用,像一些if/else、for循环这类基础的语法,以及一些new、class、public这类的基础关键字,大部分情况下面试问的是比较少的,因为这部分内容,只要你写过几年J***a,基本上都没有什么问题。那么基础部分的***,其实主要就是static、final、transient、volatile这一类的关键字,以及内部类、泛型这一类的高阶语法。说到static,首先要记住的***重要的一点就是,类属性中被static所引用的变量,会被作为GC的root根节点。作为根节点就意味着,这一类变量是基本上不会被回收的。因此,static很容易引入内存泄漏的风险。如果一个面试官让你解释static关键字,你告诉他static可以修饰属性、方法和内部类,以及修饰之后又有什么效果的话,那么面试官基本上不会记住你这个回答,整个印象就是平庸。但是如果你说完以后,补充一下说道,你曾经遇到过一个内存泄漏的问题,就是因为static修饰的一个Map类型的变量导致的,***后排查了堆栈信息找到了问题的所在,并且解决了这个问题。那么,面试官这个时候内心中对你的印象,就会不自然的提升几分。而且,对于static,更深入的理解是,static会将所引用的属性、方法以及内部类,与类直接产生引用关系,而非与类的实例。这就是为什么,你可以使用类名.属性、类名.方法以及类名.内部类名,来直接引用一个被static所修饰的属性、方法或者内部类。如果你没有用static修饰,那么你就必须使用实例才能引用这些方法、属性或者是内部类,***典型的就是内部类。相信很多同学都好奇过,为什么一个没有被static修饰的内部类,必须要这么声明。未完待续。。。。。。)