- 博客(25)
- 收藏
- 关注
原创 JAVA技术目录
一、微服务技术SpringCloud SpringBoot 微服务二、分布式事务以及解决方案本地事务 分布式事务 分布式事务解决方案 开源分布式事务解决方案框架 分布式锁三、SpringSpring 七大模块,以及每个模块的作用 Spring 核心 IOC, AOP(重点) Spring 中的设计模式 Bean的生命周期和作用域 SpringMVC 原理四、M...
2020-01-01 03:22:21 294
原创 Spring Boot+Mybatis多数据源读写分离
两天搭建了一个SpringBoot,Mybatis多数据源读写分离,redis实现session共享的例子。记录一下~~~前提条件:Spring Boot,Mybatis 单数据库能正常运行一、Spring Boot整合Mybatis实现读写分离(后续会做Mysql主从复制)直接贴代码了,重要的代码已经做了注释,哪儿不合适可以一起探讨~~~1.application.yml(a...
2018-07-20 15:10:41 4464
转载 如何提高需求理解能力
首先,最重要的一个问题就是,为什么要做需求分析,或者说需求分析的意义是什么?每个人对这个问题可能都会有不同的体会。我的看法是,需求分析的意义在于准确无歧义地表达项目需要交付的产品,并且获得需求方的认可,从而为整个项目建立一个基准。指望需求不变化是几乎不可能的,不管是开发者还是需求方都有可能随着项目的进展提出变更的需求,所以需求分析(及变更管理)的目标不是定义一个不会再改变的需求,而是...
2017-10-31 14:20:35 3829 2
原创 Jumpserver 安装配置
Jumpserver 是全球首款完全开源的堡垒机, 使用 GNU GPL v2.0 开源协议, 是符合 4A 的专业运维审计系统一、安装环境要求硬件配置: 2个CPU核心, 4G 内存, 50G 硬盘(最低)操作系统: Linux 发行版 x86_64Python = 3.6.xMysql Server ≥ 5.6Mariadb Server ≥ 5.5.56Redis安...
2020-02-12 15:09:08 1695
原创 栈源码分析
栈底层实现是一个数组,可以做到先进后出原则。入栈和出栈都操作栈顶元素package stack.init;public class MyStack { /** * 栈最大长度 */ private int size; /** * 栈底层实现 数组 */ private int[] arrays; /**...
2018-12-12 15:10:38 359
原创 数组简单排序
java对数组排序进行封装Arrays.sort() 里面进行了快速排序。手动实现一下数组的简单排序冒泡排序 插入排序 选择排序package arrays.simples.sort;public class SimpleSort { /** * 数组冒泡排序 */ public static int[] bubbleSort(int[] arr...
2018-12-12 10:32:47 313
原创 数组简单源码
数组简单源码实现,做一个笔记。package arrays.init;/** * 数组初始化 */public class MyArrays { /** * 定义一个数组 */ private int[] intArrays; /** * 定义数组的实际长度 */ private int elems; ...
2018-12-11 15:50:00 408
原创 ThreadLocal引起内存泄露总结
我们都知道ThreadLocal能给每一个线程创建一个副本,确保多个线程访问资源的安全性。但是ThreadLocal使用不当会造成内存泄漏。首先分析一下ThreadLocal内存泄漏原理。ThreadLocal底层其实是一个ThreadLocalMap,是以<key, value>形式存储变量副本的。但是由于key对象使用的是弱引用,所以JVM每次GC都会回收key对...
2018-11-14 16:07:03 339
原创 Mysql - SQL语句优化,索引,视图,触发器,存储过程,函数等。
一,SQL优化 主要解决海量数据操作时的全表搜索,所以减少不必要的全表搜索是SQL优化的主要目的,下面总结一下常用的优化有哪些: 1,避免在where条件中使用!=或者<>,这样会是的查询放弃索引而进行全局扫描 2,避免在where条件中使用is null使用 默认值替换null,如默认值为0 select id from ta...
2018-05-08 15:52:00 1066
原创 架构演进和分布式技术
目前流行的分布式和微服务架构软件开发,从最早的LAMP架构到现在流行的分布式和微服务中间经过了一系列升级与演进。今天总结一下分布式架构由来和其中的一些技术。一、分布式系统发展 1、最开始的网站架构 最早的程序就是应用程序,文件,数据在一个服务器上LAMP(Linux、Apache、Mysql、PHP) 2、应用,数据,文件分离 将...
2018-04-09 15:42:14 330
原创 云计算
云计算是近年来随着高速互联网,Web2.0,网络计算机,SOA等技术的发展而产生的,其目的是使计算,存储等服务能够像水电等资源一样没用户只要连上网即可付费使用,且不受地域限制。云计算能够将各种资源以服务的形式通过网络提供给用户,并且按照情况收费的新型计算模式。业务产生技术,技术推动业务发展。(自己学习心得不全面,待续~~~) 云计算发展如此之快,主要原因 ...
2018-04-08 17:10:37 1144
原创 23中设计模式和六大基本原则
在程序设计中,软件设计人员为了解决某些问题而总结出来的方案,称为软件设计模式。在不断的探索和总结中,总结出了23中设计模式和六大基本原则在软件设计中最常使用。基本上大部分设计模式都符合基本原则,下面总结一下23中设计模式和六大基本原则。点击连接有详细解释一、23中设计模式 按照其作用分为:创建型,结构型,行为性三种类型。 创建型 抽象工厂模式:https:...
2018-04-08 15:51:52 352
原创 设计模式之 工厂模式
工厂模式是创建型模式之一。简单的说,工厂模式就是为了减少代码的工作量,方便测试和扩展。在工厂模式中,创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。创建工厂类,接收不同的参数生成不同的对象的过程。由于简单工厂模式,抽象工厂模式,工厂方法模式依次递进且很相似,所以放在一起总结。一、定义 工厂模式定义一个用于创建对象的接口,这个接口由子类决...
2018-04-06 23:23:53 279
原创 设计模式之 单例模式
一、定义 单例模式(Singleton Pattern):单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称为单例类,它提供全局访问的方法。二、基本结构 一个私有Singleton属性private static Singleton instance = null; 一个构造方法private Singleton(){} // 确保外部...
2018-04-06 11:19:43 254
原创 UML类图和时序图
在软件开发中,软件的需求设计和架构设计影响软件的好坏和生命周期,编写一个清晰直观的设计文档对软件的开发和维护有重要作用,今天总结一下软件设计>>详细设计中用到的类图和时序图。为后面的设计模式做一个铺垫一、类图 类图主要描述类的信息和类之间的关系,分为类图和类关系图 1、类图 在java中用一下图形表示,一般包含3个组成部分。第一个是类名;第二个...
2018-04-05 21:56:09 874
原创 Linux-CentOS 6.7 RabbitMQ的安装和配置
RabbitMQ消息中间件,主要用于分布式事物传递,公司用的Mybatis + Spring-boot + Shiro + RabbitMQ +(nginx,haproxy)+ mysql进行开发。对linux环境不太熟悉,所以记录一下:一、RabbitMQ安装 RabbitMQ是由Erlang语言开发的,所以第一步下载Erlang环境 1、安装Erlang环境: yum ...
2018-04-03 19:49:52 747
原创 Linux-haproxy安装和配置
HAProxy是一个使用C语言编写的自由及开放源代码软件,其提供高可用性、负载均衡,以及基于TCP和HTTP的应用程序代理。一、HAProxy 安装步骤 由于HAProxy 是开放源代码的,所以安装前先要安装HAProxy编译环境,HAProxy是C语言编写。 1、 安装gcc : yum install gcc 2、下载HAProxy源码包 : wget http://foss...
2018-04-03 17:48:06 623
原创 Linux-mysql服务器安装和配置
Linux 安装mysql服务一 、yum安装 1、查看yum仓库中可以安装的mysql-server: yum list | grep mysql 2、安装mysql-server : yum install mysql-sever(yum仓库中的名称) 3、开启mysql服务: service mysqld start ...
2018-04-03 17:19:02 444
原创 Linux-安装软件方式
Linux中不同的版本以及不同的安装包有不同的安装命令:一、yum在线安装 yum是linux的软件管理工具,多在CentOS中在线安装(RedHat的yum是收费服务,而CentOS的yum是免费服务。)yum安装时会将所有的依赖包都下载安装, 国内的yum仓库: http://mirrors.163.com/centos/7/os/x86_64/Packages/ ...
2018-04-03 11:46:39 195
原创 Linux-基础常用命令和常用软件
一、之前没用过命令行开发,所以对linux这块没怎么重视,新工作对linux的使用很频繁,所以对常用命令和常用软件做一个记录。(公司任务仅做参考)apt / awk/base64cat / cd / chgrp / chkconfig / chmod / chown / chpasswd / clear / clock / cp / crontab / curldate / df / diffec...
2018-03-29 17:52:05 333
原创 Linux-ssh: connect to host 192.168.1.161 port 22: Connection refused
初学者利用ssh连接主机出现:一、检查要连接的服务器是否有ssh服务,如果没有 centos6 为例(均已root角色运行) 1、安装ssh服务:yum install openssh-server 2、启动ssh服务:service sshd start 3、查看防火墙状态:iptables -L 4、如果防火墙未关闭,关闭防火墙:service iptabl...
2018-03-29 17:47:16 19536
原创 JAVA-集合类关系
1. Interface Iterable迭代器接口,这是Collection类的父接口。实现这个Iterable接口的对象允许使用foreach进行遍历,也就是说,所有的Collection集合对象都具有"foreach可遍历性"。这个Iterable接口只有一个方法: iterator()。它返回一个代表当前集合对象的泛型<T>迭代器,用于之后的遍历操作1.1 Collection...
2017-11-16 14:15:52 354
原创 执行iterator.remove()方法时出现java.lang.IllegalStateException
Q: 迭代器是开发中很常用的 但是他的remove()不怎么常用 偶尔测试发现他的用法如果直接执行itertor.remove() 会出现java.lang.IllegalStateException 如下: A: 查看源代码发现执行reomve如下 而lastRet默认为-1 (源代码中定义)所以会出现这个异常 而在iterator.next...
2017-11-02 17:19:32 1627 2
原创 JAVA-String、StringBuffer、StringBuilder的区别
字符串是java开发过程中最常用的。总结一下大概的区别。具体如下:1、变与不变 String字符串一旦定义 则其中对象不可改变,具体原因可以查看JDK源码 因为有“final”修饰符,所以可以知道string对象是不可变的。private final char value[]; StringBuffer和StringBuilder都是继承自AbstractStr...
2017-11-01 10:48:59 222
原创 JAVA-程序员进阶之路
自己大学期间学习的是软件工程,从需求分析到项目上线整套流程都接触过,大二就开始接触java,但是没有好好把握。大把时间虚度在lol里面了。已经在工作的我,作为一个菜鸟程序员,自己也有一个学习路线和目标。(仅自己参考)第一阶段:java基础 第一部分主要以看书为主吧,《java编程思想》知识点理解透彻。面向对象概念有深刻理解。对自己最好的回报就是提升自己,提升自己...
2017-10-31 14:27:24 578
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人