更新时间:2022-06-07 11:12:04 来源:极悦 浏览997次
极悦小编来给大家进行Java基础教程部分知识点总结。
基本类型:基本类型的变量“持有”一个值;引用类型:引用类型的变量“指向”一个对象。
基本数据类型是CPU可以直接进行运算的类型。Java中的基本数据类型有:
整数类型:byte short int long
浮点类型:浮点双
字符类型:字符
布尔类型:布尔
==判断两个变量或实例是否指向同一个内存空间,equals判断两个变量或实例是否指向同一个内存空间
==比较内存地址并等于内容
跳出当前循环,继续提前结束这个循环,继续执行下一个循环。
面向对象
面向对象编程是一种通过对象的方式将现实世界映射到计算机模型的编程方法。
类是一个对象模板,它定义了如何创建一个实例。Instance是一个对象实例,是根据类创建的。
基本类型的参数传递是指调用者的值的拷贝,双方后续修改互不影响;引用类型的参数传递指的是同一个对象,任何一方修改该对象都会影响另一方。
构造函数用于初始化实例。如果一个类没有定义构造函数,编译器会自动为我们生成一个默认构造函数。如果定义了构造函数,编译器将不再自动创建默认构造函数。注意:在Java中,对于任何类的构造函数,第一行语句必须是调用父类的构造函数。如果父类的构造函数没有显式调用,编译器会自动为我们添加一个super()。
方法名相同,但参数不同,称为方法重载。方法重载的目的是功能相似的方法使用相同的名称,这样更容易记忆,更容易调用。
在继承关系中,如果子类定义了与父方法签名相同的方法,则称为override。
继承是面向对象编程中一种非常强大的机制,可以重用代码。Java只允许一个类继承一个类,所以一个类只有一个父类。只有对象是特殊的。它没有父类。子类不能访问父类的私有字段或私有方法。子类不会继承父类的任何构造方法。子类的默认构造方法是编译器自动生成的,不是继承的。
多态性意味着对于一种方法调用,它执行的真正方法取决于运行时方法的实际类型。多态有一个非常强大的功能,就是在不修改父类的代码的情况下,允许添加更多类型的子类来实现功能扩展。
用 abstract 装饰的类是抽象类。无法实例化抽象类。将方法声明为抽象意味着它是一个抽象方法,并且不实现任何方法语句。抽象类本身被设计为仅用于继承。抽象类可以强制子类实现其定义的抽象方法,否则编译会报错。因此,一个抽象的方法实际上相当于定义一个“规范”。
非抽象方法可以定义在抽象类中。
如果抽象类没有字段且所有方法都是抽象方法,则可以将其重写为接口。所谓接口就是比抽象类更抽象的纯抽象接口,因为它甚至不能有字段。因为接口定义的所有方法默认都是public abstract,所以这两个修饰符不需要写出来。
一个类可以实现多个接口。
在接口中可以定义默认方法,实现类不能覆盖默认方法。默认方法的目的是当你需要向接口添加方法时,它涉及到修改所有子类。如果添加了默认方法,那么子类不需要完全修改,只需要在需要重写的地方重写新方法。
final修饰类可以防止继承;
final修饰的方法可以防止被重写;
最终的装饰属性必须在创建对象时初始化,以后不能修改。
静态修饰的成员变量和方法,从属于类
公共变量和方法从属于对象
静态方法不能调用非静态成员,编译会报错
实例对象之所以可以访问静态字段,只是因为编译器可以根据实例类型自动将其转换为类名和静态字段。建议使用类名访问静态字段。
方法中定义的变量称为局部变量,局部变量的作用域从变量声明开始,到对应的块结束。方法参数也是局部变量。
字符串由字符串内部的 char [] 数组表示,
Java 字符串的一个重要特性是它们是不可变的。
public class Main {
public static void main(String[] args) {
String s1 = "hello";
String s2 = "hello";
System.out.println(s1 == s2);
System.out.println(s1.equals(s2));
}
}
从比较结果来看,两者都是正确的。这是因为java编译器在编译时会自动将所有相同的字符串作为对象放入常量池中。当然,S1 和 S2 的引用是相同的。
所以这个 = = 比较返回 true 是一个巧合。换一种方式, = = 比较会失败:
public class Main {
public static void main(String[] args) {
String s1 = "hello";
String s2 = "HELLO".toLowerCase();
System.out.println(s1 == s2);
System.out.println(s1.equals(s2));
}
}
为什么是真假?原因是 to lowercase(),它将 S2 指向一个变为小写的字符串。
StringBuilder 是一个变量对象,可以预先分配缓冲区,这样在 StringBuilder 中添加字符时,不会创建新的临时对象。
StringBuffer 是 Java 早期 StringBuilder 的线程安全版本。它通过同步保证了多线程操作StringBuffer是安全的,但是同步会导致执行速度的下降。
自动装箱和拆箱只发生在编译阶段,以减少代码编写;
装箱和拆箱会影响代码的执行效率,因为编译出来的类代码严格区分了基本类型和引用类型。此外,在自动拆箱过程中可能会报告 NullPointerException。
Java使用enum定义枚举类型,编译器编译为final class XXX extends enum { }
enum枚举类型是引用类型;
每个枚举类型的常量在JVM中只有一个唯一的实例,所以可以直接用==来比较。
定义的枚举类型总是继承自java.lang.enum,不能被继承;
只能定义 enum 的实例,但不能通过 new 运算符创建 enum 的实例;
Throwable是异常系统的根,继承自object。Throwable 有两个系统:错误和异常。Error表示严重错误,程序一般无能为力。异常是运行时错误,可以被捕获和处理。
Java的反射意味着程序可以在运行时获取一个对象的所有信息。因为JVM会为每个加载的类创建一个对应的类实例,并在实例中保存该类的所有信息,包括类名、包名、父类、实现的接口、所有方法、字段等,如果我们得到一个类实例,我们可以通过这个类实例获取该实例对应的类的所有信息。这种通过类实例获取类信息的方法称为反射。
注释是一种用作注释的“元数据”。注解的本质是一个继承注解接口的接口。
泛型的本质是对类型进行参数化(不创建新类型,通过泛型指定的不同类型来控制参数具体限制的类型)。也就是说,在使用泛型的过程中,将操作的数据类型指定为参数。这种参数类型可以用在类、接口和方法中,分别称为泛型类、泛型接口和泛型方法。
以上就是关于“Java基础部分知识点总结”的介绍,大家如果想了解更多相关知识,可以关注一下极悦的Java极悦在线学习,里面的课程内容从入门到精通,细致全面,很适合没有基础的小伙伴学习,希望对大家能够有所帮助。
0基础 0学费 15天面授
Java就业班有基础 直达就业
业余时间 高薪转行
Java在职加薪班工作1~3年,加薪神器
工作3~5年,晋升架构
提交申请后,顾问老师会电话与您沟通安排学习