Java入门(我的第一篇Java博客)

一. Java是由Sun公司的James Gosling发明的面向对象可跨平台的编程语言

1. 什么是平台?

CPU + OS =平台

a. 平台1 — CPU指令集:

指令集,就是cpu中用来计算和控制计算机系统的一套指令的集合,每种 cpu都有其特定的指令集

b.平台2 —操作系统:

操作系统是充当用户和计算机之间交互的界面软件,丌同的操作系统支持丌同 的CPU(CPU指令集)。 三种主流操作系统都支持CISC指令集

c.平台3 —开发平台定义:

开发程序首先应该确定:

1)CPU类型,也就是指令集类型

2)操作系统

我们把这种软硬件的结合叫平台

2.

跨平台1 — C的“跨平台”

.c源程序

1)winNT编译器-------->winNT 程序

2)Liunx编译器 (GCC,ICC)-----编译----->Liunx 程序

3)其他OS编译器---------->其他OS程序

跨平台3 — 不能跨平台的火星

(假设我们将源程序比作火星文则可以有以下的类比方式)

源程序 火星文

 1)汉语翻译-------->汉语文章

2)英语翻译-----翻译---->英语文章

3)日语翻译---------->日语文章

跨平台4 — 火星文跨平台

源程序 火星文---编译--->世界语

                -------->汉语解释器------->汉语文章

世界语     -------->英语解释器------->英语文章

                -------->日语解释器------->日语文章

跨平台5 — 如何跨平台

不能将源程序编译成机器语言,因为那样就与平台相关了,要将其编译为中间语言来实现跨平台操作。

将编译成的中间语言用解释器进行二次编译,解释执行

中间语类似于上述的世界语言,而再由各国解释器将原本由火星文编译而来的中间语翻译成各国能看懂的文章。

跨平台6 — Java跨平台原理

                                                                                                            window解释器--->winNT程序

源程序.java---编译(与平台无关的编译器生成与平台无关的中间码)---  liunx解释器--->Liunx程序 

(解释器是与平台相关的)                                                                      mac解释器--->Mac程序

跨平台7 — 比较

C语言是编译执行的

编译器与平台相关

编译生成的可执行文件与平台相关

Java最终是解释执行的

编译器与平台无关

编译生成的中间码与平台无关

中间码由解释器解释执行,解释器与平台相关

一次编译,到处运行

3.

语言执行方式的三种分类

1)编译执行;缺点:无法跨平台 优点:速度快

2)解释执行,html,JavaScript;类似同声传译

3)中间码+虚拟机

4.

JDK1

1)开发Java需要从源文件到中间字节码的编译器

2)运行java需要Java解释器

3)JDK=Java编译器+Java解释器+其它组件

JDK2

JDK = Java Development Kit(下载JDK开发包)

                              JAVA_HOME JDK安装目录

配置环境变量         CLASSPATH 类路径

                              PATH 编译工具路径

5.三个概念

JVM(Java Virtual Machine):Java虚拟机,包含:类加载器,字节码效验器,Java解释器

JRE:Java运行时环境,包含JVM不Java运行支持类库

Java SDK:Java Software develop kit,JDK的另一个称呼

6.第一个Java程序

/* 
    我的第一个Java程序
*/
public class HelloWorld{ 
    public static void main(String[] args){ 
    //输出结果
        System.out.println("HelloWorld"); 
    } 
}

7.Java语言优缺点

优点:与平台无关  面向对象 高性能 多线程开发 分布式应用 简单 无指针 自动收集内存

缺点:   运行速度慢  占用资源多

缺点原因:1)中间字节码需要二次编译,解释执行

                  2)JVM占用资源

                  3)无指针无法直接操作内存

                  4)垃圾回收线程占用资源,丌能实时收集内存

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值