自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 redis面试题-开篇-缓存-缓存三兄弟(穿透,击穿,雪崩)

缓存击穿:给某一个key设置了过期时间,当key过期的时候,恰好这时间点对这个key有大量的并发请求过来,这些并发的请求可能瞬间把DB压垮。缓存穿透:查询一个不存在的数据,mysql查询不到数据也不会直接写入缓存,就会导致每次请求都查询数据库。3.缓存:缓存三兄弟(穿透,击穿,雪崩),双写一致,持久化,数据过期策略,数据淘汰策略。解决方案一:缓存空数据,查询返回的数据为空,仍把这个空结果进行缓存。2.一定要结合项目,比如缓存,分布式锁,消息队列,延迟队列。缺点:实现复杂,存在误判。解决方案二:布隆过滤器。

2023-12-18 21:55:51 457

原创 redis入门

为热点数据加速查询(主要场景),如热点商品、热点新闻、热点资讯、推广类等高访问量信息等【缓存】即时信息查询,如排行榜、各类网站访问统计、公交到站信息、在线人数信息(聊天室、网站)、设。redis 自身是一个 Map,其中所有的数据都是采用 key : value 的形式存储。数据类型指的是存储的数据的类型,也就是 value 部分的类型,key 部分永远都是字符串。即 Not-Only SQL( 泛指非关系型的数据库),作为关系型数据库的补充。key是一个字符串,通过key获取redis中保存的数据。

2023-10-24 20:55:53 76

原创 深入探讨网络编程:架构、通信协议和要素

在现代软件开发中,网络编程是不可或缺的一部分。通过网络编程,我们能够实现不同设备之间的通信,打破了空间限制,使得信息能够迅速传递。本文将介绍网络编程的软件架构、网络通信协议以及网络编程中的重要要素。

2023-10-21 15:01:12 95

原创 用jQuery实现一个简单的tab栏切换

商品介绍</li><li>商品评价(50000)</li>2.点击的同时,得到当前li 的索引号。//3.对应的div实现显示,兄弟隐藏。<li>规格与包装</li>//2.获取当前li的下标。<li>售后保障</li><li>手机社区

2023-10-08 19:49:47 1018 1

原创 Java面试题(高频易错题)

默认方法抽象类可以有默认的方法实现;而接口类在JDK1.8之前版本,不存在方法的实现。实现方式抽象类子类使用extends关键字来继承抽象类,如果子类不是抽象类,子类需要提供抽象类中所声明方法的实现;而接口类子类使用implements来实现接口,需要提供接口中所有声明的实现。构造器抽象类中可以有构造器;而接口中不能有构造器。和正常类区别抽象类不能被实例化;而接口是完全不同的类型。访问修饰符抽象类中抽象方法可以有public、protected、default等修饰;

2023-09-01 19:24:24 96 2

原创 Java中的Stream流:流式思想、操作步骤与方法引用

方法引用是根据语义可以推导出来的情况下,简化Lambda表达式的方式。

2023-08-26 12:01:49 64 1

原创 Java中的函数式接口和函数式编程

自定义函数式接口可以满足特定场景下的需求,典型的使用场景是作为方法的参数。

2023-08-26 12:00:28 53

原创 Java中的反射机制

反射机制是指在运行时获取类的变量和方法的信息,并通过这些信息来创建对象。它为我们提供了一种灵活的方式来操作类的结构,使得我们可以在运行时动态地操作对象,而不需要提前在代码中硬编码。

2023-08-26 11:55:45 40

原创 Java中的特殊类——IO操作

I/O(Input/Output)是指数据的输入和输出,即数据的读取和写入操作。在Java中,我们常常需要将数据从内存存储位置传输到磁盘存储位置,或者反之。为了实现这种数据的传输,Java提供了丰富的I/O操作功能。

2023-08-17 14:45:38 42

原创 Lambda表达式在Java中的应用

Lambda表达式是Java 8引入的一种新特性,它结合了面向对象和函数式编程思想,用于简化代码编写过程。通过Lambda表达式,可以更加简洁地定义匿名函数并将其作为参数传递和使用。

2023-08-17 09:22:37 138 1

原创 Java递归

递归是一种在方法中调用自身的现象。

2023-08-15 19:32:30 65 1

原创 Java中的File类 - 文件与目录操作

File类是 Java 中用来表示抽象的文件和目录路径名的类。它为文件和目录操作提供了丰富的方法。

2023-08-15 19:27:56 108 1

原创 Java类中的特殊类之Date类

在Java编程中,处理日期和时间是非常常见的任务。Java提供了多种工具来处理日期、时间以及其格式化。在本文中,我们将深入探讨Java中的Date类、日期格式化以及Calendar类,了解如何在程序中灵活应用它们。

2023-08-10 08:51:29 75 1

原创 Java特殊类之包装类

包装类是 Java 中引用数据类型与基本数据类型之间的桥梁,它们允许将基本数据类型转换为对象,从而在面向对象的环境中操作基本数据类型。

2023-08-09 21:25:59 40

原创 正则表达式规则

`{n, m}`:匹配前面的元素出现至少 n 次,至多 m 次。- `[abc]`:匹配单个字符 `a`、`b` 或 `c`。- `[a-zA-Z]`:匹配任意一个英文字母,无论大小写。- `[a]`:匹配单个字符 `a`,可以简写为 `a`。- `[a-zA-Z0-9]`:匹配任意一个字母或数字。- `\d`:匹配一个数字字符,相当于 `[0-9]`。- `[0-9]`:匹配任意一个数字字符。- `[a-z]`:匹配任意一个小写字母。- `[A-Z]`:匹配任意一个大写字母。

2023-08-09 21:22:21 56

原创 Java面向对象重点之多态

通过多态,可以使代码适应未来的变化,降低耦合度,增加系统的可扩展性和可维护性。多态是面向对象编程的重要特性之一,它可以让不同的对象对同一消息作出响应,实现了对象的动态绑定和调用。- 成员变量:能够访问的变量取决于引用的类型,执行结果取决于引用的类型(编译看左边,运行看左边)。- 成员方法:能够调用的方法取决于引用的类型,执行结果取决于对象的类型(编译看左边,运行看右边)。为了避免异常,可以使用 `instanceof` 运算符进行类型判断,确保类型转换的安全性。其他: 可以 不可以 不可以 不可以。

2023-08-09 21:17:24 40

原创 Java面试题:重写与重载的比较

重写发生在父子类之间,用于在子类中重新定义父类中已有的方法,使得子类可以根据自身需求改变方法的实现。- **条件**:方法名称相同,参数列表不同(参数的类型、个数、顺序)。- **返回值**:重载与方法的返回值类型无关,只看方法名和参数列表。- **绑定时期**:运行期进行绑定(动态绑定,也称为运行时多态性)。- **条件**:方法的名称、返回值类型、参数列表相同。- **绑定时期**:编译期进行绑定。- **发生位置**:同一个类内部。- **发生位置**:父子类之间。

2023-08-09 21:12:45 66

原创 Java关键字之this

1. 区分成员变量和局部变量:在类的方法中,如果有成员变量和方法的参数或局部变量同名时,可以使用 `this` 关键字来引用成员变量。2. 在构造方法中调用另一个构造方法:在一个构造方法中,通过 `this` 关键字调用同类的另一个构造方法,用于重用代码。使用 `this` 关键字可以避免命名冲突,同时在成员方法中访问对象的成员变量,以及在构造方法中调用其他构造方法。3. 在方法中访问对象的成员:在方法中可以使用 `this` 关键字访问当前对象的成员变量和方法。## `this` 关键字:引用当前对象。

2023-08-09 21:10:33 110

原创 Java特殊类之内部类

枚举类是一种特殊的类,用于定义一组有限的命名常量。在 Java 中,枚举类型主要用于表示一组具有固定值的常量集合,这样可以提高代码的可读性和维护性。枚举成员的声明顺序必须先定义枚举常量,然后定义成员变量和方法。枚举类在代码中提供了一种更加结构化和安全的方式来表示一组相关的常量,避免了使用散乱的整数或字符串常量。每个枚举常量都被定义为枚举类的一个实例。每个枚举常量都可以有自己的属性和方法。- `values()` 方法:返回枚举类中所有的成员,以数组形式返回。枚举类自动提供了一些方法,可以用于访问枚举常量。

2023-08-09 21:07:33 34

原创 Java特殊类之内部类

内部类的使用可以提供更好的封装、代码组织和逻辑关联,同时还允许访问外部类的私有成员。局部内部类是在方法内部定义的类,它只能在定义它的方法内部使用。静态内部类是成员内部类中的一种特殊类型,使用 `static` 修饰。与成员内部类不同,静态内部类可以直接创建,不需要依赖于外部类的对象。匿名内部类是一种特殊的局部内部类,它没有显式的类名,通常用于创建只需要一次使用的类的实例。内部类是 Java 中一种特殊的类,定义在另一个类的内部。成员内部类是定义在外部类的内部,可以访问外部类的成员,包括成员变量和方法。

2023-08-09 21:05:05 43

原创 Java面向对象之接口(Interfaces)

1. **成员变量:** 在接口中定义的变量实际上是常量,通常使用 `public static final` 修饰符,也就是说它们是公共的、静态的和不可修改的。一个类可以实现多个接口,通过实现接口中的抽象方法,该类就需要提供这些方法的具体实现。2. **抽象方法:** 所有在接口中定义的方法都是抽象方法,它们不包含方法体,只有方法声明,通常使用 `public abstract` 修饰符。在面向对象的设计中,接口是一种强大的工具,它将类的行为和规范分离,提供了良好的代码组织和扩展性。

2023-08-09 21:02:45 86

原创 Java关键字详解:static 和 final

2. **静态方法:** 使用 `static` 修饰的方法是类级别的,可以通过类名直接调用,无需创建类的实例。3. **常量:** 在类中使用 `static final` 修饰的成员变量通常被定义为常量,它们的值在初始化后不能被修改。3. **final 成员变量:** 使用 `final` 修饰的成员变量是常量,它们的值在初始化后不能再被修改。这里的 `PI` 和 `E` 是类级别的常量,可以通过 `MathConstants.PI` 和 `MathConstants.E` 来访问。

2023-08-09 20:59:29 264

原创 面向对象思想

*面向对象编程(OOP)** 是一种编程思想,它通过将现实世界中的对象及其相互关系映射到程序中,以解决复杂性问题。- **多态**:允许不同的类实现相同的方法名,但是具体的实现可能不同。- **构造方法**:用于创建类的实例(对象)。- **继承**:允许一个类继承另一个类的属性和方法。创建新的类时可以重用现有类的特征。- **对象**:现实世界中的实体,拥有属性和方法。- **类**:对具有相同特征和行为的一类事物的抽象。- **封装**:将数据和操作数据的方法封装在一起,通过访问权限来保护数据。

2023-08-09 10:43:17 30

原创 一个标准的Java类

为每个私有成员变量提供对应的公共 Getter 和 Setter 方法。Getter 方法用于获取成员变量的值,Setter 方法用于设置成员变量的值。:至少需要提供两个构造方法,无参构造方法和全参构造方法。无参构造方法用于创建默认对象,全参构造方法用于在创建对象时提供所有必要的属性值。:根据类的业务需求,可以添加其他方法来实现类的功能。:成员变量是类的属性,用于存储对象的状态。方法可以使对象在被打印时更具可读性,便于调试和输出对象的信息。访问修饰符),以便通过公共的方法来访问和修改这些变量。

2023-08-07 11:17:58 105 1

原创 一个简单的冒泡排序

/运用Arrays.toString()方法输出排列好的数组。j++) {//进行arr.length-1的阶乘比较。if (arr[j] > arr[j+1]) {//如果前面的数大于后面的数就把前面和后面的数替换。i++) {//遍历整个数组。//定义一个空间存放取出来的数。arr[j+1]=a;//将取出来的数重新放进去。

2023-08-07 09:03:38 23 1

原创 Java类型转换详解

在Java中,类型转换是将一个数据类型转换为另一个数据类型的操作。在程序执行过程中,经常需要对不同类型的数据进行运算或比较,因此类型转换是非常常见的操作。Java中的数据类型分为四类八种,其中整数类型包括byte、short、int、long;浮点类型包括float、double;字符类型为char;布尔类型为boolean。

2023-07-22 11:52:49 418

原创 Java数组:存储多个数据的容器

简介:数组是一种重要的数据结构,用于存储多个相同类型的数据。它提供了一种有效的方式来管理和处理大量数据,是编程中常用的数据结构之一。在Java中,数组分为一维数组和二维数组两种类型。

2023-07-22 11:19:21 272

原创 循环:重复解决问题的有效工具

4.选择合适的循环在选择循环结构时,我们应根据不同的需求选择合适的循环:for循环适用于已知循环次数的情况,例如遍历数组或集合。while循环适用于不确定循环次数的情况,例如根据条件判断是否继续循环。do...while循环适用于需要先执行一次循环体,再判断条件是否满足的情况。

2023-07-22 11:05:42 143

原创 Java中的Random类:生成随机数的神奇工具

扩展:随机整数用的是最多的方法,可以有很多变形,比如生成从生成一个介于10到100(包括10和100)之间的随机整数,可以使用 random.nextInt(91) + 10。如果你的jdk版本在8及以上的版本中可以使用nextInt(int origin, int bound)方法用于生成介于origin(包括)和bound(不包括)之间的随机整数。比如生成从生成一个介于10到100(包括10和100)之间的随机整数,可以使用 random.nextInt(10,101)。

2023-07-22 10:40:39 2748

空空如也

空空如也

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

TA关注的人

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