- 博客(55)
- 资源 (8)
- 问答 (7)
- 收藏
- 关注
原创 Java Stream
Stream 是在 Java 8 随着函数式编程一起引入的新特性,简称为“流”,可以非常方便地处理 Java 中的集合,极大地加快代码的编写速度。那为什么它被称为“流”呢?首先,Stream 本身翻译过来就有“流”的意思,此外,利用 Stream API 处理集合的方式非常像在一个工厂的生产流水线上处理产品的方式。
2023-10-22 09:31:11
144
原创 Java 函数式编程
在 Java 8 之前,Java 是没有很明确的函数式编程这么一说的,那之前的 Java 代码都是类、方法等组成的,若想要实现一个很简单的功能往往要写上很多代码,这就非常地不方便。于是,在 Java 8 中更新了一系列与函数式编程相关的内容,比如 Lambda 表达式(新增)、函数式接口(强化),以及配合函数式接口使用的 Stream 流(新增)等。而 Java 中函数式编程的典型代表就是 Lambda 表达式了。函数式接口本质上还是接口,只不过它比较特殊,它有且仅有一个抽象方法。
2023-10-21 20:31:35
185
2
原创 Java 继承与实现
举个贴近日常生活的例子,一支笔(抽象类型),我们不指定它的具体类型,可以用来书写(抽象方法),我们不指定它的具体书写效果,则有很多东西都是属于这支笔的分类,比如不同颜色的黑笔、红笔、蓝笔等实现了不同颜色的效果,是多种形态,那么这就属于多态。关于 super 关键字名称的由来,实际上,父类更加标准的说法是超类,但是“父子”关系更容易说明继承的关系,所以我们一般会将超类称为父类,但实际上,super 正是超级的含义,意为一种超级的类,即子类的所有父类集合体。接口可以被类实现,但接口本身却不可以被接口实现。
2023-10-15 13:03:34
463
3
原创 Java 抽象类与接口
基类一般而言都是非抽象类,从名字上可以知道,基类意为基本的类,应该是多个子类的同时继承的一个父类,此父类拥有这些子类所共用的属性和方法,也就是说,基类是这些子类的基本。可以这样认为,抽象类就是普通类抽象化的结果,它与普通类相比,同样具有属性、方法等,唯一的区别就是抽象类具有抽象的效果,即无法被实例化(如果可以被实例化,就失去抽象的意义了)。类描述对象的属性和方法。实现其的必须是类,如果这个类是抽象类,那么其不必将接口中的方法全部实现,如果是具体类,则需要将接口中全部的方法都实现,因为这些方法是隐式抽象的。
2023-10-15 12:54:29
120
原创 Java 拷贝
Java 中的拷贝分为两种,浅拷贝和深拷贝,关于为什么要有两种拷贝方式而不是一种,就要涉及到 Java 的两种类型数据了。Java 的深浅拷贝都是针对于引用类型而言的,基本类型是没有深浅拷贝之分的,类似于 C++ 语言,浅拷贝中的引用有点像是 C++ 语言中指针。
2023-10-13 12:18:14
144
1
原创 Java IO 之 BIO、NIO 和 AIO
按照时间出现的顺序,分别是 BIO、NIO 和 AIO,按照技术实现难度,分别是 BIO、NIO 和 AIO。I/OBIO(同步阻塞式)NIO(同步非阻塞式)AIO(异步非阻塞式)是否同步否否是是否非阻塞否是是出现时间最早中等最迟实现难度简单中等困难实现效果差中等好代码维护难度小中等大BIO 适用于单线程或少量并发的场景,每个 I/O 操作都会阻塞当前线程;NIO 适用于需要处理大量并发连接的场景,一个线程可以同时处理多个 I/O 操作;
2023-09-17 16:28:27
264
1
原创 Java 泛型
Java 泛型(generics)是 JDK 5 中引入的一个新特性,泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。
2023-09-15 20:48:40
113
2
原创 Java 反射
Java 反射是一种强大的特性,它允许在运行时动态地获取和操作类、对象、字段和方法的信息,可以说是强化版的自省(有点类似于 Python 的自省)。说简单点,就是可以在调用某个类的时候,能够获取和修改这个类一些东西。这也是 Java 被认为是半静态半动态语言的重要原因。
2023-09-15 20:47:43
314
原创 你真的掌握了 Python 的七种参数了吗?
不知道为什么网上总有人说 Python 的参数类型有 4 种啊,5 种啊,殊不知其实有 7 种。Python 的 7 种参数分别是默认参数、位置参数、关键字参数、可变长位置参数、可变长关键字参数、仅位置参数和仅关键字参数。小白可能没见过“可变长参数”,但是大部分人可能都没见过“仅参数”,“仅参数”一般只会在开发模块时才会用到,那么我为什么会知道呢?您猜……下面就让我为你细细道来。
2023-08-18 06:56:35
673
原创 Java 中的 JIT 和 AOT
我们都知道,Java 是一种半编译型,半解释型的语言,其编译部分和 C++ 语言比较类似,解释部分和 Python 语言比较类似,而 Java 则是综合了两种方式的语言。
2023-08-16 06:30:00
199
原创 Java 中的 == 运算符、equals 方法和 hashCode 方法
HashMap 中键是不可以重复的,因此它的键就必须是不同的对象,那么这个时候就先用计算速度快的 hashCode 进行比较,若哈希值都不相等,那么这两个对象必然不相等,若是相等的,那么这个就有两种可能出现,一种情况是这两个对象是真的相等,另外一种情况就是出现了罕见的“哈希冲突”现象,那么这个时候就轮到 equals 来进行判断了!在 HashMap 中,键是不可以重复的,也就是说,它们的键都是不相同的,因此就要判断不同对象是否为同一对象。因此,哈希值可以用于判断两个对象是否不等。
2023-08-15 06:30:00
162
原创 Java 中的强引用、弱引用、软引用和虚引用
引用方式内存不足时垃圾回收机制启动时其余情况强引用否否否软引用是否否弱引用是是否虚引用可能可能可能在一般的程序中,弱引用和虚引用很少会被用到,强引用天天都在用就不必我说了,在有些情况下(如资源文件很大,但并不是全部要在同一时刻使用)我们会使用软引用来代替原来的强引用,一是可以避免某些情况下产生的 OOM,此外,它可以减少程序使用的内存,加速程序的运行。
2023-08-14 13:18:46
91
原创 Java 中的关键字 final 和 static
Java 中最经典 final 修饰的类就是 String 了,它无法被任何类继承,不仅仅是为了保证 String 的不变性,同时在早期的 Java 版本中会将 final 修饰的方法转化为内嵌调用,提高程序性能(后来的 Java 会自动进行优化,不需要显式地用 final 修饰)。不过要注意的一点是,final 修饰的引用变量,其指向的对象的内容是可以被改变的。final 修饰符可以用来修饰类、方法和变量,final 修饰的类不能够被继承,修饰的方法不能被继承类重新定义,修饰的变量为常量,是不可修改的。
2023-07-29 07:52:52
299
原创 Java 中的 ArrayList 和 LinkedList
列表是一种数据结构,为了方便理解,我们可以认为它是动态的数组。众所周知,数组的大小在定义的时候就固定了,不可改变,那么它就无法存储超过它容量的数据,而列表的容量是无限大的,因为它可以随着其存储内容的大小进行动态的变化(包括容量扩增和缩小),这和 java.util.Vector 很像,但又不完全相同。Java 中对列表的实现有两种,ArrayList 和 LinkedList。
2023-07-28 08:38:26
386
原创 Java 中的重载(overload)和重写(override)
重载和重写都是面向对象编程中的概念,但我们或许还听说过一种叫做覆写(overwrite)的概念。C++ 是拥有这个概念的,Java 只有 overload 和 override,Python 只有隐式的 overload 和 override,没有 overwrite 的概念。在重载(overload)、重写(override)和覆写(overwrite)中,我们一般对前面两个比较熟悉,对最后一个会略微陌生一些。想了解更多就进来看看吧!
2023-06-15 06:00:00
389
原创 Java 中的异常处理
程序中可能会有很多意想不到的问题的出现,这些问题中,有些是在编写阶段时就无法编译通过,比如写代码时变量名写错,出现语法错误 java.lang.Error: Unresolved compilation problem ……;有些是在程序运行的时候出现的,比如一个除法程序,结果用户输入的除数是 0,那么就会引发 java.lang.ArithmeticException 等等。想了解更多关于异常处理就进来看看吧!
2023-06-14 15:25:19
466
1
原创 Java 的 String、StringBuffer 和 StringBuilder(一文讲透)
你知道 Java 中的 String、StringBuffer 和 StringBuilder 的发展历史吗?你知道它们的区别吗?你知道它们的适用场景吗?想知道就赶紧进来看看吧!
2023-05-28 01:21:13
730
2
原创 Python tkintertools 模块介绍(新版)
Python tkinter 模块的辅助模块 tkintertools 的船新版本介绍!快来看看都有什么功能吧!
2023-05-21 16:48:17
894
3
原创 Java 的八大基本类型及其包装类型(超级详细)
byte、short、int 和 long 都是用来表示整数,float 和 double 是用来表示浮点数的,那它们之间有什么区别和联系呢?引用类型 Integer 和 Long 也可以用来表示整数,那它们与int 和 long 又有什么区别和联系呢?这八种基本类型之间的运算关系又是怎样的呢?想知道就赶紧进来一探究竟吧!
2023-05-18 20:31:06
1321
3
原创 Java 的简要介绍及开发环境的搭建(超级详细)
2023 年最新教程:简要介绍 Java 编程语言并手把手教你搭建 Java 的开发环境,超级详细哦!
2023-05-02 10:07:39
2359
1
原创 tkintertools 模块实战一:任务清单小工具
tkintertools 模块实战一:任务清单!流畅的动画效果!极其美观的界面!非常实用的功能!你还在等什么?赶紧进来看看吧!
2023-01-05 15:24:11
911
13
原创 用 Pyinstaller 模块将 Python 程序打包成 exe 文件(全网最全面最详细,万字详述)
本文一步一步地教你如何用 Pyinstaller 模块将Python程序打包成 exe 文件!这篇教程绝对是全网最全面、最详细的教程!包含五种打包的方法,从简单到复杂依次是:一般打包方法、虚拟环境打包方法、多 Python 文件的打包方法以及包含资源文件的打包方法。你还在等什么?赶紧进来学习吧!
2022-10-30 00:30:33
42949
60
原创 tkinter 模块的最强辅助模块 —— tkintertools(万字详解)
tkinter 模块的最强辅助模块,tkintertools。可实现背景透明的控件、Place 布局可随窗口大小而变化、默认极其美观的外观样式、渐变颜色、对比颜色、提示框、png图片任意缩放等等,控件圆角化等,还有更多方便的处理函数,你还在等什么?还不进来看一看!
2022-10-17 23:31:06
3193
41
原创 Python Tkinter 教程(四)—— 子模块 messagebox、colorchooser 以及 filedialog 的使用及技巧(万字详解)
这篇博客将详细介绍 tkinter 模块的子模块,如消息框子模块(messagebox)、颜色选择器子模块(colorchooser)以及文件对话框子模块(filedialog),欢迎大家参考和学习!
2022-09-25 01:19:16
7728
4
原创 Python 代码智能感知 —— 类型标注与特殊的注释(所有人都需要知道)
一个不会写好的类型标注和注释的Python程序员,是让使用TA的代码的人都痛苦无比的事情……
2022-09-19 20:15:43
830
2
原创 算法笔记(3)—— 快速 I/O 算法:快速输入算法、快速输出算法
本文会详细介绍快速 I/O 算法,包括快速输入算法、快速输出算法,并用 C/C++ 语言实现,还不速速进来学习!
2022-08-15 10:58:34
861
原创 算法笔记(2)—— 数据预处理算法:前缀和算法、差分算法
本文章会详细介绍两种数据的预处理算法:前缀和算法与差分算法!并用 Python 语言和 C/C++ 语言实现!还不速速进来学习!
2022-08-12 09:06:08
825
原创 算法笔记(1)—— 搜索算法:线性搜索(LS)、二分搜索(BS)、记忆化搜索(MS)
本文章会介绍多种常见的搜索算法,包括线性搜索、二分搜索及记忆化搜索,并用Python语言、C/C++语言实现
2022-07-31 23:53:21
795
2
原创 tkinter模块高级操作(二)—— 界面切换效果、立体阴影字效果及gif动图的实现
本文会详细地介绍一些关于tkinter模块的高级操作!包括界面的转换、有立体阴影效果的文字以及GIF动图的实现哦!
2022-07-29 21:18:17
3483
9
原创 tkinter模块高级操作(一)—— 透明按钮、透明文本框、自定义按钮及自定义文本框
WOW!快看呐!居然可以用tkinter模块做出透明的按钮和透明的文本框!还有模板类可以直接用哦!!!
2022-07-23 18:48:44
9271
47
原创 Tkinter模块GUI图形化编程实战(八)——中国象棋(含超详解及完整源码、完整程序免费下载链接)
这篇博客展示了一个只用Python的Tkinter模块就能编出来的《中国象棋》小游戏,文章里含有完整程序的下载链接、所有源代码及较为详细的教学教程,你还在等什么,还不速速进来看看!
2022-07-15 14:06:40
3193
26
原创 Python 易错点大集合
这篇文章会详细地介绍我们平时遇到的python不明显的错误,包括错误地使用replace函数、错误地创建多维列表、错误地修改变量的值、错误地调用全局变量、错误地使用lambda匿名函数、错误地拷贝嵌套列表和对函数的默认参数认知有误,并给出详细的解决办法,文章会持续更新。
2022-05-31 00:58:53
697
原创 Python Tkinter教程(三)——三种几何布局管理器Pack、Place和Grid的所有参数及相关方法及详细用法
这篇博客会超详细地介绍Tkinter模块中的三种几何布局管理器,包括Pack、Grid和Place。
2022-05-18 09:01:14
7935
5
原创 Tkinter模块GUI界面化编程实战(七)——人机对战五子棋(含超详解及完整源码、完整程序免费下载链接)
这篇博客将会教你如何用Python的Tkinter模块做一个界面化的人机对战五子棋!附有源码及教程,还有免费完整程序可下载!
2022-04-13 09:32:25
4201
3
Python语言tkinter模块的辅助模块(自制,2.0版本)
2022-08-29
【完全免费】中国象棋v1.0 —— Python Tkinter模块实战(八)
2022-07-15
【完全免费】2048小游戏 —— Python Tkinter 模块实战(三)
2022-05-28
【完全免费】计算器 —— Python Tkinter 模块实战(二)
2022-05-28
【完全免费】登录界面 —— Python Tkinter 模块实战(一)
2022-05-28
Python Tkinter 模块编写的五子棋人机对战、双人对弈游戏
2022-05-18
Python:如何获取私有属性的值?
2022-11-27
如何用C语言实现小数的保留
2022-05-05
【C/C++】有没有人告诉我这是为什么
2022-03-30
一个很妙的Python题,但我找不到好的解法
2021-12-14
请解释一下这是什么意思?
2021-12-11
众所周知,Python print('\a')是会响铃的,但是
2021-12-07
谁能帮我看看这是什么情况?(语言-python)
2021-12-04
spyder4.2.5启动失败如何解决
2021-10-07
TA创建的收藏夹 TA关注的收藏夹
TA关注的人