java
鹏然心动_java
小心,细心,责任心
展开
-
关于代码编辑器IDEA突然不能编辑文件的原因
1:调整过系统时间,导致IDEA无法编辑文件。 解决办法:(1)调整系统时间到最新 (2)重启IDEA转载 2017-01-17 11:29:36 · 9563 阅读 · 0 评论 -
LOG4J2 异步日志
Making All Loggers AsynchronousRequires disruptor-3.0.0.jar or higher on the classpath. Future versions of Log4j 2 will require disruptor-3.3.3.jar or higher.This is simplest to configure and转载 2017-07-17 11:41:26 · 4919 阅读 · 2 评论 -
Git忽略规则和.gitignore规则不生效的解决办法
在工程中很容易出现.gitignore并没有忽略掉我们已经添加的文件,那是因为.gitignore对已经追踪(track)的文件是无效的,需要清除缓存,清除缓存后文件将以未追踪的形式出现,这时重新添加(add)并提交(commit)就可以了。// 不要忘了后面的 . git rm -r --cached .git add .git commit -m "comment"转载 2017-08-01 15:23:24 · 211 阅读 · 0 评论 -
Spring AOP中pointcut expression表达式解析
Pointcut 是指那些方法需要被执行"AOP",是由"Pointcut Expression"来描述的.Pointcut可以有下列方式来定义或者通过&& || 和!的方式进行组合. args()@args()execution()this()target()@target()within()@within()@annotation其中executio转载 2017-08-08 16:51:17 · 371 阅读 · 0 评论 -
git远程分支操作
这篇文章记录我在使用git的过程中碰到远程分支和tag的相关内容,提纲:查看远程分支删除远程分支和tag删除不存在对应远程分支的本地分支重命名远程分支把本地tag推送到远程获取远程tag查看远程分支加上-a参数可以查看远程分支,远程分支会用红色表示出来(如果你开了颜色支持的话):12345678910$ git branch -a mast转载 2017-08-09 18:19:55 · 1235 阅读 · 0 评论 -
diamond动态配置的系统的快速搭建
大家好,今天开始为大家带来我们通用产品团队的产品 —— diamond的专题,本次为大家介绍diamond的概况和快速使用。一、概况diamond是淘宝内部使用的一个管理持久配置的系统,它的特点是简单、可靠、易用,目前淘宝内部绝大多数系统的配置,由diamond来进行统一管理。diamond为应用系统提供了获取配置的服务,应用不仅可以在启动时从diamond获取相关的配置,而且可以在运转载 2017-08-03 19:07:37 · 546 阅读 · 0 评论 -
Java并发编程-阻塞队列(BlockingQueue)的实现原理
阻塞队列 (BlockingQueue)是Java util.concurrent包下重要的数据结构,BlockingQueue提供了线程安全的队列访问方式:当阻塞队列进行插入数据时,如果队列已满,线程将会阻塞等待直到队列非满;从阻塞队列取数据时,如果队列已空,线程将会阻塞等待直到队列非空。并发包下很多高级同步类的实现都是基于BlockingQueue实现的。BlockingQueue转载 2017-08-19 18:06:54 · 253 阅读 · 0 评论 -
Java多线程-Executor框架:CompletionService
前言: ExecutorService并不是按照submit(Callable/Runnable)的顺序来完成任务的(ExecutorService内部有一个List来维护任务队列),每submit一次返回的Future对象所对应的任务不一定是完成的。所以,当你按照顺序submit任务并按照顺序将返回的Future加入到一个List中,并遍历这个List去调用每个Future的get()方转载 2017-08-19 18:10:43 · 271 阅读 · 0 评论 -
git迁移远程仓库后报错的解决办法
1.问题描述:今天服务器迁移了下git,于是就直接根据拷贝后的git repo创建了远程仓库,本来一切都很顺利。服务器端执行命令报错。记录下解决过程2.执行命令报错$ git fetch origin master@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ WARNING转载 2017-08-13 17:01:26 · 1637 阅读 · 0 评论 -
java主线程结束和子线程结束之间的关系
情况1:正常情况下,主线程启动了子线程,主线程、子线程各自执行,彼此不受影响。当你在run一个Java application的时候,这个时候系统会开一个进程。然后这个进程启动了Main线程。Java进程确定虚拟机中没有线程运行的时候,退出进程。或者也可以用System.exit(0);强制退出进程代码示例如下:参考Thinkingin java代码[java]转载 2017-08-25 15:15:01 · 525 阅读 · 0 评论 -
Jackson json 处理全大写或不规范的JSON
面对不遵守驼峰命名规则的接口咋办?当然首先要吐槽一下,不过接口是别人定的,虽然看着不爽但还是得去适配,比如cardNumber,他返回的叫{CARDNUMBER:''}。 通过对API的研究可以通过@JsonProperty以及@JsonAutoDetect来实现。 先看代码Java代码 @JsonAutoDetect(JsonMeth转载 2017-09-04 15:35:57 · 954 阅读 · 0 评论 -
JDK动态代理实现原理
之前虽然会用JDK的动态代理,但是有些问题却一直没有搞明白。比如说:InvocationHandler的invoke方法是由谁来调用的,代理对象是怎么生成的,直到前几个星期才把这些问题全部搞明白了。 废话不多说了,先来看一下JDK的动态是怎么用的。 Java代码 package dynamic.proxy; import java.la转载 2017-08-15 23:22:01 · 259 阅读 · 0 评论 -
利用Jmap进行简单日志分析
root@ubuntu:/# jmap -heap 21711Attaching to process ID 21711, please wait...Debugger attached successfully.Server compiler detected.JVM version is 20.10-b01 using thread-local转载 2017-10-25 12:18:34 · 655 阅读 · 0 评论 -
git版本管理
版本回退阅读: 1211080现在,你已经学会了修改文件,然后把修改提交到Git版本库,现在,再练习一次,修改readme.txt文件如下:Git is a distributed version control system.Git is free software distributed under the GPL.然后尝试提交:$ git add转载 2017-12-06 18:46:21 · 174 阅读 · 0 评论 -
github总结(4)--关于git reset --hard这个命令的惨痛教训
github总结(4)--关于git reset --hard这个命令的惨痛教训背景叙述:前几天,上传自己的个站到git上的时候,手欠脑发晕的用了次git reset --hard xxxxxx 命令。由于只在线上传入了一个index.html页面(自己都不知道自己咋想的,就这么干了,O__O"…),且第一次commit的时候也只commit了一个index.html文件,其他文件的只是通过git...转载 2018-02-24 19:44:02 · 568 阅读 · 0 评论 -
git reset revert 回退回滚取消提交返回上一版本
git reset revert 回退回滚取消提交返回上一版本总有一天你会遇到下面的问题.(1)改完代码匆忙提交,上线发现有问题,怎么办? 赶紧回滚.(2)改完代码测试也没有问题,但是上线发现你的修改影响了之前运行正常的代码报错,必须回滚.这些开发中很常见的问题,所以git的取消提交,回退甚至返回上一版本都是特别重要的.大致分为下面2种情况:1.没有push这种情况发生在你的本地代码仓库,可能你a...转载 2018-02-24 19:46:39 · 344 阅读 · 0 评论 -
java.toString() ,(String),String.valueOf的区别
在Java项目的实际开发和应用中,常常需要用到将对象转为String这一基本功能。本文将对常用的转换方法进行一个总结。 常用的方法有Object#toString(),(String)要转换的对象,String.valueOf(Object)等。下面对这些方法一一进行分析。方法1:采用 Object#toString()方法请看下面的例子: Object o转载 2017-06-28 15:46:10 · 164 阅读 · 0 评论 -
为什么选择Spring Boot作为微服务的入门级微框架
本文为普元云计算高级工程师许二虎在普元云计算架构设计群的微课堂分享。如需加入普元新一代数字化企业云平台研发设计群参与微课堂、架构设计与讨论直播,请直接回复此公众号:“加群 姓名 公司 职位 微信号”。1. Spring Boot是什么,解决哪些问题 1) Spring Boot使编码变简单 2) Spring Boot使配置变简单 3转载 2017-06-27 16:36:04 · 225 阅读 · 0 评论 -
mysql cardinality 索引选择
官方文档的解释:An estimate of the number of unique values in the index. This is updated by running ANALYZE TABLE or myisamchk -a. Cardinality is counted based on statistics stored as integers, so the value转载 2017-03-28 11:12:13 · 411 阅读 · 0 评论 -
equals()方法左右变量的位置
题:一个变量,一个常量,用equals()方法比较,让咱们,看看到底是常量放前面好啊,还是变量放前面好----------------------------------------------------------------------------------------------其实说白了,如果是两个都是变量,那就放哪都行没啥区别;(有点废话了)现在主要就是有一个是常量,大家转载 2017-04-07 09:59:55 · 742 阅读 · 0 评论 -
Git的gc功能
Git的底层并没有采用 CVS、SVN 底层所采用的那套增量式文件系统,而是采用一套自行维护的存储文件系统。当文件变动发生提交时,该文件系统存储的不是文件的差异信息,而是文件快照,即整个文件内容,并保存指向快照的索引。这种做法,提高 Git 分支的使用效率;但也容易导致代码仓库中内容重复程度过高,从而仓库体积过大。当遇到这种情况时,或者需要将仓库推送到远程主机时,就需要Git中的gc(garb转载 2017-03-22 15:55:42 · 1732 阅读 · 0 评论 -
mysql索引需要了解的几个注意
板子之前做过2年web开发培训(入门?),获得挺多学生好评,这是蛮有成就感的一件事,准备花点时间根据当时的一些备课内容整理出一系列文章出来,希望能给更多人带来帮助,这是系列文章的第一篇注:科普文章一篇,大牛绕道索引是做什么的?索引用于快速找出在某个列中有一特定值的行。不使用索引,MySQL必须从第1条记录开始然后读完整个表直到找出相关的行。表越大,花费的时间越多。如果表转载 2017-03-23 11:00:13 · 251 阅读 · 0 评论 -
【Java线程】Callable和Future
Future模式Future接口是Java线程Future模式的实现,可以来进行异步计算。Future模式可以这样来描述:我有一个任务,提交给了Future,Future替我完成这个任务。期间我自己可以去做任何想做的事情。一段时间之后,我就便可以从Future那儿取出结果。就相当于下了一张订货单,一段时间后可以拿着提订单来提货,这期间可以干别的任何事情。其中Future接口就是转载 2017-03-24 11:26:11 · 210 阅读 · 0 评论 -
ArrayList循环遍历并删除元素的常见陷阱
在工作和学习中,经常碰到删除ArrayList里面的某个元素,看似一个很简单的问题,却很容易出bug。不妨把这个问题当做一道面试题目,我想一定能难道不少的人。今天就给大家说一下在ArrayList循环遍历并删除元素的问题。首先请看下面的例子:123456789101112131415转载 2017-03-16 17:10:45 · 178 阅读 · 0 评论 -
Maven settings配置中的mirrorOf
使用maven时,从来没仔细注意过setting配置节点的作用,直到今天配置总是不起作用,总是报错才开始去认识这些节点的含义。这里就说mirrorOf,因为其他的怎么配置基本上都不会出错,只有mirrorOf会导致莫名其妙的错误,如果你还不了解mirrorOf,请往下看,你会认识到mirrorOf的重要作用的。主要参考来自:Using Mirrors for Rep转载 2017-03-27 12:59:38 · 781 阅读 · 0 评论 -
MessageFormat用法
MessageFormat用来格式化一个消息,通常是一个字符串,比如:String str = "I'm not a {0}, age is {1,number,short}", height is {2,number,#.#}; 而MessageFormat可以格式化这样的消息,然后将格式化后的字符串插入到模式中的适当位置,比如:将str中的{0}用"pig"替换转载 2017-04-18 11:22:01 · 376 阅读 · 0 评论 -
maven deploy 之父子项目依赖
新分支上开发新的迭代版本的时候,由于添加了新的dubbo接口,于是更新了一下新版本的jar,同时更新了父项目的版本号,但是在deploy的时候只是deploy了子项目api,并没有把父项目的pom.xml deploy到私服上,于是在线上重新部署项目的时候,打包报错如下。[ERROR] Failed to execute goal on project media-hapi:转载 2017-05-16 16:05:10 · 3747 阅读 · 0 评论 -
如何在Struts2中获取spring的实例化对象
WebApplicationContext webApplicationContext = WebApplicationContextUtils.getRequiredWebApplicationContext(ServletActionContext.getServletContext()); 12WebApplicationContext WebApplicationCon转载 2017-04-26 12:04:52 · 1173 阅读 · 0 评论 -
logger.isDebugEnabled和logger.isInfoEnabled的作用
1.看下apache的官方的document,在Performance下那块(From: http://logging.apache.org/log4j/1.2/manual.html)For example, for some logger cat, writing,logger.debug("Entry number: " + i + " is " +转载 2017-05-19 17:10:20 · 5420 阅读 · 0 评论 -
linux安装rabbitMq
1yum install erlang安装完ErLang,就可以直接安装RabbitMQ了,可以下载官方的rpm编译好的软件包(参见:http://www.rabbitmq.com/install-rpm.html)1wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.5/rabbitmq-server-3.6.转载 2017-06-05 18:59:40 · 197 阅读 · 0 评论 -
RabbitMQ的几种典型使用场景
RabbitMQ主页:https://www.rabbitmq.com/AMQPAMQP协议是一个高级抽象层消息通信协议,RabbitMQ是AMQP协议的实现。它主要包括以下组件:1.Server(broker): 接受客户端连接,实现AMQP消息队列和路由功能的进程。2.Virtual Host:其实是一个虚拟概念,类似于权限控制组,一个Virtual H转载 2017-06-29 18:19:33 · 312 阅读 · 0 评论 -
springboot logback-spring配置mybatis日志输出
="false"/>log4j的additivity属性:它是 子Logger 是否继承 父Logger 的 输出源(appender) 的标志位。具体说,默认情况下子Logger会继承父Logger的appender,也就是说子Logger会在父Logger的appender里输出。若是additivity设为false,则子Logger只会在自己的appender里输出,而不会在父Logg原创 2017-06-09 11:58:47 · 8992 阅读 · 0 评论 -
logback 异步日志配置
目前所有的日志记录方式采用的都是同步的方式,即直接将日志写入文件。在多应用的时候,这种效果会导致一定的线程运行延迟,所以可以采用异步的方式处理。logback AsyncAppender 目前在logback 1.0.11及以上版本存在 集成到项目异步日志记录是在原来logback上的扩展,并不是替代方式,所以只需要在原来的配置文件上添加一下配置转载 2017-07-03 16:03:39 · 4555 阅读 · 0 评论 -
基于zookeeper的分布式锁
实现分布式锁目前有三种流行方案,分别为基于数据库、Redis、Zookeeper的方案,其中前两种方案网络上有很多资料可以参考,本文不做展开。我们来看下使用Zookeeper如何实现分布式锁。什么是Zookeeper?Zookeeper(业界简称zk)是一种提供配置管理、分布式协同以及命名的中心化服务,这些提供的功能都是分布式系统中非常底层且必不可少的基本功能,但是如果自己实现这些功能而且...转载 2018-10-06 18:25:43 · 206 阅读 · 0 评论