有的时候博客内容会有变动,首发博客是最新的,其他博客地址可能会未同步, 认准 https://blog.zysicyj.top
if (typeof lightGallery !== 'undefined') {
var options = {selector: '.gallery-item'};
lightGallery(document.getElementsByClassName('.article-gallery')[0], options);
}
var isMobile = navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i);
var isEncrypt = document.getE ...
有的时候博客内容会有变动,首发博客是最新的,其他博客地址可能会未同步, 认准 https://blog.zysicyj.top
在 Java 中,如果需要表示超过 long 类型范围的数据,可以使用 BigInteger 类。BigInteger 是 Java 提供的一个用于处理任意精度整数的类,它可以表示非常大或非常小的整数。
BigInteger 类位于 java.math 包中,可以通过以下方式进行实例化:
123import java.math.BigInteger;BigInteger bigInteger = new BigInteger("12345678901234567890");
上述代码创建了一个 BigInteger 对象,其值为 “12345678901234567890”。BigInteger 类支持各种算术运算和比较操作,例如加法、减法、乘法、除法等。
下面是一些常用的 BigInteger 方法示例:
1234567891011121314151617181920212223242526BigInteger a = n ...
有的时候博客内容会有变动,首发博客是最新的,其他博客地址可能会未同步, 认准 https://blog.zysicyj.top
1. 什么是 Crash-safe?Crash-safe,顾名思义,就是系统在突发的宕机或者崩溃情况发生时,对数据的安全性进行保护。在数据库中,我们把这个概念进一步细化,特指某种数据库特性或者机制,可以在系统宕机或者异常终止的情况下,保证数据的一致性和完整性。
MySQL 中有一个独立的存储引擎 InnoDB,它实现了 Crash-safe 特性,这是因为 InnoDB 使用了一种叫做 Write-AheadLogging(预写式日志)的技术。即在数据库的任何修改之前,都要先将数据和日志记录到磁盘上的日志文件中,这就确保了在系统奔溃时数据的完整性和一致性。
2. 为什么需要 Crash-safe?我们知道,对于一个数据库而言,保存和处理数据是它的核心职责之一。然而在现实世界中,各种不可预料的情况都可能导致数据库服务器宕机,例如硬件故障、系统故障、软件异常等。在这些情况下,如果没有合适的机制来保护数据,那么可能会造成数据的丢失、损坏或者不一致,给企业带来巨 ...
有的时候博客内容会有变动,首发博客是最新的,其他博客地址可能会未同步, 认准 https://blog.zysicyj.top
1. 什么是 String.equals() 和 Object.equals()?
String.equals() 是 Java 中 String 类的一个方法,用于比较两个字符串是否相等。
Object.equals() 是 Java 中所有对象的基本方法,用于比较两个对象是否相等。
2. 为什么需要 String.equals() 和 Object.equals()? 在编程过程中,我们经常需要比较两个字符串或者两个对象是否相等。因此,Java 提供了 String.equals() 和 Object.equals() 这两个方法来满足这个需求。
3. String.equals() 和 Object.equals() 的实现原理?
String.equals() 方法会先判断两个字符串的引用是否指向同一个对象,如果是,则直接返回 true;否则,再判断两个字符串的内容是否相等。它会逐个字符地比较两个字符串对应位置上的字符是否相等,如果有不相等的 ...
有的时候博客内容会有变动,首发博客是最新的,其他博客地址可能会未同步, 认准 https://blog.zysicyj.top
这句代码创建了两个字符串对象。
首先,通过 new String("abc") 创建了一个新的字符串对象,内容为 “abc”。这个对象存储在堆内存中,并且有自己的地址。
然后,将这个字符串对象的引用赋值给 s1 变量,此时 s1 指向了堆内存中的这个字符串对象。
总结一下:
通过 new String("abc") 创建了一个字符串对象。
将这个字符串对象的引用赋值给 s1 变量。
if (typeof lightGallery !== 'undefined') {
var options = {selector: '.gallery-item'};
lightGallery(document.getElementsByClassName('.article-gallery')[0], options);
}
v ...
有的时候博客内容会有变动,首发博客是最新的,其他博客地址可能会未同步, 认准 https://blog.zysicyj.top
continue、break 和 return 是在编程中常用的控制流语句,它们有不同的作用和使用场景。
continue:当程序执行到 continue 语句时,会跳过当前循环中剩余的代码,并开始下一次循环。通常用于在循环中遇到某些条件时,跳过当前迭代,直接进入下一次迭代。
例如,在一个 for 循环中,如果需要跳过某些特定的值,可以使用 continue 语句:
123456for (int i = 0; i < 10; i++) { if (i == 5) { continue; } System.out.println(i);}
输出结果为:0 1 2 3 4 6 7 8 9
break:当程序执行到 break 语句时,会立即终止当前所在的循环或者 switch 语句,并跳出该结构体外部的代码块。通常用于在满足某个条件时,提前结束循环或者跳出 swi ...
有的时候博客内容会有变动,首发博客是最新的,其他博客地址可能会未同步, 认准 https://blog.zysicyj.top
1. 什么是 hashCode()?hashCode() 是 Java 中的一个方法,它用于返回对象的哈希码。哈希码是根据对象的内容计算出来的一个整数值。
2. 为什么需要 hashCode()?在 Java 中,我们经常需要对对象进行比较和存储。使用 hashCode() 方法可以提高对象比较和存储的效率。
对象比较:当我们需要判断两个对象是否相等时,通常会先比较它们的哈希码,如果哈希码不同,则可以直接判定两个对象不相等,从而避免了比较所有属性的开销。
对象存储:在集合类(如 HashMap、HashSet)中,对象的哈希码被用作索引或者散列桶的位置,通过哈希码可以快速定位到对象所在的位置,从而提高查找和插入的效率。
3. hashCode() 的实现原理?在 Java 中,默认情况下,hashCode() 方法是根据对象的内存地址计算得到的。也就是说,每个对象都有一个唯一的哈希码。
然而,在实际应用中,我们往往需要根据对象的内容来计算哈希码,以便 ...
有的时候博客内容会有变动,首发博客是最新的,其他博客地址可能会未同步, 认准 https://blog.zysicyj.top
Java 中的 i = i++; 语句分析 在 Java 中,i = i++; 这条语句可能会让人困惑,因为它涉及到了后缀递增运算符 ++ 的使用。为了理解这条语句的行为,我们需要从 Java 虚拟机(JVM)的角度来分析它的执行过程。
后缀递增运算符 ++在 Java 中,后缀递增运算符 ++ 表示将变量的值增加 1。但是,当它作为后缀使用时,它会先返回变量的当前值,然后再将变量的值增加 1。
i = i++; 的执行步骤 假设变量 i 的初始值为 0,下面是 i = i++; 这条语句在 JVM 中的执行步骤:
取值:首先,JVM 会取得 i 的当前值,这里是 0。
递增:然后,JVM 会执行递增操作,将 i 的值增加 1,此时 i 变为 1。
赋值:最后,JVM 会将第一步中取得的原始值(0)赋值给 i。
这个过程可以用以下伪代码来表示:
123int temp = i; // Step 1: 取值i = i + 1; // Ste ...
有的时候博客内容会有变动,首发博客是最新的,其他博客地址可能会未同步, 认准 https://blog.zysicyj.top
1. 什么是 Java IO 模型?Java IO(Input/Output)模型是用于处理输入和输出的一种编程模型。它提供了一组类和接口,用于读取和写入数据流、文件、网络连接等。
在 Java 中,IO 操作可以分为两大类:字节流和字符流。字节流以字节为单位进行读写,而字符流以字符为单位进行读写,并且支持 Unicode 字符集。
Java IO 模型主要由以下几个核心概念组成:
输入流(InputStream):用于从源读取数据。
输出流(OutputStream):用于向目标写入数据。
字符输入流(Reader):用于从源读取字符数据。
字符输出流(Writer):用于向目标写入字符数据。
缓冲流(Buffered):提供缓冲功能,可以提高 IO 性能。
转换流(InputStreamReader 和 OutputStreamWriter):用于将字节流转换为字符流。
对象序列化(ObjectInputStream 和 ObjectOu ...
有的时候博客内容会有变动,首发博客是最新的,其他博客地址可能会未同步, 认准 https://blog.zysicyj.top
1. 什么是 AIO?AIO(Asynchronous I/O)即异步 I/O,是 Java 中一种基于事件和回调机制的 I/O 模型。它在进行 I/O 操作时不需要阻塞线程,而是通过操作系统提供的异步通知机制,在数据准备好后再通知应用程序进行读取或写入操作。
2. 为什么需要 AIO?传统的 I/O 模型中,如 BIO(同步阻塞 I/O)和 NIO(同步非阻塞 I/O),都需要使用多线程来处理并发请求。这样会导致线程数量增加,资源消耗大,并且难以管理。而 AIO 采用了异步的方式,可以在单个线程上同时处理多个连接,提高了系统的吞吐量和性能。
另外,由于 AIO 是基于事件和回调机制的,所以对于服务器端来说,可以更方便地实现高并发、高可扩展性的网络编程。
3. AIO 的实现原理?AIO 的实现原理主要涉及以下几个关键组件:
Channel:表示与文件或套接字相关联的对象,负责数据的 ...