自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(72)
  • 资源 (6)
  • 问答 (2)
  • 收藏
  • 关注

原创 Java基础教程 - 15 进阶部分

网络编程、注解、反射、泛型、新特性等,见高级部分。

2024-06-10 08:30:00 233

原创 Java基础教程 - 14 Maven项目

Java 为什么那么强大,很大一部分原因是在实际的开发中,可以将别人开发的模块引入到我们自己的项目中,这样别人开发好了,我拿来就可以使用,很多复杂的功能也不用我们再去开发,而且别人开发的功能通常经过广泛的测试和验证,安全性和稳定性也得到保证,我们直接使用既可以提高开发效率,又可以提高项目质量。我们在实际的开发中,经常会用到一些方法,例如判断字符是否为空,判断集合是否为空等,这些方法 JDK 中虽然有提供,但是使用起来还是不够方便,有很多第三方提供了工具包,将这些处理封装成了工具类,其中用的比较多的是。

2024-06-09 08:30:00 902

原创 Java基础教程 - 13 Java常用类

StringBuffer 和 StringBuilder 的用法是一样的,他们的区别是 StringBuffer 是线程安全的,效率低,StringBuilder 是非线程安全的,效率高。,我们是没法知道它是哪里的时间,不同时区的 LocalDateTime 转换得到的 Instant 结果是不一样的,所以转换的时候,需要指定时区。需要注意,不论在哪个时区,时间戳的毫秒数是一样的,和时区没关系,只是显示时间的时候,需要指定以哪个时区的时间来显示。同样也是需要指定字符串的格式的,这样才知道怎么解析字符串。

2024-06-08 08:30:00 1720

原创 Java基础教程 - 12 文件与IO

更好的阅读体验:点这里 ( )如果我们想使用 Java 代码来操作文件,就需要使用到 类,它是文件和文件目录的抽象表示形式。在创建 File 类对象的时候,需要指定路径,这样 File 对象就可以与硬盘上的文件或目录建立映射,通过操作 File 类对象来实现对文件或目录的操作。当然指定路径的文件或目录可能不存在,可以通过 File 对象的方法进行判断或创建文件。使用 File 对象能新建、删除、重命名文件和目录,但不能访问文件内容本身,如果需要访问文件内容本身,则需要使用后面的输入/输出流。下面演示

2024-06-07 08:30:00 568

原创 Java基础教程 - 11 多线程

在计算机中,进程是指正在执行中的一个程序,它由程序、数据和进程控制块组成。每个进程都有独立的地址空间,相互之间不能直接访问,是操作系统对程序运行进行管理的单位,每个进程都可以拥有多个线程。线程是指一条执行路径,它是进程中的一部分,可以与其他线程共享进程的资源和内存。线程是轻量级的进程,它比进程更快速,更容易创建和销毁。

2024-06-06 08:30:00 760

原创 Java基础教程 - 10 异常

除了使用 Java 内置的异常类型外,您还可以自定义异常类,以便更好地描述特定的异常情况。自定义异常类一般情况下都是继承 Exception 或 RuntimeException 类,如果继承 Exception,属于编译时异常,需要在编译的时候就要处理,如果继承 RuntimeException,那么是运行时异常。异常类建议以 Exception 结尾,见名知意。举个栗子:下面我们首先自定义了两个异常类,然后根据需要抛出这两个异常类的对象,在捕获异常的时候,根据异常类型进行不同的处理。

2024-06-05 08:30:00 985

原创 Java基础教程 - 9 集合

方法,比较当前对象和target的大小,如果想从小到大排列,则当前对象的属性小于 target 的属性,返回负数,如果相等,返回0,如果大于,返回正数,则就实现了从小到大排列,反之从大到小排列。如果知道列表中要放多少数据,建议在新建数组的时候指定列表大初始大小,这样避免扩容,从而耗费性能,因为列表的底层还是使用数组实现的,默认长度是10,而数组是无法动态修改大小的,所以在扩容的时候会创建一个新的列表,将之前列表中的数据拷贝到新列表中。List 有序,是添加元素的时候,后添加的元素会排列到前面元素的后面。

2024-05-24 07:45:00 1682

原创 Java基础教程 - 8 枚举类

枚举使用enum关键字来定义。/*** 定义枚举*/SPRING,SUMMER,AUTUMN,WINTER/*** 测试类*/// SPRING// 获取父类// 父类是:class java.lang.Enum枚举也是一种类,而且其中定义的常量就是这个类的实例对象。枚举类因为是类,建议使用驼峰规则,其中的常量使用大写。使用的时候就是对象,赋值给Season类型的变量。因为枚举是类,所以枚举中也是可以定义属性的,而且可以有构造方法。/*** 定义枚举*/

2024-05-23 08:45:00 417

原创 Java基础教程 - 7 面向对象-5

在实际的开发中,我们一般使用 static 和 final 来共同修饰全局变量,此时的变量的值是无法修改的,也就成了全局的常量。// 定义用户名最大长度// 定义用户名最小长度定义常量的时候,常量的名称一般统一为大些,单词之间使用下划线分隔。String name = "逗比";System.out.println("我要哔哔两句");System.out.println("我爱学习");// 静态成员内部类。

2024-05-22 09:00:00 705

原创 Java基础教程 - 7 面向对象-4

多态就是多种状态,同一个类型的父类型对象,因为指向的是不同的子对象,而表现出的不同的状态。所以多态是建立在继承的基础之上的。System.out.println("我会啾啾叫");System.out.println("我会咕咕叫");// 创建一个麻雀对象// 创建一个鸽子对象上面麻雀类和鸽子类都继承自鸟类,然后创建了一个麻雀对象和鸽子对象,都赋给了鸟类,通过两个对象分别调用 tweet() 方法。执行结果:我会啾啾叫我会咕咕叫。

2024-05-20 08:30:00 1454

原创 Java基础教程 - 7 面向对象-3

静态方法是不能被重写的,但是子类可以定义和父类相同签名的方法,但这两个方法相互独立,没有关系,用父类的引用调用的就是父类的方法,不会因为引用指向子类而不同。麻雀和鸽子都会飞,我们可以在麻雀类中定义一个飞的方法,在鸽子类中定义一个飞的方法,但是这两个飞的方法是一样的,都是用翅膀飞。父类被重写的方法的返回值类型是A类型,则子类重写的方法的返回值类型可以是A类或A类的子类;例如,鸟类提供了叫的方法,但是我麻雀有自己的叫法,我要啾啾叫,那么我们可以重写父类的方法,实现自己的个性化。因此,在大多数情况下,如果你用。

2024-05-18 08:45:00 818

原创 Java基础教程 - 7 面向对象-2

执行结果:打电话手机品牌:华为手机电压:12打电话手机品牌:小米手机电压:12。

2024-05-17 08:30:00 865

原创 Java基础教程 - 7 面向对象-1

类中可以定义属性和行为,属性也就是成员变量,表示这个类有哪些数据信息,行为也叫成员方法,表示这个类能干什么。例如,对于学生类而言,学号、姓名、年级就是属性,学习这个行为,可以定义为方法。/***定义类使用class关键字,后面跟类名*/System.out.println("我是" + name + ", 我在学习");上面的类定义了三个成员变量(sid、name、age),public表示访问修饰符,用来限制属性的访问权限,后面再讲,现在使用public。后面是变量类型和变量的名称。

2024-05-15 19:00:00 823

原创 Java基础教程 - 6 方法

下面定义一个将两个数相加的方法/*** 定义两个数相加的方法*/public static int add() { // 定义方法public是权限修饰符,表示在哪里可以访问到这个方法,static 表示是静态方法,这里 public static 先不用管,固定写法就好。int表示返回值类型,int 表示这个方法返回一个整形的数据,方法的返回值可以是任何类型或者是void;add表示方法名,方法名按照标识符命名规则即可,推荐使用首字母小写的驼峰规则(xxxYyyZzz);()

2024-05-10 08:45:00 1278

原创 Java基础教程 - 5 数组

栈中存放的是局部变量,也就是方法中定义的变量,现在我们定义的变量都是在方法中的,也就是 main 方法,所以 numbers 变量是存储在栈中的,但是右边的数组值是存储在堆中的,numbers 变量中存储的是一个地址值,是数组的首地址(第一个元素的起始地址,也就是1的起始地址,上面的地址值是胡诌的)。第二轮需要拿4进行比较,最终找到第二大的数6,6会沉到7前面,就不用和7比较了,也就是每比较一次,在最后面就会少比较一次,因为大的都沉到底部了,后面都是排序好的,自然就不用比较了。

2024-05-06 21:05:23 745

原创 Java基础教程 - 4 流程控制

代码执行到while,会判断是否满足条件,如果满足,就会进入while循环,执行满足条件要做的事情,执行完成,会重新判断while后面的条件,如果满足会继续循环,如果不满足就不在进入循环。加1,然后再执行while后面的条件判断,判断 i

2024-05-05 22:21:47 858 1

原创 Java基础教程 - 3 运算符

同样,如果判断一个整数是否是偶数,那么可以将这个数 % 2,然后查看结果是否是 0,如果是 0 就是偶数,否则是奇数。逻辑短路就是在进行逻辑运算的时候,如果已经能够得到最后的值,就不会再继续进行判断了。需要注意的是,自增自减运算符可以放在变量的前面或后面,这会影响到表达式的值。复合赋值运算符运算完成,类型是不变的,如果使用普通方式,则需要强制转换。看着上面的代码,眼不眼晕。上面的运算了解一下就好了,实际开发中不涉及底层的,基本用不到。上面那么多运算符,如果同时运算的时候,优先级是怎么样的呢?

2024-05-01 08:00:00 188

原创 Java基础教程 - 2 基础语法

所以我们现在定义变量来保存数据。定义变量的格式:类型 变量名 = 值;// 定义一个字符串变量,用来存储姓名// 定义一个整数变量// 定义一个浮点数类型// 定义完变量就可以使用变量了// Doubi// 18// 1.78在上面的代码中,我们分别使用了不同的类型定义了不同类型的数据,使用String定义字符串类型,使用int定义整形数,使用double定义浮点数,使用给变量赋值。Java 是强类型语言,就是每个变量都要指明类型。

2024-04-29 08:30:00 553

原创 Java基础教程- 1 Java 简介

(了解一下即可,对学习没影响,总得了解一下它是怎么来滴~)Java是由Sun公司(已被Oracle收购)的詹姆斯·高斯林(人称 Java之父)和麦克·舍林丹等人于1990年代初开发的一种编程语言,最初被命名为Oak,Oak的目标是作为家用电器等小型系统的编程语言,用于电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。

2024-04-27 20:20:23 762 1

原创 Docker进阶教程 - 6 Portainer

Portainer是一个。

2024-03-22 09:15:00 985

原创 Docker进阶教程 - 5 Docker Compose

Docker Compose 是 Docker 公司推出的一个工具,用于简化多容器应用程序的定义、运行和管理。通过一个 YAML 配置文件(通常是),用户可以定义应用程序的各种服务、网络和卷,并通过一条命令就可以启动、停止一组相关联的多个容器。

2024-03-21 09:15:00 715

原创 Docker进阶教程 - 4 Docker网络

前面说了,因为容器的 IP 会发生变化,所以不能使用容器的 IP 来进行容器间的通信,需要使用自定义网络。首先需要创建一个自定义网络,例如创建一个。# 创建doubi-network网络 docker network create doubi-network创建完网络,可以通过查看到存在的网络:这里需要注意,我们创建了一个新的网络,也是桥接模式的,但是它是一个新的桥接网络,和docker0是独立开的,他们可以有不同的配置和属性,从上面也可以看到,他们是不同的网段的。这里我们创建两个容器,ubuntu-1。

2024-03-20 09:15:00 730

原创 Docker进阶教程 - 3 虚悬镜像

通常在构建的过程中,取消构建、构建出现问题的时候,会出现异常的镜像,这种镜像没有名称和标签。因此,这些镜像被称为虚悬镜像,因为它们“悬浮”在Docker中,没有被任何容器所使用,也不会被Docker清理工具删除。虚悬镜像的产生概率不高,但一旦生成,可能会对系统造成一些潜在的风险。因此,一旦发现虚悬镜像,应该立即删除。什么是虚悬镜像(dangling image)?

2024-03-19 09:00:00 389

原创 最细致最简单的 Arm 架构搭建 Harbor

也不知道为什么不更新,我看到有回复说是团队资源有限,如果你看到有推出或更新 arm 架构版本,麻烦发邮件给我,我会更新笔记。提示不要使用 localhost,因为 Harbor 需要被外部客户端访问。可以在这里修改登录密码,当然后面登录后也可以在页面中进行修改。文件中配置的密码(Harbor12345)来登录。文件修改好了,现在可以启动运行了,直接运行。来访问,遇到证书警告,直接同意。如果遇到权限问题,可以使用。也可以在自己的主机上修改。使用 admin 和。中配置了域名,所以在。解压的文件夹下有一个。

2024-03-18 20:27:59 1734

原创 Docker进阶教程 - 2 Docker部署SpringBoot项目

另外如果项目中用到数据库或redis缓存等组件,注意修改地址,不要为 localhost,因为部署到 docker 中,是不在一个容器中的,所以要写明数据库或缓存的地址。我们可以在项目根目录下创建一个 docker 文件夹,然后在这个文件夹中编写一个 Dockerfile 文件,并将 jar 包拷贝并放在这个目录下。其实这里主要是比较清晰的管理 docker 文件,这里的两个文件后面是需要拷贝到 Docker 宿主机上的。这一步不影响后面的构建,只是为了将 Dockerfile 比较清晰的保存在项目下。

2024-03-18 09:00:00 924

原创 Docker进阶教程 - 1 Dockerfile

什么意思呢?

2024-03-17 20:01:37 1777

原创 Docker基础教程 - 14 Docker进阶

请查看。

2024-03-17 19:59:30 197

原创 Docker基础教程 - 13 常用容器部署-Nginx-https

或者将 dist 解压到 html 文件夹,然后修改 conf.d 文件夹中的 default.config 文件,修改根目录映射 html 下的 dist。首先将 vue 项目中打包生成 dist 文件夹中的内容,全部拷贝到与nginx的html相映射的文件夹中,然后重启docker内的 nginx。我们首先通过 nginx 镜像运行一个简单的容器,将简单的容器中的配置文件复制到宿主机中,然后删除简单的容器,重新使用上面的命令运行我们的容器。下面针对的是生成本地运行的证书文件。

2024-03-13 08:30:00 802

原创 Docker基础教程 - 12 常用容器部署-Nginx

或者将 dist 解压到 html 文件夹,然后修改 conf.d 文件夹中的 default.config 文件,修改根目录映射 html 下的 dist。首先将 vue 项目中打包生成 dist 文件夹中的内容,全部拷贝到与nginx的html相映射的文件夹中,然后重启docker内的 nginx。我们首先通过 nginx 镜像运行一个简单的容器,将简单的容器中的配置文件复制到宿主机中,然后删除简单的容器,重新使用上面的命令运行我们的容器。下面介绍一下常用容器的部署。当成文件夹来处理,那么把宿主机的。

2024-03-12 08:15:00 266

原创 Docker基础教程 - 11 常用容器部署-MySQL

MariaDB 是由 MySQL 的创始人之一Michael Widenius 领导的开源社区开发的分支。此外,MariaDB还添加了一些新功能和改进,例如更好的性能优化和存储引擎支持。将主机的 3306 端口映射到容器的 3306 端口,这样你就可以通过主机的 3306 端口访问容器内的数据库服务。将容器内数据库的数据保存到宿主机,这样即使容器被删除,数据也不会丢失,否则只能跑路了。:指定要运行的 Docker 镜像的名字,即 MariaDB 镜像。)映射到容器内,以确保容器内的时间和主机同步。

2024-03-11 08:30:00 594

原创 Docker基础教程 - 10 常用容器部署-Redis

启动容器后就可以链接到 Redis 服务了,需要使用在配置文件中配置的密码。如果找不到可以下载指定版本的 redis 安装包,在安装包中找到。配置文件修改好了,下面可以启动容器了,在启动的时候,指定配置文件。下面介绍一下常用容器的部署。可以先简单了解下,用到再来详细查看。Redis 默认只能在本地访问,所以我们需要使用配置文件。在 Docker 中部署 Redis 容器。可以从官网下载相应版本的配置文件,

2024-03-10 08:15:00 241

原创 Docker基础教程 - 8 镜像仓库

这是因为标签是用来标识镜像的,当给一个已有的镜像打上新的标签时,Docker 会复制该镜像并创建一个新的镜像,带有新的标签。因此,打完标签后,会生成一个新的镜像,推送镜像到远程仓库的时候,就是推送的这个镜像。在安装 Docker 的时候,默认使用的是 DockerHub,后来为了提升速度,配置的镜像仓库是使用阿里云的镜像仓库,拉取的是别人制作的镜像,下面讲解一下制作我们自己的镜像,并将制作的镜像提交到远程镜像仓库。在上面我们制作了我们自己的镜像,如何将这个镜像给其他的同事使用,或者在其他的服务器使用?

2024-03-09 08:15:00 659

原创 Docker基础教程 - 9 常用容器部署-Tomcat

tomcat 访问到的8080带三脚猫的首页,是在 webapps 目录下的,但是新版的 tomcat 的 webapps 下面是空,静态资源被放置到。镜像下载完成就,就可以启动容器了。使用后台模式启动容器,并映射 8080 端口,并进行相应的容器卷挂载。下面介绍一下常用容器的部署。可以先简单了解下,用到再来详细查看。容器启动后,访问宿主机的 8080 端口,会报 404 错误。拷贝完成后,重新刷新页面,出现了三脚猫。目录下了,所以就找不到首页了。我们可以进入到容器,将。

2024-03-09 08:00:00 425

原创 Docker基础教程 - 7 容器数据卷

我们在运行容器的时候,产生的数据都是保存在容器内部的。如果使用Docker来运行mysql容器,数据都保存在容器内部,此时删除容器,数据就全部没了!没了!了!比删库跑路还容易,简直离谱他妈给离谱开门——离谱到家了。所以需要容器卷,将主机的目录挂载到容器内部(宿主机目录相当于一个外部移动硬盘一样),将容器的目录与宿主机的目录进行映射,将数据保存到宿主机上,这样,即使容器被删除,挂载到容器卷中的数据仍然会被保留在宿主机上。使用容器卷既可以实现容器数据的持久化,也可以在容器间共享数据。

2024-03-08 07:45:00 864

原创 Docker基础教程 - 6 Docker平台架构

之后,内存的使用权会从这一层转移到内核,然后这一层就会被卸载,释放出存储空间。这种分层的设计使得镜像的复用和共享变得非常容易,比如有多个镜像都从相同的Base Image构建而来,那么宿主机只需在磁盘上保留一份Base Image,同时内存中也只需要加载一份Base Image,这样就可以为所有的容器服务了,而且镜像的每一层都可以被共享,减小了传输和存储的开销。容器,就是一个运行的 Redis 了,每个容器之间是相互隔离的,就像一个个的集装箱,所以 Docker 的图标就是一个鲸鱼上面有很多的集装箱。

2024-03-07 07:45:00 866

原创 Docker基础教程 - 5 其他命令

具体命令是上面查看帮助文档中列出的命令,通过命令文档可以查看命令需要的参数,这个还是比较实用的。前面镜像和容器的命令已经介绍的差不多了,还有一些其他的一些命令,简单了解一下。下面是控制 Docker 服务的一些命令,这是属于Linux命令。通过这个命令可以看到 docker 有哪些命令和参数。

2024-03-06 07:45:00 226

原创 Docker基础教程 - 4 容器命令

而如果我在当前 Ubuntu 系统中通过 Docker 创建 Ubuntu 容器,我可以创建多个Ubuntu 容器,那就相当于我有了多个节点,再使用负载均衡,这样我在更新系统的时候,可以保证有一个节点运行,从而保证服务一直运行。,运行完成,查看运行中的容器发现没有对应的容器,因为 Ubuntu 和 CentOS 容器是交互式容器,没有前台进程就会退出,所以启动完就退出了。我们需要在启动容器的时候,将容器的端口映射到主机的端口上,这样就可以通过访问主机端口来访问到容器的端口,进而访问到docker中的服务。

2024-03-05 07:45:00 2560

原创 Docker基础教程 - 3 镜像命令

这是因为还存在以这个镜像创建的容器。我们要删除镜像,需要先删除用这个镜像创建的容器(删除容器后面再讲),或者使用强制删除。上面的 hello-world 镜像是安装 docker 的时候,运行的 hello-world 镜像。显示本地的镜像信息中,包含了镜像的名称、版本标签、镜像ID,什么时候创建的,镜像的大小。搜索会列出很多的镜像,分别是不同的账户、组织提交的,包括名称、描述等信息,在删除之前先查看一下本地的镜像,然后通过镜像的 ID 进行删除。从容器仓库下载镜像,首先需要搜索镜像,查看镜像是否存在。

2024-03-04 08:45:00 1042

原创 Docker基础教程 - 2 Docker安装

下面进行 Docker 环境的安装,正常情况下 Docker 都是运行在 Linux 服务器上的,因为 Docker 依赖于宿主机的操作系统内核,也就是依赖已经存在并运行的 Linux 内核环境,Docker 只是在已经运行的 Linux 上制造了一个隔离的文件环境,所以所在的主机必须是 Linux 操作系统。,但是服务器是在国外的,在国内使用下载镜像会很慢,所以我们配置阿里云镜像服务后,下载镜像会快很多。镜像,如果有会直接运行镜像,如果没有会下载镜像,下载完成再运行镜像。镜像,会在本地查看有没有。

2024-03-03 19:45:00 680

原创 Docker基础教程 - 1 Docker简介

Docker是一个强大的容器化平台,让你能够更轻松地构建、部署和运行应用程序。下面我们来学习 Docker。

2024-03-03 10:27:15 885

Dart基础笔记,免费下载,给个好评,在线阅读地址:https://www.doubibiji.com

Dart基础笔记,免费下载,给个好评,在线阅读地址:https://www.doubibiji.com

2024-03-06

Docker Compose演示中的SpringBoot项目源码和jar包

Docker Compose演示的SpringBoot项目 教程地址:https://www.doubibiji.com/Docker-Adv/05-DockerCompose.html

2024-03-01

Quartz动态调度示例

Quartz动态调度示例,Quartz 教程 笔记 可参考 https://www.doubibiji.com/

2024-01-06

Dart基础教程PDF,免费下载,给个好评,谢谢!

Dart基础教程,学习Flutter必备

2023-08-12

HTML5基础教程PDF版

HTML5基础教程PDF版 可以通过链接直接访问:http://doubibiji.com/#/html5/HTML5 如果有帮助,麻烦给个好评!!!

2023-07-22

Python基础教程笔记

Python基础教程PDF版 可以通过链接直接访问:http://doubibiji.com/#/python/01-Python%E7%AE%80%E4%BB%8B/01-Python%E7%AE%80%E4%BB%8B 如果有帮助,麻烦给个好评!!!

2023-04-09

Android 自定义通知栏 更新通知栏进度条

Android 实现自定义通知栏,并不断更新通知栏的进度条,模拟下载效果。 注:只是模拟下载进度,没有下载功能。

2014-10-29

Android ViewPager和Fragment 实现滑动切换页面

使用ViewPager + Fragment实现滑动切换页面的简单样例

2014-10-27

Android Fragment ActionBar实现tab标签切换页面

Android 使用Fragment,ActionBar 实现tab标签切换页面的一个简单样例

2014-04-23

ios消息推送 使用notnoop消息推送

使用notnoop进行IOS消息推送,一个样例

2014-04-03

jstl.jar包

jstl.jar,支持在项目中使用JSTL和EL表达式

2013-07-01

standard.jar

standard.jar包,支持在项目中使用JSTL和EL表达式

2013-07-01

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

TA关注的人

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