3 邋遢的流浪剑客

尚未进行身份认证

我要认证

成长中的Java攻城狮

等级
TA的排名 1w+

重新解读JMM与volatile

最近面试面的有些自闭,问得越来越深入了,所以决定重新读一下《Java并发编程的艺术》,同时结合一些其他的文章,来深入地解读一下JMM与volatile一、现代计算机的内存模型其实早期计算机中CPU和内存的速度是差不多的,但在现代计算机中,CPU的指令速度远超内存的存取速度,由于计算机的存储设备与处理器的运算速度有几个数量级的差距,所以现代计算机系统都不得不加入一层读写速度尽可能接近处理器运算速度的高速缓存(Cache)来作为内存与处理器之间的缓冲将运算需要使用到的数据复制到缓存中,让运算能快速进.

2020-09-13 09:17:21

2020年社招面经与问题总结(二)

说下本人现在的基本情况,毕业一年,双非本科,之前是项目外包,坐标上海,目标中大型互联网公司知乎一面:Eureka底层原理、单点登录授权码模式、如何实现HTTP长连接、现在项目的CI/CD流程、NIO和BIO的区别、JVM运行时数据区、JVM垃圾回收器、内存泄露和内存溢出的区别、synchronized和Lock对比、synchronized底层实现、synchronized锁升级过程、ReentrantLock公平锁实现、创建线程的几种方式、线程状态转换、多线程执行任务同步获取结果有哪几种方式、.

2020-09-12 19:15:13

2020年社招面经与问题总结(一)

说下本人现在的基本情况,毕业一年,双非本科,之前是项目外包,坐标上海,目标中大型互联网公司蚂蚁金服电话面:主要问做过的项目的一些解决方案(是否有分库分表、是否使用缓存、服务拆分的原则、遇到的有挑战性的技术问题,如何解决)Docker是如何实现虚拟化的、JVM运行时数据区、JVM垃圾回收算法、用过Dubbo吗、SpringCloud相关原理蚂蚁金服电话面卒,我们公司目前做的主要是企业内部的报销相关的系统,数据量、并发量都比较小,用的技术栈也没那么多,所以项目解决方案的话相对来说比较吃亏,而且.

2020-08-22 06:33:56

JVM与多线程知识点补充

一、垃圾收集器相关1、HotSpot的算法细节实现其实下面讲到的技术本质上是为了解决垃圾回收过程中的具体问题而采用的解决方案,所以我会先说明遇到的问题再讲解HotSpot给出相对应的解决方案1)、OopMap在判断对象是否存活的时候,采用的是可达性分析算法,也就是从GC Roots集合找引用链这样的一个过程。虽然固定可以作为GC Roots的节点主要在全局性的引用(例如常量或类静态属性)与执行上下文(例如栈帧中的本地变量表)中,但如果要逐个检查以这里为起源的引用要消耗不少的时间。而且为了保证分析结

2020-08-23 19:02:34

Java实现大写金额转小写金额

转自:https://blog.csdn.net/rmnjava/article/details/24693733public class MoneyUtil { /** * 中文中简写的汉字金额 经常使用 */ private static String[] rmbNumbers = new String[]{ "一", "二", "三", "四", "五", "六", "七", "八", "九", "两", "廿", "卅", "○"};

2020-08-01 15:14:56

Java实现图片压缩且不改变原图尺寸

最近工作中涉及图片压缩相关的操作,需求如下:大于2MB的图片需要压缩到2MB以下,且不改变原图的尺寸引入依赖: <dependency> <groupId>net.coobird</groupId> <artifactId>thumbnailator</artifactId> <version>0.4.8</version>

2020-08-01 14:03:47

Java分析线上OOM问题的工具

一、相关工具介绍1、jpsjps可以列出正在运行的虚拟机进程,并显示虚拟机执行主类名以及这些进程的本地虚拟机唯一ID(LVMID),LVMID与操作系统的进程ID(PID)是一致的/ # jps1 ExpenseApplication6370 Jps选项作用-v输出虚拟机进程启动时的JVM参数后面介绍的命令都监控的是LVMID为1的这个JVM进程2、jstatjstat是用于监视虚拟机各种运行状态信息的命令行工具。它可以显示本地或者远程虚拟机进程中的类加载、

2020-08-01 13:23:28

K8S相关问题解决

本文主要记录了工作中解决的一些K8S相关的问题,本人是K8S小白,后面会专门抽出时间来学习K8S的1、imagePullPolicy拉取策略Always:总是去镜像仓库拉取IfNotPresent:本地有则使用本地镜像,否则去镜像仓库拉取Never:只使用本地镜像,从不拉取2、K8S向Pod里的/etc/hosts添加条目apiVersion: v1kind: Podmetadata: name: hostaliases-podspec: restartPolicy: Ne.

2020-07-27 19:50:52

并发工具类:Fork、Join和CompletionService

一、Fork/JoinFork就是把一个大任务切分为若干子任务并行的执行,Join就是合并这些子任务的执行结果,最后得到这个大任务的结果工作窃取算法:假如我们需要做一个比较大的任务,可以把这个任务分割为若干互不依赖的子任务,为了减少线程间的竞争,把这些子任务分别放到不同的队列里,并为每个队列创建一个单独的线程来执行队列里的任务,线程和队列一一对应。比如A线程负责处理A队列里的任务。但是,有的线程会先把自己队列里的任务干完,而其他线程对应的队列里还有任务等待处理。干完活的线程与其等着,不如去帮其他线程

2020-07-24 08:25:09

Java泛型详解:泛型类、泛型方法使用

转自:https://www.cnblogs.com/jpfss/p/9928747.html一、泛型类定义及使用public class Point<T> { private T x; private T y; public T getX() { return x; } public void setX(T x) { this.x = x; } public T getY() {

2020-07-22 20:42:00

《计算机网络-第7版-谢希仁》学习笔记:应用层

四、应用层1、域名系统DNS1)、域名系统概述域名系统DNS是互联网使用的命名系统,用来把便于人们使用的机器名字转换为IP地址DNS使大多数名字都在本地进行解析,仅少量解析需要互联网上通信,因此DNS系统的效率很高2)、互联网的域名结构互联网采用了层次树状结构的命名方法3)、域名服务器DNS的核心系统是一个三层的树状、分布式服务,基本对应域名的结构:1)根域名服务器:是层次最高的域名服务器,也是最重要的。所有根域名服务器都知道所有顶级域名服务器的域名和IP地址。任何本地域名服务器只要自己

2020-07-19 09:39:47

《计算机网络-第7版-谢希仁》学习笔记:运输层

三、运输层1、运输层协议概述1)、进程之间的通信运输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层。当网络的边缘部分中的两台主机使用网络的核心部分的功能进行端到端的通信时,只有主机的协议栈才有运输层,而网络核心部分中的路由器在转发分组时都只用到了下三层的功能真正进行通信的实体是在主机中的进程,是一台主机中的进程和另一台主机中的进程在交换数据,严格来讲,两台主机进行通信就是两台主机中的应用进程互相通信复用:在发送方不同的应用进程都可以使用同一个运输层协议传送

2020-07-12 19:04:20

《计算机网络-第7版-谢希仁》学习笔记:网络层

二、网络层1、网络层提供的两种服务网络层向传输层提供虚电路服务和数据报服务虚电路服务:虚电路表示这只是一条逻辑上的连接,H1发送给H2的所有分组都沿着同一条虚电路传送数据报服务:H1发送给H2的分组可能沿着不同路径传送虚电路与数据报服务比较:2、网际协议IP与IP协议配套使用的还有三个协议:地址解析协议ARP、网际控制报文协议ICMP、网际组管理协议IGMPARP画在最下面,因为IP经常要使用这个协议。ICMP和IGMP画在这一层的上部,因为它们要使用IP协议1)、虚拟互联网络

2020-07-04 22:57:33

Java实现PDF转图片

最近工作中涉及PDF转图片的操作,经过测试,pdfbox转换后清晰度相对来说是比较高的引入依赖: <dependency> <groupId>org.apache.pdfbox</groupId> <artifactId>pdfbox</artifactId> <version>2.0.20</version> </dependency>工具类:public class PdfT

2020-07-04 16:49:00

《计算机网络-第7版-谢希仁》学习笔记:数据链路层

一、数据链路层主机H1向H2发送数据路由器在转发分组时使用的协议栈只有下面的三层,数据进入路由器后要先从物理层上到网络层,在转发表中找到下一跳的地址后,再下到物理层转发出去数据链路层使用的信道主要有以下两种类型:点对点信道:使用一对一的点对点通信方式广播信道:使用一对多的广播信道方式,广播信道上连接的主机很多,因此必须使用专用的共享信道协议来协调这些主机的数据发送1、使用点对点信道的数据链路层1)、数据链路和帧点对点信道的数据链路层在进行通信时的主要步骤:1)结点A的数据链路层把

2020-06-21 09:17:21

面试中所谈的项目中的亮点

前言我是从18年11月份入职的,一直做的是Java开发,起初和大部分人一样都是CRUD,直到去年年底一个小项目让我做了技术经理,虽然我在项目上受到了比较大的打击(做己方的话如果真的遇到一个很难对付的甲方简直让人崩溃),但也确实让我获得很多技术上的成长写这篇博客主要为了回顾一下自己过去做过的项目,也梳理一下面试中谈到项目这块可以说出的亮点,如果对看到这篇博客的你有帮助那就更好了O(∩_∩)O下文中提到的项目上的亮点如下:1)、使用反射+枚举的方式记录变更日志2)、使用策略模式+工厂模式封装银企直连服

2020-06-18 07:59:01

List如何一边遍历,一边删除

1、foreach抛出ConcurrentModificationException List<String> strList = new ArrayList<>(); strList.add("Java"); strList.add("Docker"); strList.add("SpringCloud"); for (String str : strList) { if ("J

2020-06-13 18:39:30

Spring常见面试知识点

1、谈谈对Spring IOC的理解?谈谈对Spring DI的理解?IOC反转控制:将之前程序中需要手动创建对象的操作,交由Spring框架来实现,创建对象的操作被反转到了Spring框架。对象的生命周期由Spring来管理,直接从Spring那里去获取一个对象DI依赖注入:Spring框架创建Bean对象时,动态的将依赖对象注入到Bean组件中,实现依赖对象的注入2、依赖查找和依赖注入的区别依赖查找是主动或手动的依赖查找方式,通常需要依赖容器或标准API实现。而依赖注入则是手动或自动依赖绑定的方

2020-06-06 14:40:35

SpringBoot自定义事件发布

1、自定义事件Spring中自定义事件需要继承ApplicationEvent/** * 自定义事件,继承ApplicationEvent */@Datapublic class MailSendEvent extends ApplicationEvent { private String to; private String message; public MailSendEvent(Object source, String to, String message)

2020-05-17 09:55:24

Java中集合相关知识点复习

一、List1、ArrayListArrayList是一种变长的集合类,基于定长数组实现,使用默认构造方法初始化出来的容量是10(1.7之后都是延迟初始化,即第一次调用add方法添加元素的时候才将elementData容量初始化为10)ArrayList允许空值和重复元素,当往ArrayList中添加的元素数量大于其底层数组容量时,其会通过扩容机制重新生成一个更大的数组。ArrayList...

2020-05-03 09:18:58

查看更多

勋章 我的勋章
  • 领英
    领英
    绑定领英第三方账户获取
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 脉脉勋章
    脉脉勋章
    绑定脉脉第三方账户获得
  • 签到王者
    签到王者
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 技术圈认证
    技术圈认证
    用户完成年度认证,即可获得
  • 新人勋章
    新人勋章
    用户发布第一条blink获赞超过3个即可获得
  • 阅读者勋章Lv3
    阅读者勋章Lv3
    授予在CSDN APP累计阅读博文达到30天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 学习力
    学习力
    《原力计划【第二季】》第一期主题勋章 ,第一期活动已经结束啦,小伙伴们可以去参加第二期打卡挑战活动获取更多勋章哦。