自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

潇湘申的博客

分享共享

  • 博客(72)
  • 收藏
  • 关注

原创 通用架构风格分类

2019-07-19 15:11:13 613

转载 Xms Xmx PermSize MaxPermSize 区别

1.参数的含义 -vmargs -Xms128M -Xmx512M -XX:PermSize=64M -XX:MaxPermSize=128M -vmargs 说明后面是VM的参数,所以后面的其实都是JVM的参数了 -Xms128m JVM初始分配的堆内存 -Xmx512m JVM最大允许分配的堆内存,按需分配 -XX:PermSize=64M JVM初始分配的非堆内存 -XX:Max...

2018-09-13 14:49:30 759 1

原创 Spring Boot+Mockito+JUnit中的@Mock注入@InjectMocks失效

问题描述测试代码如下:@RunWith(SpringRunner.class)@SpringBootTestpublic class CheckConfirmPayServiceTest { private static final Logger logger = LoggerFactory.getLogger(CheckConfirmPayServiceTest.cla...

2018-08-30 15:25:06 19863 2

原创 Permgen Space导致的内存溢出

问题描述最近同事系统反馈系统出现如下错误: PermGen space的全称是Permanent Generation space,是指内存的永久保存区域。解决过程使用jstat查看 Permsize 占用情况,入戏所示:using thread-local object allocation.Parallel GC with 4 thread(s)Heap Con...

2018-07-19 11:05:35 1970

转载 HashMap和Hashtable的区别

HashMap和Hashtable的区别HashMap和Hashtable都实现了Map接口,但决定用哪一个之前先要弄清楚它们之间的分别。主要的区别有:线程安全性,同步(synchronization),以及速度。1、HashMap几乎可以等价于Hashtable,除了HashMap是非synchronized的,并可以接受null(HashMap可以接受为null的键值(key)和值(v

2018-01-16 15:18:49 328

转载 负数与二进制换转方法

1、十进制负数转二进制假设有一个 int 类型的数,值为5,那么,我们知道它在计算机中表示为: (因为java中int 是4个字节,所以高位需要补0,占够32位) 00000000 00000000 00000000 00000101 现在想知道,-5在计算机中如何表示? 在计算机中,负数以原码的补码形式表达。 什么叫补码呢?这得从原码,反码说起。 原码:一个正数,按照绝对

2018-01-08 11:32:08 45222 2

原创 java中三种移位运算符

简介java中有三种移位运算符num 1,相当于num乘以2>> : 右移运算符,num >> 1,相当于num除以2>>> : 无符号右移,忽略符号位,空位都以0补齐示例–正整数/** * Description 移位运算 * java中有三种移位运算符 * * >> : 右移运算符,num >> 1,相当于num除以2

2018-01-08 11:17:34 1475

转载 Integer和int的区别

Integer和int的区别1、Integer是int提供的封装类,而int是Java的基本数据类型;2、Integer默认值是null,而int默认值是0;3、声明为Integer的变量需要实例化,而声明为int的变量不需要实例化;4、Integer是对象,用一个引用指向这个对象,而int是基本类型,直接存储数值。

2018-01-04 16:02:25 277

转载 JAVA语言为什么能跨平台?

JAVA语言为什么能跨平台?因为Java程序编译之后的代码不是能被硬件系统直接运行的代码,而是一种“中间码”——字节码。然后不同的硬件平台上安装有不同的Java虚拟机(JVM),由JVM来把字节码再“翻译”成所对应的硬件平台能够执行的代码。因此对于Java编程者来说,不需要考虑硬件平台是什么。所以Java可以跨平台。因为它有虚拟机(JVM),JAVA程序不是直接在电脑上运行的,是在虚拟机上进行的,每

2018-01-03 10:47:34 892

原创 根据端口反查进程

步骤一:netstat -tunlp|grep 端口号 netstat -tunlp|grep 端口号,用于查看指定端口号的进程情况,如查看8221端口的情况,netstat -tunlp|grep 8221,如下图步骤二:ps -aux | grep 进程号如ps -aux | grep 5255进程号如下图:可以查到占用端口的进程。

2017-12-26 16:05:51 1822

转载 变量的就近原则

变量的就近原则就近原则(Principle of Proximity)-把相关的操作放在一起,例如让注释靠近它所描述的代码,让控制循环的代码靠近循环本身等。变量的就近原则指尽可能在靠近第一次使用变量的位置声明和定义该变量。就近原则实际上也是变量的作用域最小化的一种实现手段。过早地声明局部变量不仅会使它的作用域过早地扩展,而且结束得也过于晚了。局部变量的作用域从它被声明的点开始扩展,一直到外围块的结束

2017-12-26 14:41:31 3497

原创 Redis Decrby和Incrby命令

Redis Decrby命令语法redis 127.0.0.1:6379> DECRBY KEY_NAME DECREMENT_AMOUNT返回值返回一个整数,递减后键的值。Redis Incrby 命令语法redis 127.0.0.1:6379> INCRBY KEY_NAME INCR_AMOUNT返回值加上指定的增量值之后, key 的值。示例

2017-12-25 16:03:18 2511

原创 Thread.setDaemon守护线程详解

简介java中线程分为两种类型:用户线程和守护线程。通过Thread.setDaemon(false)设置为用户线程;通过Thread.setDaemon(true)设置为守护线程。 如果不设置,默认为用户线程。用户线程和守护线程的区别: 1. 主线程结束后用户线程还会继续运行,JVM存活;主线程结束后守护线程和JVM的状态又下面第2条确定。 2.如果没有用户线程,都是守护线程,那么JVM结束

2017-12-21 18:10:17 2252

原创 Cause: java.sql.SQLException: ORA-01795: 列表中的最大表达式数为 1000

问题描述### Cause: java.sql.SQLException: ORA-01795: 列表中的最大表达式数为 1000; bad SQL grammar []; nested exception is java.sql.SQLException: ORA-01795: 列表中的最大表达式数为 1000org.springframework.jdbc.BadSqlGrammarExcept

2017-12-21 16:14:30 2140

转载 EXCEL经验:一拖到底

在用EXCEL制表时,经常要要用到填充,比如1到100行内容相同或引用公式,大多数人会用鼠标拖来拖去,例如: 在第一行的A1单元格右下方 鼠标指针 变 实心黑十字 向下拉或向右,向左拉 我想拉100行 常一拉就过了—–过了100行,去到200多行 再向上推又过了——–去到30多行,很不容易控制住鼠标,动辄拖个几百行或不知道跑哪去了,把人气得要吐血 这儿我总结了几种方法供朋友们使用。

2017-12-18 20:11:04 11592

转载 EditPlus等编辑器选中列(块)的方法

EditPlus 1)菜单:编辑 -> 选择 -> 列选择 2)先按下 Alt + C ,释放,然后移动鼠标或键盘上下左右键进行选择 注意:在自动换行的模式下是不行的,改为不自动换行就行了。Notepad++1)按住 Alt 键,然后用鼠标进行选择 2)按住 Alt + Shift 键,然后用箭头(键盘的上下左右箭头)进行选择UltraEdit1)菜单栏有一个列块乒乓开关图标,选中它然后就

2017-12-18 19:49:02 2224

转载 oracle日期时间型timestamp的深入理解

1、字符型转成timestampselect to_timestamp('01-10月-08 07.46.41.000000000 上午','dd-MON-yy hh:mi:ss.ff AM') from dual; 2、timestamp转成date型select cast(to_timestamp('01-10月-08 07.46.41.000000000 上午','dd-MON-yy h

2017-12-18 19:45:11 13455

原创 java.sql.SQLException: ORA-01810: 格式代码出现两次

错误描述### The error occurred while setting parameters### SQL: select ID, USER_ID, CUST_ID, PHONE, CER_ID, BEGIN_TIME, END_TIME, BLACK_LEVEL, BALCK_CHANNEL, REMARK, CREATE_USER, CREATE_TI

2017-12-18 16:17:17 1183

原创 每次New一个BouncyCastleProvider导致的内存泄漏

问题原因生产服务器的内存一直升高,直到宕机。内存分析的结论是:内存泄漏。 下载dump文件,经过解析堆栈日志,如下图所示:The class “javax.crypto.JceSecurity”, loaded by “”, occupies 2,522,379,928 (95.73%) bytes. The memory is accumulated in one instance of “ja

2017-10-31 10:27:20 7522 1

转载 解决maven update project 后项目jdk变成1.5的问题

一、问题描述在Eclipse中新建了一个Maven工程, 然后更改JDK版本为1.7, 结果每次使用Maven > Update project的时候JDK版本都恢复成1.5。二、原因分析Maven官方文档有如下描述: 编译器插件用来编译项目的源文件.从3.0版本开始, 用来编译Java源文件的默认编译器是javax.tools.JavaCompiler (如果你是用的是java 1.6) . 如

2017-10-18 15:18:07 365

转载 oracle 按每天,每周,每月,每季度,每年查询统计数据

//按天统计select count(dataid) as 每天操作数量, sum()from tablenamegroup by trunc(createtime, ‘DD’))//按自然周统计 select to_char(date,’iw’),sum() from tablename group by to_char(date,’iw’) //按自然月统计 select to_

2017-10-16 17:14:47 694

原创 微服务构建:Spring Boot入门学习(1)

简介Spring Cloud是一个基于Spring Boot实现的微服务架构开发工具,它为微服务架构开发中的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等操作提供了一种简单的开发方式。Spring Cloud包含了多个子项目(针对分布式系统中涉及的多个不同开源产品),如: Spring Cloud Config: Spring Cloud N

2017-09-11 18:04:42 204

原创 Annotation学习

一.Annotation类型2SE5.0版本在 java.lang.annotation提供了四种元注解,专门注解其他的注解:@Documented –注解是否将包含在JavaDoc中 @Retention –什么时候使用该注解 @Target? –注解用于什么地方 @Inherited – 是否允许子类继承该注解@Documented–一个简单的Annotations标记注解,表示是否将注解

2017-08-31 15:42:55 393

原创 使用反向代理卸载TLS后,Web应用request.getRequestURL系列方法得到的是http://而非https://的处理方法

让应用服务器取到反向代理增加的x-forwarded-proto中的协议名称的方法:Tomcat:在server.xml的Host标签中,增加<Valve className="org.apache.catalina.valves.RemoteIpValve" protocolHeader="x-forwarded-proto" />JBoss在jboss-web.xml中标签中,增加<valve>

2017-07-31 15:31:21 2225

原创 Class类中getDeclaredFields() 与getFields()的区别

getDeclaredFields()返回Class中所有的字段,包括私有字段,而getFields()只返回公有字段,即有public修饰的字段。package com.shen.test.dto;import java.lang.reflect.Field;/** * <b>Description</b> 订单领域对象 <BR> * * @author shenhaiwen * * @

2017-07-18 15:06:20 15914

原创 Java的Random类详解

Random类 (java.util)Random类中实现的随机算法是伪随机,也就是有规则的随机。在进行随机时,随机算法的起源数字称为种子数(seed),在种子数的基础上进行一定的变换,从而产生需要的随机数字。相同种子数的Random对象,相同次数生成的随机数字是完全相同的。也就是说,两个种子数相同的Random对象,第一次生成的随机数字完全相同,第二次生成的随机数字也完全相同。这点在生成多个随机数

2017-07-14 17:27:26 4717 1

原创 linux下grep查找进程

1、查找指定进程 ps -ef | grep mmp-front第一条记录是查找出的进程;第二条结果是grep进程本身,并非真正要找的进程。 2、查找指定进程个数ps -ef | grep mmp-front -c 或者ps -ef | grep -c mmp-front3、不显示本身进程 ps -aux | grep mmp-front ps -aux | grep mmp-front | g

2017-07-14 15:53:20 45694

原创 linux下查找文件内容

1、查找关键字所在文件zgrep -l "WEBG1707141043310005" * 如上可以看出关键字在catalina.out文件中。2、显示关键字内容上下文信息1)显示在文件所在行数grep -rn "WEBG1707141043310005" --color=always //显示在文件所在行数,其中color=always表示关键字高亮高亮颜色突出显示搜索的字符串。值'alway

2017-07-14 11:20:02 9019

原创 Windows 查看端口是否已打开

在默认状态下,Windows会打开很多“服务端口”,如果你想查看本机打开了哪些端口、有哪些电脑正在与本机连接,可以使用以下两种方法。1.利用netstat命令Windows提供了netstat命令,能够显示当前的 TCP/IP 网络连接情况,注意:只有安装了TCP/IP协议,才能使用netstat命令。 操作方法:单击“开始→程序→附件→命令提示符”,进入DOS窗口,输入命令 netstat -

2017-07-03 19:01:38 167623

原创 Tomcat设置运行jvm编码

在Linux部署系统时,打印日志出现中文????乱码,如下所示: 2017-06-26 17:17:09.422 [TI17170901843] INFO [MarketingServiceImpl.java:139]Marketing ?????{“flowNo”:”2017062617152539”,”resultCode”:”MMP999”,”resultDesc”:”????”}因此需

2017-06-27 15:39:36 6076

原创 Dubbo启动时检查依赖

问题描述Dubbo缺省会在启动时检查依赖的服务是否可用,不可用时会抛出异常,阻止Spring初始化完成,以便上线时,能及早发现问题,默认check=true。第一次访问调用该依赖服务时,会报如下错误:017-06-21 11:03:14.655 [TI11031465537] INFO [Log4jLogger.java:58] [DUBBO] Register: consumer://192.16

2017-06-21 14:26:28 10044

原创 Oracle修改字段类型方法

有一个表名为tb,字段段名为name,数据类型是blog,要调整成数据类型nvarchar2(1024)。1、假设字段数据为空,则不管改为什么字段类型,可以直接执行: alter table tb modify (name nvarchar2(1024));2、假设字段有数据,则改为varchar2(1024)执行时会弹出:“ORA-01439:要更改数据类型,则要修改的列必须为空”,这时要用下面

2017-06-19 20:42:23 5300

原创 dubbo配置timeout超时时间

在dubbo的provider和consumer的配置文件中,如果都配置了timeout的超时时间,dubbo默认以consumer中配置的时间为准。provider.xml的配置:<dubbo:service timeout="4000" retries="0" interface="com.dingding.tms.bms.service.BillingZfbCodOrderService" r

2017-06-16 14:33:11 15299

原创 Spring Boot 微服务构建入门学习

maven构建项目1、访问http://start.spring.io/2、选择构建工具Maven Project、Spring Boot版本1.5.4以及一些工程基本信息,点击“Switch to the full version.”java版本选择1.7,可参考下图所示3、点击Generate Project下载项目压缩包4、解压后,使用eclipse,Import -> Existing Ma

2017-06-15 16:05:25 5445

转载 HTTP与HTTPS的概念和区别

一、HTPP和HTTPS的概念HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。

2017-06-15 14:55:48 3617

原创 使用eclipse制作war包方法

1、打开eclipse在左侧右击项目名选择“Export”2.在导出画面点击 “Web”->“WAR file”点击“Next”3、点击“Browse…”选择文件的导出位置4、将生成的war文件放到 tomcat的安装目录/webapps里面5、重启tomcat war包自动解压成文件夹 ,通过浏览器可以直接访问。

2017-06-14 10:20:42 7068

转载 Kafka的入门简单命令

Step 1: 启动服务器首先启动zookeeper bin/zookeeper-server-start.sh config/zookeeper.properties (远程启动的时候需要在后面加上一个 & 作为后台进程,然后断开和远程的链接)接着启动kafka服务器 bin/kafka-server-start.sh config/server.propertiesStep

2017-06-05 14:17:40 5265

原创 maven打包出现错误: Failed to clean project: Failed to delete

maven打包过程中报错:Failed to clean project: Failed to delete [INFO] ———————————————————————— [ERROR] Failed to execute goal org.apache.maven.plugins:maven-clean-plugin:2.5:clean (default-clean) on proje

2017-05-25 17:24:56 18374 3

转载 json动态过滤属性 @jsonignore及@JsonIgnoreProperties

Jackson相关使用Jackson相关的注解时一定要注意自己定义的属性命名是否规范。 命名不规范时会失去效果。(例如Ename ,Eage 为不规范命名。“nameE”,“ageE”为规范命名)我在此处掉坑半个小时。至于命名规范,大家自己搜索。其实不要太奇葩的命名都是可以得。如果使用@JsonIgnore注解不起效时请注意一下你的属性名字是否规范1、@JsonIgnoreProperties此

2017-05-25 16:57:59 19838 1

原创 jackson出现错误 Unrecognized field,JsonIgnoreProperties忽略不起作用

错误描述错误堆栈信息如下:org.codehaus.jackson.map.exc.UnrecognizedPropertyException: Unrecognized field "test" (Class com.unicompayment.mmp.front.dto.MarketingEventDto), not marked as ignorable at [Source: java.i

2017-05-16 16:32:05 12650 1

空空如也

空空如也

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

TA关注的人

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