自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 资源 (3)
  • 收藏
  • 关注

原创 33、优先考虑类型安全的异构容器

在Effective Java一书中,这一条建议是指在设计容器类时,应该优先考虑使用泛型来确保类型安全。异构容器是指可以存储不同类型对象的容器,例如HashMap、ArrayList等。使用泛型可以在编译时捕获类型错误,避免在运行时出现ClassCastException等类型相关的异常。由于我们在定义容器时指定了键和值的类型,所以在编译时就会捕获到类型不匹配的错误,从而避免了在运行时出现类型相关的异常。通过使用类型安全的异构容器,我们可以在编译时发现潜在的类型错误,提高代码的可靠性和健壮性。

2024-08-22 15:49:20 38

原创 32、小心组合泛型和可变参数@

在Java中,泛型和可变参数是两种非常强大的特性,但是它们在一起使用时需要小心。当你将泛型和可变参数结合在一起使用时,可能会导致编译器生成的警告或者运行时异常。这是因为Java中的可变参数实际上是一个数组,而泛型在编译时会进行类型擦除,这两者结合在一起可能会导致类型安全问题。在使用时,也可以进行类型检查来确保传递的参数类型正确。为了避免这种情况,可以将泛型和可变参数分开使用,或者在使用时进行类型检查。总之,当组合泛型和可变参数时,需要小心处理,避免可能导致类型安全问题的情况发生。方法中,我们创建了一个。

2024-08-22 15:36:36 44

原创 设计模式 6、行为型模式(续)

自定义spring框架前,先回顾一下spring框架的使用,从而分析spring的核心,并对核心功能进行模拟。数据访问层。定义UserDao接口及其子实现类业务逻辑层。定义UserService接口及其子实现类定义UserController类,使用main方法模拟controller层//创建spring容器对象//从IOC容器中获取UserService对象//调用UserService对象的add方法编写配置文件。

2024-08-22 14:12:35 653

原创 设计模式 5、行为型模式

又被称为发布-订阅(Publish/Subscribe)模式,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态变化时,会通知所有的观察者对象,使他们能够自动更新自己。一般来说,同事类之间的关系是比较复杂的,多个同事类之间互相关联时,他们之间的关系会呈现为复杂的网状结构,这是一种过度耦合的架构,即不利于类的复用,也不稳定。例如在下左图中,有六个同事类对象,假如对象1发生变化,那么将会有4个对象受到影响。如果对象2发生变化,那么将会有5个对象受到影响。

2024-08-22 14:11:20 1022

原创 设计模式 4、结构型模式

​ 运用共享技术来有效地支持大量细粒度对象的复用。它通过共享已经存在的对象来大幅度减少需要创建的对象数量、避免大量相似对象的开销,从而提高系统资源的利用率。在面向对象程序设计过程中,程序员常常会遇到这种情况:设计一个系统时知道了算法所需的关键步骤,而且确定了这些步骤的执行顺序,但某些步骤的具体实现还未知,或者说某些步骤的实现与具体的环境相关。

2024-08-22 14:09:43 717

原创 设计模式 3、结构型模式

由于某些原因需要给某对象提供一个代理以控制对该对象的访问。这时,访问对象不适合或者不能直接引用目标对象,代理对象作为访问对象和目标对象之间的中介。Java中的代理按照代理类生成时机不同又分为静态代理和动态代理。静态代理代理类在编译期就生成,而动态代理代理类则是在Java运行时动态生成。动态代理又有JDK代理和CGLib代理两种。如果去欧洲国家去旅游的话,他们的插座如下图最左边,是欧洲标准。而我们使用的插头如下图最右边的。因此我们的笔记本电脑,手机在当地不能直接充电。

2024-08-22 14:07:26 854

原创 设计模式 2、创建型模式

用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型对象相同的新对象。将一个复杂对象的构建与表示分离,使得同样的构建过程可以创建不同的表示。分离了部件的构造(由Builder来负责)和装配(由Director负责)。从而可以构造出复杂的对象。这个模式适用于:某个对象的构建过程复杂的情况。由于实现了构建和装配的解耦。不同的构建器,相同的装配,也可以做出不同的对象;相同的构建器,不同的装配顺序也可以做出不同的对象。也就是实现了构建算法、装配算法的解耦,实现了更好的复用。

2024-08-22 14:06:06 1148

原创 设计模式 1、设计模式概述

类图(Class diagram)是显示了模型的静态结构,特别是模型中存在的类、类的内部结构以及它们与其他类的关系等。类图不显示暂时性的信息。类图是面向对象建模的主要组成部分。

2024-08-22 14:03:23 659

原创 HashMap底层原理以及源码分析

核心理论: Hash也称散列、哈希,对应的英文都是Hash。基本原理就是把任意长度的输入,通过Hash算法变成固定长度的输出。这个映射的规则就是对应的Hash算法,而原始数据映射后的二进制串就是哈希值。

2024-08-22 13:59:40 339

原创 创建线程的三种方法,线程池的创建方式

1、继承Thread类2、实现Runable接口,没有返回值,不抛异常3、实现Callable接口,有返回值,会抛异常​。

2024-08-22 13:56:33 228

原创 Java JUC 基本使用及教程

是并发执行的程序在执行过程中分配和管理资源的基本单位,是一个动态概念,竞争计算机系统资源的基本单位。是进程的一个执行单元,是进程内科调度实体。比进程更小的独立运行的基本单位。线程也被称为轻量级进程。wait/sleep的区别1、是的静态方法, 是的方法,任何对象实例都能调用2、不会释放锁,它也不需要占用锁。会释放锁,但调用它的前提是当前线程占有锁(即代码要在中)。3、它们都可以被方法中断并行和并发并发:同一时刻多个线程在访问同-一个资源,多个线程对一个点例子:春运抢票电商秒杀…并行:多项工作

2024-08-22 11:59:02 879

原创 java Stream操作 转换

这几个函数在日常开发中,也是可以灵活应用的,比如我们DAO操作完数据库,是会有个result的整型结果返回。joining可以将stream中的元素用特定的连接符(没有的话,则直接连接)连接成一个字符串。方法可以帮我们做元素转换,比如一个元素所有字母转化为大写,又或者把获取一个元素对象的某个属性,是一个功能转换型的接口,可以把将一种类型的数据转化为另外一种类型的数据。从数组集合中,过滤掉不符合条件的元素,留下符合条件的元素。是一个消费性接口,通过传入参数,并且无返回的操作。工作中,排序的需求比较多,使用。

2024-08-22 11:54:43 1409

原创 Java 8 函数式接口使用示例及相关新特性

函数式接口(Functional Interface)是Java 8对一类特殊类型的接口的称呼。函数式接口下共有抽象方法使用default定义普通方法(默认方法),通过调用。实现接口后,因为默认方法不是抽象方法,所以可以不重写,但是如果开发需要,也可以重写。当然如果接口中的默认方法不能满足某个实现类需要,那么实现类可以覆盖默认方法。签名跟接口default方法一致,但是不能再加default修饰符。使用static定义静态方法,通过调用。

2024-08-22 11:50:07 968

原创 Java 修改Jar包中的Class文件

【代码】java 修改Class文件 教程

2024-08-22 11:47:31 291

原创 免费视频格式转换工具

视频转换网站支持 MP4 、 AVI 、 FLV 、 MKV 、 MOV 、 WMV 、 M4V 、 MPEG 、 VOB 、 WEBM 、 OGV 、 3GP 、 F4V 、 SWF 视频格式之间的互转。

2024-05-24 16:31:34 234

原创 PDF格式转换 PDF转Word

PDF工具集,包括格式转换、识别工具、屏幕录制、文件处理、教学办公,办公必备的小工具百宝箱。全部免费永久使用pdf工具集格式转换工具集图片处理工具集

2021-07-20 09:53:10 103

原创 nginx查看配置文件路径

1、ps查看进程ps -ef | grep nginx[root@VM-0-2-centos nginx]# ps -ef | grep nginxroot 1474 1 0 Mar16 ? 00:00:00 nginx: master process /usr/sbin/nginxroot 1478 1474 0 Mar16 ? 00:00:05 nginx: worker processroot 3687 1740

2021-07-15 14:40:50 502

原创 redis常用操作

查找命令官网:http://redis.cn/commands.html1、查看版本信息在linux环境下使用:redis-server -v在reids环境下使用:info2、redis 的五大基本数据类型string,list,hash,set,zset(有排序功能 sorted set)除了以上还有:bitmap HyperLogLog GEO Stream如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sor

2021-07-15 14:38:05 177

原创 rabbitmq安装步骤

由于rabbitmq是基于erlang语言开发的,所以必须先安装erlang。安装依赖重点yum -y installgcc glibc-devel make ncurses-devel openssl-devel xmlto perlwget gtk2-devel binutils-develerlang官网:https://www.erlang.org/downloads下载(会比较慢,请耐心等待)wget http://erlang.org/download/otp_src_22.0.t

2021-07-15 14:33:34 394

原创 离线安装mongodb

离线安装mongodb下载地址:https://www.mongodb.com/try/download/community配置文件# 普通配置文件# mongodb.confdbpath=/root/dev/mongodb/db#数据库日志存放目录logpath=/root/dev/mongodb/logs/tyh.log#以追加的方式记录日志logappend = true#端口号 默认为27017port=27017#pidfilepath=/root/mongod/mongo

2021-07-13 14:16:45 624

原创 MongoDB数据备份

1、MongoDB数据备份(mongodump)mongodump --help查看帮助命令-h,–host :代表远程连接的数据库地址,默认连接本地Mongo数据库;–port:代表远程连接的数据库的端口,默认连接的远程端口27017;-u,–username:代表连接远程数据库的账号,如果设置数据库的认证,需要指定用户账号;-p,–password:代表连接数据库的账号对应的密码;-d,–db:代表连接的数据库;-c,–collection:代表连接数据库中的集合;

2021-07-13 14:12:58 798

Git分布式版本控制工具

了解Git基本概念 能够概述git工作流程 能够使用Git常用命令 熟悉Git代码托管服务 能够使用idea操作git

2024-08-26

Maven跳过单元测试主要可以分为三种方法

maven打包跳过test命令 命令行方式跳过测试 我们可以用两种命令来跳过测试 mvn clean install -DskipTests mvn clean install -Dmaven.test.skip=true - DskipTests,不执行测试用例,但编译测试用例类生成相应的class文件至target/test-classes下 - Dmaven.test.skip=true,不执行测试用例,也不编译测试用例类 使用maven.test.skip,不但跳过单元测试的运行,也跳过测试代码的编译; 使用 mvn package -DskipTests 跳过单元测试,但是会继续编译。

2024-08-26

Linux shell语法学习文档 PDF文档

01.shell概述 02.shell中特殊字符 04.shell中参数:$0、$?、$!、$$、$*、$#、S@ 5.变量问题 5.1 shell变量概述 6.运算符 7.操作字符串 8.数组 9.分支与循环控制 10.函数 11.字符串的显示颜色 12.1/0重定向 13.正则表达式 14.Linux/shell中一些命令说明 15.Linux三剑客 --- grep 16.Linux三剑客 --- sed 17.Linux二剑客 --- awk 18,shell脚本静态检查 --- shellcheck 19.参考资源

2024-08-23

数据结构和算法-学习文档 PDF教程

数据结构和算法-学习文档 PDF教程 包含:算法分析,排序,线性表,符号表,树,二叉树堆,优先队列,并查集,图等等。 视频学习地址:https://blog.csdn.net/qq_41493103/article/details/141430153

2024-08-23

Windows JDK安装,包含 jdk8 jdk11 jdk17 jdk22

Windows JDK安装 包含 jdk8 jdk11 jdk17 jdk22 x64位安装包

2024-08-22

屏幕亮度调节器 Twinkle.Tray

屏幕亮度调节器 Twinkle.Tray

2024-08-22

接口测试工具 Postman-win64-Setup安装包

接口测试工具 Postman-win64-Setup安装包 接口测试工具

2024-08-22

城市天际线2 全DLC解锁

城市天际线2 全DLC解锁 都市 天际线 2 DLC 解锁补丁 [Steam] [Windows & SteamOS] DLC 解锁列表(仅供参考) 《都市 天际线 2》 - 旧金山(预购) 《都市 天际线 2》 - 地标建筑(预购) 《都市 天际线 2》 - 海滩资产包 《都市 天际线 2》 - 创作者包:现代建筑 《都市 天际线 2》 - 创作者包:城市生活中心 《都市 天际线 2》 - 桥梁与港口 《都市 天际线 2》 - 豪华休息台 《都市 天际线 2》 - 轻柔摇滚电 《都市 天际线 2》 - 冷浪频道 《都市 天际线 2》 - 海滩资产捆绑包

2024-08-22

Redis-x64-6.2.6.msi

Redis-x64-6.2.6.msi

2024-08-22

PDF格式转换 PDF转Word

PDF工具集,包括格式转换、识别工具、屏幕录制、文件处理、教学办公,办公必备的小工具百宝箱。全部免费永久使用

2021-07-20

空空如也

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

TA关注的人

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