Java基础回顾系列-高级编程之API类库Java基础类库StringBufferStringBuilderStringCharSequence接口AutoCloseable接口RuntimeSystemCleaner对象克隆数字操作类Math数学计算类Random随机数生成类BigInteger/BigDecimal大数字操作类日期操作类DateSimpleDateFormat正则表达式类Pattern正则表达式编译Matcher匹配示例国际化程序实现LocaleResourceBundle获取资源文件开发支持类库ArraysUUIDOptional 空指针异常处理ThreadLocal定时调度...
函数式接口和作用 所谓的函数式接口,当然首先是一个接口,然后就是在这个接口里面只能有一个抽象方法。 这种类型的接口也称为SAM接口,即Single Abstract Method interfaces。 它们主要用在Lambda表达式和方法引用(实际上也可认为是Lambda表达式)上。 如定义了一个函数式接口如下:@FunctionalInterfaceinterface GreetingService {void sayMessage(String message);} 那么就可以使用Lambda表达式来表示该接口的一个实现(注:JA...
原文链接 Java NIO的通道类似流,但又有些不同:既可以从通道中读取数据,又可以写数据到通道。但流的读写通常是单向的。 通道可以异步地读写。 通道中的数据总是要先读到一个Buffer,或者总是要从一个Buffer中写入。正如上面所说,从通道读取数据到缓冲区,从缓冲区写入数据到通道。如下图所示:Channel的实现 这些是Java NIO中最重要的通道的实现:FileChannel DatagramChannel SocketChannel ServersocketChannelFileChannel 从...
以脑图的形式来展示Java集合知识,让零碎知识点形成体系 Iterator 对比 ??Iterator(迭代器)是一种设计模式,是一个对象,用于遍历集合中的所有元素。??Iterator 包含四个方法,分别是:next()、hasNext()、remove()、forEachRemaining(Consumer<? super E> action) ??Collection 接口继承 java.lang.Iterable,因此所有 Collection 实现类都拥有 Iterator 迭代能力。??逆向思考,Iterable 面向众多的 Collection 类型实现类,定义...
---恢复内容开始--- 集合当中有很多都是应用到泛型的技术,所以在讲集合之前,应该先将泛型的概念普及一下。 泛型: (1)泛型是一种类型,但是这种类型是在编译或者调用方法时才确定。 (2)格式: <数据类型> 如:Collection<E>这里的E指的是任意类型,可以理解为Object类型,因为Object是所有类的根类 (3)好处: A:把运行期间的转换异常给提前到了编译期间 B:优化了程序设计,不需要强制类型转换 ...
由并发大师Doug Lea操刀的并发包Concurrent是并发编程的重要包,而并发包的基石又是volatile关键字、synchronized关键字、乐观锁CAS操作这些基础。因此了解他们的原理对我们理解并发大有裨益。(我对他们的理解基本凝聚在思维导图里了,由于找工作时间紧迫、暂不细讲) 除了参考并发编程的艺术艺术外还参考了以下文章: https://blog.csdn.net/chen77716/article/details/6618779 深入JVM锁机制1-synchronized https://www.jians...
示意图: 代码://包装类 8种基本数据类型对应着一个类,此类即为包装类 public class TestWrapper {//基本数据类型、包装类与String类之间的转换@Testpublic void test2() {//基本数据类型、包装类 -----> String类:调用String类的静态的重载的valueOf(Xxx x)方法int i1 = 10;String str1 = i1 + ""; //"10"String str2 = String.valueOf(i1);String str3 = String.valueOf(true);System.out.println(str3);//String类 ----> ...
Java Lock类提供了语言级别的Synchronized,Lock与Condition配合与Synchronized配合object一样实现了等待/通知机制。但它提供了更高的灵活性,有:1尝试非阻塞地获取锁 2获取锁时能响应中断 3超时获取锁。 正文 讲Lock之前,必须先讲讲Java的线程状态以及Synchronized和object如何实现的等待通知机制。 Java线程状态 Java线程状态有以下6种: 1、NEW 初始状态(还没调用start) 2、RUNNABLE 运行状态 3、BLOCKED 阻塞状态 4、WA...
RxJava源码阅读理解系列(四)操作符buffermapflatMap 操作符 RxJava中的操作符超级多,打开官方文档可以看到如下的说明这其中Transformation转换操作符是最值得分析的,接下来我们就来探究转换操作符的奥秘吧。 buffer如图所示,buffer的作用是定期将可观察到的项收集到包中,并将这些包发出,而不是一次一个地发出这些项,我们再来看下基本用法: Observable.range(0, 10).buffer(4).subscribe((List<Integer> buffer) -> System...
上一篇文章 .net基础学java系列(三)徘徊反思本章节没啥营养,请绕路!看视频,不实操,对于上了年龄的人来说,是记不住的!我已经看了几遍IDEA的教学视频:https://edu.51cto.com/course/15850.html,此视频分如下13节!1-1 Idea介绍(刷过去,不看了)1-2 Idea安装(刷过去,不看了,官网介绍的使用ToolBox安装,更好!)1-3 idea创建普通Java工程(好吧,这里就跟.net的控制台应用程序一样嘛!)1-4 idea设置样式(一个一个设置...
抽象类 (1)如果多个类中存在相同的方法声明,而方法体不一样,我们就可以只提取方法声明。 如果一个方法只有方法声明,没有方法体,那么这个方法必须用抽象修饰。 而一个类中如果有抽象方法,这个类必须定义为抽象类。 (2)抽象类的特点 A:抽象类和抽象方法必须使用abstract修饰 B:抽象类不能被实例化 C:抽象类有构造方法,用于子类实例化使用 D:如果一个类是抽...
创建线程 Java 中有以下三种方式创建线程,其中前两种无法获取返回值,而最后一种可以获取返回值。实现 Runnable 接口 继承 Thread 类 通过 Callable、Future 接口配合实现 Runnable 接口 可以声明一个类实现 Runnable 接口,接着在重写的 run() 方法中编写线程中执行的代码。 class RunnableThread implements Runnable {@Overridepublic void run() {// ...} } 接着实例化该类,并作为 Thread 类的构造器参数传入。 Thread runna...
面试系列之-----Java基础面试题:该面试题主要是牛客网上的面试题及自己平常面试遇到的面试问题,会不定期更新,欢迎关注。1、请说明一下JAVA抽象类和接口的区别。 含有abstract修饰符的类即为抽象类,abstract类不能创建实例对象,含有abstract方法的类必须定义为abstract class,abstract class类中的方法不必是抽象的。abstract class类中的定义抽象方法必须在具体子类中实现,所以,不能有抽象构造方法或者抽象静态方法。如果子...
一、安装JDK java的sdk简称JDK ,去其官方网站下载最近的JDK即可。 http://www.oracle.com/technetwork/java/javase/downloads/jdk9-downloads-3848520.html二、配置环境变量 JAVA_HOME 配置JDK安装路径 PATH 配置JDK命令文件的位置 CLASSPATH 配置类库文件的位置 1、我的电脑(右键)-->属性-->高级系统设置2、环境变量-->新建(1)新建->变量名"JAVA_HOME",变量值"C:\Java\jdk1.8.0_144"(即JDK的安装路径) (2)编辑->变量名"Path...
概要 前面,我们已经学习了ArrayList。接下来,我们以ArrayList为例,对Iterator的fail-fast机制进行了解。内容包括::1 fail-fast简介2 fail-fast示例3 fail-fast解决办法4?fail-fast原理5 解决fail-fast的原理 转载请注明出处:http://www.cnblogs.com/skywang12345/p/3308762.html 1 fail-fast简介 fail-fast 机制是java集合(Collection)中的一种错误机制。当多个线程对同一个集合的内容进行操作时,就可能会产生fail-fast事...