自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Kevin 的博客

活着就要改变世界。

  • 博客(49)
  • 收藏
  • 关注

原创 java篇 类的进阶0x0D:接口与抽象类

结论:当继承两个(或以上)接口,不同接口有相同的抽象方法(返回值类型相同+方法签名相同),只要其中有一个缺省实现的方法体(不论其他接口中是否也有缺省实现/缺省实现代码实际是否相同),就要在发生继承冲突(extends)的当前接口/发生实现冲突(implements)的当前类中覆盖该抽象方法(反正就是在继承发生交汇冲突的那个节点进行覆盖),否则报错。与接口不同,抽象类中不但可以定义非抽象方法(普通的方法),方法还可以是非 public 的,可以是任意的(protected、缺省、private)。

2023-07-27 12:47:41 188

原创 java篇 类的进阶0x0C:枚举类

枚举的元素没有所谓的数据类型,和 java 的变量命名一样,区分大小写,用的时候,你定义的是大写就得大写,小写就得小写(得一模一样,否则调用不到)。可以发现,当程序执行时,并不会马上去创建 enum 类中定义的实例,而是只在真的使用到这些实例时,才会去一次性调用相应的构造方法创建这个 enum 类中的所有实例,并且是依照实例在 enum 类中的顺序,依此创建实例。这是因为,枚举的实例都是在枚举类的内部创建完成的,不需要也不能够在外部创建,所以访问修饰符只能是 private ,很合理。

2023-07-27 12:39:30 176

原创 java篇 类的进阶0x0B:Class 类 与 反射

甚至如果存在类继承链,从这个父类或子类取出的成员变量/静态变量名甚至是脱离具体类存在的(当然是指当前类继承链中,如果是一个毫不相干的类中即便也有同名同类型属性,也是取不到的)。是 Object 类的方法,返回这个对象的类型(注意,这里是指这个实际对象的类型,而非指向这个对象的引用的类型)。若子类中有对该方法的覆盖,则调用子类对象时,调用的是该方法的覆盖方法(这就比较巧妙了,仍然是遵守”覆盖多态“的);另外,当前类提取的方法覆盖了其父类的方法的话,用父类对象来调用这个当前类提取的覆盖方法是会报错的。

2023-07-27 12:38:01 181

原创 java篇 类的进阶0x0A:万类之祖:Object 类

但 java 对 String 的优化也是有限制的,如果太长了,突破了这个限制,比如创建的 s1 很长很长,s2 也很长很长,那么即便已经创建了 s1,s2 的值和 s1 一样,但仍旧会给 s2 重新创建一个新的对象。比较的是对象的实际地址,也就是判断两个引用对象是否是同一个对象,而字符串是不可变的,拼接实际上是创建一个新的对象,因此 s1 与 s2 本应该是两个不同的对象,但输出却不是 false 而是 true。(如 debug 时,显示在每行运行过的源代码右边的灰色的信息,其实调用的就是。

2023-07-27 00:03:09 213

原创 java篇 类的进阶0x09:final 修饰符

与非引用类型的成员变量有些差别,用 final 修饰的引用类型的成员变量虽然也是赋值后无法修改,但这里的无法修改是指这个引用指向的地址无法修改(这个地址就是引用所指向的对象的地址),但所指向的这个对象本身里面的数据是可以修改的。final 修饰的形参,只能通过调用该方法时传入的实参给该形参赋值,不能在方法体内再给该形参赋值(即便没有调用该方法,没有实参传入,定义该方法的时候在方法体里对该 final 形参写赋值语句就会编译运行报错)。final 不能用于修饰构造方法,会报错。

2023-07-26 23:19:28 149

原创 java篇 类的进阶0x08:instanceof 操作符

操作符,可以判断一个引用指向的对象是否是某一个类型或其子类,是则返回 true,否则返回 false。是判断一个对象是不是某个类型的实例,null 本身就为空,不是一个实例,所以自然返回的是 false。的返回结果只与实际对象类型有关,与指向这个对象的引用类型无关。之所以是其子类也行,是因为本身子类实例可以当成父类实例来使用。如果引用是 null,则肯定返回 false。

2023-07-26 22:53:06 208

原创 java篇 类的进阶0x07:继承

文章目录继承继承的语法继承的作用与特点继承与组合的区别覆盖 overide@Override构造方法无法覆盖super:和父类对象沟通的桥梁super 到底指哪个父类的实例super 严格意义上并非真的是一个父类的引用super 调用父类的构造方法子类构造方法被调用时,Java 会主动去调用父类的无参构造方法父类引用和子类引用的关系如何理解一个类型的引用如何理解一个类型的对象强制类型转换多态静态多态:重载(Overload)动态多态:覆盖(Override)继承里的静态方法继承继承的语法在类名后使用

2023-07-26 22:50:26 248

原创 java篇 类的进阶0x06:可见性修饰符(访问修饰符)

(虽然在构造器中也可以加过滤语句,但实际上调用构造器时,已经在建造实例了,也已经创建出来了,只是在赋值时作过滤,而如果是在静态方法中作过滤,则直接就不会去调用构造器去生成非法实例)就意味着外面的代码可以使用这个方法,也就意味着你不能再对这个方法随意更改,比如不应该更改方法的签名、返回值(但可以优化方法体内的代码逻辑),因为一旦修改,可能外面的代码就可能要跟着修改,否则会出现错误。文件同时包含一个公共类与多个非公共类),在 IEDA 中将鼠标定位到哪个类右键,就可以选择执行相应类的 main 方法。

2023-07-26 22:44:38 275

原创 java篇 类的进阶0x05:静态变量、静态方法、静态代码块

静态变量也叫 “类的属性”(类的变量)。成员变量其实是 “对象的属性”,每个对象有自己的不同于其他对象的一套成员变量值。而类属性,是属于类的,不属于对象。即对其修改,所有对象(如果使用到了这个静态变量)都会受到影响。静态变量在整个 java 程序中只有一个,而成员变量是每个实例有一份。由于静态变量只与类有关,和对象创建与否无关,所以可以完全在没有 new 对象的情况下,直接使用类名.静态变量名来使用这个静态变量。静态变量使用 static 修饰符。静态变量一般使用全大写字母加下划线分割。

2023-07-26 22:39:53 177

原创 java篇 类的进阶0x04:this 自引用

this 主要用在以下用途:this()this.xxx。

2023-07-26 22:37:13 43

原创 java篇 类的进阶0x03:构造方法

构造方法的方法名必须与类名一样,而且构造方法没有返回值。这样的方法才是构造方法。// 构造方法没有返回值(连 void 都没有),而别的方法没有返回值的时候还得写个 void。xxx;构造方法可以有参数,规则和语法与普通方法一样。使用时,参数传递给 new 语句后类名的括号后面。如果没有显式地添加一个构造方法,java 就会为每个类都默认添加一个无参数的构造方法。如果我们自己添加类的带参数构造方法,java 就不会再添加无参数的构造方法。这时,就不能直接 new 一个对象而不传递参数了。

2023-07-26 22:35:28 282

原创 java篇 类的进阶0x02:方法重载

因为调用方法时,只使用到方法名和参数,如果存在两个方法名和参数都类型相同,但返回值类型不同的方法,java就不知道到底是调用哪个方法。若方法重载还涉及到形参为泛型的情况,优先级先找确定类型,按确定类型的参数类型匹配规则找,都找不到才会最后去调用形参为泛型的重载方法。重载方法的调用当然也是符合这个逻辑的,但会优先匹配参数类型与方法签名中形参类型一致的方法。一个类中如果定义了名字相同,签名不同的方法,就叫方法的重载。重载的方法可以调用别的重载方法,也可以调用别的不重载的方法。带泛型类型参数的方法重载。

2023-07-26 16:08:30 91

原创 java篇 类的进阶0x01:封装

核心:不让外部直接对成员变量进行访问与操作,而是通过类的方法来对成员变量进行访问与操作。把操作成员变量的代码放在该成员变量所属的类里。用类定义成员变量,并把操作成员变量的代码都放在类里,就是所谓的。

2023-07-26 11:13:16 132

原创 java篇 类的基本概念0x03:实例方法 vs. 类方法

实例方法可以对当前对象的实例变量进行操作,也可以对类变量进行操作。实例方法由实例对象调用。类方法不能访问实例变量,只能访问类变量。类方法由类名或者实例对象调用。修饰),需要实例化后才能调用。甚至能够在同一个类中的。修饰)则无需实例化即可调用。类中的实例方法(没有。

2023-07-26 00:03:35 154

原创 java篇 类的基本概念0x02:类的基本概念

从数据类型的角度看,类就是自己创建的一种新的数据类型。类也叫做 “自定义类型”。一个 Java 程序中不允许类同名。

2023-07-25 23:54:35 190

原创 java篇 类的基本概念0x01:包与类

假如 A 包中有一个类 abc,那么 A 包中的类 aaa 是可以直接引用这个类 abc 的,此时,如果 aaa 中导入了 B 包中的同名类 abc,则直接在 aaa 中使用 abc是指向 B 包中的 abc(即原来同一个包中的同名类被覆盖),若此时再多导入一个 C 包中的同名类 abc,则会报错,jvm 无法确定 abc 指向哪个包中的 abc 类。为了避免类在一起混乱,可以把类放在文件夹里。导入,就可以直接用),并看不到它的上一层、下一层目录中的类(这种类需要导入,或者使用该类的全限定名来引用)。

2023-07-25 23:50:45 222

原创 mac OS 平台 Quiver 笔记迁移至 Typora/Obsidian 的图片迁移问题处理

之前好几年都在用 mac OS 平台,除了因为 mbp 触控板非常舒适,不用另外用鼠标之外,还有一个最重要的原因是技术笔记都记录在了 Quiver 中,而这个笔记软件只有 mac OS 平台上有。而当年搁置在 Quiver 中的技术笔记,一直都没空去做迁移,在 windows 上用 vm ware 装了个 mac OS 虚拟机专门用来必要时查看当年的放在 Quiver 中的笔记。手动迁移逐个调整图片链接是不可能的,所以掏出了久未使用的 python,写了一个小脚本,马马虎虎,反正能用就行。

2023-04-30 17:04:37 356

原创 Remnote 基础使用说明

默认新建的块是 Text 功能(即只是纯文本),若想变为其他形式的块(如勾选框、代码框等),点击块左边浮动显示的加号。:在旧笔记中修改被新笔记引用的内容,改变会自动同步到新笔记中,而不会让新笔记还保留当初引用这些内容时的旧版本。,并键入关键词,搜索到旧笔记提过此关键词的相关片段,选择其中一个,即可以将该笔记块的内容全部展示在新笔记中。:选中要挖空的文字内容 --> 弹出的浮动工具栏中选中虚线方框的图标(或直接在键盘上键入。:在新笔记中引用旧笔记的内容,在新笔记中要插入旧笔记的某个块内容的地方键入。

2023-03-18 19:09:13 232

原创 Obsidian 0x07:Obsidian 新仓库推荐设置

文章目录Obsidian 新仓库推荐设置1. 更改主题与外观颜色2. 文件与链接3. 核心插件4. 第三方插件5. 模板设置(可选)6. 日记设置(可选)Obsidian 新仓库推荐设置创建新仓库后,个人的推荐设置。打开设置面板,依次完成设置。1. 更改主题与外观颜色将外观设置为 浅色。安装主题,比如安装 ”Blue Topaz“ 主题。选项 --> 外观 --> 基础颜色 --> 浅色​ --> 主题 --> 管理 --> Blue Topaz

2023-03-15 01:39:16 2416

原创 Obsidian 0x06:Obsidian 笔记仓库管理

比如你在安装某个第三方插件(如 recent files、calendar)之前保存了工作区布局,那么这个布局中就是没有这些插件显示的,调用该布局时(并不会将 recent files、calendar插件删除或调为“不启用”),但的确就是不显示在界面中,需要你重启 Obsidian (recnet files需要如此),或关闭并重新开启该插件(calendar 是如此)才会重新正常显示这些第三方插件。的文件夹(可能是隐藏的),所有关于这个库的设置、安装的插件都会放到这个文件夹中。

2023-03-14 22:51:03 2318

原创 Obsidian 0x05:Obsidian 插件:Dataview

参考:https://blacksmithgu.github.io/obsidian-dataview/和(这里面的 “数据” 指文件的特征数据,而不是文章内容)。Dataview 无法读取笔记库种的所有内容,只能访问特定的数据索引(如:tags、要点、任务,这类数据会自动被 Dataview 利用,这些称为 “隐式字段”)。你还可以通过 “字段”(fields)来加入其他数据,可以是在文件内容正文顶部以 YAML 格式给出,也可以在正文内容中以 “行内字段/内联字段” (关键字:: 值)的形式给出。

2023-03-13 14:35:45 3150

原创 Obsidian 0x04:Obsidian 常用快捷键

ctrl + shift + F:当前库中搜索关键词;ctrl + L:待办事项勾选框状态更改;ctrl + F:当前笔记中搜索关键词;ctrl + E:阅读与编辑视图切换;

2023-03-13 14:11:08 1392

原创 Obsidian 0x03:Obsidian 常用插件

介绍 Obsidian 常用插件

2023-03-13 14:03:34 3110

原创 Obsidian 0x02:Obsidian 全库搜索

介绍 Obsidian 全库搜索的技巧。

2023-03-13 13:52:01 868

原创 Obsidian 0x01:Obsidian 双链

介绍 Obsidian 的双链。

2023-03-13 13:02:52 3222 2

原创 IDEA 与 Maven 的那些事 0x05:IDEA 编辑器中 maven 的打包操作

参考:https://www.bilibili.com/video/BV1Fz4y167p5文章目录Maven 项目打包操作Maven 打包的优势Web 项目打包案例1. 建立对应的项目结构1. 创建 Web 项目2. 修改 jdk 等版本信息,删除多余插件3. 补全项目的目录结构2. 添加 Profile 配置3. 设置资源文件配置4. 执行打包操作打包:通过 Java 程序把项目文件进行打包压缩成压缩包。如:jar 包(普通 Java 项目)、war 包(Web 项目)。Maven 项目打包

2022-02-18 09:28:23 1021

原创 IDEA 与 Maven 的那些事 0x04:IDEA 编辑器中 maven 的 Lifecycle 与 Plugins 的区别

参考:https://blog.csdn.net/gao_zhennan/article/details/89713407https://www.cnblogs.com/zhaiqianfeng/p/4620138.html文章目录IDEA maven 的 Lifecycle 与 Plugins生命周期(Lifecycle)阶段(Phase)Clean LifecycleDefault LifecycleSite Lifecycle插件(plugin)和目标(goal)IDEA maven 的

2022-02-18 09:00:48 3331 3

原创 IDEA 与 Maven 的那些事 0x03:IDEA 编辑器中 maven 构建多模块项目

参考:https://www.bilibili.com/video/BV1Fz4y167p5文章目录创建多模块项目创建 maven_parent 项目创建 maven_dao 模块创建 maven_service 模块创建 maven_controller 模块修改模块的配置设置模块之间的依赖设置 maven_dao设置 maven_service设置 maven_controller使用 Maven 提供的多模块构建的特性完成 Maven 环境下多个模块的项目的管理与构建。以 4 个模块为例来

2022-02-18 08:51:15 368

原创 IDEA 与 Maven 的那些事 0x02:IDEA编辑器中 maven 项目的创建

参考:https://www.bilibili.com/video/BV1Fz4y167p5文章目录IDEA编辑器中 maven 项目的创建创建 Java 项目新建 Java 项目编译 Java 项目创建 Web 项目新建 Web 项目启动 Web 项目1. 修改 jdk 版本2. 设置单元测试的版本3. 删除 `pluginManagement` 标签4. 添加 web 部署的插件Maven 插件启动 web 项目IDEA编辑器中 maven 项目的创建创建 Java 项目新建 Java 项目

2022-02-17 17:44:50 313

原创 IDEA 与 Maven 的那些事 0x01:IDEA 编辑器集成 maven 环境

参考:https://www.bilibili.com/video/BV1Fz4y167p5IDEA 中配置 maven 环境选择 File --> Other Settings(新版本中为 New Projects Settings) --> Settings for New Projects... --> 搜索“maven”Settings 相当于局部设置,只对当前项目有效。即修改完的 maven 配置不会沿用到下一个新项目中。而 New projects Settings 里

2022-02-17 17:34:15 170

原创 Maven 笔记 0x07:maven 命令

参考:https://www.bilibili.com/video/BV1Fz4y167p5文章目录常用命令命令参数-D 传入属性参数-P 使用指定的 Profile 配置虽然说 IDEA 等工具给我们提供了图形化界面,但其底层还是依靠 maven 命令来驱动,因此,了解 maven 的命令操作并熟练运用常见的 maven 命令很有必要。maven 命令格式:mvn [plugin-name]:[goal-name] // 执行 plugin-name 插件的 goal-name 目标

2022-02-17 17:27:37 290

原创 Maven 笔记 0x06:maven 的依赖

参考:https://www.bilibili.com/video/BV1Fz4y167p5https://www.runoob.com/maven/maven-pom.html文章目录依赖的概述每个 dependency(依赖)都包含以下元素:依赖的适用范围(scope)3 套 classpathscope传递性依赖传递依赖产生冲突本文要解答的问题:依赖是什么依赖在哪配置一个依赖有哪些需要配置的点依赖范围依赖的传递性依赖的概述编写一个项目时,并非所有功能都要重新编写,

2022-02-17 14:07:26 254

原创 Maven 笔记 0x05:maven 仓库 & 依赖编写注意

参考:https://www.bilibili.com/video/BV1Fz4y167p5文章目录仓库分类本地仓库远程仓库中央仓库私服公司内部应建立私服的原因私服搭建私服配置方式其他公共库依赖编写注意编写错误如何查找并正确引用依赖一般地,在 Maven 项目目录下,没有诸如 lib/ 这样用来存放依赖文件的目录。当 Maven 在执行编译或测试时,如果需要使用依赖文件,会根据 pom.xml 中的坐标来使用本地仓库中的依赖文件。仓库分类Maven 仓库分两大类:本地仓库远程仓库中央

2022-02-17 12:54:40 103

原创 Maven 笔记 0x04:maven 项目的编译运行

参考:https://www.bilibili.com/video/BV1Fz4y167p5文章目录Maven 项目编译 和 运行cmd 下编译 java 文件`pom.xml`与 文件目录结构 的关系项目根目录名 vs. artifactId源代码文件层级目录`main/java/com/xxxx/demo` vs. `pom.xml`中的 groupId vs. 源代码中 packageMaven 项目编译 和 运行cmd 下编译 java 文件编译 java 文件在 cmd 下,进入项目

2022-02-17 09:09:13 1369

原创 Maven 笔记 0x03:maven 目录

参考:https://www.bilibili.com/video/BV1Fz4y167p5文章目录两种目录Maven 本地仓库Maven 项目目录结构(约定)手动创建 Maven 项目的目录结构编写主函数两种目录Maven 本身的目录(Maven命令所在的安装目录 + Maven本地仓库)Maven 项目的目录(项目的目录)Maven 安装后,本身会有两个目录:Maven 的命令所在目录,如:D:\Program Files\apache-maven-3.8.3Maven 本地仓库

2022-02-17 09:04:04 1009

原创 Maven 笔记 0x02:maven 的安装配置

参考:https://www.bilibili.com/video/BV1Fz4y167p5文章目录Maven 安装配置更换 Maven 远程仓库修改 Maven 本地仓库地址Maven 安装配置检查 jdk 版本:jdk 版本最好在 1.7 或以上下载 maven:https://maven.apache.org/download.cgi获得一个压缩包如: apache-maven-3.8.3-bin,解压缩。配置 maven 环境变量解压下载到的 maven 压缩包后,把 ma

2022-02-16 23:25:57 158

原创 Maven 笔记 0x01:maven 简介

参考:https://www.bilibili.com/video/BV1Fz4y167p5文章目录Maven 作用关键字:项目 & 管理思想:更科学地管理和构建项目瀑布式开发 vs. 敏捷开发项目构建项目构建工具Ant 构建Maven [Java]GrandleMaven 特性1. 依赖管理系统坐标属性:groupId、artifactId、version2. 多模块构建3. 一致的 项目结构4. 一致的 构建模型 和 插件机制Maven 作用Maven项目对象模型(POM Project

2022-02-16 23:23:48 226

原创 软件开发过程的不同环境整理

参考:https://www.jianshu.com/p/193ca1198207https://blog.csdn.net/lianjoke0/article/details/90481282https://blog.csdn.net/yupyuping/article/details/112131236https://blog.csdn.net/shunnianlv/article/details/106384384不同的环境按开发、测试、上线时间排序:DEV Developmen

2022-02-16 09:38:47 339

原创 jar 包与 war 包区别

参考:https://www.jianshu.com/p/3b5c45e8e5bdhttps://www.cnblogs.com/banml/p/11767305.htmlhttps://blog.csdn.net/cjw12581/article/details/107463971文章目录1. jar 包jar 与 zip 异同jar 包主要用途2. war 包war 包部署优势开发阶段不适合使用 war 的原因部署 war 包到 tomcat3. jar 包 vs. war 包SpringB

2022-02-15 21:13:50 18384 3

原创 Linux 文件权限

注意:权限限制是对普通用户适用的,但对 root 不适用。root 是不受权限限制的。文件基本权限ls -l # 查看文件权限文件类型和权限包含多少个文件目录文件所属用户(属主)文件所属用户组(属组)文件大小(单位:字节)文件最后修改时间文件名称drwxr-xr-x.3rootroot21Dec 21 17:16app文件类型和权限(10个字符):第一个字符[-dlbcfs]:为文件类型-:文件d:目录l:符号链接(类似window.

2022-02-01 10:32:50 1229

空空如也

空空如也

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

TA关注的人

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