自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

廷赫斯的博客

廷赫斯的IT技术学习积累

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

原创 阻塞队列与普通队列

阻塞队列与普通队列,阻塞队列是与普通队列的区别,Java队列

2021-09-26 18:32:14 656

原创 Java 位运算符 &、|、^、~、<<、>>

Java 位运算符 &、|、^、~、<<、>>、>>>1. `与`运算符 (`&`)2. `或`运算符(`|`)3. `异或`运算符(`^`)4. `取反`运算符(`~`)4. `左移`运算(`<<`)位运算符指的是 与(&)、或(|)、异或(^)、取反(~)、左移(<<)、右移(>>)、无符号右移(>>>)。位运算其实就是二进制的运算,加减乘除适用于十进制,而位运算就是二进制的运算

2021-05-11 17:18:59 430 3

原创 Java equals 和 ==的区别

Java面试系列文章面向对象的特征Java equals 和 ==的区别Java面试系列文章1. “==” 运算符2. “equals()” 方法1. “==” 运算符对于基本类型和引用类型 == 的作用效果是不同的,如下所示:如果作用于基本数据类型的变量,则直接比较其存储的 值是否相等。如果作用于引用类型的变量,则比较的是所指向的对象的地址是否相等。其实==比较的不管是基本数据类型,还是引用数据类型的变量,比较的都是值,只是引用类型变量存的值是对象的地址。代码示例: int x =

2021-04-14 12:50:55 190

原创 面向对象的特征

Java面试系列文章面向对象的特征Java面试系列文章1. 抽象(Abstract)2. 继承(Extends)3. 封装(Encapsulation)4. 多态1. 抽象(Abstract)抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面。抽象只关注对象有哪些属性和行为,并不关注这些行为的细节是什么。很多java 的书中都谈到了抽象abstract的概念,到底什么是抽象?马克-to-win:抽取关键相关特性(属性和方法)构成对象,用程序的方法逻辑和数据结构 属性模

2021-04-13 11:13:59 86

原创 Java字符串的编码转换问题解决记录

项目场景:在一些企业的老旧系统的数据库选用的字符集与现在开发的新系统所需的字符集有冲突时需要转换字符串的编码类型否则会出现乱码问题。我的这个项目时基于原来老旧的维修工单系统开发新的移动端Java接口(老系统是使用php编写的),出现了数据乱码的现象。问题描述:老系统的数据库字符集是latin1,现在同过Java开发了接口,接口的返回值在前端显示的都是一堆乱码,前端要求我解决乱码问题,因为不能影响现在的业务,更不能丢失数据,所以数据库上的改动字符集是无法进行的,因此只能是在代码里进行编码的转换。

2021-04-12 15:32:45 179

转载 项目中Java的多线程一般用在哪些场景?

项目中Java的多线程一般用在哪些场景?多线程使用的主要目的在于举个简单的例子伪代码多线程的常见应用场景多线程使用的主要目的在于1、吞吐量:你做WEB,容器帮你做了多线程,但是他只能帮你做请求层面的。简单的说,可能就是一个请求一个线程。或多个请求一个线程。如果是单线程,那同时只能处理一个用户的请求。2、伸缩性:也就是说,你可以通过增加CPU核数来提升性能。如果是单线程,那程序执行到死也就利用了单核,肯定没办法通过增加CPU核数来提升性能。鉴于是做WEB的,第1点可能你几乎不涉及。那这里我就讲第二点

2021-04-02 13:44:25 6425

转载 Java工程师必须掌握的JVM知识

Java必须掌握的JVM知识JVM必备知识(思维导图)1、JVM基本概念1.1、JVM是什么1.2、Java程序运行过程1.3、JDK、JRE、JVM2、JVM内存区域2.1、程序计数器2.2、Java虚拟机栈2.3、本地方法栈2.4、Java堆2.5、方法区(JDK1.8移除)2.6、运行时常量池2.7、直接内存3、JVM中的对象3.1、对象的创建3.2、对象的内存布局3.3、对象的访问定位4、GC垃圾回收4.1、如何判断对象需要回收?4.1.1、引用计数法4.1.2、可达性分析算法4.1.3、引用4.2

2021-04-02 13:07:05 262

原创 单点登录(cas)的高可用部署方案

Java应用的高可用部署方案方案说明方案说明高可用:两台服务器部署着相同的服务,如果有一台故障,另一个自动接管,还能继续提供服务提示:

2021-03-25 16:43:25 954

原创 Linux系统下Redis安装

Linux系统下Redis安装源码包解压安装启动及测试源码包解压安装官网下载Redis,选择适合自己的版本,解压并安装。wget http://download.redis.io/releases/redis-6.2.1.tar.gztar xzvf redis-6.2.1.tar.gzcd redis-6.2.1make执行完 make 命令后,redis-6.2.1 的 src 目录下会出现编译后的 redis 服务程序 redis-server。启动及测试启动Redis cd

2021-03-24 15:54:30 79

原创 Redis的配置文件参数详解

Redis的配置文件参数详解# Redis 默认不是以守护进程的方式运行,可以通过该配置项修改,使用 yes 启用守护进程daemonize no# 当 Redis 以守护进程方式运行时,Redis 默认会把 pid 写入 /var/run/redis.pid 文件,可以通过 pidfile 指定pidfile /var/run/redis.pid# 指定 Redis 监听端口,默认端口为 6379port 6379# 绑定的主机地址bind 127.0.0.1# 当客户端闲置多长

2021-03-24 15:51:21 223 2

原创 systemctl start xxxxx.service命令无法正常启动服务

systemctl start xxxxx.service命令无法正常启动服务Failed to start LVS and VRRP High Availability Monitor.systemctl 和 keepalived 服务相关命令systemctl 服务相关命令

2021-03-23 17:36:35 23424 2

原创 Job for keepalived.service failed because the control process exited with error code. 错误解决

项目场景:在Linux系统下使用命令启动 keepalived 服务。问题描述:命令启动 keepalived 服务,已经运行了以下命令:systemctl start keepalived命令运行结果出错,报出错误信息为:Job for keepalived.service failed because the control process exited with error code. See "systemctl status keepalived.service" and "jou

2021-03-23 12:07:55 5346 1

原创 Linux系统下Nginx安装

Linux系统下Nginx安装Nginx简介Nginx安装Nginx简介Nginx是一款轻量级Web服务器,也是一款反向代理服务器。官网:http://nginx.org/中文文档: http://www.nginx.cn/doc/Nginx可以做到以下功能:可直接支持Rails和PHP的程序。可作为HTTP反向代理服务器。作为负载均衡服务器。作为邮件代理服务器。帮助实现前端动静分离。Nginx特点:高稳定。高性能。资源占用少。功能丰富。模块化结构。支持热部署。

2021-03-23 11:56:47 94

原创 Linux系统下Keepalived安装

Linux系统下Keepalived安装

2021-03-23 11:34:56 252

原创 Keepalived 配置文件 各项配置含义

global_defs { notification_email { #邮件通知 root@localhost #设定为本机就可以,比如发生了IP地址迁移 } notification_email_from Alexandre.Cassen@firewall.loc #报警邮件的发送地址 smtp_server 127.0.0.1 smtp_connect_timeout 30 #连接.

2021-03-23 09:57:40 345

原创 WARNING - this build will not support IPVS with IPv6. 警告解决

项目场景:在Linux系统下使用命令解压安装 keepalived 源码包。问题描述:安装 keepalived 源码包,已经运行了以下命令:tar -xzvf keepalived-2.2.2.tar.gzcd keepalived-2.2.2./configure --prefix=/usr/local/keepalivedyum -y install gcc./configure --prefix=/usr/local/keepalivedyum -y install openss

2021-03-23 09:22:07 3991 1

原创 configure: error: !!! OpenSSL is not properly installed on your system. !!! 错误解决

项目场景:在Linux系统下使用命令解压安装 keepalived 源码包。问题描述:安装 keepalived 源码包,已经运行了以下命令:tar -xzvf keepalived-2.2.2.tar.gzcd keepalived-2.2.2./configure --prefix=/usr/local/keepalivedyum -y install gcc./configure --prefix=/usr/local/keepalived第三个命令运行结果出错,已解决(解决方法

2021-03-22 14:00:19 7112 2

原创 configure: error: no acceptable C compiler found in $PATH 错误解决

项目场景:在Linux系统下使用命令解压安装 keepalived 源码包。问题描述:安装 keepalived 源码包,已经运行了以下命令:tar -xzvf keepalived-2.2.2.tar.gzcd keepalived-2.2.2./configure --prefix=/usr/local/keepalived前两个命令运行正常,第三个命令运行结果为:checking for a BSD-compatible install... /usr/bin/install -c

2021-03-22 13:49:49 1601 1

原创 Linux系统下安装FTP服务

Linux系统下安装FTP服务1. 简介2. 工作原理3. FTP的安装与配置1. 下载vsftp安装包2. 检查是否已经安装了vsftp,后面会介绍怎样卸载3. 安装vsftpd4. 检查是否安装成功5. 开启vsftpd的 20与21端口6. centos7.3 开启20和21端口,开启4000-5000端口为被动连接提供数据传输5. 虚拟用户登录方式设置1 . 创建两个系统用户2. 配置vsftpd的主要配置文件vsftpd.conf3. 建立vsftpd的日志文件,并更改属主为vsftpd的服务宿

2021-03-20 21:43:57 3633 1

原创 Kafka安装与配置

Kafka安装与配置1. 编译安装Kafka2. 二进制文件安装Kafka2.1. Kafka单机安装2.2. Kafka分布式安装(推荐:生产环境)2.2.1. zookeeper安装配置2.2.2. 分布式Kafka集群启动2.2.3. 分布式Kafka集群启停脚本2.3 Kafka配置文件详解2.3.1 配置文件 server.properties2.3.3 配置文件 producer.properties2.3.3 配置文件 consumer.properties1. 编译安装Kafka安装与

2021-03-18 22:07:24 1437

原创 Kafka操作命令

Kafka操作命令1. 主题操作1.1. 创建主题1.2. 主题列表1.3. 查看指定主题1.4. 修改主题1.5. 删除主题1.6. 从kafka一个主题数据迁移到另一个主题2. 生产者操作3. 消费者操作1. 主题操作1.1. 创建主题./kafka-topics.sh --zookeeper 172.18.233.118:2181,172.18.233.119:2181,172.18.233.120:2181 \ --create --replication-factor 1 --p

2021-03-18 21:09:49 115

原创 Java 之异常处理浅谈

Java 之异常处理详谈1. 异常简介3. 异常分类3. 异常处理1. 异常简介异常就是程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常。异常发生时,是任程序自生自灭,立刻退出终止。在Java中即,Java在编译或运行或者运行过程中出现的错误。Java异常处理机制能让程序在异常发生时,按照代码的预先设定的异常处理逻辑,针对性地处理异常,让程序尽最大可能恢复正常并继续执行,且保持代码的清晰。Java中的异常可以是函数中的语句执行时引发的,也可以是程序员通过throw

2021-03-16 17:29:56 133

原创 Spring Boot 整合 Redis 做缓存机制

Spring Boot 整合 Redis 做缓存机制1. Redis 简介1.1. Redis的特点1.2. Redis的优势1.3. Redis的不同之处2. SpringBoot 整合 Redis2.1. Pom文件添加Redis依赖2.2. 配置 application.yml2.3. 在启动类上添加 @EnableCaching 注解3. 使用方法3.1. Redis缓存配置类3.2. 注解详情介绍3.3. 缓存数据4. 封装成服务4.1. RedisService 服务层接口代码4.2. Redi

2021-03-15 17:48:17 117

原创 Kafka监控系统 --- Kafka Eagle

Kafka监控系统 --- Kafka Eagle1. Kafka Eagle 简介2. Kafka Eagle 结构与功能3. Kafka Eagle依赖4. Kafka Eagle安装5. Kafka Eagle监控趋势图6. Kafka SQL查询Topic7. 总结1. Kafka Eagle 简介Kafka Eagle监控系统是一款用来监控Kafka集群的工具,目前更新的版本是v1.3.7,支持管理多个Kafka集群、管理Kafka主题(包含查看、删除、创建等)、消费者组合消费者实例监控、

2021-03-14 22:45:18 274

原创 消息队列之Kafka详解

消息队列之Kafka详解1 什么是Kafka3. 基本概念4. 分区存储4.1. 分区存储数据4.2. Kafka清理过期数据有哪些方法5. Kafka安全机制5.1. 了解Kafka安全机制5.2. 配置ACL5.3. Kafka启用ACL模式6. Kafka连接器6.1. 了解连接器使用场景6.2. 特性和优势6.3. 操作Kafka连接器6.4. 开发一个简易Kafka连接器插件7. Kafka监控系统 --- Kafka Eagle7.1. Kafka Eagle 简介7.2. Kafka Eagl

2021-03-13 23:07:39 512 5

原创 String、StringBuilder 和 StringBuffer 的详解

String、StringBuilder 和 StringBuffer 的详解String 类深入理解 StringStringBuilder 类 和 StringBuffer 类总结String 类字符串广泛应用 在Java 编程中,在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作字符串。需要注意的是,String的值是不可变的,这就导致每次对String的操作都会生成新的String对象,这样不仅效率低下,而且大量浪费有限的内存空间。String类是final类,

2021-03-12 17:48:49 142

原创 重写(Override)与重载(Overload)的详解

重写(Override)与重载(Overload)的详解重写(Override)方法的重写规则重载(Overload)方法的重载规则:重写与重载之间的区别重写(Override)父类与子类之间的多态性,对父类的函数进行重新定义。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。在Java中,子类可继承父类中的方法,而不需要重新编写相同的方法。有时子类并不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写。方法重写又称方法覆盖,若

2021-03-11 17:30:07 265

原创 Mysql 存储引擎详解

Mysql 存储引擎1. 存储引擎简介2. MyISAM 存储引擎3. InnoDB 存储引擎4. Memory 存储引擎5. Archive 存储引擎6. Merge 存储引擎7. 总结1. 存储引擎简介关系型数据库表是用来存储和组织信息的数据结构,可以将表理解为由行和列组成的表格。由于表的类型不同,我们在实际开发过程中,就有可能需要各种各样的表,不同的表就意味着存储不同类型的数据,数据的处理上也会存在差异对于Mysql来说,它提供了很多种类型的存储引擎存储引擎说白了就是如何存储数据,如何为存

2021-03-10 17:47:04 128 1

原创 myBatis xml文件SQL编写( if、where、if-else、set 、foreach )

myBatis xml文件SQL编写( if、where、if-else、set 、foreach )1. if 标签2. where 标签3. choose, when, otherwise 标签 (if - else if - else )4. set 标签5. foreach 标签MyBatis 的强大特性之一便是它的动态 SQL。如果你有使用 JDBC 或其它类似框架的经验,你就能体会到根据不同条件拼接 SQL 语句的痛苦。例如拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗

2021-03-09 18:57:05 7746 1

原创 事务管理>>>>Spring

Spring 事务管理1. 事务基本概念1.1. 事务的基本要素(ACID)1.1.1 原子性(Atomicity)1.1.2 一致性(Consistency)1.1.3 隔离性(Isolation)1.1.4 持久性(Durability)1.2. 事务并发问题1.2.1 脏读(Dirty reads)1.2.2 不可重复读(Nonrepeatable read)1.2.3 幻读(Phantom read)1.3. 事务的隔离级别1.3.1 读取未提交(ISOLATION_READ_UNCOMMITTED

2021-03-08 17:33:37 56

原创 消息队列 MQ(Message Queue)

消息队列 MQ(Message Queue)1. 消息队列的基本概念1.1. Broker1.2. 消息的生产者、消费者2. 点对点模式3. 发布/订阅模式(Topic)4. 消息队列的主要作用4.1. 解耦4.2. 冗余4.3. 扩展性4.4. 灵活性 & 峰值处理能力4.5. 可恢复性4.6. 顺序保证4.7. 缓冲4.8. 异步通信4.9. 事务支持5. 消息队列的应用场景常用的两种消息队列组件:RabbitMQ:高可用、高可靠消息应用场景,例如记账失败重试、通知服务,消息不允许丢Kaf

2021-03-07 11:42:05 311

原创 ArrayList 深入研究详解(Java源码解析)

ArrayList 深入研究学习(Java源码解析)1. 成员变量2. 构造函数2.1. 无参构造函数2.2. 构造一个初始容量大小为 initialCapacity 的 ArrayList2.3. 指定 Collection 来构造 ArrayList 的构造函数3. 实例方法3.1. add操作4. 扩容机制5. 线程是否安全ArrayList 是 java 中比较常用的数据结构了。继承自 AbstractList,实现了 List 接口、RandomAccess 接口、Cloneable 接口、S

2021-03-05 17:36:25 162 1

原创 Linux系统安装配置Tomcat的完整步骤

Linux系统安装配置Tomcat的完整步骤 1. 下载自己所需版本的Tomcat安装包2. 解压 Tomcat 安装包3. 设置环境变量4. 执行profile文件5. 测试 tomcat 是否能正常运行提示:安装配置Tomcat需要先配置jdk环境,所以没有配置jdk环境的朋友们,先 安装JDA1. 下载自己所需版本的Tomcat安装包访问 Apache Tomcat 官网 选取自己所需要的tomcat版本(在这里选择了 Tomcat 9.0.43 Released),点击对应的 Downloa

2021-03-04 11:33:14 1563 2

原创 Linux系统安装JDK环境的完整步骤

Linux系统安装JDK环境的完整步骤1. 选取自己所需的jdk版本安装包2. 解压 jdk 安装包3. 设置环境变量4. 执行profile文件5. 测试 java 命令是否正常运行1. 选取自己所需的jdk版本安装包访问 oracle官网 ,在导航栏中点击 Products ,选择 Software 中的 Java ,找到 Download Java now 并点击。选取个人所需的jdk版本,点击** JDK Download**(在这里选取了Java SE 11 (LTS)),选取自己所需包,

2021-03-03 15:44:54 402

原创 十大经典排序算法

十大经典排序算法1.冒泡排序2.选择排序3.插入排序4.希尔排序5.归并排序6.快速排序7.堆排序8.计数排序9.桶排序10.基数排序排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。用一张图概括:1.冒泡排序冒泡排序(Bubble Sort)也是一种简单直观的排序算法。它重复地走访过要排序的数

2021-03-02 17:53:15 149

原创 Java工程师进阶系统架构师

Java工程师进阶系统架构师需要掌握的技术个人有三年多近四年的开发经验,突然有一天开始对自己的职业生涯开始变的迷茫了,之前从事的工作是一种日复一日码农的生活,不管是生活还是工作给自己的感觉都是在不断地重复,毫无激情可言,所以开始思考未来该如何,因为技术栈比较丰富属于全栈工程师,然后就开始思考是不是还有别的进步空间,然后就了解到了系统架构师 ,刚开始我对系统架构师的概念是非常模糊的,其实到现在我都不敢说彻底了解的系统架构师 的职责,先说说此时此刻对系统架构师 的概念吧。系统架构师 在技术层面上需要精通分布

2020-06-24 11:23:21 269

空空如也

空空如也

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

TA关注的人

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