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 ... 
随机推荐
- Dynamics CRM 2015-Custom Workflow Activity
			CRM的Workflow给我们的流程处理带来不少便利,但是这种自带的Workflow并不是万能的,中间某一step不能支持,往往会牵一发而动全身,可能造成整个Workflow Steps的重新设计.幸 ... 
- [Hadoop] - 异常Cannot obtain block length for LocatedBlock
			在Flume NG+hadoop的开发中,运行mapreduce的时候出现异常Error: java.io.IOException: Cannot obtain block length for Lo ... 
- c# 读取app.config遇到生成X.config.config问题
			string exePath = System.IO.Path.Combine(Environment.CurrentDirectory, "WindowsFormsApp.exe" ... 
- 新注册第一帖----------------------乱码新手自学.net 之Linq 入门篇
			作为一个业余开发,断断续续学.net/c#也有不少日子了, 学习过程中,不断忘了学,学了忘,这让我很苦恼. 以前学习过程中,我总是在笔记本中记录下来知识要点,这么久下来,笔记本都写了四五本了. 然而, ... 
- Xamarin组件包 Xamarin.ToolKit第二波
			Xamarin.ToolKit第二波 一 圆角按钮 xamarin.froms提供的标准button按钮设置了圆角和边框,都没有明显圆角样式,于是乎自己重写了渲染类.道理吧就是重写ButtonRend ... 
- Linux-7.2+LNMP+zabbix-3.2.1
			LNMP+zabbix-3.2.1 一.zabbix服务端部署 1.解压 yum –y install bzip2 tar -xf nginx-1.10.1.tar.gz tar -xf php-5. ... 
- java(jdk1.7) IO系列01之InputStream和OutputStream解析
			1.InputStream和OutputStream简介 在java中InputStream和OutputStream分别代表字节输入流和字节输出流,表示以字节的方式来实现进程或者程序的通信,Inpu ... 
- 了解 : prevent default
			基本了解是阻止事件之前设置好的事件触发,像是angular router ui里的 preventDefault是这样的. 在$stateChange的是后,可以调用preventDefault 来阻 ... 
- HttpClient 工具
			什么是httpclient HTTP 协议可能是现在 Internet 上使用得最多.最重要的协议了,越来越多的 Java 应用程序需要直接通过 HTTP 协议来访问网络资源.虽然在 JDK 的 ja ... 
- Spring事务管理源码分析
			Spring事务管理方式 依据Spring.xsd文件可以发现,Spring提供了advice,annotation-driven,jta-transaction-manager3种事务管理方式.详情 ... 
