自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java 静态内部类

静态内部类是使用static关键字修饰的内部类,它属于外部类本身,可以在外部类实例的情况下被创建和使用。

2025-10-10 13:46:15 297

原创 JAVA中的内部类

在 Java 中,内部类是定义在另一个类内部的类,包含它的类称为外部类, 其他无关的类就叫外部其他类,在外部其它类中可以创建内部类的对象。内部类是类的五大成员之一(属性、方法、构造方法、代码块、内部类)。

2025-10-04 06:08:46 373

原创 java面向对象基础:适配器设置模式之接口适配器

创建一个接口,包含若干抽象方法。

2025-10-03 20:36:25 798

原创 接口补充:java中接口和类的关系

只能单继承,不能多继承,但是可以多层继承。

2025-10-03 12:47:53 285

原创 Java 接口(Interface)

成员类型默认修饰符特点示例常量必须在声明时初始化。抽象方法没有方法体,由实现类提供具体实现。默认方法(Java 8以后)有方法体,实现类可以选择性覆盖。静态方法(Java 8以后)有方法体,只能通过接口名直接调用。私有方法(Java 9以后)private有方法体,用于接口内部默认方法和静态方法的代码重用。

2025-10-03 12:47:28 1011

原创 JAVA中的抽象类和抽象方法

抽象类是使用abstract关键字修饰的类,它不能被直接实例化。它通常用来作为父类,为子类提供统一的设计规范和部分默认实现。// 抽象类:定义了所有员工的基本行为和数据// 构造函数,用于子类初始化父类成员// 具体方法:所有员工都能执行// 抽象方法(见下文):薪水的计算方式必须由具体的子类定义抽象方法是用abstract关键字修饰的方法,只有方法声明,没有方法体。其目的在于强制子类提供该方法的具体实现。// 抽象方法。

2025-09-29 22:54:22 338

原创 java中代码块

在 Java 中,代码块(Code Block)是用一对大括号 {} 包裹起来的语句集合。根据其位置和修饰符不同,代码块可分为。它们在作用范围、执行时机和应用场景上各不相同。

2025-09-29 20:56:32 422

原创 JAVA中的权限修饰符

访问。

2025-09-28 18:46:19 592

原创 Java中final关键词与常量

字面量常量(Literal Constant):代码中直接写出来的固定值,例如 3.14、“Hello”。符号常量(Named Constant):通过关键字final声明的变量,赋值后不能修改。

2025-09-27 21:15:49 986

原创 【辨析】JAVA多态调用成员的特点

然而,当通过dog这个引用访问其成员时,我们面临一个核心问题:Java虚拟机(JVM)究竟会如何解析这个调用?是Animal,还是Dog?答案并非一概而论,这取决于调用的是还是。简言之,。

2025-09-22 11:09:00 267

原创 Java面向对象之多态

多态这个词来源于希腊语,意为“多种形态”。在Java中,它指的是同一个行为在不同的对象上,会产生不同的结果。想象一个简单的场景:有一个动物类,它有一个eat()方法。它还有狗、猫、鸟等子类,它们都继承了Animal类并重写了eat()方法。虽然我们都调用eat(),但狗吃的是狗粮,猫吃的是鱼,鸟吃的是虫子,每种动物的“吃”这个行为都表现出了不同的形态。

2025-09-20 18:31:51 346

原创 Java 中 super 和 this关键字总结

super 和 this 都能用来引用对象,但使用场景和指向的对象有所不同。

2025-09-19 18:13:01 358

原创 JAVA面向对象之继承

java中提供关键字extend,让一个类和另一个类之间建立起在上面的例子中,Student被称为,也叫;Person被称为,也叫或。

2025-09-17 06:49:01 248

原创 JAVA中static关键字

static表示静态,是java中的一个修饰符。它所强调的是被修饰内容不依赖于类的具体对象而存在。

2025-09-16 05:39:58 223

原创 Java集合之ArrayList

在 Java 编程中,我们经常需要存储一组数据。除了数组,Java 提供了一个更灵活、更强大的工具 ——。可以把集合想象成“存放数据的容器”,Java 给出了很多不同类型的容器,每种容器适合不同的使用场景。在这些集合中,有一个叫而就是 List 的一个具体实现类。它底层用动态数组来存数据,既可以像数组一样快速访问,也可以随时增加或删除元素,非常灵活。

2025-09-13 06:23:37 674

原创 java字符串底层原理

JDK8以前:系统底层会自动创建一个StringBuilder对象,然后调用其append方法完成拼接,拼接后再通过toString方法转换为String类型,toString方法的底层会new一个字符串对象。JDK8之后在字符串拼接前系统会进行预估拼接后字符串的总大小,把要拼接的内容都放在数组中,

2025-09-12 01:17:22 171

原创 StringJoiner

在日常开发中,我们经常需要把一组字符串拼接起来,比如把 [“apple”, “banana”, “cherry”] 拼成 “apple,banana,cherry”。最原始的方式是用 + 或者 StringBuilder 循环拼接,但这种写法又长又容易出错。从 Java 8 开始,JDK 为我们提供了一个专门的类:StringJoiner。它不仅能让代码更简洁,还能轻松加上分隔符、前缀和后缀。

2025-09-11 22:39:08 282

原创 StringBuilder

在 Java 中,String对象是的,这意味着一旦创建了一个字符串对象,它的值就不能被改变。当对字符串进行拼接、修改等操作时,实际上是创建了一个新的字符串对象,而原来的对象则被丢弃。这种特性在进行少量量字符串操作时不会有明显问题,但当需要大量拼接字符串(比如在循环中)时,会产生大量临时对象,不仅消耗内存,还会影响程序性能。这就是StringBuilder类的用武之地。StringBuilder是一个可变的字符序列,它允许高效地进行字符串的拼接、插入、删除等操作,而不会创建大量中间对象。

2025-09-11 04:17:35 187

原创 Java字符串常见方法

【代码】Java字符串常见方法。

2025-09-10 20:07:53 362

原创 Java 中字符串和数组的length辨析

数组在 Java 中并不是一个类的对象,而是 Java 语言层面提供的一个特殊类型。这个长度信息被存储在一个属性里,名字就叫 length。因此获取字符串长度自然也是通过类中定义的一个 方法:public int length()。表面上只是多了一个括号,但背后其实反映了 Java 对类对象和数组对象的设计差异。:String 在 Java 中是一个 类,它提供了很多方法用于操作字符串,比如。在 Java 学习过程中,初学者经常会被一个小问题困扰:获取字符串长度时要写。,而获取数组长度时却是。

2025-09-09 00:22:08 176

原创 java面向对象之this关键字的内存原理

在 Java 中,this 是一个隐含的对象引用,表示“当前对象自己”,用来区分局部变量与成员变量。

2025-09-06 15:38:48 237

原创 Java 基本数据类型与引用数据类型

在 Java 中,数据类型分为和。两者在内存存储方式、默认值、使用场景等方面都有明显区别。

2025-09-06 08:40:34 331

原创 java面向对象基础

本文介绍了Java面向对象编程中的封装概念和private关键字的使用。封装通过private修饰成员变量和方法,限制其仅能在本类中访问,确保数据安全。为解决赋值问题,建议为私有变量提供公有的set和get方法:set方法进行合法性检查后赋值,get方法返回变量值。这种设计既保护了数据完整性,又提供了可控的访问接口,是JavaBean的标准实现方式。

2025-09-04 16:50:30 303

原创 Java面向对象基础

建议一个Java文件中可以有多个class类,但是只有一个类是public修饰,且public修饰的类必须成为代码文件名,因此实际开发中建议一个文件中仅定义一个类修饰符 数据类型 变量名称 = 初始化值;// JavaBean类中一般不指定变量初值'''// 等创建对象后再赋值补充:对象的成员变量默认值规则。

2025-09-04 02:38:35 173

原创 java中二维数组笔记

在 Java 中,二维数组并不是一整块连续的二维空间,而是。具体而言,在声明一个二维数组:如。

2025-09-03 23:04:16 520

原创 VSCode 刷 LeetCode 算法题配置教程

选择编程语言,使用默认文件存放路径或自行选择一个文件夹,即可开始解题。打开vscode,在插件市场搜索leetcode并下载。答题完毕后,点击代码左下角的submit即可提交。

2025-08-09 04:04:35 773

原创 数据结构常见时间复杂度整理

常见算法的时间复杂度关系:O(1) < O(logn) < O(n) < O(nlongn) < O(n²) < O(2ⁿ) < O(n!

2025-08-01 11:32:24 211

原创 为什么数组可以做到时间复杂度为O(1)的随机访问

数组是一种受限但高效的数据结构,这种结构虽然不易扩容和插入,但在访问效率上有显著优势,是很多更复杂数据结构的基础(如哈希表堆等)。

2025-07-25 22:17:01 268

原创 黑马程序员C++提高编程--STL函数对象

仿函数写法很灵活,可以作为参数进行传递。

2025-06-13 07:38:57 435

原创 黑马程序员C++提高编程--STL容器综合练习案例--员工分组

当数据以键值对形式存在,可以考虑用map或multimap。

2025-06-13 02:59:25 330

原创 黑马程序员C++提高编程--STL常用容器之map与multimap

map中所有元素都是成对出现,插入数据时候要使用对组。

2025-06-12 23:25:08 771

原创 黑马程序员C++提高编程--STL容器之set与multiset

两种方式都可以创建对组,记住一种即可。

2025-06-12 06:41:32 971

原创 黑马程序员C++提高编程--STL常用容器之list链表

功能:将数据进行链式存储链表(list) 是一种物理存储单元上非连续的存储结构,数据元素的逻辑顺序是通过链表中的指针链接实现的链表的组成:链表由一系列结点组成结点的组成:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域STL中的链表是一个双向循环链表由于链表的存储方式并不是连续的内存空间,因此链表list中的迭代器只支持前移和后移,属于双向迭代器list的优点:list的缺点:list有一个重要的性质,插入操作和删除操作都不会造成原有list迭代器的失效,这在vector是不成立的。总结

2025-06-11 21:44:37 992

原创 黑马程序员C++提高编程--STL常用容器之queue

queue(队列)是一种先进先出(First In First Out,FIFO)的数据结构,它有2个出口pushpop生活中的队列:排队买票,击鼓传花,排队买菜,排队买书等等。

2025-06-11 08:34:09 145

原创 黑马程序员C++提高编程--STL常用容器之stack

stack是一种(First In Last Out,FILO)的数据结构,它只有一个出口pushpop浏览器的回退功能,手机的相机功能,计算器的退格功能,编译器的编译功能,程序中的递归调用等等。

2025-06-11 08:01:49 196

原创 黑马程序员C++提高编程--STL容器应用练习:评委打分

选取不同的容器操作数据,可以提升代码效率。

2025-06-11 07:44:32 243

原创 黑马程序员C++提高编程--STL常用容器之deque

deque容器和vector容器的构造方式几乎一致,灵活使用即可。

2025-06-11 03:00:05 611

原创 黑马程序员C++提高编程--STL常用容器之vector容器

vector的多种构造方式没有可比性,灵活使用即可。

2025-06-10 19:14:21 803

原创 黑马程序员C++提高编程--STL常用容器之String容器

string的赋值方式很多,

2025-06-09 21:48:48 1017

原创 黑马程序员C++提高编程——STL概念与vector容器

学习目标:vector中存放自定义数据类型,并打印输出示例// 自定义数据类型public:mAge = age;int mAge;// 存放对象// 创建数据Person p1("张三", 10);Person p2("李四", 20);Person p3("王五", 30);Person p4("赵六", 40);Person p5("孙七", 50);it!= v.end();it++)

2025-06-09 17:40:50 930

空空如也

空空如也

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

TA关注的人

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