自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

北漂码农的博客

一个北漂的码农!本博客只做技术笔记,很多文章来源于网络!

  • 博客(51)
  • 资源 (1)
  • 收藏
  • 关注

原创 怎样优化代码中那么多的if else

if else 是我们写代码时,使用频率最高的关键词之一,然而有时过多的 if else 会让我们感到脑壳疼。例如下面这个伪代码:是不是很崩溃?虽然他是伪代码,并且看起来也很夸张,但在现实中,当我们无数次 Review 别人代码时,都会发现类似的场景。那么我们本文就来详细聊聊,有没有什么方法可以让我们避免来写这么多的 if else 呢?我们本文提供了 9 种...

2020-04-25 09:22:56 9768 3

原创 Linux下 通过jconsole远程监控weblogic

1、环境:centos7.5操作系统 weblogic12c 本地jdk1.82、在远程服务器上配置weblogic12c修改$Domain_HOME/bin/setDomainEnv.sh JAVA_OPTIONS="${JAVA_OPTIONS} -Dcom.sun.management.jmxremote.port=9000" JAVA_OPTIONS="${J...

2020-04-23 13:45:29 10169

原创 Netty RPC 实现

一. 概念RPC,即 Remote Procedure Call(远程过程调用),调用远程计算机上的服务,就像调用本地服务一样。RPC 可以很好的解耦系统,如 WebService 就是一种基于 Http 协议的 RPC。这个 RPC 整体框架如下:二. 关键技术1. 服务发布与订阅:服务端使用 Zookeeper 注册服务地址,客户端从 Zookeeper 获取可用的服...

2020-04-19 17:54:03 16755

原创 Netty 介绍

1.1. Netty 原理Netty 是一个高性能、异步事件驱动的 NIO 框架,基于 JAVA NIO 提供的 API 实现。它提供了对TCP、UDP 和文件传输的支持,作为一个异步 NIO 框架,Netty 的所有 IO 操作都是异步非阻塞的,通过 Future-Listener 机制,用户可以方便的主动获取或者通过通知机制获得 IO 操作结果。1.2. Netty 高性能...

2020-04-19 17:06:29 87225 11

原创 Oracle空表无法导出的解决方法

由于Oracle 11g的新特性,表数据如果为空,则延迟分配表空间,所以导出的数据不全1、-设置立刻分配表空间(设置后,后续新增的表即使没有数据会自动创建表空间,不再延迟创建) alter system set deferred_segment_creation=false;2、--查询当前用户下的所有空表select table_name from user_tables ...

2019-08-15 11:08:45 34311

原创 java 常见集合

一、接口继承关系和实现集合类存放于Java.util 包中,主要有3 种:set(集)、list(列表包含Queue)和map(映射)。1. Collection:Collection 是集合List、Set、Queue 的最基本的接口。2. Iterator:迭代器,可以通过迭代器遍历集合中的数据3. Map:是映射表的基础接口二、ListJava 的List 是...

2019-07-17 15:30:12 96596 2

转载 从微服务架构实施看企业数字化转型

摘要:1. 为什么说企业数字化转型需要进行微服务架构升级主要描述传统企业IT应用受互联网冲击的大背景,引出传统企业转系需要在架构上向互联网企业学习。2. 传统企业实施微服务架构的难点是什么:历史包袱太重从传统企业应用和互联网企业应用的不同特点说起,讲述传统企业架构升级微服务 过程中的一些重点关注的内容、方法和建议。3. 传统SOA和微服务差别在哪:运行期的快速变更能力不同讲...

2019-07-17 09:19:40 25315

转载 It’s about time

Time is the currency of your life, spend it wisely时间就像是生命的金钱,要学会合理支配Don’t let others no matter how well intentioned spend it for you, it’s all you’ve got不要让别人为你浪费时间,你该自己去处理你应做的In the end, you ...

2019-07-09 22:30:43 5870

原创 常见JAVA IO/NIO模型

我们常见的IO模型有:阻塞 IO 模型、非阻塞 IO 模型、多路复用 IO 模型、信号驱动 IO 模型、异步 IO 模型;下面我们就简单介绍一下以上IO模型。1、阻塞 IO 模型最传统的一种IO 模型,即在读写数据过程中会发生阻塞现象。当用户线程发出IO 请求之后,内核会去查看数据是否就绪,如果没有就绪就会等待数据就绪,而用户线程就会处于阻塞状态,用户线程交出CPU。当数据就绪之后,内核...

2019-07-09 12:33:28 95115

原创 JAVA 四中引用类型

常见的java引用有四种:强引用、软引用、弱引用、虚引用;下面分别来介绍一下各种引用:1、强引用在Java 中最常见的就是强引用,把一个对象赋给一个引用变量,这个引用变量就是一个强引用。当一个对象被强引用变量引用时,它处于可达状态,它是不可能被垃圾回收机制回收的,即使该对象以后永远都不会被用到JVM也不会回收。因此强引用是造成Java 内存泄漏的主要原因之一。2、软引用软引用需...

2019-07-09 12:22:12 69942

原创 垃圾回收与算法

下面是JVMGC导图1、如何确定垃圾 1.1引用计数法 在 Java 中,引用和对象是有关联的。如果要操作对象则必须用引用进行。因此,很显然一个简单的办法是通过引用计数来判断一个对象是否可以回收。简单说,即一个对象如果没有任何与之关联的引用,即他们的引用计数都不为 0,则说明对象不太可能再被用到,那么这个对象就是可回收对象。 1.2可达性分析为了...

2019-07-09 11:39:10 24900 2

原创 JVM 内存区域

下面中jvm内存的思维导图:一、JVM 内存区域主要分为线程私有区域【程序计数器、虚拟机栈、本地方法区】、线程共享区域【JAVA 堆、方法区】、直接内存。线程私有数据区域生命周期与线程相同, 依赖用户线程的启动/结束 而 创建/销毁(在HotspotVM 内, 每个线程都与操作系统的本地线程直接映射, 因此这部分内存区域的存/否跟随本地线程的生/死对应)。线程共享区域随虚拟机的...

2019-07-09 11:22:13 15239

原创 JVM基本概念

JVM是可运行Java 代码的假想计算机 ,包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收,堆 和 一个存储方法域。JVM 是运行在操作系统之上的,它与硬件没有直接的交互。下面是JVM的一张思维导图:JVM的运行过程:我们都知道Java 源文件,通过编译器,能够生产相应的.Class 文件,也就是字节码文件,而字节码文件又通过Java 虚拟机中的解释器,编译成特定机...

2019-07-09 10:23:43 22701

转载 IntelliJ IDEA必备插件,提高编码效率

首先说一下idea引入外部插件的方式:1.打开settings配置面板2.选择plugins--》install pluginfrom disk 选择相应插件包==》点击ok最后,“Restart”重启idea 让它加载一下新加入的插件!!!常用插件:下面的所有插件都使用上面外部引用方式集成相应的插件包即可1. FindBugs-IDEA作...

2019-07-05 10:19:05 1046

原创 mybatis 拦截器实现按年分表

mybatis 拦截器实现分表操作具体如下:1、准备一张数据库表demo_20192、搭建一套基本的ssm框架3、采用策略设计模式来实现分表操作下面是策略设计模式核心类图 4、具体观看下面的核心代码: 自定义分表注解:TableSplit类package com.lmdsoft.util.annotation;import java.l...

2019-07-04 16:00:36 29915

原创 idea 配置 阿里巴巴 代码规范检查插件

为了提高大家的编码规范,需要在我们的开发工具idea中集成阿里巴巴的java编码规范插件来完成,如下是具体的插件配置方法:阿里巴巴代码规范插件安装:打开IDEA,点击File->Settings->Plugins,如下图查找alibaba插件并安装重启IDEA 安装完成后,就可以开始体验了 首先如果你想把老的项目统统检查一遍,那么可以使用【编码规约扫描】,...

2019-06-26 20:07:17 6703

原创 idea Java doc生成 配置

为了我们编码规范注释习惯,可以通过Doc进行注释检查以及作为项目文档。接下来简单介绍一下javaDoc导出。以我们的开发工具 IDEA2018为例-encoding utf-8 -charset utf-8最后生成的目录...

2019-06-26 19:57:52 6170 2

原创 Idea配置热部署

JRebel 是一款热部署插件。写的过程中我们需要不断调试,如果没有热部署,则我们每修改一次项目要重启一次,验证问题有没有得到解决。如果项目很小,启动只要几秒或十几秒,可能感觉影响不是很大;但当项目变大了,重启一次需要几十秒,几分钟,甚至十几分钟,每次修改后都需要重启无疑会严重影响我们的工作效率。 正常情况下,我们使用IDEA(或Eclipse等IDE)+tomcat部署web项...

2019-06-26 19:30:19 7911

原创 oracle 中MyBatis 批量插入大数据

oracle在进行大量数据批量插入时,若不进行分批次插入的话,则会报错Cause: java.sql.SQLSyntaxErrorException: ORA-00913: 值过多; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: ORA-00913: 值过多错误信息如上,正常情况而言,...

2019-06-25 19:33:53 34301 2

原创 IntelliJ IDEA下配置git教程

IntelliJ IDEA下配置git本地安装好git,并配置合理的SSH key,具体配置可以参考 https://blog.csdn.net/hustpzb/article/details/8230454注:截图中有很多地方被打码了,打码的地方换成自己对应的目录和git地址即可。IntelliJ IDEA->Performance->Version Control...

2019-06-25 12:49:49 3266

原创 oracle 跨库 dblink配置

本地库有两个1、dev库 , 2、crux库想通过配置dblink来实现dev库用户sifc_dev 来访问crux库用户cwy_demo 第一步:赋予权限 在创建database link之前,我们需要判断,登陆的用户是否具备创建database link 的权限,所以我们执行以下的语句(用sifc_dev 用户登陆dev):-- 查看sifc_...

2019-06-25 10:33:34 29405

转载 JVM 运行机制及其原理

JVMJVM是Java Virtual Machine(Java虚拟机)的缩写,是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机主要由字节码指令集、寄存器、栈、垃圾回收堆和存储方法域等构成。 JVM屏蔽了与具体操作系统平台相关的信息,使Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。JVM在执行字节码...

2018-12-26 13:38:58 19774

原创 上传本地代码上传到GitHub教程

先你需要一个github账号,所有还没有的话先去注册吧!1、先去github注册一个帐号:https://github.com/2、在windows操作系统上安装 git工具,这里给出下载地址,下载后一路直接安装即可:   https://git-for-windows.github.io/3、.进入Github首页,点击New repository新建一个项目Reposi...

2018-12-21 17:33:30 981

原创 Centos6.8下ActivityMQ安装

一、下载到ActiveMQ官网,找到下载点。目前,官网为http://activemq.apache.org/二、安装下载到本机,并解压cd  /home/rpm/activemqtar -xf apache-activemq-5.15.7-bin.tar.gz在启动前要提前安装好jdk1.8 三、启动进入bin目录cd /home/rpm/activem...

2018-12-18 10:16:07 1080

原创 centos7 opentsdb 安装与配置

 一、先对HBase的安装,具体的具体过程请参照:https://blog.csdn.net/lmdsoft/article/details/84499075二、下载并安装opentsdb      opentsdb下载地址       https://github.com/OpenTSDB/opentsdb/releases   下载后解压文件,如1、tar -zxvf ...

2018-12-10 16:31:20 1884

转载 Mysql避免全表扫描sql查询优化

对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引: 尝试下面的技巧以避免优化器错选了表扫描: 使用ANALYZE TABLE tbl_name为扫描的表更新关键字分布。对扫描的表使用FORCE INDEX告知MySQL,相对于使用给定的索引表扫描将非常耗时。SELECT * FROM t1, t2 FORCE INDEX (...

2018-11-26 10:29:27 1067

原创 CentOS 7 的OpenTSDB部署与使用——HBase的安装

       时序数据库OpenTSDB 是基于 HBase 存储时间序列数据的一个开源数据库,对于存储监控系统采集的数据来说非常合适,不仅在写入查询上有很高的效率,而且节省存储空间。一、安装HBase        因为 OpenTSDB 的后端存储使用的是 HBase,所以我们需要先安装 HBase。            这里简单搭建了一个单机的 HBase 环境:     ...

2018-11-25 17:36:52 8880 1

原创 MyEclipse打包可执行的Jar包

具体步骤:    Export... -> java -> Runnable JAR file    Launch configuration:选择main方法所在的文件/类    Export destination:选择或填写jar包的名字,如:C:\test.jar    Library Handling:          Extract required lib...

2018-11-07 16:12:27 1309

转载 JAVA -----RSA加密解密签名及校验

 由于项目要用到非对称加密解密签名校验什么的,于是参考《Java加密解密的艺术》写一个RSA进行加密解密签名及校验的Demo,代码很简单,特此分享!RSA加密解密类: package com.ihep; import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.FileReader...

2018-11-07 13:54:43 20587

原创 springBoot 与logback 集成

直接看下面的代码块,详细说明都在代码中。<?xml version="1.0" encoding="UTF-8"?><configuration debug="false"> <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径--> <property name="LOG_HOME"

2018-09-28 14:29:42 134838

原创 Spring Boot:内置tomcat启动和外部tomcat部署总结

springboot的web项目的启动主要分为:一.使用内置tomcat启动启动方式:1、IDEA中main函数启动2、mvn springboot-run 命令3、java -jar XXX.jar配置内置tomcat属性:关于Tomcat的属性都在org.springframework.boot.autoconfigure.web.ServerProperties配...

2018-09-27 10:51:03 6312

转载 SD-WAN介绍

       在说SD-WAN之前,先把WAN搞清楚,什么是WAN?WAN,Wide Area Network,是指分布在不同地理位置,连接多个LAN的私有通信网络。在企业网络中,一个WAN包括了公司总部、分支机构、托管设施、云服务等之间的网络连接。通常用一个多功能路由器将LAN接入到WAN中。企业WAN允许它的用户共享各种应用、服务或者其它集中部署的资源,避免在不同地点重复部署通用服务,如应用服...

2018-09-26 13:50:25 71460 4

原创 IntelliJ IDEA 乱码解决方案

最近IDE从Myeclipse改成IntelliJ IDEA 了,遇到了哪个IDE都会遇到的乱码问题,耗费了好多时间最终解决了,因此在这边记录一下解决方案,以供后面参考。总共有下面几种乱码的解决方案:运行tomcat时,控制台乱码 工程乱码  执行main函数时,控制台乱码  PS: 如果下面方案不生效时,打开IDEA安装目录找到 idea.exe.vmoptions(64位为i...

2018-09-19 13:17:11 1732

转载 微服务架构杂谈

资料来源:有架构给我的一些资料,以及自己百度和论坛、社区找来的一些资料,权当做一个总结式的简介。。。 目录如下:一、微服务架构介绍二、出现和发展三、传统开发模式和微服务的区别四、微服务的具体特征五、SOA和微服务的区别六、如何具体实践微服务七、常见的微服务设计模式和应用八、微服务的优点和缺点九、思考:意识的转变十、参考资料和推荐阅读 一、微服...

2018-09-18 16:15:08 45604

原创 centos6.8 下nginx1.10 安装

在安装nginx前,需要确保系统安装了g++、gcc、openssl-devel、pcre-devel和zlib-devel软件。安装必须软件: # yum install gcc-c++# yum -y install zlib zlib-devel openssl openssl--devel pcre pcre-devel#  yum install -y gd-deve...

2018-09-12 15:22:08 3360

原创 linux centos6.8 安装svn服务器(yum方式)

1.查看yum是否安装         在终端中输入yum即可如果已经安装,会显示yum的参数         如果没有安装,会提示yum未安装或无效命令……2.安装svnyum -y install subversion出现下面截图后,表示安装完成。3.创建目录并配置建立版本库目录mkdir -p /data/svn/repo配置 svnadm...

2018-09-12 15:04:44 4430

原创 linux下 go环境的安装

方法一:使用二进制文件安装 (推荐)1、下载二进制文件:wget https://storage.googleapis.com/golang/go1.7.3.linux-amd64.tar.gz2、解压并创建工作目录:tar -zxf go1.7.3.linux-amd64.tar.gz -C /usr/local/ mkdir /Golang3、设置环境变量:在 /etc...

2018-09-12 14:47:42 4054

原创 什么是RESTful API?

       要弄清楚什么是RESTful API,首先要弄清楚什么是REST。REST -- REpresentational State Transfer,英语的直译就是“表现层状态转移”。如果看这个概念,估计没几个人能明白是什么意思。那下面就让我来用一句人话解释一下什么是RESTful:URL定位资源,用HTTP动词(GET,POST,PUT,DELETE)描述操作。      Re...

2018-09-12 10:56:05 3856

转载 CMDB开发

浅谈ITILITIL即IT基础架构库(Information Technology Infrastructure Library, ITIL,信息技术基础架构库)由英国政府部门CCTA(Central Computing and Telecommunications Agency)在20世纪80年代末制订,现由英国商务部OGC(Office of Government Commerce)负责管...

2018-09-11 21:01:19 48234 1

原创 mysql主从复制详细配置说明

主从数据库配置的前题是:两个数据库的版本要一致 1、修改主MySQL的配置  如主数据库的IP: 192.168.1.72[root@localhost etc] vi /home/rpm/mysql/mysql5.5/my.cnf添加以下配置server-id=72 #一般以IP的后两位取值log-bin=mysql-bin #这个一定得设置,否则没有日志的话,从数据...

2018-09-11 20:30:30 35020

springmvc +mybatis采用策略设计模式基于拦截器实现按年分表

springmvc +mybatis采用策略设计模式基于拦截器实现按年分表

2019-07-04

空空如也

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

TA关注的人

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