- 博客(288)
- 资源 (26)
- 收藏
- 关注
原创 9. 一分钟读懂“策略模式”
策略模式是一种行为型设计模式,用于在运行时灵活切换对象的行为或算法,它将算法封装为独立的类,使得它们可以互相替换,而不会影响使用这些算法的客户端代码。
2024-12-04 15:17:45
669
原创 5. 一分钟读懂“工厂方法模式”
你可能会发现,简单工厂模式没在经典设计模式里出现,别急,它其实只是个常用的编程技巧,而不是标准的设计模式。简单工厂模式有三个要素:1个产品接口、n个产品类、1个工厂类,工厂类通过if/else来选择创建哪个产品。听起来挺简单,但问题是——一旦你想新增产品,就得修改工厂类,违反了“开闭原则”。为了避免这种麻烦,聪明的程序员们发明了工厂方法模式。它为每个产品创建一个独立的工厂类,这样一来,新增产品时无需改动现有代码,系统的灵活性和可扩展性大大增强。
2024-12-04 14:36:41
427
原创 4. 设计模式分类
用一个中介对象来封装一系列的对象交互, 中介者使各对象不需要显式地相互引用,从 而使其耦合松散,而且可以独立地改变它们 之间的交互。为子系统中的一组接口提供一个一致的 界面,外观模式定义了一个高层接口, 这个接口使得这一子系统更加容易使用。定义对象间的一种一对多的依赖关系,当一 个对象的状态发生改变时,所有依赖于它的 对象都得到通知并被自动更新。在不破坏封装性的前提下,捕获一个对象的 内部状态,并在该对象之外保存这个状态。将一个复杂的构建与其表示相分离,使 得同样的构建过程可以创建不同的表示。
2024-12-04 11:28:19
697
原创 3. 我怎么学不会设计模式?
钱也花了,书也买了,代码还是一坨一坨的!设计模式是由多年的经验提炼出来的一种开发指导思想。就像我告诉你如何骑自行车、如何开汽车,但如果你没有跑过几千公里,你能记住的只是理论,真正上手时仍然会感到紧张。因此,本设计模式专题系列会带你一起运用设计模式的思想优化代码,学习设计模式的精髓并融入到实际开发中。当然,这还需要大量练习,只有做到人车合一,才能在设计模式的基础上构建出更加合理的代码结构。
2024-12-04 11:24:31
382
原创 2. 为什么认为设计模式重要,但是实际开发过程中感受很少?
广播消息(观察者模式),还觉得“这不就是群发吗?”却没意识到自己在用经典模式。用的是代理模式,但你只觉得“好方便啊”,从来没想过设计模式的事。:老板说“今晚上线”,你敢说“我得先想个优雅的单例模式”?:写个前端实时刷新功能,你用。:Spring框架里,背后用的是工厂模式,
2024-12-04 11:22:15
412
原创 1. 设计模式的由来
20世纪90年代,四位软件工程师(被称为“四人帮”)——Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides,出版了一本名为《设计模式:可复用面向对象软件的基础》的书。这些模式就像程序员的“万用钥匙”,不仅让代码更优雅,还让开发者少踩坑、多吹牛。特别是在JAVA中,设计模式因其与面向对象的契合度,成了让代码“看起来很贵”的秘诀!设计模式的灵感来自建筑师亚历山大的“设计套路”,后来被程序员借用,总结出一套“编程武功秘籍”。
2024-12-04 11:19:56
406
原创 hive2.0.1执行存储过程
1、编写过程sql基于上篇文章的test_db库,vi test.sql,新增:use test_db;begininsert into t_test2(id,name) values(2,'你好');insert into t_test2(id,name) values(3,'你好');insert into t_test2(id,name) values(4,'你好');delete from t_test2 where id=1;select * from t_test2;end;
2021-06-21 11:57:36
994
1
原创 Centos7安装Hive2.0.1集群
1、准备工作1.1、安装jdk1.8和mysql5.7.21,略1.2、安装Hadoop2.6.0,略1.3、机器介绍192.168.1.89 node1192.168.1.149 node2192.168.1.180 node3node1、node2、node3上都已经安装了Hadoop2.6.02、下载并上传(三个节点都操作)http://archive.apache.org/dist/hive/hive-2.0.1/apache-hive-2.0.1-bin.tar.gz上传至三台
2021-06-03 21:27:18
407
2
原创 Centos7安装Hadoop2.6.0集群
一、环境准备与介绍1、部署架构使用的模式是 1m-2s2、nameserver机器信息192.168.1.89 node1192.168.1.149 node2192.168.1.180 node32、修改主机名称2.1、分别修改三台机器主机名称192.168.1.89上执行:hostnamectl set-hostname node1192.168.1.149上执行:hostnamectl set-hostname node2192.168.1.180上执行:hostnam
2021-06-03 21:18:51
389
原创 CentOS7下安装部署kafka集群
一、环境在centos7.2系统下,使用3台服务器搭建集群Server1:192.168.1.11Server2:192.168.1.12Server3:192.168.1.13二、安装配置JDK下载并安装JDK1.8版本,比较简单,此处不再介绍。三、搭建zookeeper集群Zookeeper集群的工作是超过半数才能对外提供服务,这里选择使用3台。1、下载地址https://archive.apache.org/dist/zookeeper/zookeeper-3.4.10/z
2021-05-25 14:36:25
1126
1
转载 centos7 快速卸载openjdk
rpm -qa | grep java | xargs rpm -e --nodeps参考:https://blog.youkuaiyun.com/weixin_34060741/article/details/91905833
2021-04-22 16:37:46
225
原创 Centos7.2下RocketMQ 集群部署(2m-2s-sync)
一、环境准备与介绍1、部署架构、使用的模式是 2m-2s-sync2、broker机器信息Master 1:192.168.31.5Slave 1:192.168.31.6Master 2:192.168.31.7Slave 2:192.168.31.83、nameserver机器信息Name Server 1:192.168.31.5Name Server 2:192.168.31.6Name Server 3:192.168.31.74、安装jdk安装jdk-8u1
2021-03-17 18:17:57
483
转载 CentOS 7 MySQL自动备份shell脚本
系统环境:CentOS7 64位 Minimal版(VMware)MySQL5.7原理与工具:shell脚本mysqldump程序crontab命令1、新建shell脚本vi /opt/mysqlBackup.sh#!/bin/bash# 以下配置信息请自己修改mysql_user="USER" #MySQL备份用户mysql_password="PASSWORD" #MySQL备份用户的密码mysql_host="localhost"mysql_port.
2020-12-10 14:45:28
539
原创 基于kibana开发工具(Dev Tools )修改logstash模板
1.查询模板GET _template/logstash#! Deprecation: [types removal] The parameter include_type_name should be explicitly specified in get template requests to prepare for 7.0. In 7.0 include_type_name will default to 'false', which means responses will omit
2020-07-28 16:54:24
2257
原创 python基于UDP广播实现查找局域网服务器
# UDP广播案例-发送端from socket import *import time# 设定目标地址dest = ('192.168.31.255', 9999) # 192.168.31是我的网段,255代表任意IPs = socket(AF_INET, SOCK_DGRAM)s.setsockopt(SOL_SOCKET, SO_BROADCAST, 1)data = ...
2020-04-25 13:34:00
1753
1
原创 mysql事务中ddl语句的隐式提交
1、当执行到DDL语句时,会隐式的将当前回话的事务进行一次“COMMIT”操作,因此在MySQL中执行DDL语句时,应该严格地将DDL和DML完全分开,不能混合在一起执行。2、为什么DDL语句会隐式提交?因为DDL是数据定义语言,在我们的数据库中承担着创建,删除和修改的重要的职责。一旦发生问题,带来的后果很可能是不可估量的。二是在每执行完一次后就进行提交,可以保证流畅性,数据不会发生阻塞,同...
2020-03-23 10:43:28
1872
原创 基于Docker快速搭建ELK6.7.0
1.安装ElasticSearch1.1准备工作1.1.1节点介绍192.168.1.21、192.168.1.22、192.168.1.231.1.2拉取镜像(三台虚拟机都执行)docker pull elasticsearch:6.7.01.2.宿主机配置(三台虚拟机都执行)1.2.1创建文件夹mkdir -p /data/server/elasticsearch/c...
2019-12-05 09:36:01
1328
1
原创 基于docker安装破解jira7.11.1
1.拉取jira的docker镜像docker pull cptactionhank/atlassian-jira-software:7.11.12.启动jira容器docker run --name jira --detach --restart always --publish 8080:8080 cptactionhank/atlassian-jira-software:7....
2019-07-18 20:17:17
955
原创 基于jsonp和cookie实现单点登录
1.SSO需求当前域名A:www.abc.com跨域域名B:www.def.com当在A域名下登录后点击链接跳转至域名B,希望实现域名B免登录。2.实现思路2.1域名A开发一个接口C:获取当前请求的session信息,存在返回0和session信息,不存在返回1。2.1在域名B下利用jsonp请求域名A的接口C。2.3在域名B下根据接口返回结果判断是否跳转至登录页:0直接使用sess...
2019-06-04 22:03:38
1195
原创 GitBook快速入门
1.安装 Node.js#Node 官网已经把 linux 下载版本更改为已编译好的版本了,我们可以直接下载解压后使用:wget https://nodejs.org/dist/v10.15.3/node-v10.15.3-linux-x64.tar.xztar xf node-v10.15.3-linux-x64.tar.xz cd node-v10.15.3-linux-x64...
2019-05-21 21:19:33
550
原创 JAVA基础篇-文件分片与合成实践
本文提供两种文件分片与合成的方法,分别是普通IO流的方式和使用RandomAccessFile的方式,推荐RandomAccessFile方式,接下来请看代码实现:package com.study.xxl;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.Fil...
2019-05-20 11:53:21
2435
原创 JAVA基础篇-IO流总结
本篇主要对Java基础中输入输出流做一个学习总结。1.Java流类图结构(两种方式展示)2.java.io包下的所有类的结构图3.流的概念流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。4.流的分类按流的方向分为:输入流和输出流按流的数据单位...
2019-05-16 12:07:37
275
原创 利用ssh反向隧道实现内网穿透远程控制
1.环境介绍局域网客户端A-192.168.40.24广域网服务器B-172.10.12.882.安装autossh(客户端A上操作)yum install autossh#使用autossh必须使用客户端A必须使用key认证登录方式3.配置免密登录(客户端A上操作)ssh-keygen -t rsassh-copy-id -i .ssh/id_rsa.pub root@...
2019-05-13 19:28:12
1784
4
转载 使用fedora把U盘制作为启动盘后恢复隐藏空间
diskpartlist diskselect disk 1cleancreate partition primaryformat quick fs=fat32 label="udisk"assign letter="F"exi转载:https://blog.youkuaiyun.com/qq_31737339/article/details/53671772
2019-03-27 18:50:50
955
原创 Centos7下Python3.6.6离线一键安装脚本
先在别的机器下载好依赖的rpm:yum install --downloadonly --downloaddir=/root/rpm zlib zlib-devel make cmake gcc gcc-c++ readline-devel.x86_64 libSM.x86_64 libXext.x86_64 libXrender.x86_64 openssl-devel拷贝到离线的机器...
2019-03-21 19:51:50
1866
原创 yum自动下载RPM包及其所有依赖的包并批量安装
yum自动下载RPM包及其所有依赖的包至/root/rpm目录:yum install --downloadonly --downloaddir=/root/rpm <package-name>切换到下载目录rpm中批量安装:rpm -ivh * --nodeps --force...
2019-03-20 21:13:44
9833
原创 centos7.6一键式安装mysql5.7.21
执行./mysql.sh内容:wget https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.21-linux-glibc2.12-x86_64.tar.gzmkdir -p /home/data/server/rm -rf /etc/my.cnfcp mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz ...
2019-03-14 21:28:41
542
原创 一键式安装配置docker脚本
执行./docker.sh脚本内容:yum install -y yum-utils device-mapper-persistent-data lvm2yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repoyum makecache fastyum -y...
2019-03-14 21:24:01
858
原创 docker常用命令
命令1:docker run -m 10G --cpus 3 --name 容器名称 --restart=always -v /etc/localtime:/etc/localtime:ro -v /data:/data -p 5000-5010:5000-5010 -itd 镜像名:镜像标签 /bin/bash解释1:-m 10G:限制容器最多使用10G内存--cpus 3:限...
2019-02-20 17:46:28
262
原创 CentOS7使用无线WiFi连接并设置为开机启动
1.使用wpa_supplicant联网1.1查看无线网卡名称[root@localhost ~]# ip addr1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd...
2019-02-16 11:17:17
13823
2
转载 pycharm pip 升级失败
pycharm 在setting 里升级pip版本可能出现错误可以在虚拟环境里用python -m pip install -U --force-reinstall pip命令升级转载自:https://blog.youkuaiyun.com/weixin_37562612/article/details/81231137...
2019-01-20 16:27:47
993
转载 windows环境下永久修改pip镜像源的方法
一、在windows环境下修改pip镜像源的方法(以python3.6为例)(1):在windows文件管理器中,输入 %APPDATA%(2):会定位到一个新的目录下,在该目录下新建pip文件夹,然后到pip文件夹里面去新建个pip.ini文件(3):在新建的pip.ini文件中输入以下内容,搞定文件路径:"C:\Users\Admin\AppData\Roaming\pip\pip.in...
2019-01-20 16:16:20
2126
转载 docker修改空间大小
1.简介docker默认空间大小分为两个,一个是池空间大小,另一个是容器空间大小。池空间大小默认为:100G容器空间大小默认为是:10G所以修改空间大小也分为两个,这里使用centos下的yum进行安装的Docker(18.03.1-ce)。首先,修改空间大小,先停止正在运行的docker服务:systemctl stop docker.service2.修改池空间大小方法:d...
2019-01-04 18:57:07
2526
原创 linux下查看磁盘分区&挂载
1.查看磁盘分区列表fdisk -l可以看到:磁盘 /dev/vdb:214.7 GB, 214748364800 字节,419430400 个扇区Units = 扇区 of 1 * 512 = 512 bytes扇区大小(逻辑/物理):512 字节 / 512 字节I/O 大小(最小/最佳):512 字节 / 512 字节2.挂载到目录(/data目录已存在)mount /de...
2018-12-29 14:39:19
763
2
原创 rap2安装部署笔记
1.简介RAP2是在RAP1基础上重做的新项目,它包含两个组件(对应两个Github Repository)。rap2-delos: 后端数据API服务器,基于Koa + MySQLlinkrap2-dolores: 前端静态资源,基于React link官方演示demo地址:http://rap2.taobao.org/2.获取源代码git clone https://githu...
2018-12-27 14:19:48
1343
3
转载 Mybatis关联查询之一对多和多对一XML配置详解
https://blog.youkuaiyun.com/qq_33561055/article/details/78861131
2018-12-03 16:10:04
467
Centos7下Python3.6.6一键安装脚本及相关包
2019-03-21
JWT快速入门
2017-09-21
JWT(JsonWebToken)+SpringMVC项目demo
2017-09-21
IT项目管理那些事儿
2017-04-24
HDFS原理图
2017-02-17
基于redis的Session共享jar包
2016-11-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人