广州为学教育科技有限公司

主营:软件开发,Java培训,全栈工程师培训

免费店铺在线升级

联系方式
  • 公司: 广州为学教育科技有限公司
  • 地址: 广州市天河区车陂大岗路4号沣宏大厦A栋3001
  • 联系: 黄老师
  • 手机: 13288494988
  • 一键开店

从学习方面深谈如何进入国内互联网公司2

2019-01-16 03:24:26  125 次浏览

OutterClass.InnerClass innerClass = new OutterClass().new InnerClass();

因为你没有使用static修饰InnerClass,所以你必须new出来一个OutterClass的实例,才能在此基础上new出内部类的实例,因为内部类只能通过外部类的实例才能引用。如果你使用了static修饰,那么你就可以这样使用内部类。

OutterClass.StaticInnerClass staticInnerClass = new OutterClass.StaticInnerClass();

wKiom1hSX7fQKPHpAAE8k1frgHQ393.jpg这两种方式的区别就是,种方式,如果你想要获得InnerClass的实例,你必须有一个OutterClass的实例,所有其实这种方式你创建了两个实例,所以有两个new关键字。而第二种方式就好理解一些,静态内部类不依赖于外部类的实例存在,因此只需要直接创建内部类的实例就可以了,所以只有一个new关键字。

static说的有点多了,不过LZ其实不光说了static关键字,也一起连同内部类的语法也大致都说了下。那么接下来,基础部分还有一个比较考验人的东西,就是volatile关键字。

这个关键字的重点就三个字,就是可见性。但是面试的时候,你说出可见性三个字,基本上满分100的话,多只能得到20分。剩下的那80分,就要靠你用硬功夫去获得了。

所谓的硬功夫,其实就是要整明白,在并发当中,可见性到底是什么意思。那么,为了弄明白可见性什么意思,就需要你了解什么叫主存和工作内存。

只有把这些概念都搞明白了,你才会知道volatile的真正作用到底是什么。不过有一点要提醒你的是,volatile并不保证同步,这一点一定要记住。不光是应付面试官,在真正使用volatile的时候,也要注意这一点,否则很容易出现问题。

好了,基础部分就说这么多吧,LZ挑了一些有代表性的说了下,归根结底,这一部分就是要你非常清晰的了解Java当中的关键字和语法,这里所谓的了解,是清晰的了解其实现原理,而非简单的会用而已。

2)Java运行时环境

Java运行时环境就是JRE的中文翻译,本质上其实就是指JVM。

首先对于JVM必须要知道的是,JVM与Hotspot的关系。JVM更多的是指JVM规范,而Hotspot是JVM的一种实现,也是我们常用的JVM实现。你可以把JVM规范当做接口,Hotspot当做实现类,这样去理解会比较简单一些。

此外,JVM重要的三个部分必须要非常清楚,内存划分、class加载机制以及GC策略。搞清楚这三部分不仅仅是为了面试,也是为了让你对于Java有更深刻的理解,这对于你的Java生涯非常有帮助。

而且,关于内存划分,还有一点要注意,咱们常说的划分方式,其实是指的Hotspot的划分方式,而非JVM规范所规定的。

Hotspot的内存划分简单说分为三个部分,Young Generation(年轻代)、Old Generation(年老代)以及Perm Generation(代)。其中的Young Generation(年轻代),又分为Eden、From和To,其中From和To又统称为Survivor Spaces(幸存区)。

未完待续。。。。。。

网友评论
0条评论 0人参与
最新评论
  • 暂无评论,沙发等着你!
百业店铺 更多 >

特别提醒:本页面所展现的公司、产品及其它相关信息,均由用户自行发布。
购买相关产品时务必先行确认商家资质、产品质量以及比较产品价格,慎重作出个人的独立判断,谨防欺诈行为。

回到顶部