前言
还没有学习Java之前,总觉得Java是一门很高深的语言,感觉它就是计算机语言中级别最高的语言。还好米老师对我们说,只要你们学好了VB,想要学好什么C语言、Java就不在话下。因为VB是门面向过程的语言,其它语言都是从它这个过程中发展而来的,而且计算机可不是凭空诞生的,而是经过人类社会不断发展而来的,它里面的规则在我们的生活中历史中都是有理可循的,所以,对于Java,我们要用旧知识并联系生活,然后消灭它!
知识回顾
看了那么久的视频,虽然知识是新的,但是无处不见就知识啊,虽说VB是面向过程,Java面向对象,但是VB里的知识在J2se视频里也是屡见不鲜。从基础语法到数据类型,都有很多相类似的东西。先来张图,概述Java。
是什么?
Java是一种面向对象的语言,是一种与平台无关的语言,提供程序运行的解释环境。它吸收了C/C++语言的特点,并且去掉了影响程序健壮性的部分(如:指针、内存的申请与释放等),所以java是一种健壮的语言。一句话说明了Java是什么,还指出了Java的特性,面向对象,与平台无关,具有健壮性。
Java程序运行机制中有两种核心机制:
1、java虚拟机(Java Virtual Machine)
Java虚拟机可以理解成一个以字节码为机器指令的CPU;对于不同的运行平台,有不同的虚拟机;Java虚拟机机制屏蔽了底层运行平台的差别,实现了“一次编译,随处运行”。
2、垃圾收集机制(Garbage collection)
不再使用的内存空间应回收,即垃圾收集。在C/C++等语言中,有程序员负责回收无用内存。Java语言消除了程序员回收无用内存空间的责任;它提供一种系统级线程跟踪存储空间的分配情况。并在JVM的空闲是,检查并释放那些可被释放的存储器空间。垃圾收集在Java程序运行过程中自动进行,程序员无法精确控制和干预。
对象
对象是Java程序的核心,在Java程序中“完事万物皆对象”。对象可以看成是静态属性(成员变量或属性)和动态属性(方法或函数)的封装图。类是用来创建同意类型的对象的“模板”,在一个类中定义了给类对象所应具有的成员变量以及方法,J2SDK提供了很多类提供编程人员使用,编程人员也可定义自己的类。
为什么编程语言会从过程变成对象呢?事物的发展总是在不断进步得,面向对象肯定优于面向过程,不然也不会那么受人推崇。面向对象的编程,可以是一组对象互相配合通过沟通完成特定功能,对象都有对外服务的接口(通过继承可以复用);对象隐藏内部服务的实现(通过聚合可以复用);面向对象更加容易使我们达到Reusable、Extensibility、维护和替换更加方便……
基础对象
Java中的对象我根据自己现有的理解分为两种,一种是基础对象,另一种是数据类型。基础对象有标识符、关键字、常量、变量、容器、GUI编程(画图)
1、标识符:Java对各种变量、方法和类等要素命名时使用的字符序列称为标识符。也就是凡是自己可以起名字的地方都叫标识符,都遵守标识符的规则。
2、关键字:Java中一些赋以特定的含义,用做专门用途的字符串称为关键字。Java中的关键字都是小写英文。
3、常量:Java的常量值用字符串表示,区分为不同的数据类型。和其他语言一样,有着整型常量,逻辑常量等。要注意的是,Java要区分字符常量和字符串常量,“常量这个名词”还会用在另外其它语境中表示值不可变的变量。
4、变量:Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。Java程序中每一个变量都属于特定的数据类型,在使用前必须对其声明,声明格式为:type varName[=value][{,varName[=value]}]
5、容器:容器是一个Java 所编写的程序,原先必须自行编写程序以管理对象关系,现在容器都会自动帮您做好。对于容器的概念,视频没有详细的介绍,但是根据里面的例子,我觉得容器就是一个用代码编写出一个窗体,然后继续用代码往里面编写控件的东西。
6、GUI编程:GUI编程其实就是画图,一样的是编写一个容器,在里面绘制自己想要的图形。
数据类型
数据类型分为基本数据类型和引用数据类型,Java中定义了4类8种数据类型。
基本数据类型
1、逻辑型Boolean:逻辑性适于逻辑运算,一般用于程序流程控制,和其他语言一样,它只允许取值true或false,不可以0或非0的整数替代true和false,这点和C语言不同。
2、字符型char:char型数据用来表示通常意义上“字符”,字符常量为用单引号括起来的单个字符,例如:
chareChar='a';
Java字符采用Unicode编码,每个字符占两个字节,因而可用十六进制编码形式表示,例如
Charc1='\u0061';
Java还允许使用转义字符'\'来见期后的字符转变为其它的含义,例如
Char c2='\n';//'\n'代表换行符
3、数值型分为整数型和浮点类型
整型:
浮点型:
引用类型
1、类:主要由成员变量和方法组成。类是静态的概念,属于代码区。而对象是从类中new出来的,这个方法也就是构造函数,类的每个成员变量在不同的对象中都不同的值(除了静态变量),而方法只有一份,执行的时候才占用内存。类可以通过方法的重载进行方法的调用,方法的重载是指一个类中可以定义有相同的名字,但参数不同的多个方法,调用时,会根据不同的参数表选择对应的方法。类的继承,必须要有父类,并且首先调用父类方法。多态中所具备中的条件要有继承,父类引用指向子类。抽象用abstract关键字修饰,含有抽象方法的类必须被声明为抽象类,抽象类必须被继承,抽象方法必须被重写。而且抽象类不能被实例化,抽象方法只需声明,而不需实现。
2、接口:接口是抽象方法和常量值得定义的集合,多个无关的类可以实现同一个接口,一个类可以实现多个无关的接口,也就是可以多重实现,它继承关系类似,接口与实现类之间存在多态性。接口可以继承其它的接口,并添加新的属性和抽象方法。java只支持单继承,而接口可以解决这个问题。
3、数组:数组可以看成是多个相同类型数据组合,对这些数据的统一管理。数组变量属引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。数组中元素可以是任何数据类型,包括基本类型和引用类型。
运行
被编写出来的程序肯定是要经过运行调试的,Java也不例外,所以在这里我把它拿出来作为Java的一部分。
异常处理
程序是调试出来的,所以出现异常处理是再正常不过的。Java用try试图捕获异常,并根据需要选择用5个关键字
:try /catch/finally/throws/throw对异常进行处理
。Java的异常处理原则是先逮小的,再逮大的。抛出的异常必须合适,大了或小了都不行。
Java中有三种异常的分类:
1、Error:称为错误,由Java虚拟机生成并抛出,包括动态链接失败、虚拟机错误等,程序对其不做处理。
2、Exception:所以异常类的父类,其子类对应了各种各样可能出现的异常事件,一般需要用户显式的声明或捕获。
3、Runtime Exception:一类特殊的异常,如被0除、数组下标超范围等,其产生比较繁琐,处理麻烦,如果显式的声明或捕获将会对程序可读性和运行效率影响很大,因此由系统自动检测并将它们交给缺省的异常处理程序(用户不必对其处理)。
I/O(流)
在Java程序中,对于数据的输入、输出操作以“流”(stream)方式进行,J2SDK提供了各种各样的“流”类,用以获取不同种类的数据;程序总通过标注方法输入或输出数据。java.io包中定义了多个流类型(类或抽象类)来实现输入/输出,可以从不同的角度对其进行分类:
1、按数据流的方向不同可以分为输入流和输出流;
2、按处理数据单位不同可以分为字节流和字符流;
3、按照功能不同可以分为字节流和处理流。
线程
线程是程序内部的顺序控制流,所以我认为它是属于程序内部的流,在程序中进行输入/输出。前面我也对线程进行总结,在这就不重复了。如要了解,请看《【Java基础】——线程》。
网络编程
网络编程用一句很通俗的话说就是一堆计算机连接在一起,机器通过网线链接在一起,这样我们可以进行数据的传输,如我们日常的:查资料、写博客、聊QQ、发邮件等。所以在这里,我把它理解为程序对外的流,因为它也涉及到数据的传输,而且是利用网络,将数据发送到不同的电脑客户端上。
在网络编程中充分实现Java跨平台的功能,因为它有分层的思想,通过分层,可以清楚的知道每一层的职责,如给定一个接口,只要告诉它你需要的是什么,它就能给你完成什么,至于它怎么完成,这些你都不用知道,这也算是面向对象的一个体现。
总结
J2SE视频算是看完了,里面的代码算是都能理解,但是要要求自己不看代码,自己去实现一个小程序,还是很困难的。这还是得到下面的学习中历练才能掌握好的。