Java基础笔记2(编译型和解释型)
发表于|更新于|Java笔记
|总字数:422|阅读时长:1分钟|浏览量:
Java基础笔记2(编译型和解释型)
编译型和解释型
计算机不能理解高级语言,只能直接理解机器语言,所以使用任何高级语言编写的程序若想被计算机运行,都必须将其转换成计算机语言,也就是机器码。而这种转换的方式有两种:编译型和解释型。
编译型
一次编译,多次执行。(运行速度快,跨平台性差)
源程序执行前编译,只编译一次,以后运行时不需要编译。
使用专门的编译器,针对特定的平台,将高级语言源代码一次性的编译成可被该平台硬件执行的机器码,并包装成该平台所能识别的可执行性程序的格式。
编译型语言:C、C++、Objective等
解释型
边解释,边执行。(跨平台性好,效率较低)
直接将源代码解释成机器码并立即执行。
使用专门的解释器,逐行解释源程序为特定平台的机器码并立即执行。代码在执行时才被解释器一行行动态翻译和执行,而不是在执行之前就完成翻译。
解释型语言:Python等
JAVA程序运行机制
Java既具有编译型特点,也具有解释型特点。
因为有JVM的存在,Java可以一次编译,到处运行。
Java编译型特点:
所有的Java代码都是要编译的成字节码文件。
Java解释型特点:
编译后的Java代码不能直接运行,需要在JVM上进行解释运行。(或编译运行)
文章作者: 青椒肉丝
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 PlanZ!
相关推荐

2021-01-21
GUI编程
Java GUI编程是通过使用Java的图形用户界面(GUI)工具包来实现桌面应用程序的界面设计。

2020-12-13
Java基础笔记1(介绍、环境搭建与卸载)
Java基础笔记1(介绍、环境搭建与卸载)Java发展史1972年C诞生 贴近硬件,运行极快,效率极高 操作系统,编译器,数据库,网络系统等 指针和内存管理 1982年C++诞生 面向对象 兼容C 图形领域、游戏等 新语言 语法像C 没有指针 没有内存管理 真正的可移植性,一次编写,到处运行 面向对象 类型安全 高质量类库 Java初生 1995年的网页简单而粗糙,缺乏互动性 图形界面程序(Applet) Bill Gates说:这是迄今为止设计的最好的语言! Java 2 标准版(J2SE):占领桌面 Java 2 移动版(J2ME):占领手机 Java 2 企业版(J2EE):占领服务器 大量巨头加入 Java发展 基于Java开发了大量平台、系统、工具 构建工具:Ant, Maven, Jekins 应用服务器:Tomcat, Jetty, Jboss, Websphere, weblogic(三高问题:高可用、高性能、高并发) Web开发:Struts, Spring, Hibernate, myBatis 开发工具:Eclipse, Netbean, intellij idea, Jbuilder …… 2006:Hadoop(大数据领域) 2008:Android(手机端) Java特性和优势 简单性 面向对象 可以执行 高性能 分布式 动态性(反射) 多线程 安全性 健壮性 Java三大版本 JavaSE:标准版(桌面程序、控制台开发) JavaME:嵌入式开发(手机、小家电) JavaEE:企业级开发(Web端,服务器开发) JDK、JRE、JVM JDK:Java Development Kit JRE:Java Runtime Environment JVM:Java Virtual Machine Java环境搭建环境搭建 下载电脑对应版本的JDK 安装JDK(建议准备一个存放环境的文件夹) 配置环境变量 右键点击计算机-属性-高级系统设置-高级-环境变量 或 控制面板-系统安全-系统-高级系统设置-高级-环境变量 新建JAVA_HOME系统变量 变量名:JAVA_HOME 变量值:(JDK安装目录) 编辑PATH系统变量 新建...

2020-12-19
Java基础笔记5(包、JavaDoc)
Java基础笔记5(包、JavaDoc)包 一般使用公司域名倒置作为包名,如 com.baidu.www com.baidu.baike com.baidu.blog 包中的类要在类前面加上package 包名,如 1package com.baudu.www //注:要放在代码最上面 导入其他包中的类时使用import,如 1import java.util.* //*表示导入该包下所有的类 JavaDoc javadoc命令用来生成自己的API文档 参数 @author 作者名 @version 版本号 @since 指明需要最早使用的jdk版本 @param 参数名 @return 返回值 @throws 抛出异常情况 如下: 1234567891011121314151617181920package com.hollowshadow;/** * @author Haunt * @version 1.0 * @since 1.8 */public class Student { String name; /** * @author Haunt * @param s * @return void * @throws Exception */ public void setName(String s) throws Exception { this.name = s; }} 12打开命令行,执行javadoc命令javadoc -encoding UTF-8 -charset UTF-8 Student.java 打开类所在目录,发现自动生成html等文件,打开index.html,即javadoc生成的API文档 IDEA中使用JavaDoc 菜单 Tools -> Generate JavaDoc 进行配置 Generate JavaDoc scope:使用JavaDoc生成文档的范围 Output directory:生成的文档所在的目录 Locale:语言版本,默认英文或者是当前操作系统语言,zh_CN中文 Other command line...

2020-12-13
Java基础笔记3(注释、标识符、数据类型、类型转换)
Java基础笔记3(注释、标识符、数据类型、类型转换)注释单行注释1//单行注释 多行注释1234/*多行注释多行注释*/ 文档注释1234/** * @Description Helloworld * @Author PlanZ */ IDEA自定义注释样式 标识符关键字 abstract assert boolean break byte case catch char class const continue default do double else enum extends final finally float for goto if implements import instanceof int interface long native new package private protected public return strictfp short static super switch synchronized this throw throws transient try void volatile while 标识符 所有的标识符以字母(A-Z或a-z),美元符($),下划线(_)开始,不可以以数字开头 首字母之后可以是字母(A-Z或a-z),美元符($),下划线(_),数字(0-9)的任意组合 不能使用关键字作为变量名或方法名 大小写敏感 数据类型强类型语言要求变量的使用要严格符合规定,所有变量必须先定义后使用 弱类型语言弱类型语言也称为弱类型定义语言。与强类型语言定义相反。 vb,php等就属于弱类型语言。 Java的数据类型分为两大类基本类型(Primitive Type) 数值类型 整数类型 byte占1个字节范围:-128-127 short占2个字节范围:-32768-32767 int占4个字节范围:-2147483648-2147483647 long占8个字节范围:-9223372036854775808-9223372036854775807 浮点类型 float占4个字节 double占8个字节 字符类型 char占2个字节 boolean类型 boolean占1位,其值只有true和false 引用类型(Reference...

2020-12-16
Java基础笔记4(变量常量、命名规范、运算符)
Java基础笔记4(变量常量、命名规范、运算符)变量作用域 类变量(静态变量) 在方法外 从属类 无需初始化,有默认值 实例变量(对象变量) 在方法外 从属对象 无需初始化,有默认值 局部变量 在方法内 只在方法内有效 必须声明和初始化 12345678public class Test{ static int a = 0; //类变量 int b = 0; //实例变量 public void method(){ int c = 0; //局部变量 }} 类变量和实例变量的区别类变量是所有对象共有,其中一个对象将它值改变,其他对象得到的就是改变后的结果。 实例变量属对象私有,某一个对象将其值改变,不影响其他对象。 常量初始化后不能改变值 常量一般用大写字符 1final double PI = 3.14; 命名规范 变量、方法、类名:见名知意 类成员变量:小驼峰(lastName) 局部变量:小驼峰 常量:大写(MAX_VALUE) 类名:大驼峰 方法名:小驼峰 运算符 算术运算符:+,-,*,/,%,++,— 赋值运算符:= 关系运算符:>,<,>=,<=,==,!=,instanceof(测试它左边的对象是否是它右边的类的实例,返回 boolean 的数据类型。) 逻辑运算符:&&,||,! 位运算符:&,|,^,~,>>,<<,>>> 条件运算符:? : 扩展赋值运算符:+=,-=,*=,/= 12345678910long a = 2333333333333L;int b = 2333;short c = 233;byte d = 23;System.out.println(a+b+c+d); //longSystem.out.println(b+c+d); //intSystem.out.println(c+d); //int //自动升为混合运算类型中最高类型//整数类型操作中,操作数中有long,结果也为long,操作数中没有long时,结果为int 123byte b = 3;b = b +...

2020-12-22
Java基础笔记6(Scanner、程序结构)
Java基础笔记6(Scanner、程序结构)Scanner对象 java.util.Scanner是Java5的新特征,可以通过Scanner类来获取用户的输入 基本语法 1Scanner scan = new Scanner(System.in); 通过Scanner类的next()与nextLine()方法获取输入的字符串 12String s1 = scanner.next(); //输入:hello worldSystem.out.println(s1); //输出:hello 12String s2 = scanner.nextLine(); //输入:hello worldSystem.out.println(s1); //输出:hello world next 读取到有效字符后才可以结束输入 对输入的有效字符之前遇到的空白,next()方法会将其自动过滤掉 只有输入有效字符后才将后面输入的空白作为分隔符或结束符 next()不能得到带有空格的字符串 nextLine() 以Enter为结束符,nextLine()方法返回输入回车之前的所有字符 可以获得带空格的字符串 在读取前一般使用hasNext()与hasNextLine()判断是否还有输入的数据 12345while(scanner.hasNextInt()){ System.out.print(scanner.nextInt()+" ");}//输入:1 2 3 4 5 a b 6 c//输出:1 2 3 4 5 属于IO流的类不关闭会一直占用资源,用完就关掉 1scan.close(); 顺序结构语句与语句之间从上到下顺序执行 选择结构if单选择结构123if(条件){ 语句} if-else双选择结构12345if(条件){ 语句1}else{ 语句2} if多选择结构123456789if(条件1){ 语句1}else if(条件2){ 语句2}else if(条件3){ 语句3}else{ ...
公告
初次访问时部分资源可能加载速度较慢,请耐心等待、尝试刷新或者使用魔法❀❀❀