复习java的基础知识

变量

1、局部变量

定义在方法或者语句块内的。从属于方法或者语句块。

使用之前必须要手动初试化。

2、成员变量

定义在类里面,方法外面,有默认的初试值。从属于对象。

数字:0 boolean :false char: \u0000 String :null

3、类变量(静态变量)

定义在类里面,方法外面,也有默认的初试值。

变量用static修饰的。从属于类。

数据类型:

1、基本数据类型

整数:byte short int long 分别占用1 2 4 8个字节。默认是int 类型。

浮点数:float double 4 8,浮点型默认是double类型。

字符:char  2个字节

布尔型:boolean  1位

2、引用数据类型(4个字节)

数组,数组也是对象。

接口

关于类型的转化。

1、byte short 可以自动转换成int。

如果有long 那结果就是long。

如果有double ,那结果就是double。

运算符:

1、算术运算符

2、关系运算符(==)

        区别赋值运算符。

3、逻辑运算符

4、位运算符

<<左移一位相当于乘以2. >>右移一位相当于除以2.

5、扩展运算符

+= ++ -- 三木运算符()

(布尔表达式)?A :B 

面向对象基础:

对象和类:
        对象是具体的,类是抽象的。

定义类:

public class  类型{

        //属性

        private  数据类型  属性名;

        //方法

        //构造方法

        

}

构造方法:

1、方法名必须和类型一样。

2、无返回值类型

3、通过new  来调用。

4、无参构造器的问题。

        如果我们没有手动定义构造器,那么系统会给我们定义一个无参构造器。

我们定义了,那么无参构造器就会被覆盖。

5、构造方法的第一句总是super,也就是说直接调用父类的方法。

overload  

两同三不同:

        两同:统一个类,同一个方法名字

        三不同:参数列表不同(类型 个数  顺序),方法内容不同,

返回值类型不同,不构成重载。

形参名称不同,不构成重载。

this:本类

1) this 关键字可以用来访问本类的属性、方法、构造器

2) this 用于区分当前类的属性和局部变量

3) 访问成员方法的语法:this.方法名(参数列表)

4) 访问构造器语法:this(参数列表); 注意只能在构造器中使用(即只能在构造器中访问另外一个构造器, 必须放在第一 条语句)

5) this 不能在类定义的外部使用,只能在类定义的方法中使用。

super :

        访问父类的方法属性和构造器。

static:

用它修饰类和方法,就那就变成了静态变量或者静态方法。从属于类,通过类名调用即可。

实际存储由于方法区中。

import:

        引入外部的类。

final:

        修饰变量:变量最好应该全部大写,多个单词之间用下划线隔开。

        修饰方法:不能被重写。

         修饰类:不能被继承。

封装: 

private public  default  protected  用上述的关键字实现属性或者方法的封装。

继承:

        extends  :

                通过继承实现对现实世界的模拟。

                代码的重用。

Object类:

        1、使我们所有类的根基类。

        2、toString 

        3、equals  hashcode  wait notify    

重写:

=:方法名字要一样。

>= :  子类的权限修饰符可以大于等于父类的。

<= <= :子类声明异常类型不能超过父类的。子类的返回值类型小于等于父类的类型。

多态:

三个必要的条件:继承,方法的重写,父类的引用指向子类的对象。

抽象类:

抽象类是不能有方法体的。

抽象类是不能够被new 的,也就是说不能够进行实例化的对象的。

如果一个类的实现了抽象类的话,那么这个类是需要实现这个方法的。

接口:

interface   

1.一个类可以实现多个接口。

2、接口可以实现多继承

3、接口定义一组规范,实现现实世界中的逻辑。

内存机制:

栈:

1、存放局部变量

2、不可以被多个线程共享。

3、系统自动分配,速度快。

堆:

1、存放对象

2、可以被多个线程共享。

3、空间不连续,速度慢。但是灵活。

方法区:

1、存放类的新型:代码、静态变量、字符串常量等。

2、可以被多个线程共享。

3、空间不连续,速度慢,但是灵活。

垃圾回收(GC garbage collection)

1、程序员不能调用垃圾回收机制。

2、finalize

递归算法:

1、什么时候调用自己 。

2、什么时候不调用自己。

异常

1、try   catch finally

2、声明抛出异常:throws

3、手动抛出异常:throw

4、自定义异常:

数组: 

1、长度固定不可变

2、所有元素的类型一致

3、通过下标来引用,不能抄过length-1;

4、数组也是对象,数组的元素可以看作对象的成员变量。

5、多为数组:数组的元素是数组。

6、数组的初试化:3种2.

Arrays工具类。

 

集合:

 1、collection

        a.list  有序,可重复

                ArrayLIst:底层用数组实现。线程不安全,效率高。

                LinkedList:底层用双向链表实现,线程不安全,效率高。

                vector:底层用数组实现,线程安全,效率低,

        b.set  无序,不可重复。

        HashSet:线程不安全,效率高。底层是HashMap。

2、map

        采用key-value来存储我们的数据。

        HashMap:线程不安全,效率高。

        HashTable:线程安全,效率低。

3、Iterator

        通过他可以实现遍历集合中的元素。

Collections:

 

 

泛型:

java 泛型详解-绝对是对泛型方法讲解最详细的,没有之一_s10461的博客-CSDN博客_java泛型



常见类:

String:不可变字符串类型

StringBuilder:线程不安全,效率高。可变字符串序列。

StringBuffer:线程安全,可变字符串序列。



IO流:

 

多线程:

 1、定义多线程的两种方式。

        Extends Thread

        implements Runnable

2、线程的状态

        a.new

        b.  就绪状态

        c.  运行状态

        d.阻塞状态

                    sleep:不会释放持有的对象锁

                   join:等待另外一个个线程执行完成。

                  wait  :会释放持有的对象锁。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值