
Javase
文章平均质量分 90
巧笑情兮_美目盼兮
这个作者很懒,什么都没留下…
展开
-
sleep、wait、yield、join方法总结
sleep()sleep方法可以让线程进入Watting状态,并且不占用CPU资源,但是不释放锁,直到规定时间后再执行,休眠期间如果被中断,会抛出异常并清除中断状态;1.演示进入synchronized方法不释放锁public class SleepDemo implements Runnable { @Override public void run() { sync(); } public synchronized void sync() {原创 2022-03-02 15:20:19 · 345 阅读 · 0 评论 -
了解NIO
NIO与IO的区别Java NIO(New IO或 Non Blocking IO)是从Java 1.4版本开始引入的一个新的IO API,可以替代标准的Java IO API。NIO支持面向缓冲区的、基于通道的IO操作。NIO将以更加高效的方式进行文件的读写操作。IONIO面向流编程(Stream Oriented)面向缓冲区编程(Buffer Oriented)...转载 2019-04-16 11:06:34 · 314 阅读 · 0 评论 -
Integer类型与int的==比较
Java的数据类型基本数据类型:基本数据类类型存的是数值本身引用数据类型:引用类型变量在内存放的是数据的引用基本类型通过==比较的是他们的值大小,而引用类型比较的是他们的引用地址在一些特殊的类中,如Integer在使用==比较的时候往往非常容易出错,下面通过几个例子来探索一下具体的原理:public class Test03 { public static void mai...转载 2019-03-13 00:00:19 · 370 阅读 · 0 评论 -
Java之线程池
Java线程池java线程的创建、销毁和线程减切换是一件比较耗费计算机资源的事。如果我们需要用多线程处理任务,并频繁的创建、销毁线程会造成计算机资源的无端浪费,因此出现了线程池技术。在《java并发编程的艺术》一书中,作者总结了三条使用线程池的好处:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。提高响应速度。当任务到达时,任务可以不需要的等到线程创建就能立即执行。提...转载 2019-03-10 00:22:56 · 225 阅读 · 0 评论 -
JDK8之Comparator
Comparator在Java8之前的版本我们应该也使用过关于Comparator吧!Comparator就是一个比较器,比较两个元素的大小。我们在对集合进行排序的时候,就需要一个比较器来对集合中的元素进行比较,才能进行排序。 * @since 1.2 */@FunctionalInterfacepublic interface Comparator<T> {}通过这段...原创 2018-12-25 13:31:09 · 2647 阅读 · 0 评论 -
JDK8之Collector
CollectorCollector是JDK8开始新增加进来的。关于Collector是什么?有什么用?接下来就是来对Collector的源码DOC进行解析:A mutable reduction operation that accumulates input elements into a mutable result container, optionally transforming...原创 2018-12-28 18:09:08 · 560 阅读 · 0 评论 -
JDK8之Stream(一)
Stream 流根据官方的说法是:流支持一系列元素的串行或者并行等聚合操作。流由三部分构成:1.源、2.零个或者多个中间操作、3.终止操作流操作的分类:1.惰性操作、2.及早求值;(对于流来说可以进行一系列链式操作,然而这系列中间链式操作,也就是惰性操作,只有遇到了终止操作也就是及早求值。)流实例的创建方式1.使用Stream中的静态方法 Stream<String> ...原创 2018-12-11 13:06:53 · 817 阅读 · 0 评论 -
Java8之方法引用
方法引用方法引用是lambda表达式的一种特殊形式,如果正好有某个方法满足一个lambda表达式的形式,那就可以将这个lambda表达式用方法引用的方式表示,但是如果这个lambda表达式的比较复杂就不能用方法引用进行替换。实际上方法引用是lambda表达式的一种语法糖。前面我们也说过关于函数式接口的实例方式有两种:1.lambda表达式。2.方法引用。方法引用分类:类名::静态方法名为...原创 2018-11-23 10:21:44 · 267 阅读 · 0 评论 -
JDK8之Optional
Optional 类通过源码可以发现Optional是一个没有子类的工具类,它的作用主要就是为了解决避免NPE(NullPointException异常)。关于Optional的用法和详细分析,下面就来一步一步的进行分析;public final class Optional&amp;lt;T&amp;gt; { private final T value; private Optional...原创 2018-11-17 16:37:12 · 737 阅读 · 0 评论 -
JDK8常见的函数式接口详解
Function函数式接口关于什么是Function,这里就不做介绍了。我们就需要知道Function是jdk8提供的一个默认接口。从Function名字,我们就可以看出来Function接口就是指的是一个函数接口。那么就可以映射到数学上面来说函数的解释:函数就是指给定一个参数返回一个结果(一对一,多对一的映射关系) 这里就给出Function的源码:@FunctionalInterface...原创 2018-11-17 16:33:47 · 1376 阅读 · 0 评论 -
Java泛型之通配符
这篇博文主要记录学习Java编程思想的一些心得和体会。在这篇文中可能会引用一些优秀博文的内容,我会在文章末尾注明引用博文的地址。通配符首先我们就给出一个程序作为入口:class Fruit{}class Apple extends Fruit{}class Jonathan extends Apple{}class Orange extends Fruit{}p...原创 2018-08-22 10:15:45 · 1063 阅读 · 0 评论 -
Java泛型之擦除
这篇博文主要记录学习Java编程思想的一些心得和体会。在这篇文中可能会引用一些优秀博文的内容,我会在文章末尾注明引用博文的地址。演示擦除的存在通过Java编程思想一书中的例子来对Java的泛型擦除做一个存在性的演示:public class ErasedTypeEquivalence{ public static void main(String[] args)...原创 2018-08-11 19:56:17 · 356 阅读 · 0 评论 -
Java中的抽象类和接口
一、抽象类在了解抽象类之前,先来了解一下抽象方法。抽象方法是一种特殊的方法:它只有声明,而没有具体的实现。抽象方法的声明格式为:abstract void fun();抽象方法必须用abstract关键字进行修饰。如果一个类含有抽象方法,则称这个类为抽象类,抽象类必须在类前用abstract关键字修饰。因为抽象类中含有无具体实现的方法,所以不能用抽象类创建对象。 在《JAVA...转载 2018-08-06 22:36:07 · 200 阅读 · 0 评论 -
StringWriter/PrintWriter在Java异常中的作用
在Java中,利用try..catch(..finally)语句可以捕获和处理异常,非常方便。catch块的常见异常处理方式是输出异常,例如把异常输出到日志文件。Exception类有一个printStackTrace()方法,它能够从发生异常的方法中输出堆栈信息,默认输出位置是System.err。但是,有时候我们要把堆栈信息输出到System.err之外的其他地方,例如在出现异常时把堆栈信...转载 2018-05-29 21:13:12 · 2174 阅读 · 0 评论 -
Java类库之线程
概念分析在对线程进行分析之前,我们先要了解几个概念:并行:指两个或者多个事件在同一时刻发生;并发:指连个或多个事件在同一时间段发生; 在操作系统中,在多道程序环境下,并发性是指在一段时间内宏观上有多个程序在同时运行,但是在单CPU中,每一时刻却只能有一道程序执行,故微观上这些程序只能分时的交替执行。进程:指一个内存中的应用程序,每个进程都有一块自己独立的内存空间,一个应用程序可...原创 2018-05-13 20:56:06 · 419 阅读 · 0 评论 -
Java加载资源文件以及对spring的父子容器简单的介绍
我们在项目中开发过程中经常遇到一个问题就是,该如何去加载资源文件。其实目前在项目中很多资源文件都不需要我们手工去编写代码来加载资源文件了,大部分都是框架已经给我们加载好,我们只需要去配置一下就可以了。今天,我就来总结一下如何从不需要要任何框架到使用框架的过程中加载资源文件的方法。 方式一:使用Java的字节码对象Class来加载资源文件这种方式是通过Class对象来获取资源文件路径:...原创 2018-05-09 20:23:10 · 412 阅读 · 0 评论