什么叫运行时什么叫编译时
编译时是调用检查你的源程序是否有语法错误,如果没有就将其翻译成字节码文件。即.class文件。
运行时是java虚拟机解释执行字节码文件。
Ⅱ 1. 编译时的多态性与运行时的多态性有什么区别,他们的实现方法有什么不同
多态从实现的角度可以划为两类:编译时多态和运行时多态。
编译时的多态性:就是在程序编译的时候,也就是生成解决方案的时候就决定要实现什么操作。
运行时的多态性:就是指直到系统运行时,才根据实际情况决定实现何种操作。
1、多态实现形式不同:
编译时的多态是通过静态连编来实现的;运行时的多态是用动态连编来实现的。
2、多态性通过方式不同:
编译时的多态性主要是通过函数重载和运算符重载来实现的;运行时的多态性主要是通过虚函数来实现的。
(2)什么叫运行时什么叫编译时扩展阅读:
静态多态性又称编译时的多态性。静态多态性的函数调用速度快、效率高但缺乏灵活性,在程序运行前就应决定执行的函数和方法。
动态多态性的特点是:不在编译时确定调用的是哪个函数,而是在程序运行过程中才动态地确定操作所针对的对象。又称运行时的多态性。动态多态性是通过虚函数(virtual function)实现的。
Ⅲ (C语言)编译时给全局变量和静态变量分配存储空间,运行时给局部变量分配存储空间,这样说对吗
全局变量,静态局部变量,静态全局变量都在静态存储区分配空间,而局部变量在栈里分配空间
全局变量本身就是静态存储方式, 静态全局变量当然也是静态存储方式。这两者在存储方式上并无不同。这两者的区别虽在于非静态全局变量的作用域是整个源程序,当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。而静态全局变量则限制了其作用域,即只在定义该变量的源文件内有效,在同一源程序的其它源文件中不能使用它。由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函数公用,因此可以避免在其它源文件中引起错误。
Ⅳ 请问java程序在编译和运行时有什么区别,系统分别都会做什么
Java程序的编译
使用命令: javac *.java
编译时,会将写的.java文件(高级语言),生成相应的字节码文件.class文件(二进制代码)
Java程序的执行
使用命令:java *
流程: 加载到 -- 连接 ---- 初始化 ...
运行时,首先会由将相应的.class文件,加载到内存中,并验证.class文件的有效性,将相应类的Class加载到内存中,并对类中的静态变量进行初始化操作,然后就由 主 类开始执行
具体的可以看一下 JVM 类加载过程,以及jVM的内存分配机制
Ⅳ 请问运行时分配内存和编译时分配内存有什么区别
一。运行时分配内存
既然是运行时分配内存,首先这个一定是动态的内存。。那么它的作用是什么呢,它的主要应用场所就是在
事先并不知道要多少内存来存储我们想要存的东西,比如说
偶们现在想要用内存来保存中国深圳的人口相关信息,但是这个城市有多少人呢,这个数字是不确定的随时都是在变的,这个时候就不可能定义一个固定大小的数组来保存了,这样就需要动态内存了,来一个就加一个,少一个就减一个多好用,是不。。嘿嘿
二。编译时候分配的内存。。当然就是事先偶知道要多大的内存。所以就先申请固定大小的内存喽。这个就是在编译时候就会分配内存
三。动态的内存一经申请,只要没有人为的释放掉它,那么它会一直存在,直到程序运行结束,才会被释放。
四。。动态内存会在进程结束的时候自动释放的。。嘿嘿。。进程都没有了,那么内存何在
是不。。瓶子破了,水当然会溜走,想留下也不行啊
回复libujuan