学Java好找工作吗和面试必问

(一)Java—服务器端的王者。

对于了解计算机编程的同学来说,Java语言并不陌生,她诞生于1995年,应互联网而生,在TIOBE世界语言编程排行榜上曾83次排名第一(截至2017年12月),其他语言诞生,消亡,唯有Java连续数年荣登第一宝座,是当之无愧的王者编程语言。

而对于编程零基础的同学来说,可能在今天之前都不知道Java是什么,但是,你一定经历过“双十一”的剁手狂欢,体会过春运买票的艰难吧,有没有想过,当数以亿计的用户同时打开一个网站,是什么保证了她能够不宕机,还能安全,有序地运行呢,这当然少不了Java的功劳,用Java语言编写的网站以性能为王的优势,让网站以不变应万变,瞬间告别用户访问量过剩出现的宕机的难题。

马云爸爸说过,未来的制造业要的不是石油,最大的能源应该是数据,不管你是上网购物,还是手机浏览咨询,甚至是政府机构,大型跨国集团长春Java培训系统,银行,背后的庞大的数据处理都是由Java来完成,也正是由于其简单性,可移植性,安全性,动态性等特点,Java成为了服务器端的顶梁柱,保护着网站的一方安全。

几乎90%以上的大中型互联网应用系统在服务器端开发首选Java,据2017年不完全统计全球有25亿Java服务在运行,450多万JavaEE开发者活跃在地球的每个角落,Java在编程世界的地位绝对不容小觑。

(二)10大优势奠定Java王者地位。

Java从1996年第一个版本发布至今,已经跌宕起伏走过了22个年头,那么,Java语言到底有什么优势可以占据排行榜第一的位置呢。

<1>当然与她的10大语言优势脱不开关系。

<2>Java在若干领域都有很强的竞争力,比如服务端编程,高性能网络程序,企业软件事务处理,分布式计算,Android移动终端应用开发等等。

<3>符合工程学的需求,长春Java培训哪家好我们知道现代软件都是协同开发,那么代码可维护性,编译时检查,高效的运行效率,跨平台能力,丰富的IDE,测试,项目管理工具配合,都使得Java成为企业软件公司的首选,也得到很多互联网公司的青睐。

问题:。

刚参加的一个面试,要我用Java写一个内存泄露程序。

这题完全没有思路。

有好心人能给出一个例子吗。

回答:。

造成内存泄漏,就是让运行的程序无法访问存储在内存中的对象,下面是Java实现:。

创建一个长时间运行的线程(使用线程池泄露的速度更快)。

线程通过ClassLoader加载某个类(也可以用自定义ClassLoader)。

这个类分配了大量内存(例如newbyte[1000000]),赋给静态字段存储对它的强引用,然后在ThreadLocal中存储对自身的引用,还可以分配额外的内存,这样泄漏的速度更快(其实只要泄漏Class实例就足够了)。

这个线程长春Java培训机构会清除所有自定义类及加载它的ClassLoader的引用。

重复执行。

这个方法之所以奏效,是因为ThreadLocal保留了对该对象的引用,对象引用保留了对Class的引用,而Class引用又保留了对ClassLoader的引用,反过来,ClassLoader会保留通过它加载的所有类的引用。

(在许多JVM实现中情况更糟,尤其Java7之前版本,因为Class和ClassLoader会直接分配到permgen中,GC不进行回收),但是,无论JVM如何处理类卸载,ThreadLocal仍然会阻止被回收的Class对象)。

  这种方案还可以变化为,频繁地重新部署碰巧用到ThreadLocal的应用程序,这时像Tomcat这样的应用程序容器会像筛子一样泄漏内存,(因为应用程序容器会像上面那样启动线程,并且每次重新部署应用程序时,都会使用新的ClassLoader)。

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注