Java知识点

给函数传递参数时, 若为基本类型,则为值拷贝,是两个不同的变量;若为对象,则为引用指向同一个对象。

y为数,if(x=y)这种使用=方式会报错, java 不会自动的将 int 转换成 boolean 类型

比较两个对象的内容, 使用所有对象(不包括基本类型)中都存在的equals()方法

对于 == 和 != 这两个关系运算符来说,它们有两种使用场景:

  • 作用于基本数据类型: 比较的是值
  • 作用于对象: 比较的是内存地址

equals()的两种使用情况:

  • 情况 1:类没有覆盖 equals() 方法。则通过 equals() 比较该类的两个对象时,等价于通过 “==” 比较这两个对象。
  • 情况 2:类覆盖了 equals() 方法。一般来说,我们都会覆盖 equals() 方法来比较两个对象的内容而不是其引用

&& 和|| 运算符具有短路特性

增强版 for 循环, 定义了一个 float 类型的变量 x,继而将每一个 f 的元素赋值给它.

for(float x: f){
    System.out.println(x);
}

面向对象具有四大基本特点 抽象:属性和行为形成类,用类去构造实例;封装:属性和行为封装成类,来严格的访问控制;继承:在类基础上扩展形成新类;多态:同一函数具有不同功能。

访问权限, 从“最大权限”到“最小权限”依次是public、protected、包访问权限、private

所谓包访问权限,就是如果不对这个成员(类、字段、方法)提供访问修饰符,那么这个成员就可以被同一个包中的所有方法访问,但是这个包之外的成员无法访问。包访问权限也称默认访问权限

protected也提供包访问权限,不同于包访问权限的是:即使父类和子类不在同一个包下,子类也可以访问父类中具有 protected 访问权限的成员。(而对于包访问权限来说,如果子类和父类不在一个包下,子类是无法访问父类中具有包访问权限的成员的)

构造函数总是伴随着 new 操作符的执行被调用, 构造函数与类同名;每个类可以有一个以上的构造函数;构造函数可以有 0 个、1 个或多个参数;构造函数没有返回值;类中没有构造器,那么编译器就会自动为你创建一个无参构造器,一旦你显式地定义了构造器(无论有参还是无参),编译器就不会自动为你创建无参构造器。

重载 允许方法具有相同的方法名但接收的参数不同。

this 关键字 只能在非静态方法内部使用,static 方法中不会出现 this。因为 static 是为类而创建的,不需要任何对象。

初始化

  • 类的每个基本类型数据成员保证都会有一个初始值。如果我们没有显式地给域/成员变量赋予初值,那么就会被自动地赋为默认值————自动初始化。
  • 当使用构造函数来进行初始化时,同样先进行自动初始化在进行构造函数的。
  • 显示初始化,在定义成员变量时就对其指定值。

初始化块 代码块的调用顺序为:静态初始化块、非静态初始化块、构造函数

class Root { 
    // 静态初始化块
    static{
        System.out.println("Root的静态初始化块");
    }
    // 非静态初始化块
    {
        System.out.println("Root的普通初始化块");
    }   
    public Root(){
        System.out.println("Root的无参构造器");
    }
}

重写重载 重写不仅方法名相同,参数列表和返回类型也相同;@Override注解即表示方法重写,不过这个也可以不写,JVM 能够自动的识别方法覆盖。在覆盖一个方法的时候,子类方法不能低于父类方法的可见性。特别是, 如果超类方法是 public, 子类方法一定要声明为 public。

向上转型和向下转型

  • 父类引用变量指向子类对象后,只能使用父类已声明的方法,但方法如果被重写会执行子类的方法,如果方法未被重写那么将执行父类的方法。
Animal cat = new Cat(...); // 向上转型 Cat->Animal
  • 将某个父类的对象引用转换成子类的对象引用,调用一些子类特有而父类没有的方法。
Animal animal = new Cat(...); // 向上转型 Cat->Animal
Cat cat = (Cat) animal; // 向下转型 

抽象类 抽象方法和抽象类都必须声明为 abstract,但除了抽象方法之外,抽象类还可以包含具体数据和具体方法。使用extends来扩展子类。

接口 关键字 interface 而不是 class 来创建接口,接口中是不能包含具体方法的。使用 implement来扩展实现类。接口中是允许出现常量的,将被自动被设置为 public static final 类型。

为什么有抽象类还要有接口,因为一个类可以实现多个接口,但是一个类只能继承一个父类

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
蓝桥杯是国内最有影响力的计算机比赛之一,旨在培养和选拔优秀的计算机专业人才。对于Java语言的考察能力是其中重要的一部分。 参加蓝桥杯Java比赛需要掌握的知识点主要包括以下几个方面: 1. 基础语法:掌握Java的基本语法,包括变量定义、数据类型、运算符、流程控制结构等。比赛中常会有编写简单程序的题目,要求学生能处理好基本语法的运用。 2. 面向对象:理解面向对象的思想,熟悉类和对象的定义与使用。熟悉Java中的封装、继承和多态等概念,并能熟练运用。 3. 数据结构:重点掌握Java中常用的数据结构,如数组、链表、栈、队列、树等。了解它们的特点、用途以及相应的操作方法,能够根据问题的需求选择合适的数据结构进行解决。 4. 异常处理:熟悉Java中的异常处理机制,掌握如何使用try-catch语句捕获和处理异常。在代码编写过程中,合理运用异常处理来增加程序的健壮性。 5. 输入输出:能够熟练运用Java的输入输出流,包括文件读写、标准输入输出、网络通信等。理解输入流和输出流的概念,并能够根据不同的需求选择合适的输入输出方式。 6. 网络编程:掌握Java的Socket编程,了解网络通信的基本原理和常用的协议。能够编写简单的网络程序,进行客户端和服务器的通信。 以上是蓝桥杯Java比赛所涉及的主要知识点,参赛选手应该全面了解这些知识点,并通过大量的练习和实践来提高自己的实际应用能力。当然,还需要具备良好的编程习惯和解决问题的能力,才能在比赛中取得好成绩。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值