
java
文章平均质量分 60
Michael曾
这个作者很懒,什么都没留下…
展开
-
Resilience4j+Feign实现熔断,fallback
FeignClient Hystrix超时重试降级讲了Hystrix和feign各自的超时,重试,降级策略。然后Hystrix其实已经不再维护了,社区推荐Resilience4j,阿里有一个开源的sentinel也可以做到熔断限流等功能。网上有一个表格图片,对比了三者的不同。我自己在实际使用中的情况是,服务间调用使用Feign,没有用其他RPC框架,然后想做熔断策略,又不想用Hystrix,毕...原创 2019-11-11 17:51:02 · 7326 阅读 · 0 评论 -
发送邮件带附件,邀请邮件加入日历
1、发送邮件带附件/***@param fileName 附件文件名*@param outputStream 附件的输出流*@param contentType “application/vnd.ms-excel;charset=UTF-8”这是excel附件,其他附件还要稍微改动下**/public Result sendMailWithAttachment(String toEma...原创 2019-03-15 16:30:21 · 5513 阅读 · 1 评论 -
转载文章积累-java
Java NIO系列教程理解java NIOjava NIO浅析JAVA环境变量JAVA_HOME、CLASSPATH、PATH配置说明Forkjoin参考链接:https://www.liaoxuefeng.com/article/001493522711597674607c7f4f346628a76145477e2ff82000http://www.infoq.com/cn/ar...原创 2019-02-19 11:19:16 · 199 阅读 · 0 评论 -
面试准备-java【2】
编译执行,解释执行解释执行:代码仅仅编译成class文件,没有转化为机器码,虚拟机读取一行代码,转化成一行机器码,然后执行。编译执行:代码完全编译成机器码,直接交由机器执行。jvm虚拟机是混合模式,大部分是解释执行,但是对部分热点代码会JIT(just-in-time)编译器,也是我们常说的动态编译器,编译成机器码,此处是编译执行。运行模式可以通过jvm参数来指定。不同平台有不同的解释器,...原创 2018-12-06 15:06:09 · 299 阅读 · 0 评论 -
无处归类的小知识点(持续更新)
1、移位操作,位或操作,加减操作的优先级Long start = 2L;Long s4 = start -1 << 4 | 2 << 2 | 8 -1;System.out.println(s4);结果:31加减操作的优先级最高,先做然后是移位操作最后是位或,位与操作...原创 2018-11-08 16:19:58 · 206 阅读 · 0 评论 -
面试准备-java【1】
1、HashMap 是线程安全的吗,为什么不是线程安全的(最好画图说明多线程环境下不安全)HashMap线程不安全,hashmap允许key,value为nullhashtable线程安全,方法加synchronized,不允许value为nullConcurrentHashMap引入了分段锁HashMap多线程get不安全,多线程扩容阶段中,rehash步骤不安全http://www....原创 2018-10-22 11:53:19 · 857 阅读 · 0 评论 -
面试准备-jvm(持续更新)
1、详细jvm内存模型共享部分(每个JVM实例一份):1)方法区:共享区域,存储类信息,方法信息,常量,静态变量,JIT编译后的代码等数据。运行时常量池:在方法区内部,保存常量数据,存储字面量和符号引用。常量不仅仅在编译时产生,运行时也可以,比较常用的是String类的intern()方法。关于符号引用说明,参考 https://blog.youkuaiyun.com/u014656992/artic...原创 2018-10-22 11:38:09 · 338 阅读 · 0 评论 -
linux编译openjdk8
最近在看《深入理解java虚拟机》,第一章主要讲java历史,有点意思的是编译openjdk,想自己试着搞搞,但是书上编译的是7,而且要配置一堆的配置文件,就上网查查,openjdk8貌似不用配置这么多,就试着编译8。纪录一下操作过程。**编译**系统:centOs 7.5 64位(刚开始用的腾讯云1核1g,编译的时候说内存不够,好在腾讯云5天免费退,改成1核2g)1、下载openjdk...原创 2018-09-19 22:51:08 · 5114 阅读 · 0 评论 -
java垃圾回收转载整理
参考链接: 文章1:https://www.cubrid.org/blog/understanding-java-garbage-collection 文章2:https://blog.youkuaiyun.com/u012152619/article/details/46981643本文主要是根据英文文档进行整理。如有不对,欢迎指正。分代回收不算是一种算法,而是一种策略,在年轻代和年老代可以采用...原创 2018-05-16 17:18:12 · 424 阅读 · 0 评论 -
java基础(持续学习更新记录)
1、堆栈 1)内存分配策略静态存储分配是指在编译时就能确定每个数据目标在运行时刻的存储空间需求,因而在编译时就可以给他们分配固定的内存空间.这种分配策略要求程序代码中不允许有可变数据结构(比如可变数组)的存在,也不允许有嵌套或者递归的结构出现,因为它们都会导致编译程序无法计算准确的存储空间需求.栈式存储分配也可称为动态存储分配,是由一个类似于堆栈的运行栈来实现的.和静态存储分配相反,在栈式存储原创 2017-12-04 12:00:13 · 196 阅读 · 0 评论 -
学习 FutureTask
学习FutureTask原创 2017-06-28 22:58:51 · 362 阅读 · 0 评论 -
volatile和内部类实现单例模式的原理(自我理解)
之前一直对利用volatile实现单例模式的原理不太了解,今天看了一片关于volatile的文章,终于有些了解,在这里记录一下,顺便列一下对内部类实现单例的理解,避免忘记。 首先说一下关于多线程比较注意的几个点,原子性,可见性(共享变量修改之后其他线程能立即更新),有序性(处理器为提升效率,会在保证结果的情况,改变代码运行顺序,此处说的是单线程情况下)。通过synchronized和lock可以达转载 2017-04-02 16:43:47 · 1267 阅读 · 0 评论