- 博客(98)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 数据库系统概论:数据库的并发控制
数据库并发控制是确保数据一致性和隔离性的关键技术。通过合理的封锁策略、并发调度协议以及适当的隔离级别,可以有效地解决并发带来的问题。在实际应用中,应根据具体需求选择合适的并发控制策略,以平衡并发度和数据一致性。
2024-07-19 19:10:58
905
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 数据库系统概论:数据库系统的锁机制
在实际的数据库应用中,需要选择合适的锁机制取决于应用场景和性能要求。例如,在并发读操作较多的场景下,可以选择使用共享锁和行级锁来提高并发性能;而在并发写操作较多的场景下,则可能需要考虑使用排他锁和表级锁来确保数据的一致性。
2024-07-19 18:51:56
1250
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 数据库系统概论:事务与并发一致性问题
随着网络应用的普及,问题变得越来越重要。数据库并发指的是的能力。它是数据库系统性能优化的重要方面,旨在提高系统的吞吐量和响应时间,以满足多用户同时访问数据库的需求。然而,这种能力也带来了数据一致性隔离性和性能等方面的挑战。
2024-07-19 18:24:07
1065
原创 Java 入门指南:Java 并发编程 —— Synchronized 实现悲观锁(Pessimistic Locking)
悲观锁(Pessimistic Locking)是一种悲观的并发控制机制,它基于悲观的假设,即并发冲突会时常发生,因此在访问共享资源(如数据库记录或共享变量)之前,会先获取独占性的锁,以防止其他线程对资源的并发读写。synchronized 是Java中的关键字,用于实现线程的同步和互斥。synchronized 关键字可以用于修饰方法或代码块,用于控制对共享资源的访问。它的主要作用是 保证多个线程在并发执行时的安全性和一致性。
2024-08-31 23:38:50
522
原创 Java 入门指南:Java 并发编程 —— 线程安全问题与锁机制
线程安全可以简单理解为在多线程环境下,一个方法或实例在并发执行时能够保持数据的一致性和完整性,不会因为多个线程的交替执行而导致错误的结果。在多线程环境下,如果多个线程同时访问共享资源,并对其进行修改,可能会导致数据的不一致性或线程安全问题的发生。为了避免这种情况,我们可以使用锁机制来保护共享资源,使每次只有一个线程可以访问该资源。
2024-08-31 22:10:55
458
原创 Java 入门指南:Java 并发编程 —— JMM Java内存模型
JMM(Java Memory Model,Java 内存模型)(抽象模型)是用来描述和控制多线程之间内存可见性、有序性、原子性、指令重排等问题的规范。JMM 定义了一组规则,规定了在多线程环境下,线程在执行共享变量的读写操作时所应该遵守的顺序和限制,从而保证多线程之间的数据及时可见、有序和原子性。
2024-08-31 19:30:30
514
原创 Java 入门指南:Java 并发编程 —— 两万字详解 进程(Process)与线程(Thread)
进程(Process):进程是计算机中正在运行的程序的实例。它是操作系统分配系统资源的基本单位,包括程序代码、数据、打开的文件、内存空间、进程状态等。每个进程都有独立的内存空间和资源,彼此之间相互隔离、互不影响。进程之间通常通过进程间通信(IPC)机制进行数据交换和通信。线程(Thread):线程是进程中的一个执行单元,是 CPU 调度的最小单位。一个进程可以包含多个线程,在同一进程内的线程共享相同的内存空间和资源。线程之间通过共享内存来进行通信,可以更高效地进行数据交换。线程拥有独立的栈空间,但共享进
2024-08-31 10:20:03
779
原创 Java 入门指南:初识 Java 并发编程
并发编程是指在程序中同时执行多个任务的一种编程方式。它通常用于提高程序的性能和响应时间。在传统的单线程编程模型中,每次只能执行一个任务,当任务阻塞或耗时较长时,整个程序会变得缓慢。而并发编程则可以通过同时执行多个任务来提高程序的效率。并发编程可以通过多线程、多进程或者异步编程来实现。
2024-08-30 20:12:00
1512
原创 Java 入门指南:Java NIO —— Selector(选择器)
Selector 是 Java NIO(New I/O)库中的一个重要组件,它用于实现非阻塞 I/O 操作。它可以用于管理多个通道(如网络套接字或文件通道)的事件,从而使单个线程能够有效地处理多个通道的 I/O 操作。
2024-08-30 16:09:41
954
原创 Java 入门指南:Java NIO —— Buffer(缓冲区)
在 NIO(New Input/Output)模型中,Buffer 是一个重要的概念,与数据打交道,用于在内存中存储数据。通过 Channel 将数据传输到 Buffer 缓冲区中,并在缓冲区内进行数据的读写操作。Buffer 本质上是一个数组,可以存储多个相同类型的基本数据类型,如 byte、short、int、long、float、double 等。Buffer 封装了内部的数组,并提供了一些操作该数组的方法。
2024-08-30 10:40:01
703
原创 Java 入门指南:Java NIO —— Channel(通道)
通道(Channel)是 `NIO`(New Input/Output)模型中的一个重要概念。通道代表着与底层 I/O 设备(如文件、网络套接字等)之间的连接,用于将数据传输到缓冲区或从缓冲区传输数据。Channel 不与数据打交道,它只负责运输数据通道在 NIO 中起到了桥梁作用,负责将数据从缓冲区传输到通道或者从通道传输到缓冲区。它是一个双向的数据传输通道。
2024-08-29 19:12:03
983
原创 Java 入门指南:Java IO流 —— 文件类
在 IO 操作中,文件的操作相对来说是比较复杂的,但也是使用频率最高的部分,几乎所有的项目中几乎都有一个叫做 FileUtil 或者 FileUtils 的工具类。java.io.File 类是专门对文件进行操作的类,注意只能对文件本身进行操作,不能对文件内容进行操作(与流无关),想要操作内容,必须借助输入输出流。
2024-08-29 16:40:15
1019
原创 Java 入门指南:初识 Java NIO
Java1.4 版本引入了 NIO(New I/O or Non-Blocking I/O)java.nio。提供了一种基于缓冲区、选择器和非阻塞 IO 模型的 IO 处理方式。相比于之前的 `BIO` 模型,NIO 可以实现更高的并发、更低的延迟以及更少的资源消耗。
2024-08-29 15:48:22
651
原创 Java 入门指南:Java Socket 网络通信编程
Socket(套接字)是用于网络通信的编程接口、网络通信的基础,通过它可以实现不同计算机之间的数据传输,应用程序可以通过它发送或接收数据;就像操作文件那样可以打开、读写和关闭。它提供了一种机制,使得计算机之间可以进行数据的发送和接收。
2024-08-28 18:50:18
1316
原创 Java 入门指南:Java IO 设计模式
Java 设计模式是一组被广泛应用于Java程序设计中的解决常见问题的可复用设计方案。这些设计模式通过提供一套经过验证的面向对象的设计原则和思想,可以帮助开发人员更好地组织和设计他们的代码。在Java IO 中,并没有像创建型、结构型和行为型等常见的设计模式那样有明确的命名模式。然而,Java IO库本身包含了一些常见的设计概念和模式,可以用来引导开发人员设计高效可靠的 IO 代码。
2024-08-28 14:58:36
1004
原创 Java 入门指南:Java IO流 —— 转换流、扫描流、打印流
转换流可以将一个 字节流 包装成 字符流,或者将一个字符流包装成字节流。这种转换通常用于处理文本数据,如读取文本文件或将数据从网络传输到应用程序。
2024-08-28 10:45:47
938
原创 Java 入门指南:Java IO流 —— 序列化与反序列化
序列化是指将对象转换为字节流的过程,以便能够将其存储到文件、内存、网络传输等介质中,或者在不同的进程、网络或机器之间进行数据交换。序列化的逆过程称为反序列化,即将字节流转换为对象。过反序列化,可以从存储介质或网络传输中读取数据,并重新构建对象。
2024-08-27 22:04:21
1209
原创 Java 入门指南:Java IO流 —— 字符流
字符流(Character Stream)以字符为单位进行读取和写入操作,适用于处理文本文件、配置文件、文档等纯文本数据。字符流是由 Java 虚拟机将字节转换得到的,默认采用的是 Unicode 编码,我们可以通过构造方法自定义编码。
2024-08-27 21:41:08
1025
原创 Java 入门指南:Java IO流 —— 字节流
字节流以字节为单位进行输入和输出的操作,主要用于处理二进制数据。它以字节为单位进行读取和写入操作,适用于处理二进制文件、图片、音频、视频等非文本数据。
2024-08-27 19:40:55
777
原创 Java 入门指南:Java IO 模型
Java中的 IO(Input/Output)模型是管理计算机与外部设备(如磁盘、网络等)之间数据交换的重要机制。它定义了数据如何在应用程序和操作系统之间流动,以及如何处理这些流动过程中的阻塞、非阻塞、同步和异步等问题。Java中常见的IO模型包括 BIO(Blocking I/O,阻塞IO)、NIO(Non-Blocking I/O,非阻塞IO)、AIO(Asynchronous I/O,异步IO)等。
2024-08-26 18:54:08
2041
原创 Java 入门指南:初识 Java IO
Java IO(Input/Output)是 Java 编程语言中用于处理输入和输出的标准库,它提供了一组类和接口,用于在程序和外部世界(如文件、网络连接、内存等)之间进行数据传输。Java IO库被设计为两个主要层次:字节流和字符流,每种流都适用于不同的数据处理场景。
2024-08-26 17:53:31
813
原创 Java 入门指南:异常处理的实践规范
在 Java 中处理异常并不是一个简单的事情。需要花费很多时间来思考如何处理异常,包括需要处理哪些异常,怎样处理等等。抛出或捕获异常的时候,有很多不同的情况需要考虑,而且大部分事情都是为了改善代码的可读性或者 API 的可用性。
2024-08-26 11:55:40
1066
原创 Java 入门指南:异常处理(Exception Handling)
异常处理是一种处理运行时错误的机制,是处理运行时错误的有效方法之一,这样可以保留应用程序的常规流程。Java为异常设计了一套 异常处理机制(Exception Handling),当程序运行过程中发生一些异常情况时,程序不会返回任何值,而是抛出封装了错误信息的异常对象。这样保证程序代码更加优雅,并提高程序的健壮性。
2024-08-25 22:38:23
910
原创 Java 入门指南:初识 Java 异常(Exception)
在Java中,异常是一个不需要的或意外的事件,它发生在程序执行期间,即在运行时,破坏了程序指令的正常流程。异常可以被程序捕获(catch)和处理(handle)
2024-08-25 22:07:11
998
原创 Java 入门指南:Java 泛型(generics)
泛型是Java中一种强大的特性,它允许我们编写类型安全且可重用的代码。通过使用泛型,我们可以创建灵活的组件,这些组件可以处理不同的数据类型,同时保持代码的简洁性和可读性。了解泛型的基本概念和高级用法对于编写高质量的Java程序至关重要。
2024-08-24 19:08:27
746
原创 Java 入门指南:迭代器(Iterator)
迭代器(Iterator) 是一种行为型设计模式,属于设计模式之一,迭代器模式提供了一种方法来顺序访问一个聚合对象(如List、Set等)中各个元素,而不需要暴露该对象的内部表示。
2024-08-24 15:35:41
761
原创 Java 入门指南:Map 接口
Map 接口是 Java 集合框架中的一个接口,它表示了一种键值对的映射关系。Map 接口提供了一种以键为索引的数据结构,通过键可以快速查找对应的值。在 Map 中,每个键只能对应一个值,键是唯一的,但值可以重复。
2024-08-24 12:47:22
1142
原创 Java 入门指南:Queue 接口
Queue接口是Java集合框架中的一个重要组成部分,它定义了一种先进先出(FIFO, First-In-First-Out)的数据结构,用于存储和管理元素。Queue接口继承自Collection接口,并提供了一系列方法来支持队列的基本操作,如添加元素、移除元素和检查队列的状态。队列的一个关键特性是只能在一端添加元素(队尾),而在另一端移除元素(队首)。Queue接口有多种实现类,包括LinkedList、ArrayDeque和PriorityQueue等,每种实现都有其特定的用途和性能特点。
2024-08-22 22:09:42
801
原创 Java 入门指南:Set 接口
Set接口是Java集合框架中的一个重要组成部分,它是一个不允许重复元素的集合。Set接口继承自Collection接口,提供了一种存储唯一元素的方式,确保集合中的每个元素都是唯一的。Set的主要特点是无序性和唯一性,这意味着元素不会按照特定的顺序排列,并且不允许存在相同的元素。
2024-08-22 20:04:12
1117
原创 Java 入门指南:List 接口
List 接口是 Java 集合框架(Java Collections Framework)中的一个重要接口,它继承自 Collection 接口。
2024-08-21 23:29:25
1078
原创 Java 入门指南:集合概述
Java 集合(Collections)是 Java 中提供的一种容器,用于存储和管理多个对象。与数组不同,集合的长度是可变的,且只能存储对象(包括对象的引用),不能存储基本数据类型。集合是 Java 编程中非常重要的一部分,特别是在处理大量数据时,集合提供了丰富的操作方法和灵活的数据结构。
2024-08-21 23:05:40
1050
原创 Java 入门指南:注解(Annotation)
Java注解(Annotation)是一种附加在代码中的元数据,用于对程序代码进行说明和补充。同 class 类 和 interface 接口 一样,也属于一种类型。它是在 Java SE 5 中引入的一项新特性,常用于配置、编译和运行时的处理。但是注解并不是所装饰代码的一部分,它对代码的运行效果没有直接影响。
2024-08-21 22:44:42
781
原创 Java 入门指南:反射机制
反射机制是指在运行时动态地获取类的信息并操作类和对象的方法和属性。它是一种 Java 语言的特性,可以让程序在运行时获取类的信息,包括类型、属性、方法等,并且可以在运行时动态地创建对象、调用对象的方法、修改属性等。
2024-08-19 21:05:30
832
原创 Java 入门指南:Bean 特殊的Java类
JavaBean是一种符合特定约定的 Java 类,用于在 Java 程序中封装数据和行为。它是一种重要的编程模式,用于简化和统一对象的创建、访问和操作,使得其他Java类可以通过自省(反射)机制来发现和操作这些 JavaBean 的属性。
2024-08-15 22:58:41
403
原创 Java 入门指南:接口(Interface)
在Java编程中,接口(Interface)是一种非常重要的概念,它不仅是面向对象编程(OOP)的基石之一,也是实现高内聚、低耦合设计原则的关键工具。接口定义了一组方法,但不提供这些方法的实现细节,而是由实现接口的类来具体实现。这种机制使得Java程序更加灵活、易于扩展和维护。
2024-08-15 22:50:08
1143
原创 Java 入门指南:类加载器详解
类加载器(Class Loader)是Java虚拟机(JVM)的一个重要组成部分,它负责将Java类的字节码加载到内存中,并转换成JVM能够识别的类对象。类加载器在Java应用程序中扮演着至关重要的角色,它实现了类的动态加载机制,使得Java具备了高度的灵活性和可扩展性。
2024-08-14 21:03:52
1014
原创 Java 入门指南:字段(成员变量或属性)
在Java编程中,字段(也称为成员变量或属性)是类的重要组成部分,它们用于存储对象的状态信息。理解Java字段的各个方面对于编写高效、可维护的Java代码至关重要。
2024-08-13 21:58:00
372
原创 Java 入门指南:构造器
在Java中,构造器(Constructor)是一种特殊的方法,用于创建和初始化对象。它与类名相同,没有返回类型(甚至不能写void),主要用于在对象创建时设置对象的初始状态。构造器在面向对象编程中起着至关重要的作用,它确保了每个对象在创建时都有一个有效的初始状态。在对象创建时,Java虚拟机(JVM)会自动调用构造器,以确保对象的初始状态。
2024-08-13 20:57:10
528
原创 Java 入门指南:修饰符
Java 修饰符是一种关键字,用于修饰类、方法、变量和构造函数的访问权限和行为。这些修饰符在Java编程中起着至关重要的作用,它们控制元素的可见性、继承性、赋值性等特性。以下是对Java中常见修饰符的详细解析。
2024-08-10 10:33:03
694
原创 Java 入门指南:非访问修饰符
在Java中,非访问修饰符(也称为非权限修饰符)主要用于控制类、方法或变量的特定行为,而不是访问级别。这些修饰符不改变成员(变量、方法或类)的可见性,而是影响它们的使用方式、存储方式或执行方式。
2024-08-10 00:32:36
784
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人