【Java学习之随堂笔记系列——day22】教程文章相关的互联网学习教程文章

Java NIO系列教程(二) Channel【代码】【图】

原文链接 Java NIO的通道类似流,但又有些不同:既可以从通道中读取数据,又可以写数据到通道。但流的读写通常是单向的。 通道可以异步地读写。 通道中的数据总是要先读到一个Buffer,或者总是要从一个Buffer中写入。正如上面所说,从通道读取数据到缓冲区,从缓冲区写入数据到通道。如下图所示:Channel的实现 这些是Java NIO中最重要的通道的实现:FileChannel DatagramChannel SocketChannel ServersocketChannelFileChannel 从...

Java 集合系列(四)—— ListIterator 源码分析【代码】

以脑图的形式来展示Java集合知识,让零碎知识点形成体系 Iterator 对比 ??Iterator(迭代器)是一种设计模式,是一个对象,用于遍历集合中的所有元素。??Iterator 包含四个方法,分别是:next()、hasNext()、remove()、forEachRemaining(Consumer<? super E> action) ??Collection 接口继承 java.lang.Iterable,因此所有 Collection 实现类都拥有 Iterator 迭代能力。??逆向思考,Iterable 面向众多的 Collection 类型实现类,定义...

Java基础系列--08_集合1【图】

---恢复内容开始--- 集合当中有很多都是应用到泛型的技术,所以在讲集合之前,应该先将泛型的概念普及一下。 泛型: (1)泛型是一种类型,但是这种类型是在编译或者调用方法时才确定。 (2)格式: <数据类型> 如:Collection<E>这里的E指的是任意类型,可以理解为Object类型,因为Object是所有类的根类 (3)好处: A:把运行期间的转换异常给提前到了编译期间 B:优化了程序设计,不需要强制类型转换 ...

并发系列2:Java并发的基石,volatile关键字、synchronized关键字、乐观锁CAS操作【图】

由并发大师Doug Lea操刀的并发包Concurrent是并发编程的重要包,而并发包的基石又是volatile关键字、synchronized关键字、乐观锁CAS操作这些基础。因此了解他们的原理对我们理解并发大有裨益。(我对他们的理解基本凝聚在思维导图里了,由于找工作时间紧迫、暂不细讲) 除了参考并发编程的艺术艺术外还参考了以下文章: https://blog.csdn.net/chen77716/article/details/6618779 深入JVM锁机制1-synchronized https://www.jians...

Java基础巩固系列 包装类【图】

示意图: 代码://包装类 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并发系列3:Lock锁以及核心类AQS【图】

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源码阅读理解系列(四)【代码】【图】

RxJava源码阅读理解系列(四)操作符buffermapflatMap 操作符 RxJava中的操作符超级多,打开官方文档可以看到如下的说明这其中Transformation转换操作符是最值得分析的,接下来我们就来探究转换操作符的奥秘吧。 buffer如图所示,buffer的作用是定期将可观察到的项收集到包中,并将这些包发出,而不是一次一个地发出这些项,我们再来看下基本用法: Observable.range(0, 10).buffer(4).subscribe((List<Integer> buffer) -> System...

.net基础学java系列(四)Console实操

上一篇文章 .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设置样式(一个一个设置...

Java基础系列--06_抽象类与接口概述

抽象类   (1)如果多个类中存在相同的方法声明,而方法体不一样,我们就可以只提取方法声明。     如果一个方法只有方法声明,没有方法体,那么这个方法必须用抽象修饰。     而一个类中如果有抽象方法,这个类必须定义为抽象类。   (2)抽象类的特点     A:抽象类和抽象方法必须使用abstract修饰     B:抽象类不能被实例化     C:抽象类有构造方法,用于子类实例化使用     D:如果一个类是抽...

Java范例系列 - 线程【代码】

创建线程 Java 中有以下三种方式创建线程,其中前两种无法获取返回值,而最后一种可以获取返回值。实现 Runnable 接口 继承 Thread 类 通过 Callable、Future 接口配合实现 Runnable 接口 可以声明一个类实现 Runnable 接口,接着在重写的 run() 方法中编写线程中执行的代码。 class RunnableThread implements Runnable {@Overridepublic void run() {// ...} } 接着实例化该类,并作为 Thread 类的构造器参数传入。 Thread runna...

面试系列之-----Java基础面试题【代码】

面试系列之-----Java基础面试题:该面试题主要是牛客网上的面试题及自己平常面试遇到的面试问题,会不定期更新,欢迎关注。1、请说明一下JAVA抽象类和接口的区别。 含有abstract修饰符的类即为抽象类,abstract类不能创建实例对象,含有abstract方法的类必须定义为abstract class,abstract class类中的方法不必是抽象的。abstract class类中的定义抽象方法必须在具体子类中实现,所以,不能有抽象构造方法或者抽象静态方法。如果子...

【JAVA零基础入门系列】Day1 开发环境搭建【代码】【图】

一、安装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...

Java 集合系列04之 fail-fast总结(通过ArrayList来说明fail-fast的原理、解决办法)【代码】【图】

概要 前面,我们已经学习了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事...

Java并发系列之Synchronized【代码】

每一个刚接触多线程并发编程的同学,当被问到,如果多个线程同时访问一段代码,发生并发的时候,应该怎么处理?我相信闪现在脑海中的第一个解决方案就是用synchronized,用锁,让这段代码同一时间只能被一个线程执行。 我们也知道,synchronized关键字可以用在方法上,也可以用在代码块上,如果要使用synchronized,我们一般就会如下使用:public synchronized void doSomething() {//do something here }或:synchonized(LockObje...

大白话 java动态代理——秒懂系列【图】

代理模式分为动态代理和静态代理,重点是动态代理 什么叫做代理? 首先要有一个接口,定义了我们的服务(标准) 然后是一个实现类(继承上面那个接口) 还有有一个代理类也会去实现这个那个接口。 然后重点: 代理就是我们不能直接去访问这个实现类,只能通过代理类去访问实现类,先说一下这个访问是通过invoke这个方法实现,参数有 实例对象、方法对象、参数列表。 大概就是下面这个样子 public Object invoke(Object proxy, Meth...