java基础知识学习总结

1、java的成员变量不需要赋初值(最好自己赋初值),系统会自动赋初值,但是局部变量必须赋初值,否则不能编译通过

A、引用类型

2、在java中,对象任何非基本类型的实例

3、当声明引用类型时,没有分配任何对象。至此,引用为null。为可创建对象,使用new。

    new关键字用于创建对象

    当使用new时需要括号,创建能指定对象的初始状态。

4、java使用垃圾回收。使用垃圾回收,会自动回收未引用对象所占有的内存

5、对于对象,=是引用赋值,而不是对象复制

6、对引用类型而言,按值传递意味着形式参数引用的对象与实际参数引用的对象相同

7、对于引用类型,只有当两个引用引用了相同对象时,==为true。equals方法可以用来测试两个引用引用的对象是否具有相同的状态

8、String对象有两项基本规则:第一项:除了连接运算符之外,String的行为像对象。第二项规则:String是不可改变的,这意味着一旦创建String对象,它的内容将不变。

9、使用equals和compareTo来执行字符串比较

10、数组是存储相同类型实体的集合

    通过数组索引运算符[ ]来提供对数组任何对象的访问。数组的索引从零开始。通过length字段来得到存储在数组中的项数,不适用括号

11 数组的声明int[ ] array1; 此时还没有分配内存来存储数组。array1只是一个数组名(引用),此时,array1为null。假设为存储100个int,需要使用new

    array1 = new int[ 100 ];现在array1引用了具有100个int的数组。

    还有其他方法来声明数组:int [ ] array2 = new int[ 100 ];

    还可以像C和C++一样,可以使用初始化列表来指定初值:int [ ] array3 = {3, 4, 10, 6};

12、ArrayList用于扩展数组。add方法使大小加1,将新数据项添加到数组的适当位置,根据需要,扩大容量。

13、二维数组:通过一对括号内的每个索引来访问数组中的每个元素。int[ ][ ] x = new int [ 2 ][ 3 ];定义了二维数组x,第一个索引(代表行数)的范围从0到1,第二个索引(列数)的范围是从0到2(总共是6个int)。

在上面例子中,二维数组实际上是数组的数组。因此,行数是x.length, 列数为x[0].length或x[1].length。

B、异常处理

14、try块内是可能产生异常的代码。catch块处理异常

15、throw字句用于抛出异常,

C、继承

16、继承是IS-A关系:在IS-A关系中,我们说派生类是基类的变种

        在HAS-A关系中,我们说派生类是基类的实例,使用组合技术对HAS-A关系建模

17、继承允许我们从基类中派生类,而不影响基类的实现

       extends字句用于声明这个类是从另一个类派生而来

       派生类从基类中继承所有的数据成员,并可以添加更多的数据成员

       派生类从基类中继承所有的方法,派生类可以接受这些,也可以重新定义这些方法,派生类也可以定义新方法

18、在Java中,所有的引用类型都是多态的。所以也将多态性称为动态分配,后期绑定或者动态绑定。派生类与它的基类是类型兼容的,这 意味着基类类型的引用变量可以引用派生类的对象,但反之并不成立。兄弟类(即派生于相同类的类)类型不兼容。

        多态变量能引用几种不同类型的变量,当对多态变量进行操作时,自动选择合适用于引用对象的操作。

D、接口

19、implements字句用于声明类实现了接口。这个类必须实现所有接口的方法或保留方法的抽象

20、因为接口是一个抽象类,所以可以应用所有的继承规则,具体来说:

  1.  IS-A关系成立。如果类C实现了接口I, 那么C IS-A, 并且与I类型兼容。如果类C实现了接口I1,I2,I3,那么C IS-A I1,I2,I3,并且与I1,I2,I3类型兼容
  2. instanceof运算符可以用来确定引用是否与接口类型兼容
  3. 当类实现接口的方法时,它可能无法降低可见性。由于所有的接口方法都是公有的,所以所有的实现也必须是公有的。
  4. 当类实现接口的方法时它可能无法向throws列表添加检查异常。如果一个类实现了多个接口,这些接口都有相同的方法,这些相同的方法出现在不同的throws列表中,实现的throws列表可以只列出这些接口方法的throws列表交集中的检查异常。
  5. 当类实现接口的方法时,它必须实现精确的签名(不包括throws列表);否则,它继承接口方法的抽象版本,并且提供了一个非抽象的重载,但是方法不同。
  6. 类不能实现这样的两个接口,这两个接口包含的方法具有相同签名和不兼容的返回类型,因为在一个类中提供这样的两种方法是不可能的。
  7. 如果一个类没有实现接口中的任何方法,必须将其声明为抽象
  8. 接口可以扩展为其他接口(包含多个接口)

E、静态查找

21、

       

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值