仓酷云

标题: JAVA网页编程之JVM运转时的数据区仓酷云 [打印本页]

作者: 愤怒的大鸟    时间: 2015-1-18 11:15
标题: JAVA网页编程之JVM运转时的数据区仓酷云
你总不能说你写框架吧,那无疑会加大工作量,现在大多企业采取的是折中的办法,就是改别人写好的框架,可要改框架,前提是你对这个框架足够的了解,这就更难了。了解JVM运转时的数据区是Java编程中的进阶部分。我们在开辟中都碰到过一个很头疼的成绩就是OutOfMemoryError(内存溢堕落误),可是假如我们懂得JVM的外部完成和其运转时的数据区的事情机制,那末后面的成绩就会水到渠成。在这片文章中,我们将复杂懂得JVM中有哪些运转时数据区和这些数据区的事情机制。
JVM运转时数据辨别类


有图才干说

JAVA网页编程之JVM运转时的数据区仓酷云
登录/注册后可看大图

按线程持有分别

检察下面的图,能够得知以上六个数据区实在线程公有仍是共享,能够分为以下两种。

程序计数器

在通用的盘算机系统中,程序计数器用来纪录以后正在实行的指令,在JVM中也是云云。程序计数器是线程公有,以是当一个新的线程创立时,程序计数器也会创立。因为Java是撑持多线程,Java中的程序计数器用来纪录以后线程中正在实行的指令。假如以后正在实行的办法是当地办法,那末现在程序计数器的值为undefined。注重这个地区是独一一个不抛出OutOfMemoryError的运转时数据区。
JVM栈

在先容JVM栈之前,复杂先容一个观点,栈帧
栈帧

一个栈帧跟着一个办法的挪用入手下手而创立,这个办法挪用完成而烧毁。栈帧内寄存者办法中的部分变量,操纵数栈等数据。
JVM栈只对栈帧举行存储,压栈和出栈操纵。栈内存的巨细能够有两种设置,流动值和依据线程必要静态增加。在JVM栈这个数据区大概会产生抛出两种毛病。

堆数据区

堆数据区是用来寄存对象和数组(特别的对象)。堆内存由多个线程共享。堆内存跟着JVM启动而创立。尽人皆知,Java中有一个很好的特征就是主动渣滓接纳。渣滓接纳就操纵这个数据区往返收对象进而开释内存。假如堆内存残剩的内存不敷以满意于对象创立,JVM会抛出OutOfMemoryError毛病。
办法区

在JVM标准中,办法区被视为堆内存的一个逻辑部分。这一点大概因为详细的JVM完成而分歧,乃至在办法区不完成渣滓接纳处置也是能够的。办法区和堆内存一样被多个线程会见,办法区中寄存类的信息,好比类加载器援用,属性,办法代码和机关办法和常量等。当办法区的可用内存没法满意内存分派需求时,JVM会抛出OutOfMemoryError毛病。

ruby里有这些工具吗?又要简单多少?我没有用过这两门语言,我估计在这些语言力没有很统一的这种标准,或者根本就没有提供。
作者: 深爱那片海    时间: 2015-1-20 18:50
学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。
作者: 飘灵儿    时间: 2015-1-25 18:42
Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站
作者: 蒙在股里    时间: 2015-2-2 21:42
还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。
作者: 再见西城    时间: 2015-2-8 07:03
学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。
作者: 金色的骷髅    时间: 2015-2-10 23:30
应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展
作者: 愤怒的大鸟    时间: 2015-3-1 17:21
至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。
作者: 变相怪杰    时间: 2015-3-10 21:15
所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。
作者: 冷月葬花魂    时间: 2015-3-17 10:01
吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧
作者: 只想知道    时间: 2015-3-24 06:16
《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2