java的特点跨平台原理以及JDK的安装
终于开始了期待已久的java,了解java首先要了解下计算机语言的发展历史
机器语言---》汇编语言---》---》高级语言(面向过程的语言和面向对象的语言)
机器语言
每一个计算机只能理解他自己的机器语言。机器语言对于计算机来说就是自然语言了,由计算机硬件的设计者定义。机器语言通常有数字串组成(最终被简化成01),对于人类来说,机器语言过于繁琐。
典型的机器语言:
汇编语言
为了编程的方便,以及解决更加复杂的问题。程序员开始使用英文的缩写的助记符来表示基本的计算机操作。这些助记符构成了汇编语言的基础。
典型的汇编语言:
高级语言
对于简单的任务,汇编语言可以胜任。但是随着计算机的发展,渗透到了工作生活的更多的方面,一些复杂的任务出现了,汇编语言就显得有限力不从心(应该说是程序员使用汇编语言解决复杂问题出现了瓶颈)。于是,出现了高级语言。像c,c++,java都是高级语言。高级语言允许程序员使用接近日常英语的指令的编写程序。
Grosspay = basepay + overpay;
从上面这个简单的加法计算,可以看出越到高级语言,越接近人的思维,人使用起来越方便。
总结:所有的编程语言的最终目的都是提供一种"抽象"方法,抽象的层次越高越接近人的思维。编程的最终目的还是为了解决现实问题
高级语言分为面向对象和面向过程
面向过程具体是从微观上处理具体事务
指做一件事需要什么步骤过程,例如开车
- 点火
- 踩离合
- 挂挡,油门
而面向对象是指从整体上把控处理事务,例如开车
- 找一个司机
- 让他开车
可以这样理解面向对象是更高级的语言
因为面向对象更加贴近我们的生活,现在出去吃饭,找一个饭店,把要吃的菜单交给服务员(服务员报给厨师)就不需要管了,出去旅游(报一个旅游团),盖房子(交给施工队)
专业的人处理专业的事
JAVA的诞生
在1991年时候,James Gosling在sun公司的工程师小组想要设计这样一种小型计算机语言,
该语言主要用于像电视盒这样的消费类电子产品,这些电子产品有一个共同的特点:计算处理能力和内存都非常有限。所以要求:语言必须非常小且能够生成非常紧凑的代码,这样才能在这样的环境中执行。
另外,由于不同的厂商选择不同的CPU,因此,要求该语言不能和特定的体系结构绑在一起,要求语言本身是中立的,也就是跨平台的。所以,将这个语言命名为“Green”,类似于绿色软件的意思。
后来,改名将OAK。橡树的意思。改名后发现已经有一种语言叫这个名字了,在改名叫JAVA.
1991年,Sun公司的Green项目,Oak
1995年,推出Java测试版
1996年,JDK1.0
1997年,JDK1.1
1998年,JDK1.2,大大改进了早期版本的缺陷,是一个革命性的版本,更名为Java2。
2004年,J2SE 5.0 (1.5.0) Tiger老虎
2006年,J2SE 6.0 (1.6.0) Mustang野马
java在这二十年一直是高级语言中数一数二的地位,为什么会这么流行呢?
首先得益于Internet的爆发式发展,然后得益于java语言的中立,跨平台性,在internet爆发式增长的时候,人们都在忙着将自己的电脑连接到网络上,这个时候出现了一个大问题,连接到internet的计算机各式各样,不仅硬件cpu不同,操作系统也不同,网络环境很复杂,这个时候程序员希望自己编写的程序运行在网络上,需要一种体系中立跨平台的语言,java正好适合,非常的独一无二,于是java就火起来了
受JAVA影响最大的是c#, 他是微软推出的和java抗衡的语言,用于支持.net框架。C#总体上和java非常相似
JAVA有三个版本
- JAVASE(标准版),定位个人计算机上的应用
- JAVAEE(企业版),定位在服务器端的应用
- JAVAME(微缩版),定位在消费性电子产品的应用上(可以忽略)
JAVA语言的特点
- 简单性:就是c++语法的纯净版。没有头文件,指针运算,结构,联合,操作符重载,虚基类等等。由于语法基于c,因此学习起来完全不费力。
- 面向对象:面向对象是一种程序设计技术,他将重点放在数据(即对象)和对象之间的接口上
可移植性:这是JAVA的一个重要的优势。JAVA代码或者说字节码、二进制码可以跨平台的移植,而不用管具体的操作系统和硬件环境。JAVA本身就是面向网络的,只有在网络环境中才能显示出他的优势,比如:现在我有一个网络环境,要让我的笔记本和手机交互,笔记本环境是windows发出一个让手机定时录音的JAVA代码,手机只有简单Linux内核操作系统,照样可以完美的执行这个代码。一次编写,到处运行
- 安全性:java摒弃了指针,极大增强了安全性能,适合于网络/分布式环境,为了达到这个目标,在安全性方面投入了很大的精力,使
Java可以构建防病毒,防篡改的系统 健壮性:
Java是一种健壮的语言,吸收了C/C++ 语言的优点,但去掉了其影响程序健壮性的部分(如:指针、内存的申请与释放等)。Java程序不可能造成计算机崩溃。Java系统仔细检测对内存的每次访问,确认它是合法的,而且不致引起任何问题。
那么JAVA为什么可以跨平台运行呢?
这就得益于java虚拟机了,也就是JVM(java virtual machine), JVM是一种规范,可以使用软件[d1] 来实现,也可以使用硬件[d2] 来实现,就是一个虚拟的用于执行bytecodes字节码的计算机
Java虚拟机是Java最核心技术,也是跨平台的基础.
Java是如何实现跨平台?
1 通过JVM中的“编译器”将Java源程序编译成Java 字节码文件(.class)(字节码文件采用结构中立的中间文件格式)
2 通过JVM中的“解释器”将Java字节码文件解释为对应机器语言并运行

只要操作系统中装有对应的JVm,java语言就可以做到一次编译到处运行
对应的是,C语言需要多次编译(针对不同的操作系统需要编译器进行编译)

既然java系统这么强大,那么如何进行开发呢?
一.搭建Java开发环境(安装jdk,配置环境变量)
1.安装JDK,将JDK安装在自己想要安装的目录下,本人:D:\Program Files\Java\jdk1.7.0_17
2.配置环境变量,这个配置不好,无法正常运行java程序
a.在计算机(我的电脑)右键------》属性

b.高级系统设置-----》高级--环境变量

1 新建JAVA_HOME变量 D:\Program Files\Java\jdk1.7.0_17 JDK安装目录

2 新建CLASSPATH变量 .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;

3 设置path变量 在最前面或者后面添加%JAVA_HOME%\bin;

设置完成之后可以在dos窗口中输入java -version可以得到当前jdk的版本信息

然后可以进行第一次的代码编写
(一)编写Java源程序(Test .java)

运行结果为
好了,这就是今天所有的知识了
java的特点跨平台原理以及JDK的安装的更多相关文章
- JAVA语言的跨平台性和JDK,JRE与JVM
Java虚拟机--JVM ~JVM:java虚拟机简称JVM是运行所有java程序的假想计算机,是java程序的运行环境,是java最具有吸引力的特性之一,我们编写的java代码,都运行在JVM之上 ...
- java入门第一步之完成jdk的安装(window)【转】
为了面向更多的人类,我决定重温我的java起步: 要进行java开发第一步就是进行java环境的安装,也就是jdk的按装: 1.由于java被oracle收购了,我们下载jdk也就去oracle的官网 ...
- 1、Java语言概述与开发环境——JDK的安装与环境变量的配置
Selenium.Appium.Macaca.RobotFramework.Jmeter等框架或工具均必须的一样东西——JDK,也就是基于java开发的东西都要这个东西.JDK的概念在这里不作描述. ...
- java并发编程系列原理篇--JDK中的通信工具类Semaphore
前言 java多线程之间进行通信时,JDK主要提供了以下几种通信工具类.主要有Semaphore.CountDownLatch.CyclicBarrier.exchanger.Phaser这几个通讯类 ...
- 初识java java的加载与执行(JDK,JVM,JRE关系解释)
首先java代码是以 .java结尾的文件,通过javac命令编译生成.class编译生成字节码文件,再通过java命令,把字节码文件加载到内存内部,此时是类加载器ClassLoader执行加载,通过 ...
- Java基础(1)JDK的安装与环境变量配置
最近在复习Java基础,第一课就是JDK的安装配置以及环境变量的配置,不多废话,直接开始吧 (1)去Oracle官方网站下载JDK 1.8 Java的历史想必大家也清楚,Sun公司开发的一门面向对象的 ...
- jdk下载安装配置环境变量
因为学习原因要用到一些工具,jdk12的版本与那个工具不兼容,所以这里推荐使用的是jdk1.8的版本, 不知道是电脑原因还是啥原因,jdk 12的版本用不了配不好环境变量. 首先可以在官网下载jdk1 ...
- JDK Mac 安装
JDK安装步骤 一台mac os 环境 jdk.sdk.Android studio 1.打开终端-输入命令Java 2.从下面的图中可以看到,终端会自动给出提示,没有可以使用的java命令 ...
- 快捷键和功能键、进入DOS命令行的方法、DOS命令讲解、java跨平台原理、JRE和JDK的定义、书写格式
快捷键和功能键A:键盘功能键* a:Tab* b:Shift* c:Ctrl* d:Alt* e:空格 * f:Enter* g:Window* h:上下左右键* i:PrtSc(PrintScree ...
随机推荐
- react构建淘票票webapp,及react与vue的简单比较。
前言 前段时间使用vue2.0构建了淘票票页面,并写了一篇相关文章vue2.0构建淘票票webapp,得到了很多童鞋的支持,因此这些天又使用react重构了下这个项目,目的无他,只为了学习和共同进步! ...
- Spark源码分析之Spark Shell(下)
继上次的Spark-shell脚本源码分析,还剩下后面半段.由于上次涉及了不少shell的基本内容,因此就把trap和stty放在这篇来讲述. 上篇回顾:Spark源码分析之Spark Shell(上 ...
- find查找命令
find # 格式 find [路径] [参数] [表达式] -exec 指令 {} \ ; -{} 代表find找到的文件 -\ 禁止转意 : 表示本行指令结束 # find /sbin -type ...
- C语言总结
我们用了20天的时间左右的时间来学习简单的C语言,对于C语言,总体来说我是学的不是特别透彻,感觉自己什么都不懂一样.明天就要考试了,希望明天考个好成绩,为明年打下一个良好的基础. 这段时间我们学习了: ...
- 在VMware Workstation 9中安装Mac OS X 10.8 Mountain Lion
本文环境: CPU:Intel Core i7 920: OS:Windows 7: 内存:8G: 玩Hackintosh各有各的理由,不管什么理由,利用虚拟机安装Mac OS X都是一个可行的办法. ...
- Brackets 前端编辑器试用
Brackets编辑器介绍 "一个现代的,开源的,了解网页设计的编辑器"这是官方的宣传语.也就是说它适用于网页开发,包含了许多亮点功能:实时预览(Live Preview).内联编 ...
- VS2010 MSDN的介绍
5 cout << temp; 博客园第一篇文章的开始. VS2010 MSDN的文档介绍 https://msdn.microsoft.com/zh-cn/library/dd8 ...
- USB重定向
第一期中,我们一起简要的看了下传统PC和桌面云下USB重定向和USB设备重定向方式的差异,了解了桌面云下外设兼容性问题来源的根源-USB设备本身驱动不规范/不支持, 或者虚拟机驱动实现上与USB设备对 ...
- 编程那些事儿:如何快速地"借用"CSS
做前端开发有时候会碰到任务紧急,需要马上写好静态页的问题.比如,设计师给你扔了一个设计稿,要你在下班之前搞定.这时候你如热锅上的蚂蚁,如果自己写css的话,时间紧张,于是上网找了一下相关模板页面,找到 ...
- RxSwift 入坑好多天 - 终于有了一点理解
一.前言 江湖上都在说现在就要赶紧学 swift 了,即将是 swift 的天下了.在 api 变化不大的情况下,swift 作为一门新的语言,集众家之所长,普通编码确实比 oc 要好用的多了 老早就 ...