JAVA要点

1 下载安装JVM,是建立在java虚拟机上的;源码-->字节码-->机器码;

2 声明数组时,左边不能指定数组元素的个数

   声明完成后必须要分配内存(new)

   可以一起完成声明和定义(分配内存+赋值),为了兼容c可以如下:

 int array[]={1,2,3,4,5};
 等效于:
 int array[]= new int []{1,2,4,5,6};

3 instanceof: 当左边的实例属于右边的类时返回true;

4 范围for:用于迭代的局部变量必须当场声明

for(int i :array){

}

5  java是面向对象语言,所有内容都是在类里面;一个源文件由若干类组成,java虚拟机编译后,每一个类都有一个类字节码文件;当java命令执行时,会从被执行执行文件的min函数内开始执行,若没有main函数会报错

# java test  
错误: 在类 test 中找不到 main 方法, 请将 main 方法定义为:
   public static void main(String[] args)

6 要么在声明时一同定义(赋值);要么在方法中定义;

    除了声明的表达式(如单纯赋值表达式)不能出现在方法外;

7 构造函数是类创建对象(实列)时自动运行方法;必须与类名相同且没有类型(返回值)

8 当需要 引用的其他源文件的类时,如果在同一个文件路径下-虚拟机会自动一同编译

9 方法传值时,可以传低于该形参级别的值(如double传float)

10 可变形参:必须放在形参列表的最后一个 ...代替

public void fun(double a,int ...x)

11 对象里面可以包含对象,或需要类-形参的方法;

类方法/类变量

12 static静态

        分为静态方法静态变量

        由于是和类绑定,所以称为类变量,和类方法;

public class test {
    static int StaticA=8;//类变量
    static int Sfun(){//类方法
        return 5;
    }
    
}

凡是加了static:

        类变量/类方法 载入内存时就初始化完成,分配好了空间(而实例方法只有第一次初始化时才会分配函数入口地址);

        都可以通过类名访问;

类变量:

        所有此类的实例共享此变量;

        可以通过对象名和类名来访问

类方法

        通过类名直接访问,减少了创建实例的开销,常作为调用方法时使用;

        只能通过类名来访问

13 方法的重载:就是方法名一样,但参数个数或类型不一样,调用时根据实参的情况来判断进入哪个具体同名方法;

14 this:代表某个对象-可以出现在实例方法和构造方法中,但不能出现在类方法中(无法确定是此类的哪个实例 或者 此类根本没有实例化);

        

15 类创建实例(对象)时,一定要new才能使用

test class1= new test();
左边相当于声明,右边是分配内存

子类与父类

class a extends b{

}
## 用extends 表示继承--- a继承自b

16 如树一样,只能有一个类,而一个类可以有很多子类

17 在同一个包(文件夹)时,子类会继承父类中 除 private 修饰的变量和方法

     在不同包时,子类会继承父类中 除 private 和 protected 修饰的变量和方法、

18  隐藏变量名/方法

若子类的新成员变量名与父类继承的相同,将会隐藏继承的变量名;{

 子类对象可以调用继承的方法来操作隐藏的继承变量;

 重写继承的方法后,子类调用的一定是重写之后的函数--可以用super关键字调用被隐藏的方法

super.方法()/ 变量名

}

19 重写 父类方法时,不允许降低方法的访问权限

public->protected->友好的->private
高----------->低

20:子类构造总是优先调用父类的构造方法,默认调用不带参数的构造函数;

        子类构造函数中默认添加 super() -----来调用父类的构造方法;

21 final 关键字

        凡是被final修饰过的类---不能被继承 ,方法--不允许重写,成员变量或局部变量--变为常量;

22 对象的上转类型 

子类的实例赋值给父类的申明对象;{

上转对象不能访问子类新增的成员变量,不能调用子类新增的方法(可以且一定调用重写的);

}

23:多态被不同子类继承时,可以产生不同的行为方法

24 abstract 抽象类

被修饰的称为抽象类;

被 abstract修饰的方法--只允许声明,不允许实现(没有方法体) ;

被 abstract修饰的---可以有abstract方法,也可以有普通方法;

--->面向抽象编程,规定了具体操作,不关心具体的实现

25 如果 一个类是抽象类的子类,必须实现所有父类的所有抽象方法;

27interface 接口

用 interface来定义一个接口

interface 名{

}

接口之中可以有抽象方法(abstract)和常量,且访问权限一定都是public ,且访问权限可以省略;

可以有 default(一定要加,和普通方法一样 )修饰的实例方法 和 static 方法;

28  implements 实现接口 

        如:类A实现了接口x1,x2

class A implements x1,x2{

}

类实现了某个接口,自然拥有了 接口的常量,default方法,且一定要重写该接口的所有抽象方法

29 public interface 表示是一个开放接口,可以被任何类所实现;

        父类实现了接口,父类的子类页自然实现了接口;

30 接口回调

        对象的上转类型 ---当实现接口的实例(的引用)赋值给 接口变量(用接口声明一个变量)时,接口变量就可以调用实现接口方法;

31 Lambda 表达式 --单接口

        如果一个接口内只有一个abstract抽象方法,则称为为单接口---函数接口;

        Lambda表达式是一个匿名函数,表达式的值是这个匿名函数的入口地址

(参数列表)->{


}

    32 可以用接口变量 接受 Lambad表达式---自然接口变量就可以调用Lambada表达式(也相当于定义了单接口里面抽象函数的实体)

32 abstract 抽象类与 interface接口的比较

抽象类中既可以有常量,也可以有变量;接口中只能有常量;    

接口类中不能有除default方法类的其他实例方法;

33 内部类

        可以嵌套类,内部类中不可以声明类变量和类方法,内部类只能供外部的类使用;

        内部类+static -->就是外类中的一种静态数据类型;可以用static内部类来创建对象;

34 匿名类 

        匿名类一定是内部类,子类;

        可以用匿名类实现接口(子类继承)

35 异常类

        try + throw + catch 

36 常用 实用类

string 类 

java String类(超详细!)_一个快乐的野指针~的博客-CSDN博客_java string

反射class类:

Java基础之—反射(非常重要)_敬业小码哥的博客-CSDN博客_反射

37 GUI编程

java swing开发窗体程序开发(一)GUI编程_最咔酷学院的博客-CSDN博客_java swing

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值