maven打包带有main函数入口的jar 1.引入maven-shade-plugin插件即可 org.apache.maven.plugins maven-shade-plugin 1.2.1 package shade <transformer
简单分享下阿里面试经验 简介阿里的面试主要流程大概有以下几个:1.一面(技术面),技术主管面2.二面(技术+HR),异地的话是视频面试(我就是),技术+性格测试3.三面 HR谈薪资职级4.体检+背景调查5.发offerr一面一面面试内容是技术,当时面我的是我后面(阿里)的技术主管,由于面试时间差不多过去快2个月了。。。有些可能记不清了1.自我介绍---->别紧张,这种都是面试的
服务熔断框架hystrix学习概要 一:框架springboot、hystrix、maven二:depend org.springframework.boot spring-boot-starter-web ${springboot.version} com.netflix.hystrix hystrix-core ${hystrix.version}
git提交代码 首先从git 仓库检出开发分支git ckeckout -b dev master 2. 提交修改的代码 git commit filename会弹出一个vim界面,把需要提交的代码的文件前面的#号去掉,保存退出即可\3. push代码到仓库git push4. 切回到master(或者你要合并的分支)分支git
synchronized与static synchronized 的区别 转自:http://www.cnblogs.com/shipengzhi/articles/2223100.html1.synchronized与static synchronized 的区别 synchronized是对类的当前实例进行加锁,防止其他线程同时访问该类的该实例的所有synchronized块,注意这里是“类的当前实例”, 类的两个不同实例就没有这种约束了。那么
JAVA锁---------------------CLH锁和MCS锁 参考:http://ifeve.com/java_lock_see2/一:CLH锁实现package com.eden.coreLearn.thread.lock;import java.util.concurrent.TimeUnit;import java.util.concurrent.atomic.AtomicReferenceFieldUpdater;impor
JAVA锁---------------------Ticket自旋锁 参考:http://ifeve.com/java_lock_see2/一:ticket自旋锁上节讲了自选锁,自旋锁中常用的有三类,TicketLock ,CLHlock 和MCSlock,本节主要谈谈ticket自旋锁概念:ticket锁也是自旋锁的一种,只是它是一种能保证顺序的自选锁,是公平锁实现:package com.eden.coreLearn.thread.lock;
JAVA锁---------------------自旋锁 最近在看并发方面的知识,然后就看到锁这一块了,发现锁这一块的概念太多了,今天就简单的谈谈自旋锁。一.自旋锁概念:自旋锁就是当线程获取不到资源时,不是进入阻塞状态,而是让当前的线程不停的在执行空循环,直到循环条件被其他线程改变,进入临界区实现package com.eden.coreLearn.thread.lock;import java.util.concurrent.Tim
JAVA ABA问题 转自:http://blog.hesey.net/2011/09/resolve-aba-by-atomicstampedreference.html在运用CAS做Lock-Free操作中有一个经典的ABA问题:线程1准备用CAS将变量的值由A替换为B,在此之前,线程2将变量的值由A替换为C,又由C替换为A,然后线程1执行CAS时发现变量的值仍然为A,所以CAS成功。但实际上这时的
JUC (Java Util Concurrency) 基础内容概述 1. JUC概况以下是Java JUC包的主体结构:Atomic : AtomicIntegerLocks : Lock, Condition, ReadWriteLockCollections : Queue, ConcurrentMapExecuter : Future, Callable, ExecutorTools : CountDownLatch, CyclicBar
java并发常见问题 1.java中有几种方法可以实现一个线程?继承Thread实现Runnable线程池ExecutorService2.如何停止一个正在运行的线程?使用共享变量public class StopThread { private static volatile boolean stopRequested = false; public stati
java方法重载(慎用重载) 1.什么是方法重载 方法名字相同,参数类型或者参数个数不同2.下面我们先看下面这段代码 public class CollectionClassifier { public static String classify(Set s) { return "set"; } public static String classify(Lis
应用健康检查 一:背景 我们的应用是都是走自动化脚本发布的,当发布完成后,通常的做法可能是直接看发布日志是否有报错,但这需要人工去操作,所以我们写了一个健康检查的页面,在发布完成后用脚本去访问这个健康页面,看是否能正常访问,从而确定应用是否正常启动。二:实现 写一个servlet去作为健康检查的页面,如果能正常访问,说明应用启动成功 写一个filter做安全检查,禁止访问其他资源
单例的序列化与反序列化 一:背景 单例在序列化时,仅仅实现序列化接口(implements Serializable)是没有用的,它在反序列化时,会每次都去创建一个新的实例。二:如何解决 声明所有的实例域都是瞬时的(transient) ,且提供一个readResolve()方法。三:测试代码 package com.eden.coreLearn.javacore;
读取jar包中的xsd并对xml校验 /*** 校验xml文档内容格式是否正确** @param xmlContent* @throws WorkFlowException*/public void checkProcessDef(InputStream xmlContent) throws WorkFlowException {// String xsdFileName = USER_DIR + File.separa
static学习 package com.dingwang.Test;import java.util.ArrayList;import java.util.List;/** * 类TestStatic.java的实现描述:TODO 类实现描述 * * @author eden.ding 2016年4月20日 下午9:05:04 */public class TestStatic {
生产问题总结(集群或单节点挂掉) 1.问题最近一周真是不太平,应用几乎每天都会挂,而且还每天的原因都不一样2.以下就几种原因简单的说下1)内存溢出现象:内存告警,拿不到数据库连接,高full gc分析:增加jvm参数,full gc时生成dump日志,分析dump日志,发现有一个查询占了内存的60+%。。。,看内存占比前几位的全是string对象,而且全是重复的,那么就直接去看这个查询啊,一看这个查询的sq
java对List去重并且保持集合中的原有顺序 1.去重可以利用java中的Set集合2.保持顺序Set中的LinkedHashSet就是有序的3.代码package com.eden.ClassLoaderTest;import java.util.ArrayList;import java.util.Iterator;import java.util.LinkedHashSet;import java.util
Minor GC、Major GC和Full GC之间的区别 转自:http://www.open-open.com/lib/view/open1429883238291.html在 Plumbr 从事 GC 暂停检测相关功能的工作时,我被迫用自己的方式,通过大量文章、书籍和演讲来介绍我所做的工作。在整个过程中,经常对 Minor、Major、和 Full GC 事件的使用感到困惑。这也是我写这篇博客的原因,我希望能清楚地解释这其中的一些