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语言历时十多年,已发展成为人类计算机史上影响深远的编程语言,从某种程度上来看,它甚至超出 ...
 
随机推荐
- selenium定位方式-Xpath使用方法
			
什么是Xpath? XPath是XML的路径语言,通俗一点讲就是通过元素的路径来查找到这个标签元素. 一. 在火狐浏览器上安装Xpath 方法如下: 1.使用 Firefox 访问 https://a ...
 - 20165337《网络对抗技术》week1 Exp0 Kali安装
			
1.下载kali kali官网:https://www.kali.org 在官网中下载,并且在VMvare里打开 2.修改视图 进去之后虚拟机界面很小,需要修改视图来调整 3.网络设置 4.文件夹共享 ...
 - Arduino语言简介
			
参考链接:https://www.cnblogs.com/xczr/p/7831343.html
 - Ubuntu版本linux系统安装git
			
可以使用apt-get方式安装,也可以下载源代码安装,我们这里使用apt-git安装.但由于直接使用 sudo apt-get install git 安装的版本较老,因此我们参考[2]中给出的PPA ...
 - git  rejected - non-fast-forward
			
di第一次提交时可能提示此错误,应该是.gitignore冲突,建议码云创建时不要初始化,如果已经出现了.可以从git repostitory里合并. 参考:https://blog.csdn.ne ...
 - 【easy】257. Binary Tree Paths 二叉树找到所有路径
			
http://blog.csdn.net/crazy1235/article/details/51474128 花样做二叉树的题……居然还是不会么…… /** * Definition for a b ...
 - 资产信息之收集资产代码流程,API的一个认证,数据库表的设计
			
收集资产代码流程 1.起初我们些的代码是面条式的一堆的逻辑判断. 后来通过了不断的优化升级实现了一个3种方案都支持的CMDB系统,我们用哪种方案只需要在配置文件里修改一下设置就行了. 同时我们 ...
 - activemq之python使用stomp协议
			
参考链接: 安装:https://pypi.org/project/stomp.py/4.1.8/#history https://www.cnblogs.com/andylhc/p/9337945. ...
 - 奇yin技巧
			
关于一些奇yin技巧 关于删除字符串中的一些字串,并且考虑新的字串 例题:luogu4824 luogu3121 方法:开一个栈记录,发现字串后剪去字串长度. for(int i=1;i<=le ...
 - 软件工程作业-(second)
			
一.选择开发工具 自己以前一直都用VS,又由于微软对Microsoft Visual Studio 更新,因此本次自己采用 Visual Studio 2019 来作为开发工具.如下图是安装后的界面: ...