
【Java SE】
文章平均质量分 92
冰河winner
个人邮箱:496221132@qq.com
展开
-
集合框架之Map接口
将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。Map 接口提供三种collection视图,允许以键集、值集或键-值映射关系集的形式查看某个映射的内容。映射顺序定义为迭代器在映射的 collection 视图上返回其元素的顺序。某些映射实现可明确保证其顺序,如 TreeMap 类;另一些映射实现则不保证顺序,如 HashMap 类。所有通用的映射实现类应该提供两原创 2015-01-31 11:40:03 · 1871 阅读 · 0 评论 -
自定义Java注解的方式与应用
鉴于优快云对**版权保护的不作为**以及落后的运营手段,本博客将于近期关闭,并清空全部文章。原有文章将会经过再次的校对、整理,转移至本人在**简书**的[博客空间](https://www.jianshu.com/u/3ec23ef9a408)。...原创 2016-09-16 09:33:33 · 4280 阅读 · 0 评论 -
重温java基础
Java,编译型语言,解释型语言?计算机不能直接理解高级语言,只能直接理解机器语言,所以必须要把高级语言翻译成机器语言,计算机才能执行高级语言编写的程序。把高级语言翻译成机器语言的两种方式:一种是编译,一种是解释。编译型语言编译型语言执行之前,需要一个专门的编译过程,把程序编译成为机器语言的文件,比如exe文件,以后要运行的话就不用重新翻译了,直接使用编译的结...原创 2015-08-27 11:26:10 · 5565 阅读 · 18 评论 -
Java 7语法新特性
鉴于优快云对**版权保护的不作为**以及落后的运营手段,本博客将于近期关闭,并清空全部文章。原有文章将会经过再次的校对、整理,转移至本人在**简书**的[博客空间](https://www.jianshu.com/u/3ec23ef9a408)。...原创 2017-05-16 11:02:40 · 1373 阅读 · 1 评论 -
NIO.2之基础篇
文件系统综述一个文件系统在某种媒介(通常是一个或多个硬盘)上存储和组织文件。如今的大多数文件系统都是以树状结构来存储文件。在树的顶端是一个或多个根节点,在根节点一下,是文件和目录(在Windows系统里时文件夹)。每个目录可以包含文件或者子目录。下面这张图表示一个仅包含一个根节点的树形结构。Windows系统支持多个根节点。文件系统以根节点起始的路径来识别一个文件,例如,上原创 2014-12-04 11:31:12 · 2495 阅读 · 0 评论 -
多线程之高级篇
鉴于优快云对**版权保护的不作为**以及落后的运营手段,本博客将于近期关闭,并清空全部文章。原有文章将会经过再次的校对、整理,转移至本人在**简书**的[博客空间](https://www.jianshu.com/u/3ec23ef9a408)。...原创 2015-06-16 08:35:50 · 5739 阅读 · 0 评论 -
多线程之基础篇
相关概念进程是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,一个进程中可以启动多个线程。一个进程是一个独立的运行环境,它可以被看作一个程序或者一个应用。而线程是在进程中执行的一个任务。Java运行环境是一个包含了不同的类和程序的单一进程。线程可以被称为轻量级进程。线程需要较少的资源来创建和驻留在进程中,并且可以共享进程中的资源。多线程程序中,多个线程被并发的执行以提...原创 2015-06-14 23:10:14 · 2649 阅读 · 1 评论 -
NIO.2之高级篇
Java NIO和IO之间第一个最大的区别是,IO是面向流的,NIO是面向缓冲区的。 Java IO面向流意味着每次从流中读一个或多个字节,直至读取所有字节,它们没有被缓存在任何地方。此外,它不能前后移动流中的数据。如果需要前后移动从流中读取的数据,需要先将它缓存到一个缓冲区。Java NIO的缓冲导向方法略有不同。数据读取到一个它稍后处理的缓冲区,需要时可在缓冲区中前后移动。这就增加了处...原创 2015-05-27 08:48:37 · 3251 阅读 · 2 评论 -
AQS深度剖析
鉴于优快云对**版权保护的不作为**以及落后的运营手段,本博客将于近期关闭,并清空全部文章。原有文章将会经过再次的校对、整理,转移至本人在**简书**的[博客空间](https://www.jianshu.com/u/3ec23ef9a408)。...原创 2017-07-11 15:36:33 · 5298 阅读 · 3 评论 -
Fork/Join框架
鉴于优快云对**版权保护的不作为**以及落后的运营手段,本博客将于近期关闭,并清空全部文章。原有文章将会经过再次的校对、整理,转移至本人在**简书**的[博客空间](https://www.jianshu.com/u/3ec23ef9a408)。...原创 2017-06-24 15:15:16 · 982 阅读 · 0 评论 -
Spring AOP & AspectJ之基础应用
鉴于优快云对**版权保护的不作为**以及落后的运营手段,本博客将于近期关闭,并清空全部文章。原有文章将会经过再次的校对、整理,转移至本人在**简书**的[博客空间](https://www.jianshu.com/u/3ec23ef9a408)。...原创 2017-12-09 00:09:47 · 823 阅读 · 0 评论 -
Spring AOP & AspectJ之原理探析
鉴于优快云对**版权保护的不作为**以及落后的运营手段,本博客将于近期关闭,并清空全部文章。原有文章将会经过再次的校对、整理,转移至本人在**简书**的[博客空间](https://www.jianshu.com/u/3ec23ef9a408)。...原创 2017-12-09 00:54:36 · 2228 阅读 · 1 评论 -
CountDownLatch、CyclicBarrier & Semaphore
鉴于优快云对**版权保护的不作为**以及落后的运营手段,本博客将于近期关闭,并清空全部文章。原有文章将会经过再次的校对、整理,转移至本人在**简书**的[博客空间](https://www.jianshu.com/u/3ec23ef9a408)。...原创 2017-06-28 23:17:08 · 912 阅读 · 0 评论 -
Java 8 之基础篇
1. lambda表达式从java8出现以来lambda,也可称为闭包(closure),是最重要的特性之一,它可以让我们用简洁流畅的代码完成一个功能。 很长一段时间java被吐槽是冗余和缺乏函数式编程能力的语言,随着函数式编程的流行java8种也引入了这种编程风格。1.1 什么是Lambda?Lambda表达式是一段可以传递的代码,它的核心思想是将面向对象中的传递数据变成传递行为。 我们回...原创 2018-10-28 21:12:51 · 673 阅读 · 0 评论 -
Java 8 之实战篇
FunctionJDK 1.8 API包含了很多内建的函数式接口,在老Java中常用到的比如Comparator或者Runnable接口,这些接口都增加了@FunctionalInterface注解以便能用在lambda上。在Java8中java.util.function包下的Function, Supplier, Consumer, Predicate和其他函数式接口广泛用在支持Lambda...原创 2018-10-30 16:57:22 · 683 阅读 · 0 评论 -
Java 8 之原理篇
1. Lambda实现原理1.1 实例解析先从一个例子开始public class LambdaTest { public static void print(String name, Print print){ print.print(name); } public static void main(String [] args) { String name = "C...原创 2018-11-12 02:09:44 · 1172 阅读 · 0 评论 -
偏向锁、轻量级锁及重量级锁
1. 重量级锁内置锁是JVM提供的最便捷的线程同步工具,利用synchronized关键字来修饰同步代码块,我们称这种锁为java的内置锁(intrinsic lock)或者监视器锁(monitor lock)。1.1 监视器模型首先要明确的一点是监视器模型不是Java特有的,它是操作系统层次的概念,是为了实现线程同步而采取的技术手段,任何编程语言的并发设计中都可以出现这个概念。JVM会为...原创 2018-12-14 15:59:10 · 1593 阅读 · 0 评论 -
java泛型详解
鉴于优快云对**版权保护的不作为**以及落后的运营手段,本博客将于近期关闭,并清空全部文章。原有文章将会经过再次的校对、整理,转移至本人在**简书**的[博客空间](https://www.jianshu.com/u/3ec23ef9a408)。...原创 2015-08-04 09:04:54 · 10430 阅读 · 8 评论 -
java异常拾遗
概述当方法内部发生一项错误时,该方法会创建一个对象传递给运行时系统(runtime system),这个对象被称为异常对象,包含错误的类型、发生位置,程序状态等一系列信息。当一个方法抛出异常时,运行时系统会沿着调用栈(call stack)寻找该异常的处理方式 。下图中,调用栈下面的方法调用了上面的方法,层层嵌套,一共四层:调用第三个方法时抛出了一个异常,运行时系统就会...原创 2015-08-18 08:33:36 · 2313 阅读 · 1 评论 -
文件操作(File类等)API摘要
Console此类包含多个方法,可访问与当前 Java 虚拟机关联的基于字符的控制台设备(如果有)。 虚拟机是否具有控制台取决于底层平台,还取决于调用虚拟机的方式。如果虚拟机从一个交互式命令行开始启动,且没有重定向标准输入和输出流,那么其控制台将存在,并且通常连接到键盘并从虚拟机启动的地方显示。如果虚拟机是自动启动的(例如,由后台作业调度程序启动),那么它通常没有控制台。如果此虚拟机具原创 2014-12-05 08:38:33 · 2041 阅读 · 0 评论 -
正则表达式
1、句点符号假设在玩英文拼字游戏,想要找出三个字母的单词,而且这些单词必须以“t”字母开头,以“n”字母结束。要构造出这个正则表达式,可以使用一个通配符——句点符号“.”。这样,完整的表达式就是“t.n”,它匹配“tan”、“ten”、“tin”和“ton”,还匹配“t#n”、“tpn”甚至“t n”,还有其他许多无意义的组合。这是因为句点符号匹配所有字符,包括空格、Tab字符甚至换行符。...原创 2015-05-29 09:03:55 · 2859 阅读 · 4 评论 -
String、StringBuffer、StringBuilder对比
1、String用于存放字符的数组被声明为final的,因此只能赋值一次,不可再更改。这就导致每次对String的操作都会生成新的String对象,不仅效率低下,而且大量浪费有限的内存空间。String a ="a"; //假设a指向地址0x0001a ="b";//重新赋值后a指向地址0x0002,但0x0001地址中保存的"a"依旧存在,但已经不再是a所指向的,a 已经指向了其它...原创 2015-05-26 08:44:19 · 1987 阅读 · 3 评论 -
集合框架之Collections静态工具类
Collections类提供了一些列静态的方法,用以更方便地操作集合类排序机制一个List可以通过下面的方法进行排序:Collections.sort(list);如果List包含的是字符串,将会按照字母表排序;如果List包含的是Date类型数据,会按照日期先后排序……这是怎么实现的呢?String和Date都实现了comparable接口,此接口强行对实现它的每个类的对象进行整原创 2015-02-01 10:33:56 · 2259 阅读 · 0 评论 -
集合框架之集合类概述
集合是一组复合元素的容器,用来存储,检索,控制聚合数据并提供它们之间的通信方法java的集合框架提供了表示和操控集合的统一架构。所有的集合框架都包含下面三个方面:接口:即集合的抽象数据结构。接口允许我们独立地操纵集合而不用考虑集合的具体实现实现:即接口的具体实现类。从本质上来讲,它们是可重用的数据结构算法:即在实现了集合接口的对象上执行有用的计算,比如排序和搜索,的方法。算法是多态原创 2015-01-25 08:38:53 · 2468 阅读 · 0 评论 -
集合框架之Collection接口
Collection 层次结构中的根接口。Collection表示一组对象,这些对象也称为 collection 的元素。一些 collection 允许有重复的元素,而另一些则不允许。一些 collection 是有序的,而另一些则是无序的。JDK 不提供此接口的任何直接实现:它提供更具体的子接口(如 Set 和 List)实现。此接口通常用来传递 collection,并在需要最大普遍性的地方原创 2015-01-26 09:09:07 · 1620 阅读 · 0 评论 -
I/O操作之文件压缩与解压
与文件压缩与解压相关的类在java.util.zip包下 //文件压缩import java.io.File;import java.io.FileInputStream;importjava.io.FileOutputStream;importjava.io.IOException;importjava.io.InputStream;importjava.util原创 2014-11-19 16:37:47 · 1319 阅读 · 0 评论 -
集合框架之Set接口
一个不包含重复元素的 collection。更确切地讲,set 不包含满足e1.equals(e2) 的元素对 e1 和 e2,并且最多包含一个 null 元素。在所有构造方法以及 add、equals 和 hashCode 方法的协定上,Set 接口还加入了其他规定,这些规定超出了从 Collection 接口所继承的内容。Set不能包含重复的元素,它的所有方法都是从Collection原创 2015-01-27 08:35:02 · 1502 阅读 · 2 评论 -
I/O操作之概述与导读
I/O流可以表示很多不同种类的输入源和输出目的地,包括简单的字节流,基本数据(int、boolean、double等),本地化的字符,以及对象。一些流只是简单地传递数据,还有一些流可以操作和转换数据无论这些流最终是怎么工作的,它们都给程序提供了相同的简单模型:一个流就是一组数据序列。程序使用一个输入流从一个数据源读取数据,一次读取一个单元(单元的划分依赖于流的实现类)类似的,程原创 2014-11-19 16:19:52 · 1474 阅读 · 0 评论 -
集合框架之List接口
有序的 collection(也称为序列)。此接口的用户可以对列表中每个元素的插入位置进行精确地控制。用户可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素。与 set 不同,列表通常允许重复的元素。更确切地讲,列表通常允许满足 e1.equals(e2) 的元素对 e1 和 e2,并且如果列表本身允许null 元素的话,通常它们允许多个 null 元素。List接口中的原创 2015-01-28 08:29:41 · 1613 阅读 · 1 评论 -
集合框架之Queue接口
在处理元素前用于保存元素的collection。除了基本的 Collection 操作外,队列还提供其他的插入、提取和检查操作。每个方法都存在两种形式:一种抛出异常(操作失败时),另一种返回一个特殊值(null 或 false,具体取决于操作)。插入操作的后一种形式是用于专门为有容量限制的 Queue 实现设计的;在大多数实现中,插入操作不会失败。操作抛出异常原创 2015-01-29 08:34:32 · 2880 阅读 · 0 评论 -
static修饰符详解
static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念。被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被类的所有实例共享。只要这个类被加载,Java虚拟机就能根据类名在运行时数据区的方法区内定找到他们。因此,static对象可以在它的任何对象创建之前访问,...原创 2015-05-26 08:41:03 · 8348 阅读 · 1 评论 -
ThreadLocal深入剖析
JDK 1.2的版本中就提供java.lang.ThreadLocal,ThreadLocal为解决多线程程序的并发问题提供了一种新的思路。使用这个工具类可以很简洁地编写出优美的多线程程序,ThreadLocal并不是一个Thread,而是Thread的局部变量。线程局部变量高效地为每个使用它的线程提供单独的线程局部变量值的副本。每个线程只能看到与自己相联系的值,而不知道别的线程可能正...原创 2015-10-11 08:02:33 · 2048 阅读 · 0 评论 -
Reference深度剖析
1、引用级别在JVM中,垃圾回收器一直在背后默默地承担着内存回收的工作,我们不需要像使用C语音开发那样小心翼翼地管理内存。但是凡事皆有两面性,这种机制的好处是极大地释放了程序员无处安放的焦虑,坏处是难以对回收过程进行更灵活地干预。为了增加对垃圾回收的力度把控,Java引入了引用级别的概念。在JDK 1.2以前的版本中,只有在对象没有任何其他对象引用它时,垃圾回收器才会对它进行收集。对象只有被...原创 2019-04-15 15:36:44 · 899 阅读 · 5 评论