自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

原创 事务的优点

最近学习事务的相关知识,打算总结一下它的优点1.数据的一致性:事务可以确保一组操作要么全部成功要么全部失败。这样可以保证数据的一致性,避免了在一组操作中出现部分操作成功而部分操作失败的情况。2. 数据的完整性:事务可以将一组操作当作一个逻辑单元,这样可以保证数据库中的数据一直处于有效和完整的状态。在事务中,可以定义一些约束条件和验证规则,确保数据的完整性。3. 并发控制:在并发环境下,多个用户或应用程序可能同时对数据库进行读写操作。

2023-07-26 22:38:34 249

原创 MySQL数据库入门

utf8_bin 这个是区分大小写的。这是用命令行的方式备份数据库,需要在DOS下以管理员的身份进行运行。最近学习了MySQL的初级,相关的指令较多所以总结梳理一下。注意这里不需要再写 -B否则会认为后面的都是数据库,就会报错。这个指令是用来启动Windows下的MySQL服务的。通过上面的指令进入到mysql中执行下面的指令。这个是创建一个名为db01的数据库。恢复文件是需要在MySQL中执行。查看当前创建的数据库的详细信息。这个是删除db01数据库。以上就是和数据库相关的操作。用来查看有哪些数据库。

2023-07-10 16:01:14 46 1

原创 反射相关的类

3.使用Class类的forName()方法获取class对象:可以使用Class类的 forName() 方法来获取指定类的class对象。2.使用对象的getClass()方法获取class对象:对于已经创建的对象,可以使用该对象的 getClass() 方法来获取其对应的class对象。getParameterTypes():获取构造方法的参数类型,返回一个Class数组,可以通过Class类的方法获取参数类型的信息。它提供了一些常用的方法来获取类的信息和操作类的属性。

2023-07-05 19:01:59 50

原创 java中反射机制

反射机制在java中是非常重要的,我们在后续学习相关框架的时候一定会用到,通过反射我们可以在不修改源代码的情况下控制程序。这是类加载的三个阶段,需要注意的是最后一个初始化的是静态成员,因为静态成员是和类相关联的。缺点是:使用效率会有影响,可以使用setAccessible()方法进行优化。反射的优点是:使用更加灵活,可以动态的使用和创建对象。上面是java程序的三个阶段。

2023-07-05 17:43:11 38

原创 Tcp编程

第二个相对复杂一点,客户端发送一个想要下载的文件给服务端,服务端接收后开始查找,如果有就返回,否则返回默认文件,客户端收到返回后开始下载到本地。下面是两个小案例,第一个是客户端给服务端发送要下载的图片路径,客户端在收到后完成下载。Tcp是网络编程中使用最多的一种,因为他可靠也能传输数据量大的文件。

2023-06-23 14:25:26 44 1

原创 udp编程

相比与Tcp,Udp的优点就是发送速度快,但是确不可靠,因为它是将数据封装成包进行传,不需要建立连接。因此它在数据发送结束时无需释放资源。它不适合传输大量数据,每个数据包的大小需要控制在64k以内。下面是它的简单案例,发送端给接收端发送hello,receive。接收端收到后回复,hello,send。今天看了Udp编程的相关内容简单记录一下。

2023-06-23 10:46:43 39 1

原创 InetAdress类的简单方法

下面是InetAdress类的常见方法。

2023-06-20 16:30:26 65

原创 文件的相关内容

delete:删除空目录或文件。2.根据父目录文件+子路径创建。mkdirs:创建多级目录。3.根据父目录+子路径创建。mkdir:创建一级目录。目录的操作和文件删除。

2023-06-19 19:32:22 24

原创 IO流的简单梳理

Writer是所有字符输入流的父类,我们可以看见Writer并不是FileWriter的直接父类,平时我们使用FileWriter更多。这是它的类图,InputStrem是所有字节输入流的超类,同时它还是个抽象类。从图中我们可以看出,它继承了Reader所以它是一个字符转换流,从它的构造器中能知道,它能接受InputStrem的子类同时我们还可以指定编码方式。IO流是用来处理二进制文件或者文本文件的,IO流简单分为输入流和输出流,输入输出流又分为字符输入输出流和字节输入输出流。下面就是字符输入输出流。

2023-06-19 13:14:31 34

原创 对象处理流的一些细节

3.建议添加一个servialVersionUID,提高版本兼容性,当我们对类属性进行操作时,不会认为产生了新的类。6.序列化具备可继承性,如果A类实现了Servialable接口,a继承了A,那么a也具备序列化和反序列化。4.序列化时默认将所有属性都进行序列化,除了static 和 transient 修饰的成员。5.序列化对象时要求里面属性的类型也必须实现Serializable接口。2.要求序列化或者发序列化对象实现Serializable接口。1.读写顺序要一致,

2023-06-15 19:20:52 41

原创 简单模拟BufferedRead包装流

包装流使用了修饰器模式,不会与原数据直接相连,提高了处理效率。同时他也提供了一系列便捷 的方法来处理一次输入大批量的数据。下面的代码就是简单模拟一下包装流,便于大家理解修饰器模式。

2023-06-11 11:25:27 36

原创 java中线程创建

当我们的程序开始运行时会成为一个进程,执行到main方法是会创建一个名为main的线程,执行到start时又会创建一个子线程。需要注意的是当主线程结束时,子线程不会立即结束,而是会继续执行,直到结束。本文介绍java中两种线程创建的方法,第一种是通过继承Thread类然后调用其start方法,第二种是实现Runnable接口然后代理调用。以上就是两种创建方式,个人感觉使用上没有什么本质的区别,唯一的就是用Rannable的话可以将同一个对象作为参数传入不同的线程,做到资源共享。下面是第一种创建方法。

2023-05-31 23:23:11 44 1

原创 vector底层扩容机制

vector是采用的三目运算符进行扩容,当我们采用无参构造器或只有一个参数的构造器时,构造器默认将capacityIncrement设为0(如果我们传两个参数则可以控制capacityIncrement大小),因此vecto初始容量时10,当容量不够时按2倍扩容。二者结构上有很多相似的地方。与ArrayList不同的是,二者都调用无参构造器,vector容量默认就是10,而ArrayList初始是0第一次添加的时候才是10。从这里可以看出不管我们是否传参(传两个参数的后面说明)最终都会调用无参构造器。

2023-05-13 12:22:13 97

原创 ArrayList底层扩容机制详解

第一次添加的时候elementDate为空,所以会进入if语句调用Math类的max方法将minCapacity赋值10,所以ArrayList的初始容量为10,第二次添加的时候则会直接进入ensureExplicitCapacity(minCapacity);每次添加底层都会进行判断,但并不会扩容,只有当元素个数超出时才会进入grow方法进行真正的扩容,因为每次都要进行判断由此可见ArrayList的效率不会太高。绕后进入if语句,当最小容量大于数组长度时就要进行扩容,进入grow方法。

2023-05-12 11:42:47 98

原创 JAVA中的装箱,拆箱,包装类型和String类型的相互转化

jdk5以前装箱和拆箱都是手动完成的,在jdk5及其以后装箱和拆箱可以自动实现。

2023-05-06 19:13:17 54

原创 override的相关使用

我们重写父类的方法时,通常会写上override,当我们进行编译时,编译器就会检查父类是否拥有此方法。如果父类有则编译通过,否则编译器就会报错。如果我们重写了父类的方法但是没有写override,也不会报错。

2023-05-05 21:06:41 28

原创 单例设计模式

前几天学习了Java单例设计模式中的两种,饿汉式和懒汉式。提示:以下是本篇文章正文内容,下面案例可供参考一定会有小伙伴问为什么类内部创建的对象,对象的引用还有方法都是静态的呢?因为我们对构造器进行了私有化,外部无法创建对象,所以普通方法无法调用,因此只能创建静态方法,通过类名来直接调用。又因为静态方法中只能调用,返回静态成员,所以内部创建的对象的对象的引用只能是静态的。

2023-04-24 19:23:25 30

原创 Java多态的相关内容

(1)对象的编译类型和运行类型可以不一致,编译类型在定义时,就已经确定不会再发生变化。(2)对象的运行类型可以变化的,能通过getclass()来查看。(3)编译类型看等号的左边,运行类型看等号的右边。1.方法的多态(相关内容可以参考这篇文章。

2023-04-21 22:04:06 64 2

原创 野指针,悬挂指针的介绍

相信我们在c语言的学习中一定会遇到有关野指针和悬挂指针的陷阱。

2023-04-21 21:40:28 81

原创 方法的重载和重写

1.在一个类中多个方法具有相同的方法名2.方法的形参列表必须不同(具体指形参的类型,顺序,个数,对形参的名称没有要求)3.对方法的返回类型也没有具体要求话不多说直接上代码class A {结果分析1 2 构成方法的重载 形参列表的顺序不一样1 3 构成方法的重载 形参列表的个数不一样1 4 构成方法的重载 形参列表的类型不一样1 5 不构成方法的重载 方法重载与返回类型无关1 6 不构成方法的重载 方法重载与形参的名字无关。

2023-04-21 21:31:07 65

原创 常见的时间复杂度计算

常见时间复杂度的举例

2023-02-12 17:25:31 246 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除