从学习方面深谈如何进入国内***互联网公司2
nerClassinnerClass=newOutterClass().newInnerClass();因为你没有使用static修饰InnerClass,所以你必须new出来一个OutterClass的实例,才能在此基础上new出内部类的实例,因为内部类只能通过外部类的实例才能引用。如果你使用了static修饰,那么你就可以这样使用内部类。aticInnerClassstaticInnerClass=newaticInnerClass();这两种方式***大的区别就是,***种方式,如果你想要获得InnerClass的实例,你必须有一个OutterClass的实例,所有其实这种方式你创建了两个实例,所以有两个new关键字。而第二种方式就好理解一些,静态内部类不依赖于外部类的实例存在,因此只需要直接创建内部类的实例就可以了,所以只有一个new关键字。static说的有点多了,不过LZ其实不光说了static关键字,也一起连同内部类的语法也大致都说了下。那么接下来,基础部分还有一个比较考验人的东西,就是volatile关键字。这个关键字的***就三个字,就是可见性。但是面试的时候,你说出可见性三个字,基本上满分100的话,***多只能得到20分。剩下的那80分,就要靠你用硬功夫去获得了。所谓的硬功夫,其实就是要整明白,在并发当中,可见性到底是什么意思。那么,为了弄明白可见性什么意思,就需要你了解什么叫主存和工作内存。只有把这些概念都搞明白了,你才会知道volatile的真正作用到底是什么。不过有一点要提醒你的是,volatile并不保证同步,这一点一定要记住。不光是应付面试官,在真正使用volatile的时候,也要注意这一点,否则很容易出现问题。好了,基础部分就说这么多吧,LZ挑了一些有代表性的说了下,归根结底,这一部分就是要你非常清晰的了解J***a当中的关键字和语法,这里所谓的了解,是清晰的了解其实现原理,而非简单的会用而已。2)J***a运行时环境J***a运行时环境就是JRE的中文翻译,本质上其实就是指JVM。首先对于JVM必须要知道的是,JVM与Hotspot的关系。JVM更多的是指JVM规范,而Hotspot是JVM的一种实现,也是我们***常用的JVM实现。你可以把JVM规范当做接口,Hotspot当做实现类,这样去理解会比较简单一些。此外,JVM***重要的三个部分必须要非常清楚,内存划分、class加载机制以及GC策略。搞清楚这三部分不仅仅是为了面试,也是为了让你对于J***a有更深刻的理解,这对于你的J***a生涯非常有帮助。而且,关于内存划分,还有一点要注意,咱们常说的划分方式,其实是指的Hotspot的划分方式,而非JVM规范所规定的。Hotspot的内存划分简单说分为三个部分,YoungGeneration(年轻代)、OldGeneration(年老代)以及PermGeneration(***代)。其中的YoungGeneration(年轻代),又分为Eden、From和To,其中From和To又统称为SurvivorSpaces(幸存区)。未完待续。。。。。。)
广州为学教育科技有限公司
业务 QQ: 1040083039