JAVA课堂笔记一 理论学习总结篇

JAVA  基础 

一、 Java 历史及了解 C 语言
著名的计算机科学家丹尼斯 · 里奇( Dennis Ritchie )创造的
70
年代初
1983
年,人们将计算机科学方面的最高荣誉 —— 图灵奖颁发给了里奇,以表彰他对计算机科学所做出的杰献。  
● 
图灵奖的由来
阿兰 · 图灵 (Alan Turing) 这个名字无论是在计算机领域、数学领域、人工智能领域还是哲学、逻辑学等领域,都可谓 掷地有声 。图灵是计算机逻辑的奠者,许多人工智能的重要方法也源自这位伟大的科学家。他在 24 岁时提出了图灵机理论, 31 岁参与了 Colossus( 二战时,英国破解德国通讯密码的计算机 ) 的研制, 33 岁时构思了仿真系统, 35 岁提出自动程序设计概念, 38 岁设计了 图灵测试 ,在后来还创造了一门新学科 非线性力学。虽然图灵去世时只有 42 岁,但在其短暂而离奇的生涯中的那些科技成就,已让后人享用不尽。人们仰望着这位伟大的英国科学家,把 计算机之父 人工智能之父 破译之父 等等头衔都加冕在了他身上,甚至认为,他在技术上的贡献及对未来世界的影响几乎可与牛顿、爱因斯坦等巨人比肩。
● C++
语言
C 语言发展到顶峰的时刻,出现了一个版本叫 C with Class ,那就是 C++ 最早的版本,在 C 语言中增加 class 关键字和类,那个时候有很多版本的 C 都希望在 C 语言中增加类的概念;后来 C 标准委员会决定为这个版本的 C 起个新的名字,那个时候征集了很多种名字,最后采纳了其中一个人的意见,以 C 语言中的 ++ 运算符来体现它是 C 语言的进步,所以就叫 C++
著名的计算机科学家 Bjarne ( 比扬尼 ) 博士  
80
年代初

● JAVA
语言
Java
之父亲 James Gosling 
Java
历史:
1.Java
与微软
2003
4 日, Sun 与微软达成 16 亿美元的法律和解  
C#
.Net
之父 Anders 

2.
为什么要学习 JAVA
Java
具有两大特性:可跨平台运行,面向对象。这两个特性是 Java 得以迅速发展的重要原因。
Java
程序具有可跨平台运行的特性,这个特性取决于它的应用程序的运行机制。
通常计算机语言的运行机制如图:
源代码


┣━━━━━━━━━━━━━━━━━━┫



              ↓                ↓                  ↓
         
编译器 Pentium       编译器 PowerPC          编译器 SPARC           
              ↓                ↓                  ↓
       
可运行的 Binary
可运行的 Binary
可运行的 Binary


Java
的运行机制如下:
                            
                            java-Bytecode
                                 ↓ 
       
┢━━━━━━━━━━━━━━━━━━━━━━━━━┪







                     
     JVM SUN            JVM SUN          JVM IBM         JVM SUN
     Linux PC           Windows PC       Aix             Solaris
       



       
       ↓               ↓                ↓               ↓
    PC/Linux          PC/Windows       Unix/Aix       Unix/Solaris

● 
面向对象(来自ForgetNever社区 www.52mvc.com )
现在面向对象的编程思想已经有好长的历史了 , 我们可能天天都在运用 . 我们应该如何理解它呢 ?100 个人可能有 100 种答案 , 因为它太容易理解了 , 同时也是最难真正理会其含义的
大部人可能会说 : 万事万物皆对象 . 说对象是类的实例等 ...  ,看看下面这段话,出现了多少个对象
床前明月光
疑似地上霜
举头望明月
低头思故乡
这首诗中包含的对象有:床、月、地、霜、头、故乡。
● 
了解 Java
什么是 Java    Java 的特性
如何学习 Java
1.
什么是 Java
最早是 Sun 公司 Green Project 中撰写 Star7 应用程序的一个程序语言
James Gosling
的窗外有颗橡树( Oak
全球信息网兴起, Java Applet 成为网页互动技术的代表
1995/5/23
Java Development Kits (当时的 JDK 全名) 1.0a2 版本正式对外发表
在不同的时间点上, Java 这个名词有着不同的意义。要了解什么是 Java ,从一些历史性的数据上,您可以对 Java 的角色有所了解。
Java
最早是 Sun 公司 (Sun Microsystems Inc.)“ 绿色项目 ”(Green Project) 中编写 Star7 应用程序的一个程序语言,当时的名称不是
Java
,而是取名为 Oak 。绿色项目开始于 1990 12 月,由 Patrick Naughton Mike Sheridan James Gosling 主持,目的是希望构筑
出下一波计算机应用的趋势并加以掌握,他们认为下一波计算机应用的趋势将会集中在消费性数字产品 ( 像今日的 PDA 、手机等消费性电子商
) 的使用上。在 1992 9 3 Green Team 项目小组展示了 Star7 手持设备,这个设备具备了无线网络连接、 5 in LCD 彩色屏幕、
PCMCIA
接口等功能,而 Oak 在绿色项目中的目的,是用来编写 Star7 上应用程序的程序语言。 Oak 名称的由来,是因为 James Gosling
办公室窗外有一颗橡树 (Oak) ,就顺手取了这个名称,但后来发现 Oak 名称已经被注册了,工程师们边喝咖啡边讨论着新的名称,最后灵机
一动而改名为您所常听到的 Java 。万维网 (World Wide Web) 兴起, Java Applet 成为网页互动技术的代表。 1993 年第一个万维网浏览器
Mosaic
诞生, James Gosling 认为因特网与 Java 的一些特性不谋而合,利用 Java Applet 在浏览器上展现互动性的媒体,对人们的视觉感
官是一种革命性的颠覆。 Green Team 仿照了 Mosaic 开发出一个以 Java 技术为基础的浏览器 WebRunner( 原命名为 BladeRunner) ,后来
改名为 HotJava 。虽然 HotJava 只是一个展示性的产品,但它使用 Java Applet 所展现的多媒体效果很快吸引了许多人的注意。在 1995 5
23  日, Java Development Kits( 当时的 JDK 全名 )1.0a2 版本正式对外发表,而在 1996 Netscape Navigator 2.0 也正式支持 Java
Microsoft Explorer
亦开始支持 Java 。从此 Java 在因特网的世界中逐渐流行起来。虽然 Star7 产品并不被当时的消费性市场所接受,绿色项
目面临被撤销的命运,然而万维网 (World Wide Web) 的兴起却给了 Java 新的生命与舞台。
Java
是一个更简单的面向对象 (Object-Oriented) 程序语言,具有更高的跨平台可能性。
Java
是一个支持面向对象观点的程序语言,在使用上比 C++ 更为简单。它限制或简化了 C++ 语言在开发程序时的一些功能,虽然牺牲了某
些存取或弹性,但让开发人员避免开发软件时可能发生的错误,并让程序语言本身的使用上更为方便,而用 Java 所编写出来的程序在不同的
平台间具有更高的可移植性。对于 一次编写,到处运行 ”(Write Once, Run Anywhere) 这样的梦想, Java 提供了更高的可能性。 Java
以代表程序语言,但在今日,更多时候代表了软件开发的架构。在 Java 版本发表时是以 Java Development Kits 名称发表,简称 JDK ,到
J2SE 5.0
时的 JDK 称为 J2SE Development Kit ,除了提供编写 Java 程序时所必要的编译、运行、调试等工具之外,更搭配有越来越丰富
API(Application Programming Interface) 。随着应用范围的越来越广, Java 演化出 3 个不同领域的应用平台: J2SE J2EE J2ME
Java
不再只是单纯的程序语言加上 API 库的组成,更提供开发人员在各个领域开发软件时,一种依循的标准与框架 (Framework) 工具。
总而言之,随着时间的推移, Java 这个名词不再只是表示一个程序语言,而是一种开发软件的平台,更进一步地也是一种开发软件时的标准
与架构的统称。事实上语言在整个 Java 的蓝图中只不过是一个极小的部分,学习 Java 本身也不仅仅在于学习如何使用它的语法,更多的时候
是在学习如何应用 Java 所提供的资源与各种标准,以开发出架构更好、更容易维护的软件。
Java
是面向对象( Object-Oriented )程序语言,具有更高的跨平台可能性
在今日,更多时候代表了软件开发的架构  //转载请注名出处  http://www.52mvc.com/java/list.aspx 开发者版本发表时是以 Java DevelopmentKits 名称发表,简称 JDK
J2SE 5.0
Java 2 Platform Standard Edition5.0 )时的 JDK 称为 J2SE Development Kit 5.0 
J2SE 5.0
Java 2 Platform Standard Edition5.0 )时的 JDK 称为 J2SE Development Kit 5.0 
JavaSE 6 Java Platform, Standard Edition6 )开始的 JDK6 则称之为 Java SE Development Kit 6
不再带有 “2” 这个号码,版本号 6 1.6.0 都使用
6
是产品版本( product version ),而 1.6.0 是开发者版本( developer version
2.Java
的特性
语言特性:
简单( Simple
面向对象( Object-oriented
网络( Network-savvy
解释的( Interpreted
坚固( Robust
安全( Secure
可携( Portable
高效能( High-performance

(1).
简单( Simple
C/C++
的强大功能是大家所皆知的,即使在众多程序语言的竞争之下, C/C++ 仍旧在开发软件的程序语言中占有相当的地位,然而学习或使用 C/C++ 并不容易。很多时候开发人员并不需要使用到 C/C++ 的一些功能,但为了使用 C/C++ 却得付出相当的学习成本、开发成本或维护成本。设计 Java 的成员们以长年的开发经验判断,在使用一些 C/C++ 的功能时,所得到的坏处可能多于好处 ( 尤其是被一些没有经验的开发人员使用时 ) ,所以 Java 舍弃了 C/C++ 中一些较少使用、难以掌握或可能不安全的
功能,像指针 (Pointer) 、运算符重载 (Operator Overloading) 和多重继承 (Multiple Inheritance) 等。 Java 除去一些 C/C++ 复杂或不安全的功能,并在许多开发人员常使用的特性上加以简化而使之易于使用。例如字符串在 Java 中的处理就更为简单; Java 在设计时参考了许多 C/C++ 的语法与特性,使得学习过 C/C++ 的开发人员可以在短时间内了解如何使用 Java
(2)
面向对象( Object-oriented
面向对象分析 (Object-Oriented Analysis) 是分析问题的一种方式,面向对象设计 (Object-Oriented Design) 是使用面向对象的思考方式来设计问题的解决方案。但是,要了解什么是面
向对象,以及学会使用面向对象的方式进行设计与解决问题,并不是一件简单的事情,事实上让您了解面向对象正是这本书的目标之一。您先不用急于了解什么是面向对象,在后面的章节中会逐渐以实际的例子让您体会什么是面向对象。现阶段您所要了解的是, Java 支持面向对象的设计方式。简单地说, Java 让您可以用面向对象的思考方式来设计并编写程序。面向对象的好处之一,就是可以让您设计出可重用的组件,或者是直接使用别人所编写好的 Java 组件,并使开发出来的软件更具弹性且容易维护。
(3)
网络( Network-savvy
Java
本身等于就是通过网络而产生的,它的许多功能与应用都与网络相关,从最初的 Applet 、简化的 Socket 、交互式的 JSP/Servlet 网络程序到今日热门的 Web Service 等,都注定了 Java 在网络相关的领域占有一席之地。事实上, Java 应用最多的领域也正是网络服务这一块。
(4)
解释的( Interpreted
您要先知道一件事,程序在一个平台上要能够运行,必须先编译为该平台所能理解的原始机器语言 (Native Machine Instructions) ,但最大的问题在于每个平台所认识的机器语言各不相同。例如 Windows 操作系统认识的机器语言就与 Linux 认识的不相同,专为 Windows 操作系统所编写并编译好的程序,并无法直接拿来在 Linux 操作系统上运行。为了解决在不同平台间运行程序的问题, Java 的程序在进行编译时,并不直接编译为与平台相对应的原始机器语言,而是编译为与系统无关的 字节码 ”(Bytecodes) 。为了要运行 Java 程序,运行的平台上必须安装有 JVM(Java Virtual Machine) JVM 等于是为 Java 程序所虚拟的环境。当运行 Java 程序时, Java 实时编译器 (Just In
Time Compiler
JIT) 会将字节码编译为目标平台所接受的原始机器语言,通过 JVM 使得 Java 程序在不同平台上都能运行的目的得以实现
(5)
健壮的( Robust
Java
C/C++ 中一些功能强大但不容易掌握的功能去除了。以指针 (Point) 功能为例,即使是有经验的开发人员在使用指针功能时也得小心翼翼,避免编写出使程序崩溃 (Crash) 的错误,诸如此类的功能在 Java 中被去除,为的是让 Java 在使用时更为简单,编写出来的程序更为健壮。舍弃了 C/C++ 的一些特性曾使得许多开发人员质疑没有了 C/C++ 的这些特性, Java 还能开发什么软件?但从 Java 正式提出至今 10 年来已经证明, Java 确实适用于开发各个领域的软件,而且拥有广大的网络资源。
(6)
安全( Secure
Java
加入了垃圾回收 (Garbage Collection) 机制,让开发人员无需担心对象资源的回收问题,异常 (Exception) 处理架构让开发人员可以掌握程序中各种突发的异常状况。另外,像 synchronized final 等存取关键词的使用,目的都在于加强 Java 程序的安全性。
(7)
可移植的( Portable
要让程序跨平台运行并不是一件容易的事,有相当多的因素必须考虑,例如数据类型所占内存长度就是一个问题, Java 在不同的平台上的数据类型长度是统一的 ( C/C++ 则不然 ) 。这是 Java 在提高程序可移植性上最显而易见的一个例子。
(8)
高效能( High-performance
高性能是 Java 所宣称的,在某些条件的配合下, Java 号称可以与 C/C++ 拥有同样甚至更好的运行性能,但更多的人只是将这个宣称视为一个商业宣传的口号。 Java 是在运行时期才将中间的字节码编译为原始机器语言,这就花上了一段不短的启动时间,而早期的 Java 在运行性能上确实是一直被诟病的。不过在历经数个版本的变更, Java 一直尝试提高其运行的性能,像使用 Java HotSpot 技术。
在第一次加载 Java 字节码时, JIT 会以编译模式开始加载,分析并尝试以最佳化编译为目标平台的原始机器语言。每一次的版本更新, Java 皆尝试在性能上做出改进。

(9)
应用平台
Java SE(Java
标准平台 )
Java Platform, Standard Edition
Java EE(Java
企业级平台 )
Java Platform, Enterprise Edition
Java ME(Java
微系统平台 )
Java Platform, Micro Edition
(10)Java SE
为了能运行 Java 所编写好的程序,您的平台上必须有 Java 虚拟机 (Java Virtual Machine, JVM)  JVM 包括在 Java 运行环境 (JavaRuntime Environment, JRE) 中,所以为了要运行 Java 程序,您必须
取得 JRE 并进行安装。如果要开发 Java 程序,则必须取得 JDK(J2SEDevelopment Kits) JDK 包括了 JRE 以及开发过程中所需要的一些工具程序,像 javac java appletviewer 等工具程序 ( 关于 JRE JDK 的安装与使用介绍,会在第 2 章说明 ) Java 语言只是 J2SE 的一部分,除了语言之外, Java 最重要的就是它提供了庞大且功能强大的 API 类库,提供像字符串处理、数据输入 / 输出、网络组件、使用者窗口接口等功能。您可以使用这些 API 作为基础来进行程序的开发,而无须重复开发功能相同的组件。事实上,在熟悉 Java 语言之后,更多的时候,您都是在学习如何使用 J2SE 所提供的 API 来组成您的程序。
(11)Java Platform, Standard Edition (Java SE)
J2SE
可以分为 4 个主要的部分: JVM JRE JDK Java 语言。
JVM
Java
虚拟机( Java Virtual Machine,JVM
JRE
Java
执行环境( Java SE Runtime Environment,JRE
JDK
Java
语言
(12)
随着 Java 的应用领域越来越广,并逐渐涉及各级应用软件的开发, Sun 公司在 1999 6 月美国旧金山的 Java One 大会上,公布了新的 Java 体系架构。该架构根据不同级别的应用开发区分了不同的应用版本: J2SE J2EE J2ME J2EE J2SE 为基础,定义了一系列的服务、 API 、协议等,适用
于开发分布式、多层式 (Multi-tiered) 、以组件为基础、以 Web 为基础的应用程序。整个 J2EE 的体系是相当庞大的,比较为人所熟悉的技术像 JSP Servlet Enterprise JavaBeans(EJB) Java Remote Method Invocation(RMI) 等,其中的每个服务或技术都可以通过专门的一本书进行介绍,所以并不是本书说明的范围,但可以肯定的是,您必须在 J2SE 上奠定良好的基础再来学习 J2EE 的开发。
JavaSE 的基础,定义了一系列的服务、 API 、协定等
适用于开发分布式、多层式( Multi-tiered )、以组件为基础、以 Web 为基础的应用程序
技术像是 JSP Servlet Enterprise JavaBeans EJB )、 Java Remote Method Invocation RMI )等
J2ME
Java 平台版本中最小的一个,目的是作为小型数字设备上开发及部署应用程序的平台,像消费型电子产品或嵌入式系统等。最为人所熟悉的设备如手机、 PDA 、股票机等,在近几年已经相当常见 J2ME 的应用,越来越多的手持设备都支持 J2ME 所开发出来的程序,像 Java 游戏、股票相关程序、记事程序、月历程序等。
作为小型数字设备上开发及部署应用程序的平台,像是消费性电子产品或嵌入式系统等最为人所熟悉的设备如手机、 PDA 、股票机等 .
(13)
活跃的社群与丰富的资源
开发工具
开放原始码的组件
容器
测试工具
各式各样的软件专案
各个社群所支持的讨论区
取之不尽的文件

(14)
如何学习 Java
奠定 Java 语法基础
运用基本的 JavaSE API
字符串处理、例外处理、对象容器( Container )、输入输出( I/O )、线程( Thread
http://java.sun.com/javase/6/docs/api/index.html

使用搜索引擎
http://www.google.com/
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值