自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(156)
  • 资源 (1)
  • 收藏
  • 关注

原创 第三章软件设计原则

在软件开发中,为了提高软件系统的可维护性和可复用性,增加软件的可扩展性和灵活性,程序员要尽量根据6条原则来开发程序,从而提高软件开发效率,节约软件开发成本和维护成本。

2024-04-01 23:15:42 251

原创 第二章 UML

类图显示了模型的静态结构,特别是模型中存在的类、类的内部结构以及它们与其他类的关系等。类图不显示暂时性的信息,类图是面向对象建模的主要组成部分。

2024-04-01 22:00:36 1147

原创 第一章设计模式概述

设计模式的本质是面向对象设计原则的实际运用,是对类的封装性、继承性和多态性以及类的关联关系和组合关系的充分理解。模版方法、策略、命令、职责链、状态、观察者、中介者、迭代器、访问者、备忘录、解释器等11种。3. 行为型模式(描述类或对象之间怎样协作共同完成单个对象无法单独完成的任务,以及怎样分配职责)3. 提高代码的可重用性、可读性、可靠性、灵活性及可维护性。代理、适配器、桥接、装饰、外观、享元、组合等7种。单例、原型、工厂方法、抽象工厂、建造者等5种。1. 可以提高程序员的思维能力、编程能力和设计能力。

2024-04-01 13:47:11 330

原创 Java开发工程师面试题(业务功能)

后端服务器会定期检查连接的创建时间是否超过了超时时间,如果是,则将订单设置为关闭状态,并关闭连接。基于事件驱动的方案:在订单创建时,为订单创建一个事件,并设置一个超时时间。后端服务器会定期检查事件的创建时间是否超过了超时时间,如果是,则将订单设置为关闭状态,并删除事件。:在订单创建时,为订单创建一个无限期的锁,并设置一个超时时间。后端服务器会定期检查锁的创建时间是否超过了超时时间,如果是,则将订单设置为关闭状态,并释放锁。后端服务器会定期检查任务的创建时间是否超过了超时时间。redis过期失效监听。

2024-03-06 15:30:10 460

原创 Java开发工程师面试题(JVM)

用来生成dump文件和查看堆相关的各类信息的命令。gcutil可以查看gc发生的频率和次数。查看JVM参数和动态修改部分JVM参数。查看cpu按照进程使用cpu的顺序。一、JVM调优常用命令和常用参数。一般可以分析出来繁忙线程在干嘛。查看JVM运行时的状态信息。查看JVM线程快照的命令。查看Java进程的线程栈。设置JVM初始元空间大小。查看进程及其相关的信息。新生代的内存空间大小。

2024-03-06 15:05:52 91

原创 Java开发工程师面试题(Spring)

原型模式:在创建ioc容器后,通过getBean()获取bean对象时,往里追可以发现在核心方法处spring对bean的scope属性进行了判断,配置了prototype时。spring事务切面基于以上逻辑实现了声明式事务管理,及事务属性的传播(在当前存在或不存在事务时,加入当前事务或开启新的事务或以非事务方式执行或在嵌套事务中执行)。2.事务方法内部捕获了异常sql的异常,未将抛出到事务切面中,这时候事务会提交,即正常执行的那部分sql执行结果将会生效。

2024-03-06 15:04:08 1263 1

原创 Java开发工程师面试题(Java基础)

Java中只能继承一个类,但是接口可以实现多个,用逗号分隔。其中Java 8中有default方法,可以让接口当作一般类来使用。this代表本类的当前实例引用,super代表父类实例引用。1. Java中一个类可以继承多个类吗?2. this和super的区别?

2024-03-06 15:01:55 128

原创 Linux常用命令——第二章——文件处理命令

命令格式:命令 [-选项] [参数]例:ls -la /etc说明:1)个别命令使用不遵循此格式 2)当有多个选项时,可以写在一起 3)简化选项与完整选项,如 -a 等于 --all命令名称:touch命令所在路径:/bin/touch执行权限:所有用户语法:touch [文件名]功能描述:创建空文件范例:创建文件 Japanlovestory.list$ touch Japanlovestory.list创建文件p...

2022-03-01 08:01:22 624

原创 Linux常用命令——第一章——目录处理命令

命令格式:命令 [-选项] [参数]例:ls -la /etc说明:1)个别命令使用不遵循此格式2)当有多个选项时,可以写在一起3)简化选项与完整选项,如 -a 等于 --all一、文件处理命令1.目录处理命令命令名称:ls命令英文全称:list命令所在路径:/bin/ls执行权限:所有用户功能描述:查看文件/目录语法:ls 选项[-ald] [文件或目录]-a 显示所有文件,包括隐藏文件-l 详细信息显示-d 查看目录属性命令名称:mkd

2022-02-28 22:54:40 304

原创 一位不起眼的程序员的前半生

因为工作忙碌、思想懈怠等种种原由,差不多有半年没有写博客了,今天再次拾起笔头,下决心能够持之以恒,每周至少发布3-5篇有质量的博客,快速提升自身的技术能力,跨过35这个槛。 今天的这篇博客,属于一篇个人随笔,就是想记录下自身过去这些年庸庸碌碌的工作生活轨迹,鞭策警醒自己,在新的人生节点,能有个好的开始。 今年对于我而言是个很特殊的一年,我是91年12月份出生的,满打满算,就要30周岁了,即将步入而立之年。我是在杭州读的大学,学的计算机网络技术,当初填报志愿,...

2021-03-19 11:21:40 574 2

原创 Import常规导入和静态导入详解

一、Import常规导入方式 如果我们要使用其他包的类,需要使用import导入,从而可以在本类中直接通过类名来调用,否则就需要书写类的完整包名和类名。import后,便于编写代码,提高可维护性。注意要点: 1.Java会默认导入java.lang包下所有的类,因此这些类我们可以直接使用。 2.如果导入两个同名的类,只能用包名+类名来显示调用相关类。如下示例代码:java.util.Date date = new java.util.Date(...

2021-01-07 21:21:24 874

原创 第一章、跟着Calvin了解多线程

多线程,在我们现实生活中存在很多广泛的例子。比如我们可以和自己心仪的妹子一边聊骚,一边听音乐,兴起之时还可以哼几段小曲,即我们的大脑在同一个时间点可以同时处理很多件事情。其中和妹子聊骚是一个线程,听音乐是一个线程,哼曲也可以是一个线程。 在更进一步地分析多线程的概念之前,我们还需要理清楚两个专有名词的区别,即进程与线程。 进程:在操作系统中运行的程序就是一个进程,比如快播、探探、陌陌等等。 线程:一个进程可以有多个线程,如我们看文艺动作片...

2020-05-16 08:08:14 496

原创 LESS命令介绍以及使用

本文内容出处:https://www.cnblogs.com/molao-doing/articles/6541455.htmlless工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大。less的用法比起more更加的有弹性。在more的时候,我们并没有办法向前面翻,只能往后面看,但若使用了less时,就可以使用[pag...

2020-01-13 10:18:33 2688 1

原创 Java深拷贝和浅拷贝的区别

本文部分内容参考自:https://www.cnblogs.com/lgxblog/p/11568153.html浅拷贝:被拷贝(复制)的对象的所有的属性都与原对象有相同的值,且所有的对象引用仍然指向原来的对象。package com.design.clone;public class Experience implements Cloneable{ private...

2020-01-09 15:14:01 542

原创 UML笔记

本文部分内容源自:http://c.biancheng.net/view/1319.html一、类构成元素:类名、属性和操作(由上而下的层级)类名:是一个字符串,例如 Student属性:类的特性,即类的成员变量,格式如下[可见性]属性名:类型[=默认值] 例如:-no:long操作:类的任意一个实例对象都可以使用的行为,是类的成员方法,格式如下[可见性...

2020-01-07 14:38:37 231

原创 CentOS 7镜像下载

CentOS 7镜像下载地址官网站点:http://isoredirect.centos.org/centos/7/isos/x86_64/阿里云站点:http://mirrors.aliyun.com/centos/7/isos/x86_64/注意:每个链接都包括了镜像文件的地址、类型及版本号等信息,选择当前国家资源区站点下载,获取资源速度比较快。各个版本ISO镜像文件说明...

2019-12-24 14:55:08 725

原创 LocalDateTime、LocalDate、LocalTime与Date对比

Java8以前,我们一直长期使用Date和Calendar来处理时间,而在使用Date处理日期时间问题上会存在一定的隐患,产生线程不安全的问题,最典型的就是在一定负载并发量的情况下使用SimpleDateFormat引发的线程安全性问题。如今Java8提供了LocalDate、LocalTime、LocalDateTime三个日期时间类,在安全性和操作性上对比Date和Calendar非常可观,...

2019-12-18 16:43:20 8731

原创 Linux安装JDK、Maven、Tomcat、Redis、Dubbo Admin以及Zookeeper

作为开发,在日常工作和学习过程中,无法避免在Linux系统上安装各类开发工具及软件,这在本人看来是耗时耗力且繁琐的工作,如能记录下所用到的工具包的安装步骤,那么将会节省大量的时间。本文将详细阐述并记录JDK、Maven、Tomcat、Redis、Dubbo Admin以及Zookeeper的完整安装步骤。一、准备安装包以下为各个安装包的下载地址,大家可根据自身情况选择所需的版本:注...

2019-12-14 19:34:33 194

原创 Windows本地访问虚拟机Linux

最近本人业余时间准备着手搭建一套VR系统,采用分布式微服务架构,因此我在本地创建了三台虚拟机作为三台服务器。当本地Windows系统在与虚拟机中Linux系统进行通信时,需要先进行相关的网络配置,否则将无法访问。因此本文将针对这方面的网络配置问题进行详细阐述。本文对于虚拟机安装Linux操作系统的操作不做讲解,默认读者已经安装虚拟机和Linux操作系统。笔者预装的Linux系统版本是Re...

2019-12-08 15:44:38 8474 2

转载 分组密码算法的填充模式

分组密码中,需要将明文按指定大小进行分组,由于明文并非指定大小的整数倍,因此在明文的最后一个分组需要将其填充至加密算法所要求的分组大小后进行加密。在解密时,按照同样的填充模式将填充的数据去除。斜体表示 SunJCE 支持,非斜体为 BouncyCastle 支持NOPADDING不填充,在此填充下原始数据必须是分组大小的整数倍,非整数倍时无法使用该模式PKCS5PADDING ...

2019-11-06 15:26:00 2072

原创 MySQL之添加联合唯一索引

场景:库中有一张用户产品信息表 t_user_product_info表:表中有主键自增长id,user_id,product_id,validate_time,create_time,updated_time五个字段,其中user_id和product_id分别是用户和产品信息表的主键自增长id。t_user_product_info表中,通过user_id和prodcut_id两个...

2019-10-25 09:34:04 5955

原创 Spring编程之美——走进AOP

部分概念引子文章:https://blog.csdn.net/changudeng1992/article/details/80625134在理解AOP(面向切面)前,我们先来回顾下日常我们开发过程中经常接触的OOP(面向对象编程)。百度百科OOP:面向对象程序设计(Object Oriented Programming)作为一种新方法,其本质是以建立模型体现出来的抽象思维过程和面...

2019-10-24 22:24:37 226

转载 关于 Spring AOP (AspectJ) 你该知晓的一切

本篇是年后第一篇博文,由于博主用了不少时间在构思这篇博文,加上最近比较忙,所以这篇文件写得比较久,也分了不同的时间段在写,已尽最大能力去连贯博文中的内容,尽力呈现出简单易懂的文字含义,如文中有错误请留言,谢谢。OOP的新生机 OOP新生机前夕 神一样的AspectJ-AOP的领跑者 AspectJ的织入方式及其原理概要 基于Aspect Spring AOP 开发 简单案例快...

2019-10-24 22:22:06 232

原创 Java 自定义注解

直接切入正题,下面我们自定义一个注解Entity,并通过Entity注解动态获取指定类的映射表进行数据查询(本案例只作为演示,所以比较简要),请看代码:1、定义一个Java注解Entitypackage com.tyyd.anno;import java.lang.annotation.ElementType;import java.lang.annotation.Retent...

2019-10-18 07:19:42 260

原创 Spring Profile切换环境配置

当我们在开发过程中,有生产环境、开发环境、测试环境、QA环境等等,每种环境可能数据库都不同,还可能会有很多其他不同的配置,甚至说类也有可能不一样。通过使用@Profile注解,可以让某个对象或者配置单独起作用,进行对象或者环境配置切换。下面以代码为例:package com.tyyd.ioc.bean.dependence.dao;public interface IndexDa...

2019-10-17 22:45:48 155

原创 Spring Bean Dependence

我们通过JavaConfig进行Spring配置的话,其中Bean的依赖可参考如下代码,以Mybaits-Spring数据库连接为例:首先添加必要的依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi=...

2019-10-17 21:57:58 195

原创 Spring之spring-context-indexer依赖

<dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-indexer</artifactId> <version>5.2.0...

2019-10-17 21:34:52 2459

原创 Spring注解之@Primary和@Qualifier的功能和使用

我们直接切入正题 ,请看下列代码,我们定义了一个dao接口 两个dao接口实现 一个service接口 一个service接口实现,其中service接口实现类依赖dao接口 一个javaConfig配置类 一个测试类package com.tyyd.qualifier.dao;public interface IndexDao { void test();}...

2019-10-17 16:55:52 511

原创 Spring 使用过滤器自定义扫描路径

includeFilters过滤器:指定包含某个路径或实体类excludeFilters过滤器:指定不包含某路径或实体类示例代码如下:package com.tyyd.lifecallbacks.config;import org.springframework.context.annotation.ComponentScan;import org.springfram...

2019-10-17 15:06:22 562

原创 Spring depends-on的使用

通过在XML中的<bean>里配置depends-on属性或者在一个类上使用注解@DependsOn,可以使一个Bean的产生依赖于其他几个Bean。请看如下代码:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" ...

2019-10-17 14:23:12 1790

原创 Spring——Bean的声明周期和回调

概述:本文讲解的是Spring中Bean的声明周期和回调,不是bean的生命周期。bean的生命周期我会在后续分析讲解Spring-context源码的时候专门写一篇博客。所谓bean的声明周期和回调,好比就是在类初始化或者销毁的时候,会调用一个方法(即回调),类似于try-catch-finally中的finally。Bean的声明周期回调有三种方式:实现InitializingBe...

2019-10-17 13:38:35 213

原创 Spring自动装配、以及@Autowired与@Resource注解的使用与区别

上篇文章说过,IOC的注入有两个地方需要提供依赖关系,一个是在类中定义,二是在Spring的XML配置文件中需要去定义(描述)。通过使用自动装配,则省去了第二个依赖关系的定义,减少不必要地重复工作。即我们仅仅需要在类中提供依赖关系,继而把对象交给容器管理就可以完成注入。我们在实际的程序开发过程中,通过Spring XML描述类之间的依赖关系通常是大篇幅的,如果使用自动装配则省去了很多配置...

2019-10-17 06:52:53 375

转载 【玩转ElasticSearch】横向对比ElasticSearch与Sphinx

摘要:打算写几篇ElasticSearch使用心得。第一篇,先从ElasticSearch与Sphinx的横向对比开始。横向对比是反应优点和暴露问题的好方法。我是Sphinx阵营转向ElasticSearch阵营的,两者都是成熟的开源搜索引擎,各有优劣,这篇文章也可以给纠结使用哪套方案的同学提供一些选择的依据。 &bull; 导入MySQL数据生成索引 ElasticSearch:Gi...

2019-10-16 14:35:53 640

原创 Spring的编码方式——XML、注解、JavaConfig

Spring为我们提供了三种编码方式,Schema-based(XML)、Annotation-based(注解)和Java-based Container Configuration(JavaConfig),且三种方式可以混合使用,其中目前比较主流的是注解+JavaConfig混合使用。下面通过代码给大家展示三种编码方式分别如何实现。首先为项目添加maven的pom依赖spring-co...

2019-10-16 06:28:53 287

原创 Spring IOC——控制反转(IOC)、依赖注入(DI)、依赖查找(DL)、依赖拖拽(DP)

IOC概念IOC全称Inversion Of Control,即控制反转,它不是一项技术,而是面向对象编程中的一种设计原则(思想),可以用来降低我们计算机程序代码之间的耦合度,提高优化软件程序设计。它把传统上由程序代码直接操控的对象的调用权交给容器,通过容器来实现对象组件的装配和管理。也就是对组件对象控制权的转移,从程序代码本身转移到了外部容器。更通俗的讲,传统的应用程序都是由程序猿同胞们...

2019-10-15 22:08:45 1058

原创 Spring懒加载与非懒加载以及Scope作用域

Spring默认为非懒加载(即在项目启动时——Spring容器初始化过程中加载)Spring设置为非懒加载时,项目(Spring容器:ApplicationContext)启动时立刻初始化,Spring容器会把所有的扫描包下的带Spring注解(@Component、@Repository、@Service、@Controller)或者通过Spring xml配置的bean全都初始化。Sp...

2019-10-11 21:52:33 930

原创 获取当前系统UTC时间戳

摘要:在日常的开发过程中,我们经常会遇到很多关于时间格式化、字符串截取等等相关的一些基本功能逻辑,本人也不例外。每当遇到此类问题,以往总会不停地百度查阅别人的博客,会浪费特别多的时间。因此,现阶段每遇到一项此类问题,通过自身的实践后,我都会书写博客。写博客的好处显而易见,每当自身遇到的问题通过实践总结后印象会比较深刻,日后再有需要可以重新翻看自身博客,另外通过展示自身的博客,可以吸纳他人好的建议...

2019-09-23 17:09:58 7179

原创 产品需求文档(PRD)

俗语有云:人人都是产品经理,身为开发人员,要开发一款卓越的产品,还必须得从产品经理的角度去思考、设计以及看待遇到的各类问题。产品需求文档是将商业需求文档(BRD)和市场需求文档(MRD)用更加专业的语言进行描述。一、什么是产品需求文档该文档是产品项目由“概念化”阶段进入到“图纸化”阶段的最主要的一个文档。当然,这个定义针对的是一个全新的产品。广义上来讲,产品需求的描述,应该包含有...

2019-09-17 17:11:31 7064 1

转载 Java编程Retry重试机制实例详解

目录1、业务场景 2、常规解决方案演化 1)try-catch-redo简单重试模式: 2)try-catch-redo-retry strategy策略重试模式: 3、优雅重试方案尝试: 1)应用命令设计模式解耦正常和重试逻辑: 2)spring-retry 规范正常和重试逻辑 3)guava-retryer 分离正常和重试逻辑 总结本文研究的主要是Java编...

2019-09-11 15:53:42 573

原创 spring boot 整合rabbitmq

工程引入依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId></dependency>配置连接,创建交换机,队列首先配置连接信息,这...

2019-09-11 13:19:55 122

dubbo-admin-develop.zip

Dubbo Admin安装包 主要用户在使用Dubbo分布式框架时,能够通过部署这么一套管理界面,充分有效地使用Dubbo

2019-12-14

空空如也

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

TA关注的人

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