尚硅谷JAVA基础笔记吐血整理

这是一份详细的JAVA基础笔记,涵盖了面向对象、异常处理、多线程、常用类库、反射机制等多个核心章节。从类、对象、构造器、权限修饰符,到异常处理的try-catch-finally、自定义异常,再到线程的创建和同步,以及JAVA8的新特性如接口新特性、日期时间API等,深入讲解了JAVA编程的基础知识点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JAVA基础

第1章 JAVA语言概述

第2章 基本语法

第3章 数组

第4/5/6章 面向对象

  1. 类和类的成员:属性、方法、构造器、代码块和内部类
  2. 封装、继承和多态
  3. 关键字及其使用

Day 8 (P198-P218)

1、形参与实参

形参:方法定义时,声明的小括号内的参数

实参:方法调用时,实际传递给形参的数据

2、值传递机制

方法的形参传递机制:值传递

如果参数是基本数据类型,此时实参赋给形参的是实参真实存储的数据值

如果参数是引用数据类型,此时实参赋给形参的是实参存储数据的地址值

3、属性(成员变量)vs 局部变量

相同点:

1、定义变量的格式:数据类型 变量名=变量值

2、先声明后使用

3、变量都有其作用域

不同点:

1、在类中声明的位置不同,属性直接定义在类的{}内,局部变量声明在方法内,方法形参,代码块内,构造器 形参、构造器内部的变量

2、权限修饰符:

属性:可以在声明属性时,指明其权限,使用权限修饰符

常用的权限修饰符:private、public、缺省、protected

局部变量:不可以使用权限修饰符

3、默认初始化值

属性:类的属性,根据其类型都有默认初始化值

整型(byte、short、int、long):0

浮点型(float、double):0.0

字符型(char):0(或’’)

布尔型(boolean):false

引用数据类型(字符串、类、数组、接口):null

局部变量:没有默认初始化,在调用局部变量之前一定要显式化赋值

特别的,形参在调用时赋值即可

4、在内存中加载的位置

属性:加载到堆空间中

局部变量:加载到栈空间

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-r1RExbh9-1639482821176)(C:Users86187DesktopMK笔记JAVA基础变量.png)]

Day 9 (P219-P241)

1、封装与隐藏

高内聚:类的内部数据操作细节自己完成,不允许外部干涉

低耦合:仅对外暴露少量的方法用于使用

2、权限修饰符

1、四种权限(从小到大):private,缺省(default),protected,public

修饰符

类内部

同一个包

不同包的子类

同一个工程

private

Yes

缺省

Yes

Yes

protected

Yes

Yes

Yes

public

Yes

Yes

Yes

Yes

2、4种权限可以用来修饰类及内部类的内部结构:属性、方法、构造器、内部类

修饰类只能用缺省、public

总结封装性:JAVA提供了4种权限修饰符来修饰类及类的内部结构,体现类及类的内部结构在被调用时的可见性的大小

3、构造器

1、构造器的作用:创建对象、初始化对象的属性

如果没有显式的定义类的构造器,则系统默认提供一个空参的构造器

一个类中定义的多个构造器彼此构成重载

2、属性赋值的选后顺序:①默认初始化 ②显式初始化 ③构造器中赋值 ④通过对象.方法或对象.属性赋值

3、只要造对象,就一定会使用构造器,这句话任何时候都是对的

4、UML类图
5、this关键字

1、方法的形参和类的属性同名时,必须显式使用this.变量的方式,表明此变量是属性,而非形参

2、this可以调用属性、方法和构造器

3、可以显式使用"this(形参列表)"方式,调用本类中指定的其他构造器

"this(形参列表)"必须声明在当前构造器的首行

构造器中不能使用 "this(形参列表)"的方式调用自己

构造器内部最多只能声明一个"this(形参列表)"调用其他构造器

6、package关键字的使用

1、使用package声明类或者接口所属的包,声明在源文件的首行

2、每“.”一次,就代表一层文件目录

3、同一个包下,不能命名同名的接口和类,不同包下可以声明同名的接口和类

7、MVC设计模式

将程序分成三个层次:视图模型层(view)、控制器层(controller)与数据模型层(model)[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bcVUFlqt-1639482821181)(C:Users86187AppDataRoamingTypora ypora-user-imagesimage-20211112170536925.png)]

8、import关键字

1、在源文件中使用import导入指定包下的类和接口

2、如果使用的类或者接口时java.lang包下定义的,则可以省略import结构

如果使用的类或者接口是本包下定义的,则可以省略import结构

3、如果在源文件中使用了不同包下的同名类,则必须至少有一个类需要以全类名的方式显示

4、使用“xxx.*”的方式可以调用包中的所有结构,但如果是子包,仍需要显式调用(我的理解就是没有子包,都是并列的包)

5、import static:导入类或接口中的静态结构(意思就是导入属性或者方法),单import是导入类或接口

Day 10 (P242-P264)

1、项目2

1、动态数组,大小随时改变的写法

2、删除数组中的元素,后面的元素要覆盖前面的,不能直接指空

2、继承性

1、继承性的优点:

①减少代码冗余,提高代码复用性

②便于功能的扩展

2、继承的格式:classA extends classB{}

A:子类、派生类、subclass

B:父类、基类、超类、superclass

体现:一旦子类继承父类之后,子类就获取了父类中声明的属性和方法。

特别的,父类中声明为private的属性或者方法,仍然认为获取了父类中私有的结构,只是因为封装性的影响, 子类不能直接调用。子类继承父类之后,可以声明自己持有的属性或方法实现功能的扩展。

3、JAVA中关于继承的规定

①支持单继承和多层继承,不允许多重继承

一个子类只能有一个父类,一个父类可以派生多个子类

②直接父类和间接父类

③所有类都直接或间接继承于Object类

Day 11 (P265-P284)

1、方法重写(overwrite)

1、重写:子类继承父类以后,可以对父类中同名参数的方法进行覆盖操作

2、重写之后,当创建子类对象以后,通过子类对象调用子父类中的同名同参数的方法时,实际执行的是子类重写父类的方法

3、重写的规定:

方法的声明:权限修饰符 返回值类型 方法名(形参列表)throws 异常的类型{ 方法体 }

子类中叫重写的方法,父类中叫被重写的方法

①子类重写的方法的方法名和形参列表与父类被重写的方法名和形参列表相同

②子类重写的方法的权限修饰符不小于父类被重写方法的权限修饰符

特殊情况:子类不能重写父类中声明为private权限的方法

③返回值类型:

父类被重写的方法的返回值是void:子类重写的方法只能是void

父类被重写的方法的返回值是引用类型:子类重写的方法只能和父类相同或者为其子类

父类被重写的方法的返回值是基本类型:子类重写的方法只能是相同的基本类型

④子类重写的方法抛出的异常类型不大于父类被重写的方法抛出的异常类型

⑤必须是非static

2、super关键字

1、super可以用来调用属性、方法和构造器。

2、当子类和父类中定义了同名的属性时,要想在子类中调用父类中声明的属性则必须显式使用super.属性。

当子类重写了父类中的方法之后,要在子类中调用父类中被重写的方法则必须显式使用super.属性。

3、super调用构造器

可以在子类中使用 super(形参列表)的方式调用父类中声明的指定的构造器,必须声明在首行

在类的构造器中 this( 形参列表 )和super(形参列表)只能二选一,在构造器没有显式声明时,默认调用父类中的空参构造器

3、多态性

1、父类的引用指向子类的对象——对象的多态性

2、多态的使用:虚拟方法的调用

有了对象的多态性之后,在编译期只能调用父类中声明的方法,编译期实际执行的是子类重写父类的方法

编译看左边,运行看右边

3、多态性使用前提:①有类的继承关系 ②要有方法的重写

4、对象的多态性只适用于方法不适用于属性(还是父类的属性)

5、多态性是一个运行时行为,要到运行的时候才知道具体是哪一个,而重载是编译时行为,编译的时候就知道具体是哪一个

Day 12 (P285-P311)

1、向下转型

1、有了对象的多态性之后,内存中实际上是加载了子类特有的属性和方法的,但是由于变量声明为父类类型,导致编译时只能使用父类中声明的属性和方法。使用强制类型转换符之后就可以使用子类的属性和方法,即向下转型。

2、自动类型提升和强制类型转化(有可能会转不成功

3、P289:向下转型的几个问题

(那几个练习还蛮重要的感觉)

2、instanceof关键字

1、a instanceof A:判断对象a是否为A的实例,如果是返回true。

2、使用情景:避免在向下转型时出现异常,先进行判断。

3、Object类</
### 回答1: 硅谷Java基础笔记是一套系统而全面的Java基础学习资料。这份笔记Java语言的基本概念介绍开始,涵盖了Java的核心知识点,包括变量、数据类型、运算符、流程控制等。接着,笔记详细讲解了面向对象编程的特点和Java中的类、对象、封装、继承、多态等内容。 在这份笔记中,还深入讨论了Java中的常用类库,如String、ArrayList、HashMap等,以及它们的常见用法和实例操作。此外,笔记还介绍了常见的异常处理机制,包括try-catch语句、throw和throws关键字等,帮助学习者理解并掌握Java中的错误和异常处理。 除了基础知识的讲解,硅谷Java基础笔记还提供了大量的例子和练习题,帮助学习者巩固所学内容,并通过实践提高编程能力。这些例子和练习题涵盖了各个知识点和应用场景,从简单到复杂,逐渐深入,非常有助于学习者的理解和应用能力的提升。 总而言之,硅谷Java基础笔记是一份详细、系统、易懂的学习资料,适合初学者入门学习Java编程。无论是对于零基础的学习者还是对于有一定编程经验的人来说,这份笔记都是一份不可多得的宝藏,可以帮助他们夯实Java基础,掌握编程技巧,为进一步扩展知识奠定坚实的基础。 ### 回答2: 硅谷java基础笔记是一份完整而详细的教程,对于初学者来说是一个很好的学习资源。 这份笔记硅谷团队精心编写而成,包含了Java基础的各个方面。首先从Java的历史和应用领域入手,引导读者对Java有一个整体的认识。然后逐步介绍Java的发展环境和使用工具,让读者能够了解如何配置和使用Java开发环境。 接下来,笔记逐个介绍了Java的基本语法、数据类型、运算符、流程控制语句等基础知识。这些内容以简洁明了的方式呈现,附有实例和练习题,让读者可以通过练习巩固所学内容。 除了基础语法,笔记还深入讲解了Java的面向对象编程思想和相关特性,包括类与对象、封装、继承、多态等。这部分内容对于理解Java的核心思想和编程范式非常重要,而且通过实例和案例的讲解,更加直观地展示了面向对象的优势和应用。 此外,笔记还包含了Java的常用类库的介绍,如集合框架、IO流、异常处理等,这些内容对于进行实际开发非常实用。 总之,硅谷java基础笔记内容全面、深入浅出,适合初学者学习和巩固基础知识。通过系统地学习这份笔记,读者可以建立起扎实的Java基础,为后续的学习和实践打下坚实的基础。同时,笔记中的案例和练习题也为读者提供了不少实践机会,帮助读者更好地理解和应用所学知识。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值