第一课:Java概述

时间:2021-12-25 20:13:54

一:计算机语言的发展史

    

第一代语言:打孔机——纯机器语言

  • 优点:不需要被编译和转换和能够被 CPU 直接使用。运行快速高效。
  • 缺点:和高级编程语言比难学,发生错误难修改。


第二代语言:汇编语言 

  • 汇编语言也叫做第二代程序设计语言,代码能够被轻松地阅读和重写。这个语言是特定的和独立于一个特殊处理器家族和环境中。是一个处理器的本地语言,有着明显的速度优势,但是它要求更多的程序设计成果而且它被大型应用程序使用。


第三代语言:高级程序语言

  • C、Pascal、Fortran面向过程的语言
  • C++面向过程/面向对象
  • Java跨平台的纯面向对象的语言
  • .NET跨语言的平台

二:java语言的发展史

    
  • 1990年末,Sun公司准备为下一代智能家电(电视机,微波炉,电话)编写一个通用的控制系统。该团队最初考虑使用c++语言,很多成员包括sun的首席科学家Bill Joy,发现c++语言在某些方面(复杂,系统资源极其有限,缺少垃圾回收系统等),于是Bill Joy决定开发一种新的语言,Oak。
  • 1992年夏天,Green计划已经完成新平台的部分功能,包括Green操作系统,Oak的程序设计语言、类库等。同年11月,Green计划被转成“FirstPerson有限公司”,一个sun公司的全资子公司。该团队致力于创建一种高度互动的设备。
  • 1994年夏天,互联网和浏览器的出现不仅给广大互联网的用户带来了福音,也给Oak语言带来了新的生机。Gosling立即意识到,这是一个机会,于是对Oak进行了小规模的改造。
  • 1994年秋,小组中的Naughton和Jonathan payne 完成了第一个java语言的网页浏览器:WebRunner。sun公司实验室主任Bert Sutherland 和技术总监Eric Schmidt观看了该网页的演示并给予了高度的评价。当时Oak这个商标已经被注册了,于是改名为Java。
  • 1995年初,sun公司发布Java语言,sun公司直接把java放到互联网上,免费给大家使用,甚至连源代码也不保密,也放在互联网公开。几个月后,java成了互联网上最热门的宝贝。各种各样的小程序层出不穷,java终于扬眉吐气,成为了一种广为人知的编程语言。
  • 1996年底,Flash面世了,这是一种更加简单的动画设计软件:使用Flash几乎无须任何编程语言知识,就可以做出丰富多彩的动画。Flash逐渐蚕食了java在网页上的应用。
  • 1997年2月18日,sun公司发布了JDK1.1,增加了即时编译器JIT。
  • 1995年java诞生到1998年年底,java语言虽然成为了互联网上广泛使用的编程语言,但它没有找到一个准确的定位。
  • 1998年12月,Sun发布了java历史上最重要的JDK版本:JDK1.2。并将java分成了J2EE(提供了企业应用开发相关的完整解决方案)、J2SE(整个java技术的核心和基础)、J2ME(主要用于控制移动设备和信息家电等有限存储的设备)三个版本。
  • 2002年2月,Sun发布了JDK历史上最为成熟的版本,JDK1.4。
  • 2004年10月,Sun发布了万众期待的JDK1.5。JDK1.5增加了诸如泛型,增强的for语句、可变数量的形参,注释,自动拆箱和装箱等。
  • 2006年12月,Sun发布了JDK1.6。
  • 2009年4月20日,oracle宣布将以每股9.5美元的价格收购Sun。oracle通过收购Sun获得了两项资产:java和Solaris。
  • 2007年11月,Google宣布推出一款基于Linux平台的开源手机操作系统:Android。Android使用java语言来开发应用程序。Android平台的流行,让java语言获得了在客户端程序上大展拳脚的机会。
  • 2011年7月28日,oracle发布了java SE 7-这次版本升级经过将近5年时间。引入二进制整数,支持字符串的switch语句等。
  • 2014年3月18日,oracle发布了java SE 8。

三:java语言的结构体系

  • Java技术的核心就是Java虚拟机--所有的Java程序都在其上运行。
  • Java,除了用于描述Java程序设计语言,还需要Java虚拟机、JavaAPI、Java class文件的配置,Java程序才能运行。

   

   1.完整的Java结构体

  •  Java编程语言
  • Java类文件格式
  • Java API
  • JVM
 

    
Java API--是预先编写的代码,并且按照相似主题分成多个包,Java API主要分为3大平台

 
    J2SE--Java 2 Platform, Standard Edition
    该平台中包含了核心Java类和GUI类。用于桌面应用,也是J2EE的基础


    J2ME--Java 2 Platform, Micro Edition
    该包体现了Java的传统优势,为消费类产品提供了一个已优化的运行时环境,是J2se的一个子集


    J2EE
    该包中包含开发WEB应用程序所需的类和接口,有Servlet、JSP以及Enterprise JavaBean类等。 

    用于企业应用,支持分布式部署。

    j2se java标准版:

    是java的基础部分想学习java从它入手。 j2ee java企业版:是java面向企业级web应用程序  的框架里面包括(jsp,servlet,javabean,ejb...) j2me java微型版:用于开发手机里和一些pda程序。

 


 


   2.Java语言的基础结构

    基础:包(Package)、类(Class)和对象(Object)


    包(Package)

    Java 使用包来组织类,通常按照业务逻辑将类分组到不同的包中。同时避免类命名冲突。

    类(class)

    定义:类是一个模板,用来定义对象的数据以及行为,可以理解类为对象的蓝图。

    在 Java 中使用 class 关键字来定义类,类名的第一个字母必须大写。类体需要在'{..}'中定义。如:

    FirstClass.java:

    package test;

    class FirstClass {

    }

    对象(object)

    定义:对象是类的一个实例。 对象是真实的元素具有数据和可执行的操作。每一个对象都是依据类的定义进行创建

四:java语言的优势

    1.用Java编写的平台无关性的程序会更容易编写、管理和维护,代价也更低。

    2.安全性:提供一个受保护的环境,从网络上下载的程序可以以不同的定制安全级别运行。

    3.健壮性:Java体系结构对程序健壮性有一定的保证,一些有害代码不会在Java代码中出现,比如内存泄漏。

    4.在线程序发布,Java在网络上传送小段的二进制代码。

    5.网络移动性:运动的对象-它同时在网络上传递代码和状态,通过对象序列化API和RMI(远程方法调用)。在Java底层结构智   之上,对象序列化和RMI为分布式系统中的各个部分共享对象提供了基础。对象在网络上的运动性为分布式编程创造了新模型。


五:java语言的运行机制

 Java的两种核心机制

   1. Java虚拟机(JVM--Java Virtual Machine)

  •     可以理解为一个以字节码为机器指令的CPU

  •     对于不同平台,有不同的虚拟机

  •     Java虚拟机机制屏蔽了底层运行平台的差别,实现了“一次编译,随处运行”。

    2.    垃圾回收机制(GC--Garbage Collection)

    不再使用的内存空间应回收--垃圾收集
  •     在C/C++等语言中,由程序员负责回收无用内存(C中malloc、calloc、realoc、free,C++中delete)
  •     Java语言消除了程序员回收无用内存的责任:它提供了一种系统级线程跟踪存储空间的分配情况。并在JVM的空闲   时,检查并释放那些可被释放的存储器空间。
    对象的实例存放在jvm的堆区,对于GC线程来说,对象有三种状态。
  •     可触及状态:程序中还有变量引用,那么此对象为可触及状态
  •     可复活状态:当程序中已经没有变量引用这个对象,那么此对象由可触及状态转为可复活状态。GC线程将在一定时间  准备调用此对象的finalize方法,finalize方法可以将对象转为可触及状态或者不可触及状态
  •     不可触及状态:只有当对象处于不可触及状态时,GC线程才能回收此对象的内存使用System.gc()方法和Runtime.gc()来建议垃圾回收器开始回收垃圾,但是无法保证GC线程马上就会进行相应的回收操作。

六:java环境安装配置

    1.下载jdk
    2.双击安装程序,选择安装路径,点击下一步,JDK安装好之后,会弹出JRE安装窗口,可以关闭,也可以选择路径继续安装。
    3.配置环境变量
    JAVA_HOME-安装路径  D:\Java\jdk1.8.0_151

    path-使用java开发命令时,命令所在的路径 %JAVA_HOME%\bin;

    一般来说,最好再去配置CLASSPATH,(其实jdk1.5以后就不需要配置,但是为了保证向下兼容,最好配置一下)
    CLASSPATH-运行java程序时,class文件以及运行该java程序所需要的底层的jar包所在的路径      .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar

    如何验证:运行cmd控制台

    输入指令 javac  java java -version