![](https://img-blog.csdnimg.cn/202003072034482.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java技术
文章平均质量分 51
1、用于分享自己日常学习的技术。
2、为自己的学习留下足迹。
轻狂书生FS
一个对技术有追求的轻狂书生
一个现实的理想主义者。
写博客目标:催促自己不断学习,记录自己学习的路程。
展开
-
工作流框架研究
工作流是对工作流程及其各操作步骤之间业务规则的抽象、概括描述。工作流建模,即将工作流程中的工作如前后组织在一起的逻辑和规则,在计算机中以恰当的模型表逢并对其实施计算。工作流要解决的主要问题是: 为实现某个业务目标,利用计算机在多个参与者之间按某种预定规则自动传递文档、信息或者任务。原创 2023-04-30 08:00:00 · 803 阅读 · 0 评论 -
关于MySQL你不知道的那些事之MySQL默认搜索引擎
Mysql默认搜索引擎Mysql5.5以后默认使用InnoDB为搜索引擎MyISAM是表锁,不支持事务和主外键[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SjkqeO8Y-1605001228437)(images/image-20200404084731063.png)]InnoDB默认可以创建16个索引硬盘[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rTU4geUP-1605001228440)(images/image-2原创 2020-11-11 17:39:27 · 2417 阅读 · 0 评论 -
关于Java你不知道的那些事之代码块
代码块前言代码一代码二代码三代码四总结前言普通代码块:在方法或语句中出现的{},就被称为代码块静态代码块:静态代码块有且仅加载一次,也就是在这个类被加载至内存的时候普通代码块和一般语句执行顺序由他们在代码中出现的次序决定,先出现先执行代码一/** * 代码块 * 普通代码块:在方法或语句中出现的{},就被称为代码块 * 普通代码块和一般语句执行顺序由他们在代码中出现的次序决定,先出现先执行 * * @author: 轻狂书生FS * @create: 2020-10-03-9:51原创 2020-11-04 08:39:22 · 1751 阅读 · 1 评论 -
集群高并发情况下如何保证分布式唯一全局Id生成
集群高并发情况下如何保证分布式唯一全局Id生成问题为什么需要分布式全局唯一ID以及分布式ID的业务需求ID生成规则部分硬性要求ID号生成系统的可用性要求一般通用解决方案UUID存在问题数据库自增主键单机集群分布式集群基于Redis生成全局ID策略单机版集群分布式雪花算法是什么结构第一部分第二部分第三部分第四部分SnowFlake可以保证实现工程落地经验hutools工具包SpringBoot整合雪花算法优缺点优点缺点其它补充问题为什么需要分布式全局唯一ID以及分布式ID的业务需求在复杂分布式系统中,往原创 2020-10-30 13:50:02 · 2956 阅读 · 4 评论 -
关于Java你不知道的那些事之Spring源码讲解
Spring源码讲解前言谈谈你对Spring的理解Spring上下文Spring初始化SpringBean的生命周期普通类的实例化Spring Bean实例化过程前言Spring源码方面的知识Spring bean的生命周期Spring 工厂,Spring容器,上下文Spring BeanPostprocessorSpring 和 主流框架的源码Spring BeanFactory 和 FactoryBean的区别谈谈你对Spring的理解IOC、AOP只是作为Spring Fra原创 2020-10-28 16:00:27 · 1877 阅读 · 0 评论 -
关于Java你不知道的那些事之Java8新特性[Optional类]
Java8新特性[Optional类]前言常用方法总结前言Optional类是一个容器类,代表一个值存在或者不存在,原来null表示一个值不存在,现在Optional可以更好的表达这个概念,并且可以规避空指针异常常用方法Optional.of:创建一个Optional实例Optional.empty:创建一个空的Optional实例Optional.ofNullable:若t不为null,创建optional实例,否者创建一个空实例isPresent:判断是否包含值orE原创 2020-10-28 15:07:23 · 1667 阅读 · 2 评论 -
关于Java你不知道的那些事之Java8新特性[并行流与顺序流]
Java8新特性[并行流与顺序流]前言并行流Fork/Join框架概念采用 工作窃取 模式总结前言这篇博文我们讲并行流和顺序流,感兴趣的同学可以了解一下。并行流并行流就是把一个内容分成多个数据库,并用不同的线程分别处理每个数据块的流Java8中将并行流进行了优化,我们可以很容易的对数据进行并行操作,Stream API可以声明性的通过parallel() 与 sequential() 在并行流与顺序流之间进行切换Fork/Join框架概念Fork/Join框架:就是在必要的情况下,将一个原创 2020-10-26 19:16:08 · 1770 阅读 · 1 评论 -
关于Java你不知道的那些事之Java8新特性[Stream API]
Java8新特性[Stream API]前言区别什么是StreamStream操作的三部曲创建流中间操作终止操作Stream流的操作筛选与切片映射排序终止操作规约收集总结前言了解StreamJava8中有两个比较大的改变Lambda表达式Stream API (java.util.stream.*)Stream是Java8中处理集合的关键抽象概念,它可以指定你希望对集合进行的操作,可以执行非常复杂的查找,过滤和映射数据等操作。使用Stream API对集合数据进行操作,就类似于使用SQL执原创 2020-10-23 08:49:31 · 1947 阅读 · 5 评论 -
关于Java你不知道的那些事之Java8新特性[方法引用与构造器引用]
方法引用与构造器引用前言方法引用概念格式注意对象::实例方法名类::静态方法名类::实例方法名构造器引用格式注意代码数组引用格式总结前言Java8里面方法应用和构造器引用的写法变得更加简单美观,但是带来的是可读性的下降,我个人认为目前对这方面的知识作为了解内容就可以了,知道有这么一种写法。在实际的工作中最重要的不是你用了对新的代码写法,而是要写别人看的懂的代码。因为在实际的开发的工作中大部分时间都是阅读别人的代码。方法引用概念若Lambda体中的内容有方法已经实现了,我们可以使用“方法引用”,原创 2020-10-20 09:27:00 · 1772 阅读 · 1 评论 -
关于Java你不知道的那些事之Java8新特性[Lambda表达式和函数式接口]
Java8新特性[Lambda表达式]前言实例代码策略设计模式匿名内部类Lambda表达式学习Lambda语法格式1、无参,无返回值2、有一个参数,有返回值3、有多个参数,一个返回值4、有多个参数,只有一条语句类型推断函数式接口场景训练Java内置函数接口Comsumer 消费型接口Supplier 供给型接口Function 函数型接口Predicate 断言型接口扩展总结前言为什么要用Lambda表达式?Lambda是一个匿名函数,我们可以把Lambda表达式理解为是一段可以传递的代码,将代码像原创 2020-10-19 11:23:59 · 5054 阅读 · 32 评论 -
关于Java你不知道的那些事之Java8新特性[HashMap优化]
Java8新特性[HashMap优化]前言其他主要新特性HashMap优化HashMap1.7HashMap1.7存在死链问题HashMap每次扩容为什么是2倍JDK1.8结构变化ConcurrentHashMap变化为何JDK8要放弃分段锁?内存结构优化总结前言本文开始重温Java8新特性之HashMap优化,后续还会重温其他主要新特性,敬请期待,点点关注不迷路哦!!其他主要新特性Lambda表达式函数式接口方法引用与构造器引用Stream API接口中默认方法与静态方法新时间日期原创 2020-10-16 12:13:28 · 3248 阅读 · 5 评论 -
关于Java你不知道的那些事之等等与equals的区别
等等与equals的区别前言代码一代码二总结前言我们都知道, == 是比较内存地址,equals是比较值但是这种非常错误的一种观点==:比较基本数据类型的时候,比较的是值,引用数据类型比较的是地址(new的对象,==比较永远是false)equals:属于Object类的方法,如果我们没有重写过equals方法,那么它就是 ==,但是字符串里面的equals被重写过了,比较的是值代码一/** * equals和等等的区别 * * @author:轻狂书生FS * @create:原创 2020-10-13 17:39:10 · 4703 阅读 · 12 评论 -
关于Java你不知道的那些事之Java注解和反射
Java注解和反射前言什么是注解内置注解元注解自定义注解反射机制动态语言与静态语言动态语言静态语言Java反射机制概述什么是反射反射的应用Java反射的优缺点反射相关的主要API理解Class类并获取Class实例Class类Class类常用的方法获取对象实例的方法哪些类型可以有Class对象Java内存分析类的加载与ClassLoader的理解类加载过程类加载步骤什么时候发生类初始化类的主动引用(一定发生初始化)类的被动引用(不会发生初始化)类加载器的作用获取运行时候类的完整结构双亲委派机制有了Class原创 2020-10-12 13:47:04 · 3712 阅读 · 12 评论 -
关于Java你不知道的那些事之Java NIO使用案例-NIO深入学习(Java程序员的必备技能)
Java NIO使用案例-NIO深入学习前言BIOBIO怎么改成非阻塞NIO总结前言本文是基于上一篇文章《关于Java你不知道的那些事之Java NIO(Java程序员的必备技能)》的基础上继续深入学习JavaNIO有关知识,如果没有看过上篇文章的同学可以先去看上篇文章,回来在看本篇文章。BIO概念在提到NIO之前,我们说先看看BIO,也就是Blocking IO,阻塞IO,我们首先实现一个最基本的网络通信。 /** * QQ客户端 * * @author: 轻狂书生FS *原创 2020-10-10 14:52:15 · 2428 阅读 · 8 评论 -
关于Java你不知道的那些事之Java NIO(Java程序员的必备技能)
Java NIO前言概念IO和NIO的区别通道和缓冲区缓冲区 Buffer缓冲区中的方法缓冲区中的核心属性相关操作直接缓冲区和非直接缓冲区通道 Channel概念相关实现类获取通道利用通道完成文件的复制分散读取与聚集写入字符集NIO的非阻塞式网络通信使用NIO完成网络通信的三个核心使用阻塞式IO完成网络通信使用非阻塞式IO完成网络通信使用非阻塞式IO制作聊天室管道(Pipe)总结前言现在使用NIO的场景越来越多,很多网上的技术框架或多或少的使用NIO技术,譬如Tomcat,Jetty。学习和掌握NIO原创 2020-10-09 09:39:12 · 2112 阅读 · 0 评论 -
2019年Java大厂面试题讲解(周阳) 之Github学习(自学路上助推器)
Github学习前言常用词含义in关键字限制搜索范围stars或fork数量关键字查找awesome加强搜索高亮显示某行代码项目内搜索搜索某个地区内的大佬搜索某个地区内的大佬总结前言使用Github(或者Gitee)优秀框架 + 源码 提升自己分享我常用的一个小技巧。用国内网拉Github上面的项目会很慢,我解决这个问题的小技巧是,把Github上面的项目拉到Gitee上面之后,再从Gitee上面拉项目会快不少。常用词含义watch:会持续收到该项目的动态fork:复制某个仓库到自己的Gi原创 2020-10-02 18:41:17 · 2604 阅读 · 2 评论 -
2019年Java大厂面试题讲解(周阳) 之乐观锁和悲观锁
乐观锁和悲观锁前言乐观锁概念乐观锁实现方式MybatisPlus使用乐观锁悲观锁总结前言本文主要学习了乐观锁和悲观锁的基本概念和使用。乐观锁概念乐观锁:顾名思义,就是十分乐观,它总是认为不会出现问题,无论干什么都不去上锁~,如果出现了问题,再次更新值测试,这里使用了version字段。也就是每次更新的时候同时维护一个version字段乐观锁实现方式取出记录时,获取当前的version更新时,带上这个version执行更新时,set version = newVersion wher原创 2020-10-06 13:38:38 · 2180 阅读 · 3 评论 -
2019年Java大厂面试题讲解(周阳) 之Linux诊断原因(面试加分项)
Linux诊断原因前言命令集合整机:top,查看整机系统新能CPU:vmstat内存:free硬盘:df网络IO:ifstat生产环境服务器变慢,诊断思路和性能评估总结前言在招聘Java开发工程师的时候,在招聘要求上的最后总会看到熟练使用Linux优先等字样。随着就业压力越来越大,对Java工程师的要求也相对的越来越高。会Linux操作可能成了我们程序员的必备技能。命令集合整机:top,查看整机系统新能使用top命令的话,重点关注的是 %CPU、%MEM 、load average 三个指标原创 2020-09-30 08:42:41 · 2054 阅读 · 0 评论 -
2019年Java大厂面试题讲解(周阳) 之JVM体系结构
JVM体系结构概览java gc 主要回收的是 方法区 和 堆中的内容类加载器类加载器是什么双亲委派机制Java类加载的沙箱安全机制常见的垃圾回收算法引用计数在双端循环,互相引用的时候,容易报错,目前很少使用这种方式了复制复制算法在年轻代的时候,进行使用,复制时候有交换优点:没有产生内存碎片标记清除先标记,后清除,缺点是会产生内存碎片,用于老年代多一些[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4GMI6Vru-160原创 2020-09-29 08:36:37 · 3387 阅读 · 0 评论 -
2019年Java大厂面试题讲解(周阳) 之垃圾收集器
垃圾收集器GC垃圾回收算法和垃圾收集器关系四种主要的垃圾收集器SerialParallelCMSG1垃圾收集器总结查看默认垃圾收集器默认垃圾收集器有哪些各垃圾收集器的使用范围部分参数说明Java中的Server和Client模式新生代下的垃圾收集器串行GC(Serial)并行GC(ParNew)并行回收GC(Parallel)/ (Parallel Scavenge)老年代下的垃圾收集器串行GC(Serial Old) / (Serial MSC)并行GC(Parallel Old)/ (Parallel原创 2020-09-27 09:04:35 · 2733 阅读 · 3 评论 -
2019年Java大厂面试题讲解(周阳) 之Java内存溢出OOM
Java内存溢出OOM经典错误架构StackoverFlowErrorOutOfMemoryErrorjava heap spaceGC overhead limit exceededDirect buffer memoryunable to create new native threadMetaspace元空间是什么代码经典错误JVM中常见的两个错误StackoverFlowError :栈溢出OutofMemoryError: java heap space:堆溢出除此之外,还有以下的错误原创 2020-09-25 09:57:28 · 2584 阅读 · 0 评论 -
2019年Java大厂面试题讲解(周阳) 之 Java中的强引用/软引用/弱引用/虚引用
Java中的引用前言整体架构强引用软引用弱引用软引用和弱引用的使用场景WeakHashMap是什么?虚引用概念场景引用队列 ReferenceQueueGCRoots和四大引用小总结前言在原来的时候,我们谈到一个类的实例化Person p = new Person()在等号的左边,就是一个对象的引用,存储在栈中而等号右边,就是实例化的对象,存储在堆中其实这样的一个引用关系,就被称为强引用整体架构强引用当内存不足的时候,JVM开始垃圾回收,对于强引用的对象,就算是出现了OOM也不会对该对原创 2020-09-23 09:51:28 · 2022 阅读 · 0 评论 -
2019年Java大厂面试题讲解(周阳) 之 JVM参数调优
JVM参数调优前言JVM参数类型查看运行的Java程序,JVM参数是否开启,具体值为多少?题外话(坑题)查看JVM默认参数工作中常用的JVM基本配置参数查看堆内存打印JVM默认参数生活常用调优参数GC垃圾收集Full GC垃圾回收-XX:SurvivorRatio-XX:NewRatio(了解)-XX:MaxTenuringThreshold前言你说你做过JVM调优和参数配置,请问如何盘点查看JVM系统默认值使用jps和jinfo进行查看-Xms:初始堆空间-Xmx:堆最大值-Xss:栈空间原创 2020-09-22 16:00:49 · 2273 阅读 · 0 评论 -
2019年Java大厂面试题讲解(周阳) 之什么是GC Roots?
JVM垃圾回收的时候如何确定垃圾?是否知道什么是GC Roots什么是垃圾如何判断一个对象是否可以被回收引用计数法枚举根节点做可达性分析一句话理解GC Roots那些对象可以当做GC Roots代码说明什么是垃圾简单来说就是内存中已经不再被使用的空间就是垃圾如何判断一个对象是否可以被回收引用计数法Java中,引用和对象是有关联的。如果要操作对象则必须用引用进行。因此,很显然一个简单的办法就是通过引用计数来判断一个对象是否可以回收。简单说,给对象中添加一个引用计数器每当有一个地方引用它,计数器值原创 2020-09-22 15:23:52 · 2526 阅读 · 3 评论 -
日志处理系统技术栈之Elasticsearch学习笔记
1、为什么学习Elasticsearch? 1、在海量的数据中执行搜索功能时,如果使用MySQL,效率太低 2、如果关键字输入不准确,一样可以搜索到想要的数据。 3、将搜索关键字,以红色的字体展示。2、Elasticsearch介绍 1、Java语言并且基于Lucene编写的搜索引擎框架 2、提供分布式的全文搜索功能 3、提供基于RESTFul风格的web接口 4、官方客户端也对多种语言都提供了相应的APILucene本身就是一...原创 2020-09-16 17:38:14 · 1998 阅读 · 0 评论 -
日志处理系统技术栈(Elastic Stack 也叫 ELK)之Elastic Stack入门介绍
写在前面的题外话本次系列博文为了给遇到日志处理问题的小伙伴一个解决的方法和思路。请记住,任何问题的解决方法和思路都不止一个,就拿日志处理这个技术栈来说,不止有ELK,还有Loki(大家可以了解一下,我现在还不熟悉就不多说了)。我希望小伙伴们能够从日志处理系统开发学习中能够得到两个启发:①、日志很重要。在我们日常开发工作当中,要多打日志,特别是一些关键性的操作是一定一定要打日志。原因很简单,日志是我们(运维人员和开发人员)排查问题的重要的手段;而且我们也可以通过日志反过来推理用户做了哪些操...原创 2020-09-04 16:26:47 · 1839 阅读 · 2 评论 -
[推荐]Quartz框架-系统学习定时任务最好的博客之一
Quartz框架(一)—Quartz的基本配置Quartz框架(二)—jobstore数据库表字段详解Quartz框架(三)—任务的并行/串行执行Quartz框架(四)—misfire处理机制Quartz框架(五)— 有状态的job和无状态jobQuartz框架(六)— Trigger状态转换Quartz框架(七)— Quartz集群原理Quartz框架(八)— Quartz实现异步通知Quartz框架(九)— 动态操作Quartz定时任务Quartz框架(十)监听...原创 2020-09-02 09:25:18 · 1726 阅读 · 0 评论 -
2020年Java面试题讲解之关于Spring/SpringMVC的几个基础问题
--为什么要使用Spring Spring提供IOC技术,容器会帮你管理依赖的对象,从而不需要自己创建和管理依赖对象了,更轻松的实现了程序的解耦 Spring提供了事务支持,使得事务操作变得更加方便。 Spring提供了面向切面编程,这样可以很方便的处理某一类的问题。 更方便的框架集成,Spring可以很方便的集成其他框架,比如Mybatis、Hibernate等--解释一下什么是AOP? AOP是面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一...原创 2020-07-22 09:29:12 · 1754 阅读 · 0 评论 -
2020年Java面试题讲解之关于Redis有关知识的15个
--Redis是什么?都有那些使用场景? Redis是一个使用C语言开发的高速缓存数据库。 Redis使用场景: 记录帖子点赞数、点击数、评论数; 缓存近期热贴 缓存文章详情信息 记录用户会话信息--Redis有哪些功能? 数据缓存功能 分布式锁的功能 支持数据持久化 支持事务 支持消息队列--Redis和memcache有什么区别? 存储方式不同:memcache把...原创 2020-07-20 17:39:38 · 1660 阅读 · 0 评论 -
2019年Java大厂面试题讲解(周阳) 之死锁编码及定位分析
死锁编码及定位分析概念产生死锁的原因死锁代码如何排查死锁概念死锁是指两个或多个以上的进程在执行过程中,因争夺资源而造成一种互相等待的现象,若无外力干涉那他们都将无法推进下去,如果资源充足,进程的资源请求都能够得到满足,死锁出现的可能性就很低,否则就会因争夺有限的资源而陷入死锁产生死锁的原因系统资源不足进程运行推进的顺序不对资源分配不当死锁代码我们创建了一个资源类,然后让两个线程分别持有自己的锁,同时在尝试获取别人的,就会出现死锁现象。/*** 死锁小Demo* 死锁是指两个或多个原创 2020-05-29 15:21:22 · 1847 阅读 · 1 评论 -
【个人总结】Spring框架整体认识总结
如果你使用了Spring框架很久依然不能整体性的了解Spring,那这篇文章对你很有用。我在学习Spring的时候都学过这些知识,但是当时没有太在意。最近在进行技术总结,我感觉对我很有帮助,希望对看到这篇博文的你有帮助,如果需要原始文件,请私聊我,有时间我会回复分享给你。原创 2020-05-15 11:40:04 · 1943 阅读 · 0 评论 -
2019年Java大厂面试题讲解(周阳) 之线程池(Java中有哪些方法获取多线程)
前言获取多线程的方法,我们都知道有三种,还有一种是实现Callable接口实现Runnable接口实现Callable接口实例化Thread类使用线程池获取Callable接口Callable接口,是一种让线程执行完成后,能够返回结果的在说到Callable接口的时候,我们不得不提到Runnable接口/** * 实现Runnable接口 */class MyThread implements Runnable { @Override public void r原创 2020-05-13 08:41:02 · 2296 阅读 · 0 评论 -
2019年Java大厂面试题讲解(周阳) 之阻塞队列
阻塞队列概念队列阻塞队列为什么要用?为什么需要BlockingQueue架构BlockingQueue核心方法抛出异常组布尔类型组阻塞队列组不见不散组SynchronousQueue阻塞队列的用处生产者消费者模式生成者和消费者3.0概念队列队列就可以想成是一个数组,从一头进入,一头出去,排队买饭阻塞队列BlockingQueue 阻塞队列,排队拥堵,首先它是一个队列,而一个阻塞队列在数据结构中所起的作用大致如下图所示:线程1往阻塞队列中添加元素,而线程2从阻塞队列中移除元素当阻塞队列是空时原创 2020-05-11 15:13:40 · 2152 阅读 · 0 评论 -
2019年Java大厂面试题讲解(周阳) 之CountDownLatch_CyclicBarrier_Semaphore
CountDownLatch概念让一些线程阻塞直到另一些线程完成一系列操作才被唤醒CountDownLatch主要有两个方法,当一个或多个线程调用await方法时,调用线程就会被阻塞。其它线程调用CountDown方法会将计数器减1(调用CountDown方法的线程不会被阻塞),当计数器的值变成零时,因调用await方法被阻塞的线程会被唤醒,继续执行场景现在有这样一个场景,假设一个自习室里有7个人,其中有一个是班长,班长的主要职责就是在其它6个同学走了后,关灯,锁教室门,然后走人,因此班长是需要最原创 2020-05-09 17:25:22 · 1995 阅读 · 1 评论 -
(小技巧)在IDEA里面添加快捷输入,提高开发效率
在IDEA里面添加快捷输入打开idea左上角File,点击Settings在搜索框中搜索live,选中Live Templates点击绿色加号打开idea左上角File,点击Settings在搜索框中搜索live,选中Live Templates点击绿色加号Templates Group:添加分组Live Templates:添加模板注:在这之前可以新建一...原创 2020-05-07 15:34:13 · 4827 阅读 · 0 评论 -
2019年Java大厂面试题讲解(周阳) 之Java 的锁
Java 的锁公平锁和非公平锁概念如何创建两者区别题外话可重入锁和递归锁ReentrantLock概念代码作用可重入锁验证证明ReentrantLock自旋锁概念优缺点手写自旋锁独占锁(写锁) / 共享锁(读锁) / 互斥锁概念为什么会有写锁和读锁代码实现解决方法公平锁和非公平锁概念公平锁是指多个线程按照申请锁的顺序来获取锁,类似于排队买饭,先来后到,先来先服务,就是公平的,也就是队列非...原创 2020-05-07 09:58:13 · 2080 阅读 · 0 评论 -
2019年Java大厂面试题讲解(周阳) 之值传递和引用传递
TransferValue是什么?值传递和引用传递changeValue1的执行过程changeValue2的执行过程changeValue3的执行过程值传递和引用传递/** * 值传递和引用传递 * @author: 轻狂书生 * @create: 2020-04-14-18:25 */class Person { private Integer id; priva...原创 2020-05-06 14:52:19 · 1867 阅读 · 0 评论 -
2019年Java大厂面试题讲解(周阳) 之Collection线程不安全的举例
Collection线程不安全的举例前言单线程环境下多线程环境解决方案方案一:Vector方案二:Collections.sychronized()方案三:采用JUC里面的方法HashSet线程不安全HashSet底层结构HashMap线程不安全解决方法前言1、当我们执行下面语句的时候,底层进行了什么操作new ArrayList<Integer>();底层创建了一个空的数组...原创 2020-04-29 08:57:05 · 1914 阅读 · 0 评论 -
2019年Java大厂面试题讲解(周阳) 之Volatile和JMM内存模型的可见性
Volatile和JMM内存模型的可见性谈谈对Volatile的理解JMM是什么JMM的特性可见性代码验证JUC(java.util.concurrent)进程和线程进程:后台运行的程序(我们打开的一个软件,就是进程)线程:轻量级的进程,并且一个进程包含多个线程(同在一个软件内,同时运行窗口,就是线程)并发和并行并发:同时访问某个东西,就是并发并行:一起做某些事情,就是...原创 2020-04-28 10:33:29 · 2351 阅读 · 3 评论 -
新技术 了解一下:Dataway让SpringBoot不在需要Controller、Service、DAO、Mapper了
Dataway介绍Dataway 是基于 DataQL 服务聚合能力,为应用提供的一个接口配置工具。使得使用者无需开发任何代码就配置一个满足需求的接口。整个接口配置、测试、冒烟、发布。一站式都通过 Dataway 提供的 UI 界面完成。UI 会以 Jar 包方式提供并集成到应用中并和应用共享同一个 http 端口,应用无需单独为 Dataway 开辟新的管理端口。这种内嵌集成方式模式的优点...原创 2020-04-28 10:32:13 · 4703 阅读 · 2 评论