1、初识Java
1、计算机发展过程

2、Java简史
- lSUN公司是一家什么样的公司?
美国SUN(Stanford University Network)公司 在中国大陆的正式中文名为“太阳计算机系统(中国)有限公司” 在台湾中文名为“升 阳电脑公司”。
- Java为什么被发明? Green项目; 应用环境:像电视盒这样的消费类电子产品; 要求:语言本身是中立的,也就是跨平台
- Java的发明人? James Gosling
- Java发展历程:
1991年,Sun公司的Green项目,Oak
1995年,推出Java测试版
1996年,JDK1.0
1997年,JDK1.1
1998年,JDK1.2,大大改进了早期版本的缺陷,是一个革命性的版本,更名为Java2
1999 Java被分成J2SE、J2EE 和J2ME,JSP/Servlet技术诞生
2004年,J2SE 5.0 (1.5.0) Tiger老虎.为了表示这个版本的重要性,J2SE1.5更名为J2SE5.0。
2006年,J2SE 6.0 (1.6.0) Mustang野马.此时,Java的各种版本被更名,取消其中的数字"2":J2EE更名为Java EE, J2SE更名为Java SE,J2ME更名为Java ME
2009年4月20日甲骨文收购Sun公司,交易价格达74亿美元
2011年,JavaSE7.0
2014年 ,JavaSE8.0
Sun公司的主要竞争对手是IBM,业务高度重合
Sun抱有很多先进的技术,但在策略上一直奉行技术保护主义,在定价策略上能多高就多高,争取利润最大化。一味抓眼前利益,而失去了前瞻的视野。
Sun是一家极具创新能力的公司, 但是没能利用Java构建一个强有力、可变现的生态系统,没打好Java这张牌。
2008年金融危机给sun公司致命的打击
2009年4月20日甲骨文以现金收购Sun微系统公司,交易价格达74亿美元
3、java三大版本
• J2SE Java的标准版本 (Java2 Standard Edition) 定位在客户端,主要用于桌面应用软件的编程
• J2ME (Java2 Micro Edition) 主要应用于嵌入式系统开发,如手机和PDA的编程
• J2EE 企业版本(Java2 Enterprise Edition)定义在服务器端Java2的企业版,主要用于分布式网络程序的开发,如电子商务网站
• 2005 JavaOne大会召开,Sun公司公开Java SE6。此时,Java的各种版本被更名,取消其中的数字"2":J2EE更名为Java EE, J2SE更名为Java SE,J2ME更名为Java ME

4、java特点
- java是跨平台的
Java程序的跨平台主要是指字节码文件可以在任何具有Java虚拟机上的计算机或者电子设备上运行,Java虚拟机中的Java解释器负责将字节码文件解释成为特定的机器码进行运行。
- Java是简单的
• 不再有#include 和#define 等预处理功能
• 不再有struct,union及typedef
• 不再有函数、
• 不再有指针、不再有多重继承
• 不再有goto
• 不再有操作符重载(Operatior Overloading)
• 不再有全局变量 取消自动类型转换,要求强制转换
• 不再有手动内存管理
- Java是安全的
• Java取消了强大但又危险的指针。由于指针可进行移动运算,指针可随便指向一个内存区域,而不管这个区域是否可用,这样做是危险的,因为原来这个内存地址可能存储着重要数据或者是其他程序运行所占用的, 并且使用指针也容易数组越界。
• Java提供了自动内存管理机制,由垃圾回收器在后台自动回收,
• Java在字节码的传输过程中使用了公开密钥加密机制(PKC)。
• 而在运行环境提供了四级安全性保障机制:字节码校验器 -类装载器 -运行时内存布局 -文件访问限制
- Java是完全面向对象的
• Java和C++都是面向对象语言。也就是说,它们都能够实现面向对象思想(封装,继承,多态)。
• 由于C++为了照顾大量C语言使用者而兼容了C,使得自身仅仅成为了带类的C语言,多少影响了其面向对象的彻底性!
• Java则是完全的面向对象语言,它句法更清晰,规模更小,更易学。它是在对多种程序设计语言进行了深入细致研究的基础上,据弃了其他语言的不足之处,从根本上解决了c++的固有缺陷。
- Java是健壮的
• Java的强制类型机制、异常处理、垃圾的自动收集等是Java程序健壮性的重要保证。
• 对指针的丢弃是Java的明智选择。
• Java的安全检查机制使得Java更具健壮性。
5、Java的跨平台原理
(1)Java运行过程
• Java程序的运行分为两步:先编译再解释执行
• 通过“编译器”将Java源程序编译成Java 字节码文件(.class)(字节码文件采用结构中立的中间文件格式)
• 通过不同的“虚拟机”将Java字节码文件解释为对应机器语言并执行

(2)Java跨平台和C跨平台的区别
• Java:一次编译,到处运行 ;C:多次编译,到处运行
• 在互联网情况下,平台各异,Java的跨平台更具有优势
• Java可以跨所有平台吗:要看有没有提供并安装相应的虚拟机
• Java的运行速度没有C语言快
• Java需要将class文件解释成机器码再执行;C执行执行机器码
(3)字节码文件bytecode
• .class文件二进制文件
• 格式中立、平台无关的二进制文件
• 是编译的产物,是解释的原料
(4)Java虚拟机 JVM
• JVM是Java Virtual Machine(Java虚拟机)的缩写
• JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。
• JVM就是一个虚拟的用于执行bytecodes字节码的计算机
• Java虚拟机是Java最核心技术,也是跨平台的基础。
• Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。
• Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。这就是Java的能够“一次编译,到处运行”的原因
(5)JDK、JRE、JVM的区别联系
• JDK:Java Development Kit 针对Java开发员的产品
• JRE:Java Runtime Environment 是运行Java程序所必须的环境集合
• JVM Java Virtual Machine 解释运行Java字节码文件,跨平台的核心
• 联系:JDK 包含JRE,JRE包含JVM。
6、开发Java程序前的准备
- 按照jdk: 需要了解jdk帮助文档
- 按照开发工具:文本编辑器---->notepad++;开发环境-----> eclipse
1、初识Java的更多相关文章
- 初识Java
Java是一种简单的.面向对象的.分布式的.解释的.安全的.可移植的.性能优异的多线程语言.它以极强的安全性.平台无关性.硬件结构无关性.语言简洁.面向对象的特点,在网络编程语言中占据了无可比拟的优势 ...
- SSH 框架学习之初识Java中的Action、Dao、Service、Model-收藏
SSH 框架学习之初识Java中的Action.Dao.Service.Model-----------------------------学到就要查,自己动手动脑!!! 基础知识目前不够,有感性 ...
- Java 面向对象编程——第一章 初识Java
第一章 初识Java 1. 什么是Java? Java是一种简单的.面向对象的.分布式的.解释的.安全的.可移植的.性能优异的多线程语言.它以其强安全性.平台无关性.硬件结构无关性.语言简 ...
- Personal Learning Path of Java——初识Java
初识Java 在我个人看来,Java是一门高大上的面向编程语言,这也是Java吸引我的地方.在自学Java之前,我在学校大概学过了一些C语言的知识,在学校学的那点C语言纯属是拿来打基础用的,大概了解了 ...
- 初识Java作业
初识Java作业 一. 填空题 Java技术按照用途不同分为三大版本,分别是JavaSE. javaEE 和JavaMe Java虚拟机就是一个虚拟的用于执行 .class ...
- Java学习笔记心得——初识Java
初识Java 拿到这本厚厚的<Java学习笔记>,翻开目录:Java平台概论.从JDK到TDE.认识对象.封装.继承与多态...看着这些似懂非懂的术语名词,心里怀着些好奇与担忧,就这样我开 ...
- 初识Java程序,编写简单代码?
Dear All: 初识Java程序,编写简单代码? 首先小编在这里说下我们今天编写Java程序使用的是 eclipse 开发工具! 1.下载eclipse 官网地址:http://www.eclip ...
- 初识JAVA语言
推荐阅读: 我的CSDN 我的博客园 QQ群:704621321 前言 很多游戏开发者可能会有疑问,你会C#,JS,TS,为什么还要初识JAVA呢?有人可能会说,多学点对自己有好处 ...
- day01-day02 初识java、注释、变量、变量命名、基本数据类型
1. 初识java 1) 什么是java java是一门高级的计算机编程语言 2) JDK的安装 2.1) 下载2.2) 安装2.3) 验证 3) 环境变量的配置 3.1) 打开环境变量3.2) 配置 ...
- Java入门——初识Java
Java入门——初识Java 摘要:本文主要对Java这门编程语言进行简单的介绍. Java简介 说明 Java语言历时十多年,已发展成为人类计算机史上影响深远的编程语言,从某种程度上来看,它甚至超出 ...
随机推荐
- DC综合简单总结(1)
DC综合简单总结(1) *****************set_dont_touch和set_dont_touch_network**************** ? 在综合的过程中,为了不让D ...
- gojs常用API-画布定义
持续更新中 基础画布定义API画布初始位置 initialContentAlignment: go.Spot.Center,画布位置,定义后就不能拖动画布了,画布位置交由gojs管理 contentA ...
- [Kubernetes]深入理解StatefulSet
前面我写的一系列博客,如果你能够耐心看到这一篇,那你应该对一个概念就不是太陌生了:Deployment. 为什么提这个概念呢,这就要说到Deployment的一个不足了.Deployment不足以覆盖 ...
- 使用SpringSecurity体验OAUTH2之一 (入门1)
OAUTH2是一种安全的授权框架,其原理在网上有许多文章上可以看到.但从实践角度,好的文章比较少.SpringSecurity框架本身是支持OAUTH2的,所以下面通过使用SpringSecurity ...
- Win10如何彻底禁用小娜?彻底禁用小娜的方法
原文地址:https://www.cnblogs.com/zhuimengle/p/5949152.html 小娜是Win10系统中的一款强大功能,有了它,我们对电脑的操作将更加方便.Win10系统有 ...
- mingw-gcc-9.0.1-i686-posix-sjlj-201903
-------------------------------------------------------------------------------gcc version 9.0.1 201 ...
- 开源智能英文单词提取翻译工具(C#)
WordsTool 这个工具用于分析文本文件中所有的英语单词 并且通过内置字典数据库工具对这些单词进行解析 可以生成表格形式 并且支持导出到excel文件中 用于学习单词 本代码禁止商业用途 如需要商 ...
- 如何用java实现一个p2p种子搜索(3)-dht协议实现
dht协议实现 上一篇完成了路由表的实现,建立了路由表后,我们还要对路由表进行初始化,因为一开始路由表为空,所以我们需要借助一些知名的dht网络中的节点,对这些节点进行find_node,然后一步步初 ...
- 高可用Redis(十一):使用redis-trib.rb工具搭建集群
环境说明: 两台虚拟机,IP地址分别为:192.168.81.100和192.168.81.101 虚拟机系统为:CentOS 7.5 Redis为yum安装,版本为3.2 系统环境:关闭firewa ...
- DISPLAY变量和xhost(原创)
DISPLAY 在Linux/Unix类操作系统上, DISPLAY用来设置将图形显示到何处. 直接登陆图形界面或者登陆命令行界面后使用startx启动图形, DISPLAY环境变量将自动设置为:0: ...