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语言历时十多年,已发展成为人类计算机史上影响深远的编程语言,从某种程度上来看,它甚至超出 ...
随机推荐
- Linux下删除乱码文件
删除乱码文件 一些文件乱码
- 2018-2019-2 《网络对抗技术》Exp0 Kali安装 Week1 20165237
2018-2019-2 <网络对抗技术>Exp0 Kali安装 Week1 20165237 安装虚拟机 首先创建虚拟机 创建好虚拟机后,打开虚拟机进行安装.第一步选择Graphcal i ...
- cv::Mat类之type成员
CV_8UC3 -->16 CV_8UC3 表示存储元素的数据类型为 8bit unsigned char 类型,通道数C = 3 为什么OpenCV中type为CV_8UC3的图像 输出其ty ...
- Gitlab_ansible_jenkins三剑客②Gitlab的后台管理
系统信息和日志 健康状态 使用gitlab的用户管理和审批功能 创建用户 创建一个lead普通账号 进入test-repo仓库 这样就把dev添加到了test-repo这个项目中,并且有了develo ...
- 留恋 nyoj 854
留恋 时间限制:1000 ms | 内存限制:65535 KB 难度:2 描述 大家都知道,高中的时候,座位基本都是固定的,但是对于视力不好却又坐在后面的人是很不公平的. 念情的高中班主任安哥 ...
- sqlserver 获取汉字拼音的首字母(大写)函数
1:创建函数: USE [test] GO /****** 对象: UserDefinedFunction [dbo].[GetFirstChar] 脚本日期: 02/22/2019 16:39:06 ...
- git/gerrit的简介
gerrit和git 1.git Git是什么? Git是目前世界上最先进的分布式版本控制系统. SVN是集中式版本控制系统. Git与svn比较 相同:能记录文件的所有更改记录.这样是为了大量更 ...
- 十 LVS 负载均衡
回顾nginx 反向代理负载均衡 负载均衡的妙用 负载均衡(Load Balance)集群提供了一种廉价.有效.透明的方法, 来扩展网络设备和服务器的负载.带宽.增加吞吐量.加强网络数据处理能力. 提 ...
- spring-cloud-ribbon负载均衡组件
Ribbon简介: Spring Cloud Ribbon 是一个基于 HTTP 和 TCP 的客户端负载均衡工具,它基于 Netflix Ribbon 实现. 通过 Spring Cloud 的封装 ...
- mysql_config not found和error: command 'gcc' failed with exit status 1
要想使python可以操作mysql 就需要MySQL-python驱动,它是python 操作mysql必不可少的模块. 下载地址:https://pypi.python.org/pypi/MySQ ...