Java 学习基础第一章之Java 简述

来源:互联网 发布:最恐怖的小说知乎 编辑:程序博客网 时间:2024/05/16 02:04
java 基础笔记 20131104 周一
第一章:java 概述
1.1 java 语言的发展史
 1990 年SUN 公司预测在未来,在电器领域会有不错的发展,所以由 Gosling带队,开始研发针对家电的软件系统,就是Oak语言,Oak语言的发展并不顺利(关于机顶盒的竞标失利),团队人员部分到了其他的团队中,但在1994年后 随着互联网和浏览器的发展给Oak 带来了新的机会,同年 Oak 改名为Java.(Oak已被注册)。
 Java 语言崇尚 开源 自由的精神,这对Java的发展也是至关重要的,相对于微软(Microsoft)的封闭式而言,得到了更多技术人员和公司的支持。
 1995年对外发布,必须要有一个强大的类库,因此1996年推出了JDK1.0包括两个部分:运行时环境(JRE)和开发环境(JDK)。
 1998年随着技术的不断发展,Adobe 公司推出了Flash 并增加了一个actionScript 编程脚本,不断的蚕食Java语言在互联网上的应用。
 1998年 12 年 SUN 公司推出了JDK 1.2,此版本 包括 J2ME,J2EE,J2SE. JSP/Servlet EJB的技术 和标准。
 J2ME 主要应用于移动设备。J2SE 是J2ME和J2EE 的基础。J2EE 是企业级应用开发的解决方案,用于银行,保险,等领域。
 2004年10月分,SUN公司推出了JDK 1.5 同时,改名为JDK 5.0. J2ME 更名为 Java ME,J2EE更名为 Java EE,J2SE更名为 Java SE.
 JDK 5.0 新增了许多的新特性,如:泛型,增强for 语句,可变参数,注释,自动拆装箱等。到目前JDK已更新了1.7X 版本。
 企业级应该 一般停留在 JDK 6.0。
1.2 Java 的竞争对手及各自的优势
 Java 是面向对象的编程语言,具有安全性,跨平台等特性。与之其他的面象对象语言有Microsoft 的C# 和 日本人 松本行弘的 Ruby 语言。
 微软,一开始是加入到Java 的陈营,并一度在Visual Studio 平台中提供了Visual J++,当SUN 公司对微软提出法律告,微软停止了对Visual J++ 的研发,从而在C#,与Java 的设计相比,有90%的得合度,都使用了单继承,多实现的方式,在源代码组织方面,都提出了声明和实现于一体的逻辑封装。
 两者都摒弃了C++ 的函数,宏,和指标,全局变量和全局函数等。 所以说,只要会Java 语言,就能很快的上手C#,而C# 与windows 系统结合的很好,所以,使用C# 开发的应用,只能局限在windows 平台上。而Java 则不会应该 不同的系统编译出不同的字节码文件。这也是Java 跨平台的和安他的关键。
 Ruby 语言是由日本人松本行弘发明,是一种纯面向对象的编程语言,是一种弱类型语言,变量无需声明,变量没有类型。2004 年推出了一个MVC的框架 ,Ruby on Rails。
1.3 Java 运行机制
 计算机按照程序执行机制可分为解释型语言和编译型两种。 Java 语言需要把源代码先编译成字节码然后解释成机器码,所以Java 既是一种编译型语言 也是一种解释型语言。
1.4 JVM (Java Virtual Machine) Java 虚拟机。
 Java 源文件需要编译成与平台无关的字节码文件,然后,再解释成JVM 可运行的机器码文件,Sun 公司 在JVM 是使用了统一的技术,
 指令集、寄存器、类文件格式、栈、垃圾回收机制、存储区等,最终实现Java 程序无关平台性。
1.5 准备JDK开发环境 
  1.5.1 下载JDK的安装文件
    官方地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html sun 2010年被Oracle 收购后地址就变更了,最新版本已经更新到了,针对不同的系统下载不同的版本,windows下可以下载 jdk-7u45-windows-i586.exe,但最新的版本并不稳定,所以我们可以下载 1.6的版本。 
  1.5.2 JDK 介绍 
    JDK(JAVA Develement kit) Java 开发工具集,包括 JRE、JVM、公共类库、及工具。
    JRE 可以在不同的平台下模拟出相同的Java 执行环境,可以做到跨平台,JVM提供一些指定和算法,有一个比较关键的是GC ,垃圾回收机制。
    公共类库和工具提供java 统一的接口实现,GC 在其他语文中由开发人员实现如C/C++,人为操作GC 可以会导致内存泄漏,而在Java 中由JVM 系统去实现,不同的JDK 版本算法实现不一样,有的在CPU 空闲的时候,去回收,有的是当内存达到了某个极限时回收,开发人员可以把对象设计成null,来提示垃圾回收机制对对象回收,也可以调用对象的finalize() 方法,或是 System.gc(),建议回收对象,具体在什么时候操作回收,人为无法控制。
  1.5.3 JDK安装 
     jdk-7u45-windows-i586.exe 是一个windows 可运行的安装文件,只要点击下一步,并同意相关的事项就可以安装成功。
    安装后的路径在  C:\Program Files\Java\jdk1.6.0_10 。Program Files 是一个空格,是JDK 的默认安装路径,有空格这样很可能出现一些莫名其妙的错误,最好是更改了。同时配置环境变量,在我的电脑-->属性-->高级-->配置环境变量。新添一个JAVAHOME=C:\Program Files\Java\jdk1.6.0_10 而在path 下 添加path=;%JAVAHOME%\bin 保存就可以了。在DOS下运行
    javac ,java 命令。就会有输出,说明JDK的环境配置成功了。echo 可以查看某一个环境变量 ex:echo JAVAHOME
  1.5.4 JDK安装文件成功后文件包说明
    在JDK的安装路径下C:\Program Files\Java\jdk1.6.0_10 有如下包 bin、demo、jre、lib、sample、include。
    bin 存放JAVA 常用命令 和工具 ,如常使用的编译工具javac 和 解释工具java 
    demo 存放一些简单的java demo
    jre 存放java 的运行时环境 相关文件
    lib 支持java 运行的包
    sample 一些小apple 小程序
1.6 编写第一个JAVA程序 HelloWorld 使用notepad 
    public class HelloWorld{
  public static void main(String [] args){
    System.out.println("helloWorld");
  }
}
   保存成HelloWorld.java,在一个Java 文件中可以有多个类,文件名要与类中含有public 的类的名称相同。
   保存到一个路径下,我测试保存到一F盘下,编译 并运行
   F:\>javac HelloWorld.java
   F:\>java HelloWorld
   helloWorld
   F:\>
   在javac HelloWorld.java 编译后会生成一个HelloWorld.class 字节码文件 。
   我们在配置环境变量的时候并没有配置classpath,但在编译是任然能找到这个文件,JDK 在1.4 以后对JDK 的做了修改,可以不配置classpath
   也能可以,默认在当前路径下查找,如果配置可以配置成classpath=. 表示当前路径。