自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 JAVA设计模式第九章:建造者模式

用于简化和优化复杂对象的创建过程,提高创建效率和代码可读性

2024-02-18 23:00:00 617

原创 JAVA设计模式第九章:工厂模式

设计模式 工厂模式 简单工厂模式 工厂方法模式 抽象工厂模式

2024-02-17 22:43:13 431

原创 使用wait和notify实现非阻塞生产消费者模型

使用wait和notify实现非阻塞生产消费者模型

2023-01-23 12:27:05 1334

原创 JAVA设计模式第八章:迭代器模式(Iterator Pattern)

java设计模式之迭代器模式,java中ArrayList的迭代器模式

2022-09-06 17:17:51 271

原创 JAVA设计模式第七章:解释器模式(Interpreter Pattern)

解释器模式解释器模式属于行为型模式是按照一定的语义进行解释的方案,在日常编码中使用较少在java中expression4J spring的SpEL表达式代码实现用解释器模式实现对一个简单的加减法计算的解析Context 解释器上下文Expression 解释器接口非终结符表达式: 通常由其它表达式组成;终结符表达式: 一般为取值表达式,为递归树的叶子节点/** * 上下文 * * @author cans * @date 2022/5/14 **/public clas

2022-05-14 14:41:56 245

原创 JAVA设计模式第六章:命令模式

命令模式命令模式在设计模式中属于行为型模式;在日常开发中也是比较常用的模式,只是可能我们没有意识到这属于命令模式;命令模式主要关注点在于请求发送方和请求接收方的解耦;命令模式基于java多态的特性,非常简单;在日常生活中也存在命令模式的原型,比如说电视机和遥控器:遥控器发送请求;电视机接收请求;电视机和遥控器是解耦的;代码使用命令模式模拟电视机和遥控器/** * 命令接口 */public interface Cmd { /** * 执行 *

2022-05-08 20:53:21 326

原创 JAVA设计模式第五章:责任链模式

设计模式之责任链模式,属于设计模式中的行为型模式

2022-04-27 00:00:00 175

原创 JAVA设计模式第四章 -策略模式

策略模式世界上本没有模式;一些程序老鸟在长时间的编程工作总结出高效的代码写法被后世推崇;并整理出固定的写法规范,这个写法规范目前收录有23种这些规范被称之为 --> 设计模式策略模式是什么在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。简单说就是把变化点封装起来策略模式的使用场景Q: 我们知道策略模式最重要的就是封装变化点,那边对于变化点我们一般用什么处理呢?A: 是的 我们一般用if - else 处

2022-03-26 23:08:09 889

原创 java设计模式 第三章:单例模式

单例模式面试必会,设计模式入门

2021-12-05 15:46:28 1108 1

原创 java设计模式 第二章:观察者模式

观察者模式一方发生改变时通知多放进行相应的操作比如:商人进货了,通知村民商品进货微信公众号发文章了,通知所有关注者最新的消息为什么使用观察者模式降低代码耦合度增强扩展性我认为设计模式是死的但是业务是灵活的,我们需要根据业务灵活使用设计模式,心中无模式代码有模式观察者模式实践实现业务:良民: 张三 李四 劫匪: 张麻子 观察卖大米商人的信息张三 李四 监听到大米进货前去买大米张麻子 监听到大米进货带着枪前去零元购两个接口/** * 观察者接口 * * @author s

2021-11-27 16:18:06 219 1

原创 java设计模式 第一章: 代理模式

从今天开始更新java设计模式相关的东西,之前虽然也对java设计模式有过学习单都是走马观花或者应付面试.现在工作中遇到了挑战,编写出优雅的代码成为非常迫切的事情;代理模式代理模式是java中常用的设计模式,在比如说在spring中的事物管理就是使用的代理模式;1.为什么要使用代理模式所有的设计模式都具有一个目标: 提高代码的复用率,这一点非常重要;代理模式可以抽取通用的代码生成代理类,通过代理类执行目标对象的方法实现了代码的复用,经典的案列:spring的AOP;2.代理模式的分类静态代理

2021-11-14 18:32:40 255

原创 tomcat8.5 linux环境时区和系统时区不一致问题

处理方法进入tomcat/bin目录下,修改catalina.sh文件. 在文件头中添加如下配置:export JAVA_OPTS="$JAVA_OPTS -Duser.timezone=Asia/Shanghai"

2021-07-23 12:28:58 213

原创 JAVA 高级开发面试技术点

ConcurrentHashMap 内部实现原理看起来只问了一个问题,但是其中包含了大量知识点,我们将知识点罗列如下1. HashMapHashMap底层数据结构hash算法与hash碰撞1.7和1.8实现的区别扩容2. HashTable为什么要用HashTableHashTable和ConcurrentHashMap对比3. ConcurrentHashMap 原理底层结构怎么保证并发安全ConcurrentHashMap底层存储结构和算法ConcurrentHash

2021-06-04 14:15:08 540 2

原创 MySQL索引数据结构整理(二叉树 红黑树 B-Tree B+Tree)

我们都知道MySQL是使用B+Tree来存储索引的,但是B+Tree有什么优势呢,我们一起来研究一下吧.常见的数据存储结构二叉树红黑树B-Tree树B+Tree树二叉树每个结点最多有两颗子树,所以二叉树中不存在度大于2的结点左子树和右子树是有顺序的,次序不能任意颠倒即使树中某结点只有一棵子树,也要区分它是左子树还是右子树二叉树相对于全表扫描是有优势的,相当于二分查找提高了检索速度;红黑树红黑树又叫平衡二叉树,拥有自平衡功能,极端情况下二叉查找树会形成一个链表结构而红黑树就不

2021-05-28 16:47:59 408

原创 JPA Hibernate查询n+1问题,关联实体查询加载慢优化

问题出现场景伪代码如下:/** * 班级表 **/ @Entity @Tableclass { /** * 班级名称 **/ @Column(name="name") private String name;}/** * 学生表 **/ @Entity @Tableclass Student{ /** * 名称 **/ @Column(name="name") private String name; /** * 学号 **/ @

2021-05-06 17:19:40 2180

原创 java并发编程synchronized关键字的使用

1. synchronized的两种锁类型1.1 类锁锁的是类,也就是calss;执行同步的代码需要获得此class的锁;1.2 对象锁锁的是实例化的对象,不同的对象对应的锁不一样.不同对象之间的锁是隔离的;类锁和对象锁之间没有关系,不会出现互斥现象;2. synchronized 三种用法2.1 修饰方法修饰普通方法加的是对象实例锁,作用范围此实例对象;2.2 修饰静态方法修饰静态方法锁的是此类,范围是类;和实例对象不相关2.3 修饰代码块2.3.1 锁成员变量 public v

2021-04-23 10:13:36 85

原创 docker安装oracle

docker安装oracle配置docker仓库加速vim /etc/docker/daemon.json加入以下内容 { "registry-mirrors": [ "https://no1pfk8z.mirror.aliyuncs.com", "https://kfwkfulq.mirror.aliyuncs.com", "https://2lqq34jg.mirror.aliyuncs.com", "https://pee6w651.mirror.aliyuncs.com

2021-03-23 15:02:38 144

原创 Centos7安装Jenkins

Centos7安装Jenkins1.下载安装包清华镜像源选择对应的版本,这里使用:jenkins-2.224-1.1.noarch.rpm安装1.运行rpm -ivh jenkins-2.224-1.1.noarch.rpm2.修改启动端口修改:JENKINS_PORT = “8888”3.systemctl daemon-reload4. systemctl start jenkins4.浏览器访问服务器IP+端口长时间无反应可做如下尝试vi /var/lib/jenkins/hu

2021-03-08 14:49:15 183

原创 Centos7安装Nginx

Centos7安装Nginx版本: nginx-1.18.01.安装依赖安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境,如果没有 gcc 环境,则需要安装:yum install gcc-c++PCRE pcre-devel 安装 正则表达式解析yum install -y pcre pcre-develzlib 安装 用于压缩和解压缩yum install -y zlib zlib-develOpenSSL 安装 加密 启用https需要使用yu

2021-03-02 20:13:01 130

原创 Linux 防火墙常用操作

1 关闭防火墙systemctl stop firewalld.service2 开放端口如:开放3306端口firewall-cmd --zone=public --add-port=3306/tcp --permanent3 重启服务systemctl restart firewalld.service4 查看放行端口firewall-cmd --list-ports5 删除端口配置firewall-cmd --zone= public--remove-port=80/tcp --p

2021-01-05 10:31:23 160

原创 ELK 三件套下载地址

国内镜像下载ELK (ElasticSearch/logstacsh/kibana)三件套国内大家都懂的原因下载ELK包很慢使用华为云下载: 华为云下载ELK三件套亲测速度非常的快

2020-12-16 16:51:11 270

原创 使用jProfiler远程监控线上Linux环境JVM

jProfiler下载安装官网地址: 下载地址将windows版本的和Linux版本的都下载下来我使用的版本是11.0.2注意: linux和windows版本必须保持一致安装windows安装普通安装即可linux安装将下载的 jprofiler_linux_11_0_2.rpm 上传到linux服务器运行命令: rpm -ivh jprofiler_linux_11_0_2.rpm线上tomcat设置在tomcat的bin目录下在catalina.sh中加入以下代码C

2020-12-15 15:17:37 587 1

原创 JAVA获取线上堆栈信息

问题描述服务部署到线上以后隔一段时间就无法访问了,后台日志提示:java.lang.OutOfMemoryError: GC overhead limit exceeded,初步判断为内存泄露;下一步就是获取堆栈信息进行分析;使用kill -3 PID 获取堆栈信息获取进程的PID ps -ef|grep java获取堆栈信息 kill -3 PID获取文件1> 如果项目通过Tomcat进行发布(普通的web项目),则对应的堆栈信息会打印在catalina.out文件中。2&gt

2020-12-11 17:08:55 660

原创 tomcat 8.5 路径中有特殊字符报错

现象前端访问参数中有特殊字符的话会报错,直接返回400我的tomcat版本是 tomcat8.5.38处理方式由于用了docker,进入docker修改tomcat配置 在catalina.properties添加下面的配置tomcat.util.http.parser.HttpParser.requestTargetAllow=|{}...

2020-12-07 17:39:11 520

原创 JAVA 中级开发面试题 2~3年

JAVA 中级开发面试题 (2年经验)基础部分String,StringBuffer,StringBudilder 的区别1.String 是个不可改变的常量,是线程安全的适合操作少量数据;2.StringBuffer 可变的变量,线程安全;3.StringBudilder 可变的变量,线程不安全,性能比StringBuffer 强;hashtable和hashmap的区别是什么hashtable: 线程安全,不允许有null的键和值;hashmap: 线程不安全,允许有nu

2020-11-21 11:58:27 835 2

原创 Docker入门 仓库 镜像 容器 常用操作指南

docker 仓库 镜像和容器的关系docker是一种虚拟化技术,docker之所以能够兴起我认为是docker相比较于虚拟机实在是太轻量级了,下面认识一下docker的三大概念仓库: docker的仓库中存储了很多docker的镜像,对标maven的仓库;镜像: 镜像相当于是一个模板,相当于虚拟机安装文件;容器: 通过镜像可以创建容器,容器相当于安装好的虚拟机;通过一个简单的案例熟悉docker的操作1.docker拉取一个tomcat镜像 pull操作docker pull tom

2020-07-27 18:16:07 181

原创 JPA hibernate 复杂查询方式汇总 多表联查

以前写项目都是用mybatis,最近换了项目需要使用hibernate.从mybatis切换到hibernate需要攻克一些技术点,攻克之后写代码就得心应手多了.hibernate 常用查询方式ExampleMatcher 只能单表查询Specification 支持连表查询querydsl 支持连表查询并且上手简单ExampleMatcher模糊查询精确查询不支持多表查询java代码 @Test void test1() { SysUser sy

2020-07-26 16:26:10 1079

原创 java8 新特性stream流在开发中的常用方法

Java 8 API添加了一个新的抽象称为流Stream,可以让你以一种声明的方式处理数据。Stream 使用一种类似用 SQL 语句从数据库查询数据的直观方式来提供一种对 Java 集合运算和表达的高阶抽象。Stream API可以极大提高Java程序员的生产力,让程序员写出高效率、干净、简洁的代码。这种风格将要处理的元素集合看作一种流, 流在管道中传输, 并且可以在管道的节点上进行处理, 比如筛选, 排序,聚合等。java8 stream 在开发中的常用方法先创建一个list集合初始化一.

2020-07-26 13:30:31 461 1

原创 Centos7安装GitLab 离线安装

软件版本centos7gitlab-ce-13.1.4-ce.0.el7.x86_64下载软件Gitlab官网清华大学镜像我这里使用的是清华大学镜像地址,官网由于网络问题下载很慢安装将下载的gitlab-ce-13.1.4-ce.0.el7.x86_64.rpm文件上传运行: $ rpm -ivh gitlab-ce-13.0.5-ce.0.el7.x86_64.rpm 安装这里遇到一个问题提示依赖没有安装:policycoreutils-pythonwarning

2020-07-18 17:04:24 1034

原创 Centos7 安装JDK1.8 离线安装

Centos7 安装JDK1.81.下载JDK1.8这里使用的是 jdk-8u11-linux-x64.tar.gz2.将JDK安装包上传到/usr/local/jdk目录下3.解压文件tar -zxvf jdk-8u11-linux-x64.tar.gz4.配置环境变量vim /etc/profile加入以下代码 JAVA_HOME=/home/erp360/jdk/jdk_1.8/jdk1.8.0_11 CLASSPATH=.:$JAVA_HOME/lib/tool

2020-06-29 16:53:26 1221

原创 JPA 级联操作 CascadeType

JPA的级联操作 CascadeType级联操作是jpa表关联关系注解 OneToOne OnTOMany ManyToOne ManyTOMany 中配置的属性,代表本身对关联的实体拥有的操作权限;JPA的级联配置项4种ALL: 所有级联操作PERSIST: 级联保存MERGE: 级联更新REMOVE: 级联删除REFRESH: 级联刷新DETACH: 级联托管/游离操作为更方便的理解这里假设用户表:User部门表:Dept角色表中引用User对象的实体1.CascadeT

2020-06-25 11:26:52 743

原创 2020-3-15 vue入门

title: 2020-3-15 vue入门renderNumberedHeading: truegrammar_cjkRuby: true本篇内容vue框架搭建 √vue-router √使用软件IDE: webstormnodejs版本: v8.11.3npm版本: 5.6.0vue版本: 3.12.0记录后端程序员入门VUE过程vue框架搭建在文件夹下...

2020-03-15 21:14:01 164

原创 springboot集成quartz将任务持久化到数据库,实现定时任务的CRUD

springboot 集成 quartz实现定时任务的CRUD集成pom主要依赖<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version...

2020-03-10 21:30:15 961

原创 java将world转PDF

需求为客户生成PDF文档加水印,其中涉及到表格的遍历方案制作docx模板文件java读取模板文件使用Freemarker模板技术替换其中的部分内容;生成docx文件将docx文件转换为PDF文件技术选型Freemarker 模板技术生成docx文件使用Spire.Office将docx转换为PDF文件docx转换为PDF文件网上有很多方案但是都有各自的缺陷,使用Spir...

2020-02-11 20:23:15 919

原创 centos7搭建JAVA SAP JCO3 RFC 接口调用环境

环境安装tar -zxvf sapjco3-linuxx86_64-3.0.17.tgz 解压缩;将libsapjoc3.so复制到jdk安装目录:/usr/local/tools/jco3/;将libsapjoc3.jar移动到jdk安装目录下的lib下 如:/usr/local/java/jdk_1.8/lib/sapjco3.jar;将目录/usr/local/tools/jco3...

2019-10-22 18:51:10 893

原创 使用shiro进行登录密码安全验证

使用shiro进行登录密码安全验证使用框架版本SpringBoot 1.5.3.RELEASEshiro-spring 1.2.5shiro-ehcache 1.2.5Shiro配置ShiroConfig 中shiroFilter /** * ShiroFilter<br/> * 注意这里参数中的 StudentService 和 IScoreDao 只是一个

2017-06-15 15:23:32 9231

原创 Java基于Cookie的单点登录(SSO)实现

驱动公司有两个系统希望实现单点登录功能,故此研究.两个系统中域名不一样所以必须跨域实现;主要思想web应用1web应用2SSO验证服务器web应用1登录 访问SSO服务器–&gt;登录成功–&gt;创建token–&gt;将Cookie写入SSO服务器和web应用1域名下;web应用2访问 不带有Cookie–&gt;重定向SSO带有Cookie–&gt;获取token重定向web应用2–&gt;写入cookie–&gt;访问到资源

2017-06-08 15:51:05 1612 2

sapjco30P_17-64-Linux.7z

java调用SAP工具包linux版本,java调用SAP系统RFC接口需要用到的工具包; 用于linux环境

2019-10-22

sapjco3-Linux.zip

JCo3.0是Java语言与ABAP语言双向通讯的中间件。与之前1.0/2.0相比,是重新设计的产品。API和架构设计与NCo3.0比较类似,前面也说过,NCo3.0的设计参考了JCo3.0。从本篇开始,系统介绍JCo3.0编程的技术要点。

2019-08-06

nginx-1.17.2.tar.gz

Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。 其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。

2019-08-06

空空如也

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

TA关注的人

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