2017第35周回顾

这周在经过前面两天忙碌后,后面集中精力复习了一些IO方面的概念, 在实践、知识整体结构梳理方面要加强。

Java8新特性之Optional

周一,记录了Java8引入的Optional,跟guava里的Optional一样,对java里判null空操作抽象出一个类,使用它可以让代码更简洁易懂:

Optional<String> userName = Optional.ofNullable(user).map(User::getName);
return userName.orElse(null);

Java底层四个核心技术

笼统的说了Java虚拟机、类加载器体系结构、Class文件、Java API四方面内容。

Java IO 基础

主要是IO、NIO、AIO的概念。IO面向字节流,是同步阻赛的,api编程简单,但要一个请求对应一个线程,无法应对请求多大并非的情况,因此引入了NIO。NIO面向buffer,基于Reactor模式、事件驱动思想,通过chanel、select等核心类使请求变为异步非阻赛,以应对大并非的情况。AIO是Java7引入的异步IO,数据的读写操作有操作系统内核完成后通知应用,需要底层操作系统的支持。

Netty学习记录

Netty是基于NIO的高性能通信编程框架,统一了API使用更简单,解决了NIO的一些bug,被互联网、游戏,各类RPC框架广泛应用。

高性能IO之Reactor模式

说了Reactor模式的由来,单线程模型、多线程模型、主从线程模型,以及Reactor模式的构成,优缺点,不论如何它是目前大部分IO都采用的模式。

时间: 2024-10-31 02:04:15

2017第35周回顾的相关文章

2017年 JavaScript 框架回顾 -- 前端框架

概述: 对于 JavaScript 社区来说,npm 的主要功能之一就是帮助开发者发掘所需的 npm Registry 中的库和框架.npm 强大的搜索功能能够帮助找到一组相关的软件包,同时其内置的的文档和使用统计信息,可以帮助开发者决定使用哪一种软件包. 选择过程中,一个重要的评估因素就是社区对软件包项目的持续支持:是否正在积极的维护?是否有足够大的社区来维持项目? 评估的过程中,软件包的普及程度是一个重要的考量因素.不论是通过博客文章还是教程的方式,一个具有大型社区的软件包意味着有更多的开发

2017年 JavaScript 框架回顾 -- 后端框架

本文是2017年 JavaScript 框架回顾系列的最后的一篇文章,主要介绍 JavaScript 的后端框架情况. 从上图中可以看到,Express 作为用 JavaScript 编写的后端服务的主流解决方案,占据了后端框架使用率的绝大部分,其次的四个最大框架对比于 Express 来说,占用率都很小. 到目前为止,我们所讨论的几乎所有框架的绝对使用量都在不断增加.自2013年以来,Express 的使用率已经增长了6000%.之所以 Express 的6000%增长在第一张图中显示成下降的

2017第34周复习Java总结

从上周日开始对工作中遇到的Java相关的知识进行总结整理.先是回顾了Java关键字,重点说了static关键字的用法:修饰变量.程序块.内部类.方法.还静态导包:重点说了final关键字可以修饰类.方法和变量的好处:JVM和Java应用会缓存final变量,提高性能,不需要额外的同步开销,在设计上保证类.方法不被继承修改. Java基础之关键字 这周一是针对Java最重要的特性之一反射的总结,在平常的框架类库中都常见反射的应用,用好反射能大大提高系统的灵活性和扩展性.Java反射是指运行时获取类

2017年 JavaScript 框架回顾 -- React生态系统

前一篇文章中,我们介绍了2017年 JavaScript 框架的整体情况.我们也了解到在众多的前端框架中,目前最为庞大又在快速增长的当属 React 了,本文就来重点介绍 React 的生态系统. 首先看看与 React 有关的软件包的生态系统.在 Facebook 构建 React 之初,就有许多来自于开源社区第三方库的软件包.这些软件包使用 React 补充其它功能,以便提供完整的应用程序解决方案.当然,安装包中也存在着提供相似功能的彼此竞争关系. React Router 丰富的 Web

2018第22周回顾

原子属性更新器AtomicReferenceFieldUpdater的使用,AtomicReferenceFieldUpdater是Java原子属性更新器,它能让普通对象的get.set操作变为原子操作,从而避免多线程环境下同步操作,提高程序运行效率.原子属性更新器常用的方法是compareAndSet比较并设置属性值,getAndSet返回当前属性值并设置新值. 自旋锁.排队自旋锁.MCS锁.CLH锁讲了自旋锁的几种实现,最简单的用AtomicReference<Thread>对象实现一个自

第十一周 回顾

问题: 1.怎么才能不让用户犯简单的错误? 2.软件工程怎样才能学好? 3.每个软件都需要完整的开发流程吗?如果没有会怎么样? 4.关于<构建之法>怎样读才能抓住核心? 5.在自身没有多少编程能力时怎样将书中的知识运用到实践中? 回答: 1.把各种功能描述清楚,在用户犯简单错误之前把各种情况都想到,说给用户听. 2.多学习,多看书,多编程. 3.不会,没有也可能会开发的好,但是毕竟不是长久之计,一个经得住时间敲打的软件需要完整的开发流程. 4.多读几遍,就会知道核心在哪里. 5.还是要多编程,

一周回顾

两天的C语言复习和一天的C语言考试为C语言画上了句号,经过考试后发现自己仍有许许多多的需要练习学习的地方,不要因为结束了这一门课而落下它,偶尔还要复习复习温故而知新.接下来两天的PS课程,老师讲了主要是关于PS几种工具的使用,从图层到画笔,每一步都有它的快捷键,每一步都有他的步骤,一下子不可能完全记下来.学习PS是一个不断练习不断积累的过程,熟能生巧,多做多练就能提升自己的能力了.我认为,学习一样新东西,上手可以说是很快,但要提高就要付出很大的努力,不可以半途而废.这才是学好一样东西的必备条件.

软工2017第三周作业之找bug——测试报告

作业要求来自:https://edu.cnblogs.com/campus/nenu/SWE2017FALL/homework/957 环境:windows7  cmd命令行 一.被测试程序的作者:吴雨丹 吴雨丹的代码git地址:https://git.coding.net/clairewyd/wf.git 1.标题:没有用控制台命令输入,输入格式不对 2.内容: (1)重现步骤:命令行打开到含有wf.exe的文件夹下面,按照SPEC的命令执行命令进行测试 (2) 结果:出错.如下佐证材料中截图

2018第21周回顾

Java线程及线程池状态总结了多线程的基础,线程的状态及转换,线程从新建.阻塞.等待.条件等待等状态在条件满足时会进入可运行状态,等待操作系统选中分配CPU资源后线程得到执行,由于每次执行获得的CPU时间片很短,几乎感觉不到,所以JAVA线程状态定义中没有执行中的状态.VisualVm中运行(running)状态实际对应线程的可运行状态. Map容器安全记录了两个Map使用要注意的两个问题,HashMap线程不安全下使用可能会导致结果不正确也可能会导致死循环,ConcurrentHashMap的