JAVA笔记整理

程序员成长之旅 · 程序员成长之旅/Java学习/2021~2022第一学期JAVA课程 · 2038 字

[TOC]

JAVA笔记整理

Java的重要时间

Java的三个版本

JDK介绍

JDK中存在三大模块

JAVA环境变量配置

  1. 创建 JAVA_HOME , 值为JDK的安装根目录

  2. 在 PATH中 添加JAVA_HOME/bin目录, 使得系统可以直接访问JDK中的可执行工具

  3. 在 PATH中 添加JAVA_HOME/lib, 使得可以访问JAVA库文件

JAVA的基础编码规范

JAVA的基础编码

例子


public class HelloJavaApp{

public static main{

system.out.print(“Hello World”);

}

}

import 引入类库

public class HelloJavaApp Java中的主类 类名必须和文件名一致 (区分大小写)

public static void main 入口函数

JAVA的运行过程

.java编写代码 -> 生成字节码.class文件(若需要类库, 则在此阶段导入) -> 通过JAVA运行

数据类型

![img](C:\Users\wanyu\Documents\My Knowledge\temp\7c287a46-5c11-4afe-ac9e-da830266d588\128\index_files\0.041279939935432.png)

声明时必须确定其类型,这点和C语言相近

![img](C:\Users\wanyu\Documents\My Knowledge\temp\7c287a46-5c11-4afe-ac9e-da830266d588\128\index_files\0.9148155404140679.png)

String 是一种常见的引用数据类型,用来表示字符串。在程序开发中,很多操作都要使用字符串来完成,例如系统中的用户名、密码、电子邮箱等。

数据类型的初始值

整形 -> 0

实型 -> 0.0f0.0d

字符型 '\u0000'

类对象(引用类型) null

逻辑运算符

运算符


+,-,*,/,% 基本和C语言类似

"+"除了可以作为双目运算符来使用,还可以连接字符串

若使用"+"时,两方类型有一个是字符串(String)类型,就会自动将另一方转换成字符串类型。

常用函数

基础函数

equals


public boolean equals(Object o);// 完全相等 true 否则 false

printprintln的区别

println会换行, print不会换行

java.util.Scanner


import java.util.Scanner;

public class ScannerDemo {

public static void main(String[] args) {

Scanner in=new Scanner(System.in);

//获取用户输入的一行数据  返回为字符串

String s = in.nextLine();

System.out.println(s);

//返回用户输入的int值

int i = in.nextInt();

System.out.println(i);

//循环读取int数据,当输入exit时退出循环

while (!in.hasNext("exit")) {

System.out.println(in.nextInt());

}

//关闭输入

in.close();

}

}

数组

一维数组


String s[] = new String[3];

二维数组


String b[][] = {

{1, 1},

{21, 22},

{31, 32, 33}

}

什么是类?

如何定义一个基础类?

  1. 定义类名

  2. 编写类的属性

  3. 编写类的方法


public class 类名{

属性1类型 属性1;

属性2类型 属性2;

...

方法1;

方法2;

...

}

类的访问


[访问类型] class 类名{...}

/* 访问类型:

default (即默认,什么也不写): 在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方法。

private : 在同一类内可见。使用对象:变量、方法。 注意:不能修饰类(外部类)

public : 对所有类可见。使用对象:类、接口、变量、方法

protected : 对同一包内的类和所有子类可见。使用对象:变量、方法。 注意:不能修饰类(外部类)。

*/

方法的访问

static

可以使该方法直接可以被拥有权限的方法调用, 无需实例化该方法所在的类!

构造方法

构造方法会在使用new关键字时自动调用

Java 构造方法有以下特点:

对象

对象就是对类的实例化

继承 super 重载 重写

基础使用


class 子类 extends 父类

继承

继承后子类可以使用所有父类的适当权限的方法和属性

重载

相同方法名, 不同属性, 得到不同的结果

方法返回值类型、修饰符等和重载无关, 也就是说, 这些不能在重载时被修改.

重写

既子类重新实现父类的某个方法(除了方法体内可以修改, 其他需要保持一致)


@Override

目标方法

接口, 多态, 接口回调

另外, 如果派生类继承的抽象类中实现了某个接口, 那么对于派生类来说, 就是普通的父类方法, 和普通在父类中的具体方法无异, 因为父类中一旦定义实现了接口, 就必须实现接口的具体方法, 另外的, 子类也无需必须实现父类所实现的接口(因为对子类来说那些就是普通的具体方法).

多态

通过不同的对象使用相同的方法,而做出不同的回应.就是多态


//关键字

[接口类型] abstract class 类名{}

一旦定义了抽象类, 就不能单独被实例化了

上转型对象和下转型


public class Example5_4 {

public static void main(String[] args) {

Student mike = new Student("Mike", 12, 55);

System.out.println(mike.getName());

mike.doHomework();

Monitor joy = new Monitor("Joy", 13, 5, "cleaning blackboard");

System.out.println(joy.getName());

joy.doHomework();

joy.onDyty();

Student aStudent = joy;

aStudent.doHomework();// 上转型独享调用的仍然是子类覆盖后的方法(既子类重写的方法)

// aStudent.onDuty();// 上转型对象会丢失子类新增的方法

if(aStudent instanceof Monitor){

((Monitor)aStudent).onDyty();// 上转型对象能够转换成子类的对象, 进而恢复, 既下转型

}

// Monitor aMonitor = mike;// 父类的对象不能够赋值子类的引用

System.out.println();

HavaLesson.study(mike);

HavaLesson.study(joy);

System.out.println("万宇晨 20203101019");

}

}

接口回调


指针回调: 表示一个变量的地址在某一时刻存放在一个 '指针变量' 中,这个 '指针变量' 可以间接操作该变量中存放的数据;

接口回调: 接口回调借用了C语言中'指针回调'的术语, 有 '接口变量'.

1. 接口变量的类型声明的类型必须是接口, 声明后就可以接受实现了该接口的对象的引用

2. 使用该接口变量可以调用所有接口中所描述的方法

3. (其实当 接口变量 在调用被类实现的接口方法时,就是在通知相应的对象调用这个方法)

异常

异常类分两大类型:

  1. Error类代表了编译和系统的错误,不允许捕获

  2. Exception类代表了标准Java库方法所激发的异常。