Java基础知识的巩固

在这周的学习中主要复习了前面学习的内容。

Java的特点:简单性,面向对象,分布式,解释性,可靠性,平台无关性等。

基本数据类型:整数型-byte,short,int,long。

                                 浮点型-float,double

                                布尔型-boolean

                                字符型-char

Java与c++的异同:
都是面向对象的,支持封装、继承、多态

Java不提供指针来直接访问内存

Java的类单继承,c++支持多重继承,但Java的接口课以多继承

Java有自动内存管理机制,不需要程序员手动释放无用内存

final和static:

都可以修饰类、方法、成员变量

static可以修饰类的代码块,final不可以

static不可以修饰方法内部类局部变量,final可以

static修饰表示静态或全局

static修饰的代码块表示静态代码块,当JVM加载类时指挥被创建一次

static修饰的变量可以重修赋值

static方法中不能用this和super关键字

static方法必须被实现,不能是抽象的abstract

static方法只能被static方法覆盖

final修饰表示常量,一旦创建不能修改

final标记的成员变量必须在声明的同时赋值或在该类的构造方法中赋值,不可重新赋值

final方法不能被子类重写

final类不能被继承,没有子类,final类中的方法默认是final的

final不能用于修饰构造方法

private类型的方法默认是final类型的

finalize方法用于回收垃圾

数组:

开始时先定义一个数组。例如:double[],表示double类型的数组。{ }表示数组的值/元素。

遍历数组得到数组的所有元素的和,用for。

使用方法:

1,数组类型[]数组名=new数组类型[大小]。

2,先声明数组:数据类型 [] 数组名 或 数据类型 数组名 [];

int a[]; 或int[] a;

创建数组:数组名=new 数据类型[大小];

a=new int[];

3,静态初始化;

数据类型 数组名[]={元素值...}

int a[]={1,2,...}

特点:在定义数组的时候同时确定了数据。

4,动态初始化数组;

数据类型[]数组名 = new 数据类型[长度];

特点:一开始只确定数组的类型和长度,不确定存入的具体值。

存在默认值。

数组赋值类型机制:

  1. 基本数据类型赋值,这个值就是具体的数据,而且不相互影响。(值拷贝)
  2. 数组在默认情况下是引用传递,赋的值是地址。(会影响)

数组和集合的区别

一、数组声明了它容纳的元素的类型,而集合不声明。

二、数组是静态的,一个数组实例具有固定的大小,一旦创建了就无法改变容量了。而集合是可以动态扩展容量,可以根据需要动态改变大小,集合提供更多的成员方法,能满足更多的需求。

三、数组存放的类型只能是一种(基本类型/引用类型),集合存放的类型可以不是一种(不加泛型时添加的类型是Object)。

四、数组是java语言中内置的数据类型,是线性排列的,执行效率或者类型检查都是最快的。

集合:

List系列集合:添加的元素是有序、可重复、有索引

Set系列集合: 添加的元素是无序、不重复、无索引

Collection是单列集合的祖宗接口,它的功能是全部单列集合都可以继承使用的。

Collection是一个接口,不能直接创建它的对象。

Set系列集合:特点:1,无序:存取顺序不一致。2,不重复:可以去除重复。3,无索引:不能用普通for循环遍历,也不能通过索引来获取元素。

Set集合的实现类:

HashSet:无序、不重复、无索引。

LinkedHashSet:有序、不重复、无索引。

TreeSet:可排序、不重复、无索引。

Set接口中的方法基本上与Collection的API一致。

this的本质:代表方法调用者的地址值。

this是自身的一个对象,代表对象本身,可以理解为:指向对象本身的一个指针。

this的用法在java中大体可以分为3种:

①. 普通的直接引用,this相当于是指向当前对象本身。

②. 形参与成员名字重名,用this来区分:

③. 引用本类的构造函数

equals和==的区别:

==:运算符,1.可以使用在基本数据类型变量和引用数据类型变量中。 2.若比较的是基本数据类型变量,比较两个变量保存的数据是否相等。若比较的是引用数据类型变量,比较两个对象的地址值是否相等。(基本数据类型用)

equals():1.是一个方法。2.只能适用于引用数据类型。

3.Object类中的equals()的定义;

public boolean equals(Object obj){

return (this == obj);

}

说明:Object类中定义的equals()和==的作用是相同的,比较两个地址值是否相同即两个引用是否指向同一个对象实体。

4.像String、Date、File、包装类等都重写了Object类中的equals()方法。重写后比较的不是两个引用的地址是否相同,而是比较两个对象的“实体内容”是否相同。

流:

流的分类:

1.操作数据单位:字节流,字符流

2.数据流向:输入流,输出流

3.流的角色:节点流,处理流

字节流和字符流的区别:

字节流操作的基本单元为字节;字符流操作的基本单元为Unicode码元。

字节流默认不使用缓冲区;字符流使用缓冲区。

字节流在操作的时候本身是不会用到缓冲区的,是与文件本身直接操作的,所以字节流在操作文件时,即使不关闭资源,文件也能输出;字符流在操作的时候是使用到缓冲区的。如果字符流不调用close或flush方法,则不会输出任何内容。

字节流通常用于处理二进制数据,实际上它可以处理任意类型的数据,但它不支持直接写入或读取Unicode码元;字符流通常处理文本数据,它支持写入及读取Unicode码元。

字节流可用于任何类型的对象,包括二进制对象,而字符流只能处理字符或者字符串; 字节流提供了处理任何类型的IO操作的功能,但它不能直接处理Unicode字符,而字符流就可以。

总结:知识有很多,这里只是写了很少的一部分,没有结实的知识做基础很难能写出一项很好的项目。在接下来的学习过程中不能光学不记,到时害的只会是自己。

  • 19
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值