<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[ProgrammingWay的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/ProgrammingWay</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; ProgrammingWay]]></copyright><item><title><![CDATA[ES常用API总结]]></title><link>https://blog.youkuaiyun.com/ProgrammingWay/article/details/156450882</link><guid>https://blog.youkuaiyun.com/ProgrammingWay/article/details/156450882</guid><author>ProgrammingWay</author><pubDate>Wed, 31 Dec 2025 14:27:39 +0800</pubDate><description><![CDATA[​本文内容部分使用AI生成技术本文总结了关于ES从安装到一些常见的关于ES的API使用示例，方便可以后面快速查询使用。]]></description><category></category></item><item><title><![CDATA[Windows10新机安装整理]]></title><link>https://blog.youkuaiyun.com/ProgrammingWay/article/details/140060523</link><guid>https://blog.youkuaiyun.com/ProgrammingWay/article/details/140060523</guid><author>ProgrammingWay</author><pubDate>Sat, 29 Jun 2024 22:22:46 +0800</pubDate><description><![CDATA[win10新机安装软件及配置整理]]></description><category></category></item><item><title><![CDATA[Mac 新机安装软件整理]]></title><link>https://blog.youkuaiyun.com/ProgrammingWay/article/details/134851502</link><guid>https://blog.youkuaiyun.com/ProgrammingWay/article/details/134851502</guid><author>ProgrammingWay</author><pubDate>Thu, 07 Dec 2023 12:04:14 +0800</pubDate><description><![CDATA[设置账号密码、修改hosts通讯软件（微信、企业微信、飞书、钉钉、腾讯会议、Zoom）JDK（配置JAVA_HOME）MySQL（安装客户端软件）NavicatDBeaverRedis（配置启动，并安装客户端软件）Maven（配置MAVEN_HOME，修改setting.xml文件）Git（设置ssh登录）IDEA（配置JDK、Maven、Git；安装Mybatis、Lombok等插件；设置自动提示、导包、文件模版等）]]></description><category></category></item><item><title><![CDATA[IDEA设置默认JDK、Maven版本问题汇总]]></title><link>https://blog.youkuaiyun.com/ProgrammingWay/article/details/128938352</link><guid>https://blog.youkuaiyun.com/ProgrammingWay/article/details/128938352</guid><author>ProgrammingWay</author><pubDate>Wed, 08 Feb 2023 19:00:26 +0800</pubDate><description><![CDATA[IDEA设置修改默认的JDK和Maven版本问题总结。]]></description><category></category></item><item><title><![CDATA[IDEA常用快捷键总结]]></title><link>https://blog.youkuaiyun.com/ProgrammingWay/article/details/122281896</link><guid>https://blog.youkuaiyun.com/ProgrammingWay/article/details/122281896</guid><author>ProgrammingWay</author><pubDate>Sun, 02 Jan 2022 22:29:50 +0800</pubDate><description><![CDATA[1. 代码注释、规整
Ctrl+/ 或 Ctrl+Shift+/：注释（// 或者/…/ ）
Ctrl+ALT+L：格式化代码
CTRL+ALT+O：优化导入的类和包
2. 代码提示
ALT+回车：导入包,自动修正
CTRL+ALT+SPACE：类名或接口名提示
CTRL+P：方法参数提示
Ctrl+O：重写方法
ALT+INSERT：生成代码(如GET,SET方法,构造函数等)
CTRL+J：自动代码
3. 快速修改
Shift+F6：重构-重命名 (包、类、方法、变量、甚至注释等)
Ctr+Shift+]]></description><category></category></item><item><title><![CDATA[线程池相关小结]]></title><link>https://blog.youkuaiyun.com/ProgrammingWay/article/details/119490033</link><guid>https://blog.youkuaiyun.com/ProgrammingWay/article/details/119490033</guid><author>ProgrammingWay</author><pubDate>Sat, 07 Aug 2021 18:10:07 +0800</pubDate><description><![CDATA[目录

1、是什么？

2、为什么？

3、怎么用？

4、总结

1、是什么？



线程池（Thread Pool）是一种基于池化思想管理线程的工具，经常出现在多线程服务器中，如MySQL。



2、为什么？

线程过多会带来额外的开销，其中包括创建销毁线程的开销、调度线程的开销等等，同时也降低了计算机的整体性能。线程池维护多个线程，等待监督管理者分配可并发执行的任务。这种做法，一方面避免了处理任务时创建销毁线程开销的代价，另一方面避免了线程数量膨胀导致的过分调度问题，保证了对内核的充分利用。

使用]]></description><category></category></item><item><title><![CDATA[Docker方式安装Consul配置中心]]></title><link>https://blog.youkuaiyun.com/ProgrammingWay/article/details/118249734</link><guid>https://blog.youkuaiyun.com/ProgrammingWay/article/details/118249734</guid><author>ProgrammingWay</author><pubDate>Sat, 26 Jun 2021 15:34:29 +0800</pubDate><description><![CDATA[1、安装docker


yum install docker -y

# 配置镜像加速（省略，建议使用阿里云镜像加速）

systemctl start docker
systemctl enable docker

# 关闭防火墙

2、安装consul


# client 模式
docker run --restart=always --name consul -p 8500:8500 -v /opt/consul/conf/:/consul/conf/ -v /opt/consul/data/:/]]></description><category></category></item><item><title><![CDATA[Java序列化和反序列化]]></title><link>https://blog.youkuaiyun.com/ProgrammingWay/article/details/113091590</link><guid>https://blog.youkuaiyun.com/ProgrammingWay/article/details/113091590</guid><author>ProgrammingWay</author><pubDate>Sun, 31 Jan 2021 15:37:55 +0800</pubDate><description><![CDATA[文章目录1、是什么？2、为什么？3、怎么用？4、注意点：5、Java 序列化的不足6、其他方式7、补充
1、是什么？
序列化：就是把 Java 对象转换成字节序列的过程；
反序列化：就是把字节序列恢复为 Java 对象的过程；
2、为什么？
Java 序列化机制的作用：
（1）可以把对象以字节序列的方式持久化保存到到文件中；
（2）可以将对象以字节序列的方式在网络上进行传输；
3、怎么用？

对于基本数据类型：都是可序列化的；
对于引用数据类型：一个Java对象要想实现序列化，必须实现 java.io.Se]]></description><category></category></item><item><title><![CDATA[Gitlab CI-CD自动化部署SpringBoot项目]]></title><link>https://blog.youkuaiyun.com/ProgrammingWay/article/details/112061688</link><guid>https://blog.youkuaiyun.com/ProgrammingWay/article/details/112061688</guid><author>ProgrammingWay</author><pubDate>Fri, 01 Jan 2021 17:52:07 +0800</pubDate><description><![CDATA[一、概述
本文主要记录如何通过Gitlab CI/CD自动部署SpringBoot项目jar包。
二、前期准备
准备三台 CentOS7服务器，分别部署以下服务：




序号
系统
IP
服务




1
CentOS7
192.168.56.10
Gitlab


2
CentOS7
192.168.56.11
Runner （安装Docker）


3
CentOS7
192.168.56.12
SpringBoot 项目 jar 包（安装jdk、maven等）


上述服务也可以只用一台CentOS]]></description><category></category></item><item><title><![CDATA[VirtualBox+Vagrant安装CentOS7]]></title><link>https://blog.youkuaiyun.com/ProgrammingWay/article/details/108698663</link><guid>https://blog.youkuaiyun.com/ProgrammingWay/article/details/108698663</guid><author>ProgrammingWay</author><pubDate>Sun, 20 Sep 2020 23:20:06 +0800</pubDate><description><![CDATA[一、下载

VirtualBox下载地址：https://www.virtualbox.org/wiki/Downloads（VirtualBox-6.0.12-133076-Win.exe）

vagrant下载地址：https://www.vagrantup.com/downloads（vagrant_2.2.10_x86_64.msi）





二、安装VirtualBox 和vagrant

VirtualBox安装：双击VirtualBox-6.0.12-133076-Win....]]></description><category></category></item><item><title><![CDATA[数据源和连接池的关系]]></title><link>https://blog.youkuaiyun.com/ProgrammingWay/article/details/104451502</link><guid>https://blog.youkuaiyun.com/ProgrammingWay/article/details/104451502</guid><author>ProgrammingWay</author><pubDate>Sat, 22 Feb 2020 22:10:03 +0800</pubDate><description><![CDATA[JDBC 提供了java.sql.Driver、java.sql.DriverManager、javax.sql.DataSource 三个接口，另外还有不同类型的连接池技术，它们之间的关系是什么？下面就简单说一下。



java.sql.Driver：是 Java 提供的一个用来连接数据库的驱动接口，具体实现由各数据库厂商完成。常见的实现有：Mysql 的实现 com.mysql.jdbc....]]></description><category></category></item><item><title><![CDATA[深入理解JDBC]]></title><link>https://blog.youkuaiyun.com/ProgrammingWay/article/details/104443085</link><guid>https://blog.youkuaiyun.com/ProgrammingWay/article/details/104443085</guid><author>ProgrammingWay</author><pubDate>Sat, 22 Feb 2020 15:03:25 +0800</pubDate><description><![CDATA[很早之前就学过JDBC了，但是工作之后都是使用的对JDBC封装好的ORM框架。基本没有手写过JDBC相关的代码了，但是为了对使用的框架底层有更加深入的理解，所以重新复习总结一下JDBC技术。其实JDBC本身并不复杂，这里使用倒序的方式，先将完整步骤写出来，再对每一步进行分析讲解。个人觉得这种方式更加容易理解。

1、是什么？

JDBC是sun公司提供一套用于数据库操作的接口，java程序员只需要...]]></description><category></category></item><item><title><![CDATA[Java比较器：Comparable和Comparator]]></title><link>https://blog.youkuaiyun.com/ProgrammingWay/article/details/104020832</link><guid>https://blog.youkuaiyun.com/ProgrammingWay/article/details/104020832</guid><author>ProgrammingWay</author><pubDate>Fri, 17 Jan 2020 16:48:36 +0800</pubDate><description><![CDATA[1、是什么

Comparable和Comparator都只是一个普通的接口。他们是Java用来定义如何比较两个对象大小的规范，真正的比较逻辑需要由实现类来重写其中的比较方法。

2、为什么

在Java中，两个数值类型的变量可以使用比较运算符（"&gt;","&lt;"等）直接比较两个数值的大小，但是对于引用类型的数据，则不能直接通过比较运算符（"&gt;","&lt;"等）来比较两个对象的大小...]]></description><category></category></item><item><title><![CDATA[谈谈Java中最常用的类—String]]></title><link>https://blog.youkuaiyun.com/ProgrammingWay/article/details/103950047</link><guid>https://blog.youkuaiyun.com/ProgrammingWay/article/details/103950047</guid><author>ProgrammingWay</author><pubDate>Sun, 12 Jan 2020 22:00:17 +0800</pubDate><description><![CDATA[java.lang.String 类可以说是 Java 中最常被使用的一个类，它是一个很普通的类，但是又有很多特殊的地方。本文主要讲解两个部分：

① 使用不同方式创建字符串区别

② String 一个重要的特性：不可变性。

首先，以一道面试题为开始：




@Test
public void test01() {
    String s1 = "hello";
    String s2...]]></description><category></category></item><item><title><![CDATA[Docker方式搭建Mesos+Zookeeper+Chronos集群]]></title><link>https://blog.youkuaiyun.com/ProgrammingWay/article/details/103926343</link><guid>https://blog.youkuaiyun.com/ProgrammingWay/article/details/103926343</guid><author>ProgrammingWay</author><pubDate>Fri, 10 Jan 2020 17:04:21 +0800</pubDate><description><![CDATA[目录



前言

一、搭建环境说明

二、前期准备工作

三、开始正式搭建

1、安装Zookeeper

2、安装Mesos-master

3、安装Chronos

4、安装Mesos-slave

四、测试

五、关于卸载

前言

本文介绍如何使用Docker方式快速搭建三主一从（本地环境有限，实际生产环境可以最好是三主二从）Mesos+Zookeeper+Chronos定时任务集群。...]]></description><category></category></item><item><title><![CDATA[Docker方式搭建Zookeeper集群]]></title><link>https://blog.youkuaiyun.com/ProgrammingWay/article/details/103882697</link><guid>https://blog.youkuaiyun.com/ProgrammingWay/article/details/103882697</guid><author>ProgrammingWay</author><pubDate>Tue, 07 Jan 2020 22:31:22 +0800</pubDate><description><![CDATA[目录



前言：

一、系统安装环境：

二、前期准备工作

三、正式开始安装

四、搭建过程中的一些说明及遇到的问题总结

后记:

前言：

在使用 Docker 搭建 Zookeeper3.5 集群的过程中遇到很多问题，这里记录一下，为今后做个参考。

本文是使用的 zookeeper 是 3.5 版本搭建的集群，有关单机版zookeeper由于比较简单，直接参考 Docker Hub ...]]></description><category></category></item><item><title><![CDATA[浅谈静态代理与动态代理]]></title><link>https://blog.youkuaiyun.com/ProgrammingWay/article/details/103797284</link><guid>https://blog.youkuaiyun.com/ProgrammingWay/article/details/103797284</guid><author>ProgrammingWay</author><pubDate>Wed, 01 Jan 2020 23:20:33 +0800</pubDate><description><![CDATA[图片来源：https://www.cnblogs.com/bigmonkeys/p/7823268.html

首先，理解一下什么是代理，所谓代理，字面意思就是“代替”、“处理”，就是说一定会有一个代理的对象和一个被代理的对象，代理的对象代替被代理对象来处理一些事情，就好像我们现实生活中的代理商，他来代替厂家来销售产品给消费者，另外代理商会提供其他的服务，并收取额外的费用。所以，可以看出，代理...]]></description><category></category></item><item><title><![CDATA[对Java中泛型的理解]]></title><link>https://blog.youkuaiyun.com/ProgrammingWay/article/details/103759489</link><guid>https://blog.youkuaiyun.com/ProgrammingWay/article/details/103759489</guid><author>ProgrammingWay</author><pubDate>Sun, 29 Dec 2019 23:43:55 +0800</pubDate><description><![CDATA[泛型（Generic）：字面意思就是泛化类型。其实就是”参数化类型“。就是将原来具体的数据类型泛化为一个在编译时暂时不确定的类型。等到使用时才确定具体的数据类型。

1、是什么？

所谓泛型就是在定义类、接口是通过一个标识（菱形语法“&lt;&gt;”）来表示类中某个属性的类型或者是某个方法的返回值或方法的参数类型。这个类型参数将在使用时确定。

2、为什么？

（1）解决元素存储的安全性问题。
...]]></description><category></category></item><item><title><![CDATA[对Java中注解的理解]]></title><link>https://blog.youkuaiyun.com/ProgrammingWay/article/details/103751946</link><guid>https://blog.youkuaiyun.com/ProgrammingWay/article/details/103751946</guid><author>ProgrammingWay</author><pubDate>Sun, 29 Dec 2019 11:49:36 +0800</pubDate><description><![CDATA[参考地址：https://blog.youkuaiyun.com/briblue/article/details/73824058

注解：字面意思就是标注解释。就是对 Java 中的元素做一些标注，当需要用到这些信息时，用来获取到解释的信息。

首先，非常认同的上面链接的这位博主的观点，可以把注解类比成现实世界中的标签，标签是一张便签纸，上面的内容可以自定义，他可以贴在某件东西上做一个特殊标记，等到需要的时...]]></description><category></category></item><item><title><![CDATA[对Java中反射的理解]]></title><link>https://blog.youkuaiyun.com/ProgrammingWay/article/details/103748119</link><guid>https://blog.youkuaiyun.com/ProgrammingWay/article/details/103748119</guid><author>ProgrammingWay</author><pubDate>Sat, 28 Dec 2019 20:29:32 +0800</pubDate><description><![CDATA[反射：字面意思就是反向映射。通常我们都是通过类来获取对象，而反射则正好相反，它是通过对象来获取到对象所属的类。并且可以获取到类的完整结构（包括private修饰的信息）。

反射的重要性：反射使我们不需要在编译时知道类型，而可以延迟到运行时获得对象的属性、调用对象的方法。使得 Java 语言具有了动态性。 Hibernate、Spring 等框架都是基于反射实现的，可以说没有反射就没有 JavaE...]]></description><category></category></item></channel></rss>