JAVASE基础知识的学习笔记

知识点一:final 关键字:可以用来修饰类、方法和属性,不能修饰构造方法。使用final修饰的类不能被继承,使用final修饰的方法不能被重写,使用final修饰的变量的值不能被修改,所以就成了常量。

1.1:final作用在类上的目的:如果类设计之初就确定不会被继承,使用final可以防止未经授权的扩展,从而增强安全性;同时也可以清楚的告诉其他开发者该类不应该被继承。

1.2:final修饰基本类型变量,其值不能改变,由原来的变量变为常量;但是final修饰引用类型变量,栈内存中的引用不能改变,但是所指向的堆内存中的对象的属性值仍旧可以改变。例如

知识点二:在Java中,==和equals()的主要区别在于它们的类型、比较的内容和适用范围。‌ ==是一个操作符,用于比较两个对象的引用是否相等;而equals()是一个方法,属于java.lang.Object类,所有Java对象都可以调用该方法。默认情况下,equals()比较两个对象的引用地址,但许多类会重写equals方法以实现具体的比较逻辑。

知识点三:object类中clone()方法的使用,深拷贝和浅拷贝

‌在Java中,需要重写clone方法。‌ Java中的clone()方法是定义在Object类中的,默认情况下,它只是简单地创建了一个新的对象,但并没有复制对象内部的引用类型成员变量指向的对象。(只是个浅拷贝)

深拷贝的简单代码实现:

知识点四:object类中的wait,notify,notifyAll方法的使用

首先要知道这些方法必须结合synchronized使用,notify是随机唤起一个被阻塞的线程,notifyAll()是唤起全部阻塞的进程。

知识点五:权限修饰符

知识点六:对象的转化问题

        子类到父类直接可以转化

        父类到子类:如果父类对象不是由子类实例化,尝试将其强制转换为子类类型会抛出ClassCastException。因此,在进行类型转换前,通常需要使用instanceof关键字检查对象的实际类型‌,通常可以结合instanceof()方法。

知识点七:时间操作:涉及的类有Data,Dataformat,simplyDataformat,calender

Data: Date类拥有多个构造函数,只是部分已经过时,但是其中有未过时的构造函数可以把毫秒值转成日期对象。

SimpleformatDataformat:

知识点八:对象的序列化和反序列化

        要序列化的Java对象必须实现java.io.Serializable接口。这个接口是一个标记接口,没有定义任何方法。实现此接口意味着类的对象可以被序列化。序列化时,只有对象的非静态成员变量会被序列化。静态变量、瞬态变量(使用transient关键字标记的变量)和类信息不会被序列化。

        SerialVersionUid,简言之,其目的是序列化对象版本控制,有关各版本反序列化时是否兼容。如果在新版本中这个值修改了,新版本就不兼容旧版本,反序列化时会抛出InvalidClassException异常。如果修改较小,比如仅仅是增加了一个属性,我们希望向下兼容,老版本的数据都能保留,那就不用修改;如果我们删除了一个属性,或者更改了类的继承关系,必然不兼容旧数据,这时就应该手动更新版本号,即SerialVersionUid。

知识点九:内部类

9.1:匿名内部类

9.2:静态内部类和非静态内部类

        

知识点十:正则表达式的使用

知识点十一:java的值传递和引用传递

知识点十二:构建线程的两种方式:1.继承thread。2.实现runable接口

       

知识点十三:JAVA并发知识(涉及JVM的许多知识这里就不介绍了)

        sleep和wait这两个方法都会使得线程阻塞,但是sleep方法是线程提供的不会释放资源和锁,而wait是object提供的,导致本线程放弃对象锁,进入等 待此对象的等待锁定池。只有针对此对象发出notify方法(或notifyAll)后本线程才进入对象锁定池,准备获得对象锁进行运行状态

知识点十四:文件操作(对于NIO,BIO,AIO,以及线程池这里就不介绍了)

        ‌在Java中,File主要用于表示文件和目录的路径,提供了一系列方法来操作文件和目录,但不涉及读写文件内容。‌ File类位于java.io包中,主要用于获取文件或目录的信息,如是否存在、大小、修改时间等,以及进行创建、删除、重命名等操作。需要注意的是,File类不能直接用于读写文件内容,这需要通过输入输出流(IO流)来完成‌。

        以InputStream(输入流)/OutputStream(输出流)为后缀的是字节流;以Reader(输入流)/Writer(输出流)为后缀的是字符流(底层还是使用字节流的方式实现,所以在读入和读出的时候要指定对应的编码格式,java默认使用的是UTF-16)。

        使用缓冲流和缓冲数组一般可以加快处理文件的速率

知识点十五:异常处理

        15.1常见异常

                     

error和exception的区别:

          Error类,表示仅靠程序本身无法恢复的严重错误,比如说内存溢出、动态链接异常、虚拟机错误。应用程序不应该抛出这种类型的对象。假如出现这种错误,除了尽力使程序安全退出外,在其他方面是无能为力的。所以在进行程序设计时,应该更关注Exception类。

        Exception类,由Java应用程序抛出和处理的非严重错误,比如所需文件没有找到、零作除数,数组下标越界等。它的各种不同子类分别对应不同类型异常。可分为两类:Checked异常和Runtime异常        

以上内容是对尚硅谷对应课程和资料的个人总结,仅为个人笔记,可能存在部分偏差!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值