【个人学习JAVA---学后的梳理】 一、从外,观识JAVA

简介: 认识Java语言

认识Java语言

横看成岭侧成峰,远近高低各不同...

1. Java的历史

Java来自于Sun公司的一个Green项目,它期望能与家用电器进行信息交流,一开始是准备采用C++,不过C++太复杂,安全性差,于是最后基于C++开发了一种新语言Oak(Java的前身),该语言是一种用于网络的精巧而安全的语言。

2. Java的现状

Java是Sun公司推出的新一代面向对象程序设计语言,特别适用于Internet应用程序开发。它具有平台无关的特性(Java开发环境有JDKJRE)。

2.1:Java的技术分支

Java主要有3类技术分支:(它们前身的前缀名为J2 ,05年后均改为JAVA )

  1. JAVA SE:Java2Platform,StandardEdition;(标准版)
  2. JAVA EE: Java2Platform,EnterpriseEdition;(企业版)
  3. JAVA ME: Java2Platform,MicroEdition;
    以上三个分支,不管如何划分,都是以JAVA SE为核心,那么掌握JAVA SE最为重要

3. Java的特点

JAVA是一种简单的、面向对象的、分布式的、解释性的、可移植的、多线程的、动态的程序设计语言。

3.1:Java语言的关键特性说明:

  1. 简洁有效
    Java语言是一种相当简洁的程序设计语言。它省略了C++语言中所有难以理解、容易混淆的特性,例如头文件、指针、结构、单元、运算符重载、虚拟基础类等。所以它更加严谨、简洁。
  2. 可移植
    同操作系统平台无关的特性,使得Java应用程序可以在配备了Java解释器和运行环境的任何计算机操作系统上运行,这就是Java应用软件便于移植的良好基础。而且,Java的基本数据类型设计不依赖具体实现,它通过定义独立于平台的基本数据类型及其运算,使得Java数据得以在任何的硬件平台上保持一致。
  3. 面向对象
    Java语言的设计完全是面向对象的,不支持类似C语言那样的面向过程的程序设计技术。Java支持静态和动态风格的代码继承和重用。
  4. 解释型
    Java语言是一种解释性语言,相对于C/C++语言来说,Java程序的效率低,执行速度慢。
  5. 适合分布式计算
    Java语言具有强大的、易于使用的联网能力,非常适合开发分布式计算的程序。Java应用程序能像访问本地文件系统那样,通过URL访问远程对象。它十分使用于公共网关接口(GGI)脚本的开发,另外还能使用Java小应用程序(Applet)、Java服务器页面(Java Server Page,JSP)和Servlet等手段来构建更丰富的网页。

4. Java虚拟机(JVM)

虚拟机,即在机器和编译程序间加入了一层抽象的虚拟的机器。它能够在任何平台上都提供给编译程序一个共同的接口。编译程序只需要面向虚拟机,编译生成虚拟机可以理解的代码,然后由解释器虚拟机代码转换为特定系统的机器码执行。
那么在Java中,虚拟机能理解的代码叫做字节码(Byte Code)。
每一种平台的解释器是不同,但实现的虚拟机相同。
Java源程序(代码存在.java文件)经过编译器编译后变成了字节码(代码存在.claa文件),字节码由虚拟机解释执行,虚拟机将每一条要执行的字节码送给解释器,解释器将其翻译成特定机器上的机器码,然后在特定的机器上执行。
Java虚拟机也具有一个指令集,并使用不同的存储区域。它负责执行指令,还要治理数据、内存和寄存器。

图片丢失


图1-Java源文件编译运行过程图

结束

目录
相关文章
|
4天前
|
设计模式 架构师 Java
Java开发工程师转架构师需要学习什么
Java开发工程师转型为架构师需掌握多项技能:精通Java及框架、数据库与分布式系统;熟悉设计模式与架构模式;积累项目经验;提升沟通与领导力;持续学习新技术;培养系统设计与抽象能力;了解中间件及开发工具;并注重个人特质与职业发展。具体路径应结合个人目标与实际情况制定。
34 18
|
17天前
|
监控 Java 调度
【Java学习】多线程&JUC万字超详解
本文详细介绍了多线程的概念和三种实现方式,还有一些常见的成员方法,CPU的调动方式,多线程的生命周期,还有线程安全问题,锁和死锁的概念,以及等待唤醒机制,阻塞队列,多线程的六种状态,线程池等
79 6
【Java学习】多线程&JUC万字超详解
|
1月前
|
前端开发 Java 编译器
【前端学java】如何从前端视角快速学习Maven
【8月更文挑战第12天】如何从前端视角快速学习Maven
40 2
【前端学java】如何从前端视角快速学习Maven
|
1月前
|
存储 算法 Java
Java零基础(1) - 从零开始学习数组
【8月更文挑战第1天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
31 1
|
1月前
|
Java 测试技术 开发者
Java零基础教学(07):学习正确的命名规范
【8月更文挑战第7天】Java零基础教学篇,手把手实践教学!
84 0
|
2月前
|
设计模式 算法 Oracle
Java语言学习路径及学习资源推荐
Java语言学习路径及学习资源推荐
|
3月前
|
缓存 NoSQL Java
Redis系列学习文章分享---第四篇(Redis快速入门之Java客户端--商户查询缓存+更新+双写一致+穿透+雪崩+击穿+工具封装)
Redis系列学习文章分享---第四篇(Redis快速入门之Java客户端--商户查询缓存+更新+双写一致+穿透+雪崩+击穿+工具封装)
52 0
|
4月前
|
存储 安全 Java
24、使用 Java 官方教程学习:① 类变量和类方法详解;② 深入介绍 main() 方法
24、使用 Java 官方教程学习:① 类变量和类方法详解;② 深入介绍 main() 方法
66 1
|
4月前
|
存储 Java
【JAVA学习之路 | 进阶篇】Map接口及其实现类及常用方法
【JAVA学习之路 | 进阶篇】Map接口及其实现类及常用方法
|
4月前
|
Java 测试技术 C++
【JAVA学习之路 | 进阶篇】File类及常用方法
【JAVA学习之路 | 进阶篇】File类及常用方法