终于开始了期待已久的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. 理解javascript this 的绑定过程

    在理解this 的绑定过程之前,首先要理解调用位置:调用位置就是函数在代码中被调用的位置(而不是声明的位置).只有仔细分析调用位置才能回答这个问题:这个this 到底引用的是什么?通常来说,寻找调用位 ...

  2. 动态样式语言—LESS

    博客原文地址:Claiyre的个人博客 https://claiyre.github.io/ 博客园地址:http://www.cnblogs.com/nuannuan7362/ 如需转载,请在文章开 ...

  3. 【Zookeeper】源码分析之请求处理链(一)

    一.前言 前面已经分析了Watcher机制的主要代码,现在接着分析Zookeeper中的请求处理链,其是Zookeeper的主要特点之一. 二.总体框图 对于请求处理链而言,所有请求处理器的父接口为R ...

  4. JAVA函数的参数传递

    JAVA开发过程中写函数都是不可避免的于是乎参数传递经常会困扰我们,特别是有C/C++功底的童鞋总会纠结于"java到底是值传递还是引用传递?" 先来一段代码(和程序员交流最好的果 ...

  5. PHP 代码审计代码执行注入

    PHP 代码审计代码执行注入 所谓的代码执行注入就是 在php里面有些函数中输入的字符串参数会当做PHP代码执行. 如此的文章里面就大有文章可以探究了 一 常见的代码执行函数 Eval,assert, ...

  6. PHP学习1 — PHP文件处理

    PHP 中 include 与 require  Php include (或 require)语句会获取指定文件中存在的所有文本/代码/标记,并复制到使用 include 语句的文件中. 这意味着您 ...

  7. mysql 安装及卸载 主从配置

    1.查询rpm -qa | grep mysql* 组件 出现类似安装包 mysql-server-5.1.71-1.el6.x86_64 mysql-libs-5.1.71-1.el6.x86_64 ...

  8. Protobuf学习 - 入门

    古之立大事者,不惟有超世之才,亦必有坚忍不拔之志 -- 苏轼·<晁错论> 从公司的项目源码中看到了这个东西,觉得挺好用的,写篇博客做下小总结.下面的操作以C++为编程语言,protoc的版 ...

  9. 2017 3-4/5 两天的学习的REVIEW

    明天就要去面试啦,去感受一下,估计又是一顿虐,蓝瘦-- 3月4日:计算机安全基础技术与原理方面的学习 密码体制(密码)由五个部分组成: 消息空间(m),密文空间(c),密钥空间(k),加密算法(E), ...

  10. java Thread和Runable的深刻理解

    线程(Thread)是指程序的运行流程,多线程机制指同时运行多个程序块. Java中实现多线程有两种方法:继承Thread类:实现Runnable接口. Thread类的run()方法的制定者:接口R ...