全国

java程序如何运行

2021-02-03 11:30:35 270 浏览 java培训

java是一种可以撰写跨平台应用软件的程序语言,很多人好奇它的运行方法,所以下面小编给大家介绍java程序如何运行,一起来看看吧。

java程序如何运行

java程序运行的方法

1、加载:可以参考java.lang.ClassLoader中loadClass方法,采用的是双亲委托进制进行加载,这个阶段首先找到对应的class文件,以二级制方式读入内存,按照jvm规范解析出所表达的数据结构,在内存中生成一个代表该类的java.lang.Class对象。

2、验证是确保当前class文件格式符合jvm规范,不会对jvm产生危害。验证工作并不是在加载之后才开始的,比如从class文件读入到内存后,解析其代表的数据结构时,我们首先会去校验魔数是否正确,以及版本号是否符合要求等。

3、准备阶段主要是为类的静态变量分配内存,设定初始值等工作、

4、解析。常量池中的符号引用替换为直接引用,比如String str = "test",str指向常量池中"test"的地址。

5、初始化。这个过程主要是执行类构造器的方法,静态类的赋值,静态代码块的执行。如果初始化一个类时,发现父类还没有初始化,则需要先初始化父类。

java程序运行的技巧

1、方法区。包含两部分永久代(Permanent Generation)用于存储类结构信息的地方,包括常量池、静态变量、构造函数、运行时常量池(Runtime Constant Pool)等和代码缓存即编译后的代码(JIT)。虽然JVM规范把方法区描述为堆的一个逻辑部分, 但它却有个别名non-heap(非堆),所以大家不要搞混淆了。

2、java堆。存储java实例或者对象的地方。这块是GC的主要区域。堆的大小可以通过JVM选项-Xms和-Xmx来进行调整,当堆耗尽的时候,JVM会抛出java.lang.OutOfMemoryError 异常。从存储的内容我们可以很容易知道,方法区和堆是被所有java线程共享的。

3、java栈。java栈总是和线程关联在一起,每当创建一个线程时,JVM就会为这个线程创建一个对应的java栈。在这个java栈中又会包含多个栈帧,每运行一个方法就创建一个栈帧,用于存储局部变量表、操作栈、方法返回值等。每一个方法从调用直至执行完成的过程,就对应一个栈帧在java栈中入栈到出栈的过程。所以java栈是线程私有的。

4、程序计数器。用于保存当前线程执行的内存地址。由于JVM程序是多线程执行的(线程轮流切换),所以为了保证线程切换回来后,还能恢复到原先状态,就需要一个独立的计数器,记录之前中断的地方,可见程序计数器也是线程私有的。

5、本地方法栈。和java栈的作用差不多,只不过是为JVM使用到的native方法服务的。本地方法栈的参数顺序、返回值和典型的C程序相同。

java程序学习的方法

一、初接触软件技术,先挑技术门槛低的技能方向入手。如果你完全是个外行,只懂得电脑的一般操作和OFFICE的使用,就先从网页制作开始学习,学习DREAMWEAVER的使用。

熟悉完前台制作后,要了解脚本语言,比如JSP、PHP、C#之类。自己再设定一个小目标;如留言簿。上网搜源码,下载到本地,一步一步的配置环境变量、启动TOMCAT服务器、部署JSP代码,设置好ACCESS数据库(数据库先从简单的ACCESS开始)。这样做的好处是从整体上了解搭建一个WEB运行环境需要的步骤和环节,利于后期的学习。

二、从实用角度出发来学习。在学习每一个环节技术时,都要给自己设定一个小功能目标,以目标来驱动自己学习。如果盲目看书、各个技术环节都要去了解,就会对学习产生抵触,结果是什么都学不进去。

大部分的大学里的教学方式就是这样,比如讲JAVA,对初学者讲大通的面向对象思想:继承、接口、抽象类,把JDK所有的包都详细讲一遍,IO流、socket编程、SWING等等,并不说这些不重要,只是对于初学者理解不了这些概念。

三、找个技术前辈做指导。所谓技术前辈是做过几个实际项目的的开发人员,他们很清楚在实际项目中最常用的技术是哪些,哪些开源项目好用。

找到技术前辈并不是帮你解决几行代码调试不通的问题,关键是帮你介绍一两本入门的书、介绍一些网上好的资源网站、指导学习哪些常用类、遇到麻烦的技术难点用什么开源组件等等。

四、脸皮要厚,不怕被人笑话。刚开始做技术,进入软件公司工作,就很不自信,总觉得自己这也不知道,那也不了解。其实,没关系,你要对自己树立信心,你要明白一点:所有的技术都没什么难度,都是熟能生巧的过程。 所以,一遇到问题就赶紧问老开发人员,平时上下班,吃饭时多跟他们聊;业务上不懂的就问项目经理和需求分析员,没什么关系的。

java异常有哪些类型 linux怎么分区
机构
课程

相关资讯

766培训网java培训java程序如何运行
在线预约
电话咨询
在线咨询