一、基础
面向对象
面向对象概念面向对象(Object Oriented,OO)是软件开发方法
-
对象
:万物皆对象,对象可以是具体的事物,也可以是抽象的规则、计划或事件。
-
对象的状态和行为
:状态代表数据,行为代表方法。
-
类(数据类型)
:具有相同特性(数据元素)和行为(功能)的对象的抽象就是类。类的具体化就是对象,对象是类的实例。类具有属性(对象状态的抽象)和操作(对象行为的抽象)
-
类的结构
:世界上存在若干类,这些类之间存在关系,通常存在两种主要的结构关系。⒈一般-具体结构(分类结构,"is a"关系)⒉整体-部分结构(组织结构,"has a"关系)
-
消息和方法
:对象之间进行通信的结构叫做消息。对象接收到消息,根据消息说明去调用方法(消息应说明执行对象、方法、参数)。方法有方法名、返回值、参数、方法体。
面向对象特征:
-
封装
:封装对象的属性和行为,并设置访问权限(支持方法重载)
-
继承
:继承父类的属性和行为,提供复用性。(单继承,接口多继承;支持方法重写)
-
多态
:基于封装、继承(重写)、父引用指向子对象;允许不同的对象对同一消息做出不同反应;编译期绑定(成员变量、静态变量、静态方法)、运行期绑定(成员方法);方法多态(重写,重载)、引用多态(向上造型);
-
抽象
:表示对问题领域进行分析、设计中得出的抽象的概念,基于abstract关键字,必须被子类继承重写,无法私有化(private)、静态化(static)、最终化(final)。
JAVA
JAVA体系:
- JAVASE(桌面程序)
- JAVAEE(网站服务)
- JAVAME(手机嵌入式)
- JAVACard(Java小程序Applets)
JAVA特点:
-
简单性
:单继承、自动拆装箱、简化内存管理(引用替代指针,提供自动GC垃圾回收器)...
-
移植性
:Java先编译成字节码(中间码),由JVM来进行解释(二进制码)运行。
-
健壮性
:强类型机制、异常处理、垃圾的自动收集等机制。
-
多线程
:支持多线程
JAVA发展史:
- 1991年4月:James Gosling博士领导Gree Project,推出JAVA前身(Oak橡树)
- 1995年5月23日:Oak语言改名为JAVA,并在SunWorld大会上正式发布JAVA 1.0版本,并提出"Write Once, Run AnyWhere"口号。
-
1996年1月23日: JDK 1.0
发布,提供纯解释执行的Java虚拟机实现(Sun Classic VM)。代表技术:Java虚拟机、Applet、AWT等...
- 1996年4月:10个最主要的操作系统供应商申明将在其产品中嵌入Java技术。
- 1996年5月底:Sun公司于美国旧金山举行首届JavaOne大会。
- 1996年9月:已有大约8.3万个网页应用了Java技术来制作。
-
1997年2月19日: JDK 1.1
发布。 代表技术
:JAR文件格式、JDBC、JavaBeans、RMI。 Java语法
:内部类(Inner Class)和反射(Reflection)
-
1998年12月4日: JDK 1.2-Playground
(竞技场)发布。Sun在这个版本中将 Java体系
拆分为3个方向:J2SE(面向桌面开发)、J2EE(面向企业级开发)、J2ME(面向手机移动终端开发); 代表技术
:EJB、Java Plug-in、Java IDL、Swing等; Java虚拟机
:第一次 内置
JIT(Just In Time)编译器(JDK1.2曾并存Classic VM、HoSpot VM、Exact VM,Exact VM只在Solaris平台出现过;后两者是内置JIT编译器;之前版本Classic VM只能以外挂形式使用JIT编译器); Java语法
:添加strictfp关键字; Java API
:Collections集合类。
- 1999年3月:JDK 1.2.1发布。
- 1999年4月8日:JDK 1.1 共发布 1.1.0 ~ 1.1.8 九个版本。从1.1.4之后,每个版本都有工程代号:Sparkler、Pumpkin、Abigail、Brutus、Chelsea
-
1999年4月27日: HotSpot
虚拟机发布。最初由"Longview Technologies"小公司发布。1997年被Sun公司收购。HotSpot虚拟机发布时是作为JDK1.2的附加程序提供。后来成为JDK 1.3及之后所有版本的Sun JDK的默认虚拟机。
- 1999年7月:JDK 1.2.2发布。
-
2000年5月8日: JDK 1.3-Kestrel
(美洲红隼)发布。 Java API
:数学运算、新的Timer API等;JNDI作为一项平台级服务提供(以前仅是一项扩展);使用CORBA IIOP实现RMI的通信协议;改进JAVA 2D(提供大量新的Java 2D Api,新增JavaSound类库)。
- 2001你那5月17日:JDK 1.3.1-Ladybrid(瓢虫)修正版本发布。自JDK 1.3开始,Sun维持一个习惯:每隔两年发布一个JDK主版本,以动物命名,期间的各个修正版本则以昆虫作为工程名称。
-
2002年2月13日: JDK 1.4-Merlin
(灰背隼)发布。 技术特性
:正则表达式、异常链、NIO、日志类、XML解析器和XSTL转换器等。
- 2002年9月16日:JDk 1.4.1-Grasshopper(蚱蜢)修正版本发布。
-
2002年期间:微软公司发布 .NET Framework
,无论是技术实现上还是目标用户都与Java有很多相近之处,给Java带来了很多讨论、比较和竞争对Java的发展进程影响很大。
- 2003年6月26日:JDK 1.4.2-Mantis(螳螂)修正版本发布。
-
2004年9月30日: JDK 1.5-Tiger
(老虎)发布。 语法特性
:自动装箱、泛型、动态注解、枚举、可变长参数、遍历循环(foreach)等; Java 虚拟机
:改进Java的内存模型(Java Memory Model,JMM); Java API
:提供java.util.concurrent并发包等。
-
2006年12月11日: JDK 1.6-Mustang
(野马)发布。
原文
https://segmentfault.com/a/1190000019175953