【历史】

第三代语言:

(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. ugui点击穿透判断

    using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.Eve ...

  2. Pytorch迁移学习

    环境: Pytorch1.1,Python3.6,win10/ubuntu18,GPU 正文 Pytorch构建ResNet18模型并训练,进行真实图片分类: 利用预训练的ResNet18模型进行Fi ...

  3. Windows.etc\hosts文件

    ZC:就是将 后面的项 重定位到 前面的项 1.目录:"C:\Windows\System32\drivers\etc" 文件:"C:\Windows\System32\ ...

  4. Web安全测试中常见逻辑漏洞解析(实战篇)

    Web安全测试中常见逻辑漏洞解析(实战篇) 简要: 越权漏洞是比较常见的漏洞类型,越权漏洞可以理解为,一个正常的用户A通常只能够对自己的一些信息进行增删改查,但是由于程序员的一时疏忽,对信息进行增删改 ...

  5. elementUI 分页bug解决

    在使用elementui的分页组件时,我发现当对表格数据进行删除时,而且是删除到该页最后一条数据时,当前页面currentPage并不能自动减1,也就是说,当前页currentPage只有你点击页码时 ...

  6. Canvas入门01-基础知识

    定义一个canvas,直接在Html中使用canvas便签即可. <!DOCTYPE html> <html lang="en"> <head> ...

  7. 第九周课程总结&实验报告七

    实验任务详情: 完成火车站售票程序的模拟. 要求: (1)总票数1000张: (2)10个窗口同时开始卖票: (3)卖票过程延时1秒钟: (4)不能出现一票多卖或卖出负数号票的情况. package ...

  8. 数据库设计时,每个表要不要都设置自增主键ID!(转)

    逻辑数据库设计 - 需要ID(谈主键Id) 本文的目标就是要确认那些使用了主键,却混淆了主键的本质而造成的一种反模式. 一.确立主键规范 每个了解数据库设计的人都知道,主键对于一张表来说是一个很重要, ...

  9. django中的FBV和CBV??

    django中请求处理方式有2种:FBV 和 CBV 一.FBV FBV(function base views) 就是在视图里使用函数处理请求. 看代码: urls.py from django.c ...

  10. P4556 [Vani有约会]雨天的尾巴(线段树合并+lca)

    P4556 [Vani有约会]雨天的尾巴 每个操作拆成4个进行树上差分,动态开点线段树维护每个点的操作. 离线处理完向上合并就好了 luogu倍增lca被卡了5分.....于是用rmq维护.... 常 ...