![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java基础
一个热爱java的小白
这个作者很懒,什么都没留下…
展开
-
对象处理流的一些细节
3.建议添加一个servialVersionUID,提高版本兼容性,当我们对类属性进行操作时,不会认为产生了新的类。6.序列化具备可继承性,如果A类实现了Servialable接口,a继承了A,那么a也具备序列化和反序列化。4.序列化时默认将所有属性都进行序列化,除了static 和 transient 修饰的成员。5.序列化对象时要求里面属性的类型也必须实现Serializable接口。2.要求序列化或者发序列化对象实现Serializable接口。1.读写顺序要一致,原创 2023-06-15 19:20:52 · 42 阅读 · 0 评论 -
简单模拟BufferedRead包装流
包装流使用了修饰器模式,不会与原数据直接相连,提高了处理效率。同时他也提供了一系列便捷 的方法来处理一次输入大批量的数据。下面的代码就是简单模拟一下包装流,便于大家理解修饰器模式。原创 2023-06-11 11:25:27 · 38 阅读 · 0 评论 -
java中线程创建
当我们的程序开始运行时会成为一个进程,执行到main方法是会创建一个名为main的线程,执行到start时又会创建一个子线程。需要注意的是当主线程结束时,子线程不会立即结束,而是会继续执行,直到结束。本文介绍java中两种线程创建的方法,第一种是通过继承Thread类然后调用其start方法,第二种是实现Runnable接口然后代理调用。以上就是两种创建方式,个人感觉使用上没有什么本质的区别,唯一的就是用Rannable的话可以将同一个对象作为参数传入不同的线程,做到资源共享。下面是第一种创建方法。原创 2023-05-31 23:23:11 · 45 阅读 · 1 评论 -
方法的重载和重写
1.在一个类中多个方法具有相同的方法名2.方法的形参列表必须不同(具体指形参的类型,顺序,个数,对形参的名称没有要求)3.对方法的返回类型也没有具体要求话不多说直接上代码class A {结果分析1 2 构成方法的重载 形参列表的顺序不一样1 3 构成方法的重载 形参列表的个数不一样1 4 构成方法的重载 形参列表的类型不一样1 5 不构成方法的重载 方法重载与返回类型无关1 6 不构成方法的重载 方法重载与形参的名字无关。原创 2023-04-21 21:31:07 · 66 阅读 · 0 评论 -
ArrayList底层扩容机制详解
第一次添加的时候elementDate为空,所以会进入if语句调用Math类的max方法将minCapacity赋值10,所以ArrayList的初始容量为10,第二次添加的时候则会直接进入ensureExplicitCapacity(minCapacity);每次添加底层都会进行判断,但并不会扩容,只有当元素个数超出时才会进入grow方法进行真正的扩容,因为每次都要进行判断由此可见ArrayList的效率不会太高。绕后进入if语句,当最小容量大于数组长度时就要进行扩容,进入grow方法。原创 2023-05-12 11:42:47 · 99 阅读 · 0 评论 -
IO流的简单梳理
Writer是所有字符输入流的父类,我们可以看见Writer并不是FileWriter的直接父类,平时我们使用FileWriter更多。这是它的类图,InputStrem是所有字节输入流的超类,同时它还是个抽象类。从图中我们可以看出,它继承了Reader所以它是一个字符转换流,从它的构造器中能知道,它能接受InputStrem的子类同时我们还可以指定编码方式。IO流是用来处理二进制文件或者文本文件的,IO流简单分为输入流和输出流,输入输出流又分为字符输入输出流和字节输入输出流。下面就是字符输入输出流。原创 2023-06-19 13:14:31 · 35 阅读 · 0 评论 -
文件的相关内容
delete:删除空目录或文件。2.根据父目录文件+子路径创建。mkdirs:创建多级目录。3.根据父目录+子路径创建。mkdir:创建一级目录。目录的操作和文件删除。原创 2023-06-19 19:32:22 · 25 阅读 · 0 评论 -
JAVA中的装箱,拆箱,包装类型和String类型的相互转化
jdk5以前装箱和拆箱都是手动完成的,在jdk5及其以后装箱和拆箱可以自动实现。原创 2023-05-06 19:13:17 · 55 阅读 · 0 评论 -
override的相关使用
我们重写父类的方法时,通常会写上override,当我们进行编译时,编译器就会检查父类是否拥有此方法。如果父类有则编译通过,否则编译器就会报错。如果我们重写了父类的方法但是没有写override,也不会报错。原创 2023-05-05 21:06:41 · 30 阅读 · 0 评论 -
Java多态的相关内容
(1)对象的编译类型和运行类型可以不一致,编译类型在定义时,就已经确定不会再发生变化。(2)对象的运行类型可以变化的,能通过getclass()来查看。(3)编译类型看等号的左边,运行类型看等号的右边。1.方法的多态(相关内容可以参考这篇文章。原创 2023-04-21 22:04:06 · 65 阅读 · 2 评论 -
Tcp编程
第二个相对复杂一点,客户端发送一个想要下载的文件给服务端,服务端接收后开始查找,如果有就返回,否则返回默认文件,客户端收到返回后开始下载到本地。下面是两个小案例,第一个是客户端给服务端发送要下载的图片路径,客户端在收到后完成下载。Tcp是网络编程中使用最多的一种,因为他可靠也能传输数据量大的文件。原创 2023-06-23 14:25:26 · 45 阅读 · 1 评论 -
java中反射机制
反射机制在java中是非常重要的,我们在后续学习相关框架的时候一定会用到,通过反射我们可以在不修改源代码的情况下控制程序。这是类加载的三个阶段,需要注意的是最后一个初始化的是静态成员,因为静态成员是和类相关联的。缺点是:使用效率会有影响,可以使用setAccessible()方法进行优化。反射的优点是:使用更加灵活,可以动态的使用和创建对象。上面是java程序的三个阶段。原创 2023-07-05 17:43:11 · 40 阅读 · 0 评论 -
反射相关的类
3.使用Class类的forName()方法获取class对象:可以使用Class类的 forName() 方法来获取指定类的class对象。2.使用对象的getClass()方法获取class对象:对于已经创建的对象,可以使用该对象的 getClass() 方法来获取其对应的class对象。getParameterTypes():获取构造方法的参数类型,返回一个Class数组,可以通过Class类的方法获取参数类型的信息。它提供了一些常用的方法来获取类的信息和操作类的属性。原创 2023-07-05 19:01:59 · 53 阅读 · 0 评论