【历史】

第三代语言:

(1)C、Pascal、Fortran面向过程的语言;
(2)C++面向过程/面向对象;
(3)Java跨平台的纯面向对象的语言;
(4).NET跨语言的平台。
 
第四代语言:
SQL
 
【特点】
(1)纯面向对象的语言;
(2)与平台无关的语言,提供程序运行的解释环境;
(3)健壮的语言,吸收了C/C++的优缺点,去掉了影响其程序健壮性的部分(例如,指针、内存的申请与释放)。
 
 
【运行机制】
(1)Java虚拟机(JVM)
 
  <1>Java虚拟机可以理解成一个以字节码(*.class)为机器指令的CPU
         (这一点类似于Windows平台上的汇编语言,只要编译成class文件,就可以实现跨平台)
  <2>对于不同的运行平台,有不同的虚拟机
         (JVM for UNIX/Windows/Other Platform)
  <3>Java虚拟机机制屏蔽了地层运行平台的差异,实现了"一次编译,随处运行"。
          (C语言在编的比较好的情况下,可以实现“一次编程,随处运行”,但是还必须在不同的操作系统上编译后才可以)
 
【面试题】
 Java是编译型语言还是解释型语言?
 ----解释型语言
<1>C/C++语言可以直接编译成操作系统识别的可执行文件的格式,不经过第二次,这叫做编译型语言;
<2>Java第一次编译成自己的可执行文件格式*.class,当class文件在执行时是JVM逐行进行解释,生成目标平台识别的格式。
 
             
(2)垃圾收集机制(Garbage collection)
 
  <1>不再使用的内存空间需要回收;
  <2>在C/C++中,由程序员负责回收无用内存;
  <3>Java提供了一种系统级线程跟踪存储空间的分配情况,并在JVM空闲时,检查并释放那些可被释放的存储器空间;
  <4>垃圾回收在Java程序运行过程中自动进行,程序员无法精确控制和干预。
        (Java程序会出现“卡机”的情况,例如eclipse出现反应慢的情况,这就是在动态进行垃圾回收)
 
 
【运行过程】
源程序(*.java文件)--<Java编译器>--字节码(*.class文件)--<类装载器>--<字节码校验器>--<解释器>--<操作系统平台>
----javac的作用是将*.java文件编译成*.class文件(格式:javac HelloWorld.java)
----java的作用是运行程序(格式:java HelloWorld)
 
【J2SDK】
  ----软件开发包
 
【JRE】
  ----Java运行环境
 
 
 
 
 
 

Java——基础简介的更多相关文章

  1. java基础简介

    一.软件开发 软件:是由数据和指令组成的(例:计算器) 如何实现软件开发呢?    就是使用开发工具和计算机语言做出东西来 二.常用dos命令 d: 回车 盘符切换 dir(directory):列出 ...

  2. Java基础类库简介

    Java基础类库简介 一.常用的基础类库:11个jar(Java Archive,Java归档)包 作为java语言使用者,我们可以感受到java语言带来的优势(平台无关.面向对象.多线程.高效易扩展 ...

  3. Java基础-JVM调优策略简介

    Java基础-JVM调优策略简介 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.JVM结构分析 1>.JVM结构图 2>.JVM运行时数据区功能说明 JVM管理的内 ...

  4. Java基础-二进制以及字符编码简介

    Java基础-二进制以及字符编码简介 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 想必计算机毕业的小伙伴或是从事IT的技术人员都知道数据存储都是以二进制的数字存储到硬盘的.从事开 ...

  5. Java基础-日期格式化DateFormat类简介

    Java基础-日期格式化DateFormat类简介 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.DateFormat类概述 DateFormat 是日期/时间格式化子类的抽象 ...

  6. Java基础-正则表达式(Regular Expression)语法规则简介

    Java基础-正则表达式(Regular Expression)语法规则简介 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.正则表达式的概念 正则表达式(Regular Exp ...

  7. Java基础-StringBuffer类与StringBuilder类简介

    Java基础-StringBuffer类与StringBuilder类简介 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.StringBuffer类 在学习过String类之后 ...

  8. Java基础知识强化之集合框架笔记76:ConcurrentHashMap之 ConcurrentHashMap简介

    1. ConcurrentHashMap简介: ConcurrentHashMap是一个线程安全的Hash Table,它的主要功能是提供了一组和Hashtable功能相同但是线程安全的方法.Conc ...

  9. 夯实Java基础系列15:Java注解简介和最佳实践

    Java注解简介 注解如同标签 Java 注解概述 什么是注解? 注解的用处 注解的原理 元注解 JDK里的注解 注解处理器实战 不同类型的注解 类注解 方法注解 参数注解 变量注解 Java注解相关 ...

随机推荐

  1. 【Qt开发】V4L2 API详解 背景知识 打开设备设置参数

    www.linuxtv.org下,有篇文档详细讲解了V4L2相关知识和体系结构.是V4L2方面最全面的文档.可以通过它学习V4L2的一些思路和想法. http://www.linuxtv.org/do ...

  2. linux下 sleep() 与 usleep()

    usleep() 将进程挂起一段时间, 单位是微秒(百万分之一秒): 头文件: unistd.h 语法: void usleep(int micro_seconds); 返回值: 无 内容说明:本函数 ...

  3. Mac020--常用插件

    Google浏览器常用插件 1.github插件octotree 2.掘金Chrome网上应用商店 2-1.掘金/老司机的神兵利器 2-2.好用的Google插件:来自掘金 3.Gliffy Diag ...

  4. 红帽学习笔记[RHCSA] 第六课[进程、服务相关]

    第六课 进程 进程:已经启动的可执行程序的运行中的实例.每个进程都有自己的地址空间,并占用了一定的系统资源. 如何产生一个进程 执行程序或命令 计划任务 在终端中对进程管理 运行一个前台进程 [roo ...

  5. 安装开发环境vs2017+sql2016+tfs2017

    安装开发环境vs2017+sql2016+tfs2017 编写人:左丘文 2019-7-16 近一年了,一直没空着手写点什么,跟大家交待下吧,去年一次机会,其实也不完全是去年,因此离开了我工作15年的 ...

  6. C语言黑与白问题

    问题描述: 有A.B.C.D.E这5个人,每个人额头上都帖了一张黑或白的纸.5人对坐,每 个人都可以看到其他人额头上纸的颜色.5人相互观察后: A说:“我看见有3人额头上贴的是白纸,1人额头上贴的是黑 ...

  7. 什么场景下用redis而不用mysql?

    redis我们用作缓存,对查询速度要求比较高的应用场景比较适合.对有复杂逻辑关系的存储不适合. mysql是硬盘存储的,在高性能io要求的项目里不能满足需求,而redis所有数据存在内存里,因此要快得 ...

  8. jquery TAB切换小插件

    //tab切换 ;(function($, window, document, undefined) { $.fn.tab = function(options) { var defaults = { ...

  9. nodeJS打包安装和问题处理

    一,执行步骤,打包报错 1,查看npm版本npm -v 2,查看gulp版本(报错怎么证明没安装)gulp --version 3,安装gulpnpm install --global gulp-cl ...

  10. 解决nodejs环境下端口号被占用的方法

    假设被占用的端口号是8081 1.进入cmd命令窗口 输入netstat -ano|findstr "8081" cmd窗口给我的信息尾部有一个和端口8081对应的PID值 '51 ...