JavaSE----01.Java简介
01.Java简介
1、java介绍
Java是于1995年由Sun公司推出的一种跨平台、面向对象的高级程序设计语言。Java最初的名字叫OAK。Java是一种通过解释方式来执行的语言,其语法和C++类似。Java也是一门跨平台的语言,用Java编写的程序可以在任何平台上运行。实现了 "一次编写,到处运行"。
2、java版本
Java主要分为三个版本:
- JavaSE: java标准版,主要用于开发桌面应用程序。
- JavaME: java移动版,主要针对嵌入式设备软件开发。
- JavaEE: java企业版,主要用于开发企业级分布式网络程序。
3、java个版本的特点:
版本 | 发布时间 | 特点 |
---|---|---|
JDK1.0 | 1996 | 代号OAK |
JDK1.1 | 1997 | 引入JDBC、java bean、反射、添加内部类支持等 |
JDK1.2 | 1998 | 引入集合框架等 |
JDK1.3 | 2000 | 引入Java Sound API、jar文件索引,进行了大量优化等 |
JDK1.4 | 2004-02 | 添加XML处理、Java打印服务、支持正则表达式等 |
JDK5.0 | 2004-09 | 重大改变:添加自动装箱、自动拆箱、枚举、泛型、注解等 |
JDK6.0 | 2006 | 支持脚本语言、继承Web Services、插拔注解等 |
JDK7.0 | 2011 | 支持动态语言、引入新I/O文件系统等 |
JDK8.0 | 2014 | 接口改进、引入函数式接口、引入Lambda表达式等 |
JDK9.0 | 2017-09 | 模块化、JShell等 |
JDK10.0 | 2018-03 | 局部变量类型推断、删除工具javah等 |
JDK11.0 | 2018-09 | 字符串、集合增强等 |
JDK12.0 | 2019-03 | Switch 表达式、默认CDS归档等 |
JDK13.0 | 2019-09 | Dynamic CDS Archives等 |
4、java主要特性和优势:
- 分布式:持Internet应用分布式的开发。
- 高性能:相对于解释型的脚本语言来说,的确是高效的。
- 面向对象:面向对象的编程语言。
- 跨平台可移植:一次编写,到处运行。
- 安全健壮:java的强类型机制、异常处理、垃圾自动回收是java程序健壮的重要保证。
- 动态性:反射机制。
- 多线程:在java语言中,线程是一种特殊的对象,它必须由Thread类或其子(孙)类来创建。
5、java中的JDK、JRE、JVM区别:
- JDK: Java开发工具包(java development kit), 包含了JRE、JVM和开发工具(javac、java、jar、Javadoc等),主要针对开发者。
- JRE: Java运行环境(Java Runtime Environment), JRE的内部有一个Java虚拟机(JVM)以及一些标准的类别函数库,主要针对java用户。
- JVM: Java虚拟机(Java Virtual Machine), 用来解释执行字节码文件(.class文件)的。
JDK、JRE、JVM关系图:
6、java程序运行的过程:
Java 程序从源代码到运行一般有如下3个步:
我们需要格外注意的是 .class --> 机器码 这一步。在这一步 JVM 类加载器首先加载字节码文件,然后通过解释器逐行解释执行,这种方式的执行速度会相对比较慢。而且,有些方法和代码块是经常需要被调用的(也就是所谓的热点代码),所以后面引进了 JIT 编译器,而JIT 属于运行时编译。当 JIT 编译器完成第一次编译后,其会将字节码对应的机器码保存下来,下次可以直接使用。而我们知道,机器码的运行效率肯定是高于 Java 解释器的。这也解释了我们为什么经常会说 Java 是编译与解释共存的语言。
什么是字节码?采用字节码的好处是什么?
在 Java 中,JVM可以理解的代码就叫做字节码(即扩展名为 .class 的文件),它不面向任何特定的处理器,只面向虚拟机。Java 语言通过字节码的方式,在一定程度上解决了传统解释型语言执行效率低的问题,同时又保留了解释型语言可移植的特点。所以 Java 程序运行时比较高效,而且,由于字节码并不针对一种特定的机器,因此,Java程序无须重新编译便可在多种不同操作系统的计算机上运行。
7、Java API文档:
API(Application Programming Interface),应用程序编程接口。Java API 是一本程序员的字典,是JDK中提供给我们使用的类的说明文档。这些类将底层的代码实现封装了起来,我们不需要关系这些类是如何实现的,只需要学习这些类如何使用即可。所以我们可以通过查询API的方式,来学习Java提供的类,并得知如何使用它们。
主要使用步骤:
- 查看包
- 查看构造方法
- 查看具体方法
JavaSE----01.Java简介的更多相关文章
- Java入门 - 语言基础 - 01.Java简介
原文地址:http://www.work100.net/training/java-intro.html 更多教程:光束云 - 免费课程 Java简介 序号 文内章节 视频 1 概述 2 主要特性 3 ...
- 005 01 Android 零基础入门 01 Java基础语法 01 Java初识 05 Eclipse简介
005 01 Android 零基础入门 01 Java基础语法 01 Java初识 05 Eclipse简介 Eclipse是一款集成开发工具--IDE. 集成开发环境(IDE,Integrated ...
- 002 01 Android 零基础入门 01 Java基础语法 01 Java初识 02 Java简介
002 01 Android 零基础入门 01 Java基础语法 01 Java初识 02 Java简介 学习Java的基础语法 Java是一门编程语言,学习的逻辑其实和现实世界的语言是一样的,需要了 ...
- 【Java初探01】——Java简介及相关
Java 简介 java 是一种高级的面向对象的程序设计语言,使用Java语言编写的程序时跨平台的.从pc到手机,都有Java开发的程序和游戏,Java程序可以在任何计算机,操作系统和支持的Java的 ...
- Java企业实训 - 01 - Java前奏
前言: 虽然个人专攻.NET方向,不过由于个人是干教育行业的,方方面面的东西,不能说都必须精通,但肯定多少都会涉及到. 一个菜鸟学员,从啥都不会,经过一步步学习,最后到企业上手掌管一个模块甚至一个项目 ...
- 7.11.3 Java简介
101Java简介 101Java简介及开发环境搭建 Java简介 编程语言简介 机器语言:纯粹的机器代码 机器语言是有0,1,0,1的二进制代码组成,可以有计算机直接执行.效率最高,但是通用性不强, ...
- Java基础:Java简介及安装配置(1)
Java简介 Java是Sun公司于1995年推出的高级编程语言,具有跨平台特性,编译后的程序能够运行在多种类型的操作系统平台上. 1.1 Java应用程序版本 Java的3个独立用于开发不同类型应用 ...
- 第一回 java~简介
Java 简介 Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计语言和Java平台的总称.由James Gosling和同事们共同研发,并在1995年正式 ...
- Java从零开始学零(Java简介)
一.Java 简介 Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计语言和Java平台的总称.由James Gosling和同事们共同研发,并在1995年 ...
随机推荐
- 2018中国大学生程序设计竞赛 - 网络选拔赛 hdu 6440 Dream 模拟
Dream Time Limit: 12000/6000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Subm ...
- Codefroces 366 C Dima and Salad(dp)
Dima and Salad 题意:一共有n种水果,每种水果都有一个ai, bi,现求一个最大的ai总和,使得ai之和/对应的bi之和的值等于K. 题解:将bi转换成偏移量,只要偏移到起点位置,就代表 ...
- hdu6373 Pinball 杭电第六场 物理知识
Pinball Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)Total S ...
- 关于Math常用的方法
1. 常用的Math用法 Math.random() //0-1 的随机数 Math.round() //四舍五入取整 Math.ceil() //向上取整 Math.floor() //向下取整 M ...
- 【Offer】[67] 【把字符串转换成整数】
题目描述 思路分析 测试用例 Java代码 代码链接 题目描述 将一个字符串转换成一个整数(实现Integer.valueOf(string)的功能,但是string不符合数字要求时返回0),要求不能 ...
- asp.net core razor自定义taghelper
又一个新的名词(taghelper),这个名词在netcore razor中也替代了(Htmlhelper),通过taghelper是可以操作html标签.条件输出.更是自由添加内外元素.当然也内置了 ...
- 体验一下:AndroidX
背景 今天在更新 ButterKnife 到最新版本的时候出现了一个问题,我引入的是 10.1.0 最新版本: implementation 'com.jakewharton:butterknife: ...
- apache ignite系列(一): 简介
apache-ignite简介(一) 1,简介 ignite是分布式内存网格的一种实现,其基于java平台,具有可持久化,分布式事务,分布式计算等特点,此外还支持丰富的键值存储以及SQL语法(基于 ...
- Kubernetes监控实践
一.Kubernetes介绍 Kubernetes(K8s)是一个开源平台,能够有效简化应用管理.应用部署和应用扩展环节的手动操作流程,让用户更加灵活地部署管理云端应用. 作为可扩展的容错平台,K8s ...
- react navigation goBack()返回到任意页面(不集成redux) 二
实现思路: A -- > B (获取A的key值,传至C)-- >C(获取B传来的A页面key值,传至D) -- >D(获取C传来的A页面key值&C页面的key值,传至下一 ...