![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java基础
文章平均质量分 93
风在哪
个人网站:https://www.wygandwdn.cn
欢迎来访问啊!
展开
-
一文带你了解Java8之Stream
Java8 Stream流式编程简介Java8中stream是用于对集合迭代器的增强,使之能供完成更高效的聚合操作(例如过滤、排序、统计分组等)或者大批量数据操作。此外,stream与lambda表达式结合后编码效率将会大大提高,并且可以提高可读性。首先来看一个简单的场景,准备工作如下,编写了一个person类:public class Person { /** * 姓 */ private String lastname; /** * 名原创 2021-06-21 10:20:17 · 2943 阅读 · 21 评论 -
深入理解ThreadPoolExecutor第二弹
从源头解析ThreadPoolExecutor第二弹—ThreadPoolExecutor的内部类ThreadPoolExecutor主要包括如下内部类:其中AbortPolicy、CallerRunsPolicy、DiscardOldestPolicy、DiscardPolicy表示任务的拒绝策略,当线程池的线程数量达到最大值并且阻塞队列已满时,根据这些不同的策略对新提交的任务进行不同的处理。它们都实现了RejectedExecutionHandler接口。而Worker代表我们执行的任务,我们提原创 2021-05-31 10:12:05 · 328 阅读 · 23 评论 -
Java之sleep和wait
Java之sleep和waitsleep和wait方法都是native关键字修饰的方法,这说明这两个方法是原生函数,也就是由C/C++实现的,那么我们就暂时不关心它的具体实现了。sleep方法是Thread类中的方法,而wait方法是Object中的方法,那么我们首先看看wait方法。Object#wait()从Object源码中,我们可以发现,wait有三个重载方法,分别是无参的wait方法,带有long和int类型参数的的wait方法,以及带有long类型参数的方法。其实前两个方法最终都是调用了原创 2021-05-18 13:09:56 · 5133 阅读 · 3 评论 -
浅析Java-SPI机制
Java SPI机制SPI全称为Service Provider Interface(服务提供接口),是JDK内置的一种服务发现机制,是一种将服务接口与具体实现分离以达到解耦,大大提升了程序可扩展性的机制,引入服务提供者就是引入了spi接口的实现者,通过本地的注册发现获取到具体的实现类。Java SPI实际上就是"基于接口的编程+策略模式+配置文件"组合实现的动态加载机制。系统设计之初为了各个功能模块之间解耦,一般都是基于接口编程,模块之间不对实现类进行硬编码,一旦代码涉及到具体实现类的耦合,就违反了原创 2021-05-16 21:26:43 · 374 阅读 · 0 评论 -
浅析ReentrantLock
浅析JUC-ReentrantLock首先,我们来看看ReentrantLock的继承关系(通过idea查看):从上面的类图中,我们可以发现,ReentrantLock实现了Lock接口,通过Lock接口实现了更多可扩展性的锁操作,它有更加灵活的结构,并且支持Condition锁。ReentrantLock的内部类FairSync和NonfairSync继承自另一个内部类Sync,而Sync继承自大名鼎鼎的AQS,站在巨人的肩膀上实现了这一系列的锁机制。Lock首先我们来看看Lock接口。/*原创 2021-05-10 08:52:51 · 334 阅读 · 4 评论 -
Java动态代理
Java动态代理代理模式我们生活中充满了代理的例子:例如房产中介,卖房者将房子委托给房产中介,买房者买房去房产中介而不是直接去寻找卖房者,这里面房产中介就是代理。再比如,现在都流行点外卖,在点外卖的场景中,商户将自己委托给外卖平台,而客户在这个外卖平台直接下单,省去了实地寻找商户的过程,这里外卖平台就是代理通过上述生活中的实际例子,相信我们都知道代理是什么了,代理模式是一种结构型设计模式,让你能够提供对象的替代品或其占位符,代理控制着对于原对象的访问,并允许在将请求提交给对象前后进行一些处理。原创 2021-04-18 11:20:15 · 225 阅读 · 0 评论 -
MyBatis原理初探
MyBatis原理初探SqlSessionFactoryBuilder对象每一个mybatis的应用程序都是SqlSessionFactoryBuilder,它是根据传入的对象创建SqlSessionFactory实例。在spring项目中,我们通常使用xml配置文件,通过xml文件创建Configuration对象,然后通过重载选取合适的build方法,进而创建SqlSessionFactory对象。此外,我们还可以通过Properties或者String对象创建SqlSessionFactory原创 2021-03-15 09:10:34 · 528 阅读 · 0 评论 -
2020 Windows10 Tomcat安装教程
1、下载Tomcat在安装Tomcat之前需要保证已经配置好了Java的环境,如果没有安装Java,请自行安装好Java后再阅读本教程Tomcat官网:http://tomcat.apache.org/根据自己的Java版本确定Tomcat安装的版本我这里安装的是9.0.38,我的是64位的Windows10,所以我这里选择了64位的zip免安装版,根据自己电脑的位数选择即可。zip是免安装版exe是安装版2、解压至安装目录我这里是在D盘建立了Tomcat的安装目录将之前下载的Tomc原创 2020-09-20 13:16:00 · 391 阅读 · 1 评论 -
Hadoop安装、伪分布式配置及运行Hadoop示例wordcount
本博客没有讲解Java的安装,如未安装Java请看这篇教程:https://blog.csdn.net/wyg1973017714/article/details/106474003本博客默认所有读者均已安装Java环境1、Hadoop下载下载Hadoop请前往官网官网地址:http://hadoop.apache.org/点击Download跳转至下载页面我这里选择的是3.3.0版本的Hadoop2、将Hadoop上传至服务器我这里使用的是阿里云服务器,使用xshell和xftp进行命原创 2020-09-14 16:01:34 · 525 阅读 · 0 评论 -
Java 如何创建数组?
数组数组是在程序设计中,为了方便处理,把具有相同类型的若干元素按有序的形式组织起来的一种形式。数组也就是有序排列的同类数据元素的集合数组是储存在堆上的对象,可以保存多个同类型变量1、一维数组以int类型数组为例:int[] a;int b[];以上两行代码是对数组的声明,但是并未对数组进行初始化,因此该数组还不可用,在实际运行过程中会报错。在实际编写代码过程中要对声明的数组进行...原创 2020-04-07 14:48:19 · 2300 阅读 · 0 评论 -
Java String、StringBuffer、StringBuilder(基于源码探索)
String、StringBuffer、StringBuilder1、StringString是Java类对象,Java通过String来创建和操作字符串。从源码中我们可以看出,String使用byte[]数组进行字符串的存储,且byte[]数组被final关键字修饰。我们知道当final修饰成员变量时,如果成员变量是基本数据类型的变量那么该变量一旦初始化以后就不可更改,源码中value数组...原创 2020-04-06 17:48:42 · 378 阅读 · 0 评论 -
Java int和Integer区别(基于Integer源码探索)
Java int和Integer区别1、Java int类型int是Java基础数据类型int数据类型是32位,有符号的以二进制补码表示的整数一般的整型变量默认为int类型int类型默认值为0int范围()2、Java Integer类型3、int和Integer比较...原创 2020-04-05 19:45:49 · 552 阅读 · 1 评论