终于开始了期待已久的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有三个版本

  1. JAVASE(标准版),定位个人计算机上的应用
  2. JAVAEE(企业版),定位在服务器端的应用
  3. 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的安装的更多相关文章

  1. JAVA语言的跨平台性和JDK,JRE与JVM

    Java虚拟机--JVM ~JVM:java虚拟机简称JVM是运行所有java程序的假想计算机,是java程序的运行环境,是java最具有吸引力的特性之一,我们编写的java代码,都运行在JVM之上 ...

  2. java入门第一步之完成jdk的安装(window)【转】

    为了面向更多的人类,我决定重温我的java起步: 要进行java开发第一步就是进行java环境的安装,也就是jdk的按装: 1.由于java被oracle收购了,我们下载jdk也就去oracle的官网 ...

  3. 1、Java语言概述与开发环境——JDK的安装与环境变量的配置

    Selenium.Appium.Macaca.RobotFramework.Jmeter等框架或工具均必须的一样东西——JDK,也就是基于java开发的东西都要这个东西.JDK的概念在这里不作描述. ...

  4. java并发编程系列原理篇--JDK中的通信工具类Semaphore

    前言 java多线程之间进行通信时,JDK主要提供了以下几种通信工具类.主要有Semaphore.CountDownLatch.CyclicBarrier.exchanger.Phaser这几个通讯类 ...

  5. 初识java java的加载与执行(JDK,JVM,JRE关系解释)

    首先java代码是以 .java结尾的文件,通过javac命令编译生成.class编译生成字节码文件,再通过java命令,把字节码文件加载到内存内部,此时是类加载器ClassLoader执行加载,通过 ...

  6. Java基础(1)JDK的安装与环境变量配置

    最近在复习Java基础,第一课就是JDK的安装配置以及环境变量的配置,不多废话,直接开始吧 (1)去Oracle官方网站下载JDK 1.8 Java的历史想必大家也清楚,Sun公司开发的一门面向对象的 ...

  7. jdk下载安装配置环境变量

    因为学习原因要用到一些工具,jdk12的版本与那个工具不兼容,所以这里推荐使用的是jdk1.8的版本, 不知道是电脑原因还是啥原因,jdk 12的版本用不了配不好环境变量. 首先可以在官网下载jdk1 ...

  8. JDK Mac 安装

    JDK安装步骤 一台mac os  环境 jdk.sdk.Android studio 1.打开终端-输入命令Java     2.从下面的图中可以看到,终端会自动给出提示,没有可以使用的java命令 ...

  9. 快捷键和功能键、进入DOS命令行的方法、DOS命令讲解、java跨平台原理、JRE和JDK的定义、书写格式

    快捷键和功能键A:键盘功能键* a:Tab* b:Shift* c:Ctrl* d:Alt* e:空格 * f:Enter* g:Window* h:上下左右键* i:PrtSc(PrintScree ...

随机推荐

  1. 属性——AddComponentMenu

    字面理解:添加 组件选项菜单 分析:可能是添加一个脚本或者组件到一个物体上 验证: 新建一个脚本:AttributeTest 提示:添加一个组件菜单属性,允许你放一个脚本在Compoent菜单下,来代 ...

  2. plupload插件的错误SCRIPT601

    在网上copy 别人的demo来用结果发生这个问题.浪费半天时间才找到问题. 在IE8下下提示这个异常. SCRIPT601: 未知的运行时错误plupload.full.min.js, 行15 字符 ...

  3. php常见面试问题

    1. 如果没有开启cookies,session如何工作? PHP中的sessions通常会使用cookies的方法.但是如果没有cookies(浏览器禁用cookies),PHP sessions也 ...

  4. 做一款直播类app

    ijkplayer 是一款做视频直播的框架, 基于ffmpeg, 支持 Android 和 iOS, 网上也有很多集成说明, 但是个人觉得还是不够详细, 在这里详细的讲一下在 iOS 中如何集成ijk ...

  5. WPF - 监听判断键盘组合键的按下

    对于键盘事件PreviewKeyDown.PreviewKeyUp.KeyDown.KeyUp,在其中检查当次事件是哪个按键触发的很简单,只需要判断KeyEventArgs类型的事件参数e的Key属性 ...

  6. Spring AOP的解读

    一.为什么会有AOP 在日常的开发中经常会有这样一种场景,支付相关的业务中经常需要记录日志,而记录的日志大体相同:这样就会造成支付组件和日志组件强关联,耦合在一起了.而AOP的出现就是为了解决这种问题 ...

  7. 极光推送CTO黄鑫:技术人员要建立自己的知识图谱

    本周,我们邀请到了极光推送CTO兼首席科学家黄鑫进行人物专访,在展示风采的同时,也分享会员们对技术.对工作.对人生的感悟.       扎实的底层服务是扩张关键 极光推送是一个做第三方云服务的公司,在 ...

  8. mybatis基础,mybatis配置文件核心组件typeHandler元素

    无论是从预处理语句中设置一个值,还是从结果集里取出一个值,都会用类型处理器将获取的值以合适的方式转换成 Java 类型 可以重写类型处理器或创建你自己的类型处理器来处理不支持的或非标准的类型 实现 o ...

  9. CCF2013123最大的矩形(C语言版)

    问题描述 在横轴上放了n个相邻的矩形,每个矩形的宽度是1,而第i(1 ≤ i ≤ n)个矩形的高度是hi.这n个矩形构成了一个直方图.例如,下图中六个矩形的高度就分别是3, 1, 6, 5, 2, 3 ...

  10. 面向对象的全套“企业微信”api接口的代码实现,网上太多“面向过程”微信api接口的代码,这个开源给需要的人用

    有段时间没有写文章了. 一直以来,微信的热门是看得到的,很多人都需要与微信的api对接. 今天我这里就分享全套的企业微信api接口的代码. 关于微信api,网上已经有很多实现的了. 但是我今天之所以还 ...