仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 722|回复: 14
打印 上一主题 下一主题

[学习教程] JAVA网页设计Java中的堆和栈的区分仓酷云

[复制链接]
小女巫 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:15:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
先谈谈我对java的一些认识。我选择java,是因为他语法简单,功能强大,从web,到桌面,到嵌入式,无所不能。但当我进一步了解了java后,感叹,java原来也有许多缺点。当一团体入手下手进修Java大概其他编程言语的时分,会打仗到堆和栈,因为一入手下手没有明白明晰的申明注释,良多人会发生良多疑问,甚么是堆,甚么是栈,堆和栈有甚么区分?更糟的是,Java中存在栈如许一个落后先出(LastInFirstOut)的按次的数据布局,这就是java.util.Stack。这类情形下,难免让良多人加倍隐晦后面的成绩。现实上,堆和栈都是内存中的一部分,有着分歧的感化,并且一个程序必要在这片地区上分派内存。尽人皆知,一切的Java程序都运转在JVM假造机外部,我们这里先容的天然是JVM(假造)内存中的堆和栈。
区分

java中堆和栈的区分天然是口试中的罕见成绩,上面几点就是其详细的区分
各司其职

最次要的区分就是栈内存用来存储部分变量和办法挪用。
而堆内存用来存储Java中的对象。不管是成员变量,部分变量,仍是类变量,它们指向的对象都存储在堆内存中。
独占仍是共享

栈内存回属于单个线程,每一个线程城市有一个栈内存,其存储的变量只能在其所属线程中可见,即栈内存能够了解成线程的公有内存。
而堆内存中的对象对一切线程可见。堆内存中的对象能够被一切线程会见。
非常毛病

假如栈内存没有可用的空间存储办法挪用和部分变量,JVM会抛出java.lang.StackOverFlowError。
而假如是堆内存没有可用的空间存储天生的对象,JVM会抛出java.lang.OutOfMemoryError。
空间巨细

栈的内存要远远小于堆内存,假如你利用递回的话,那末你的栈很快就会充斥。假如递回没有实时跳出,极可能产生StackOverFlowError成绩。
你能够经由过程-Xss选项设置栈内存的巨细。-Xms选项能够设置堆的入手下手时的巨细,-Xmx选项能够设置堆的最年夜值。
这就是Java中堆和栈的区分。了解好这个成绩的话,能够对你办理开辟中的成绩,剖析堆内存和栈内存利用,乃至功能调优都有匡助。

在性能方面,在windows平台下,.net网页编程可能是占强项,要是把.net网页编程放在sun开发的操作系统上去运行呢?根本就运行不了,.net网页编程对其它操作系统的支持也很弱,性能也可能比不上java。
admin 该用户已被删除
沙发
发表于 2015-1-20 18:50:27 | 只看该作者
是一种使网页(Web Page)产生生动活泼画面的语言
只想知道 该用户已被删除
板凳
发表于 2015-1-21 13:42:38 | 只看该作者
Java是一种计算机编程语言,拥有跨平台、面向对java
小妖女 该用户已被删除
地板
发表于 2015-1-26 08:49:35 | 只看该作者
一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
小魔女 该用户已被删除
5#
发表于 2015-1-26 12:59:30 | 只看该作者
还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。
蒙在股里 该用户已被删除
6#
发表于 2015-1-30 23:40:28 | 只看该作者
你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。
简单生活 该用户已被删除
7#
发表于 2015-2-8 04:03:26 | 只看该作者
你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?
不帅 该用户已被删除
8#
发表于 2015-2-19 07:48:34 | 只看该作者
Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。
若天明 该用户已被删除
9#
发表于 2015-2-22 11:18:57 | 只看该作者
另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。
再见西城 该用户已被删除
10#
发表于 2015-2-26 02:59:34 | 只看该作者
吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧
灵魂腐蚀 该用户已被删除
11#
发表于 2015-2-26 17:32:25 | 只看该作者
吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧
莫相离 该用户已被删除
12#
发表于 2015-3-2 23:51:53 | 只看该作者
你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。
13#
发表于 2015-3-9 13:45:32 | 只看该作者
至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。
爱飞 该用户已被删除
14#
发表于 2015-3-16 22:29:42 | 只看该作者
是一种突破用户端机器环境和CPU
透明 该用户已被删除
15#
发表于 2015-3-23 05:24:53 | 只看该作者
J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-9-28 17:23

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表