- 前言 本博客只简单介绍NIO的原理实现和基本工作流程 I/O和NIO的本质区别 NIO将填充和提取缓冲区的I/O操作转移到了操作系统 I/O 以流的方式处理数据,而 NIO 以缓冲区的方式处理数据;IO是阻塞的,NIO是非阻塞的,直到有数据被读取或者数据完全写入时,IO线程才开始执行操作,而NIO在如何情况都是非阻塞的 通道(Channel)和缓冲区(Buff... 前言 本博客只简单介绍NIO的原理实现和基本工作流程 I/O和NIO的本质区别 NIO将填充和提取缓冲区的I/O操作转移到了操作系统 I/O 以流的方式处理数据,而 NIO 以缓冲区的方式处理数据;IO是阻塞的,NIO是非阻塞的,直到有数据被读取或者数据完全写入时,IO线程才开始执行操作,而NIO在如何情况都是非阻塞的 通道(Channel)和缓冲区(Buff...
- 第一章 1.1 模式定义 代理模式:代理模式就是引入一个代理对象,通过代理对象实现对原对象的引用。代理模式是一种对象结构型。 1.2 代理模式包含如下角色 Subject:抽象主题角色Proxy:代理主题角色RealSubject:真实主题角色 1.3 模式例子 public class Proxy implements Subject { privat... 第一章 1.1 模式定义 代理模式:代理模式就是引入一个代理对象,通过代理对象实现对原对象的引用。代理模式是一种对象结构型。 1.2 代理模式包含如下角色 Subject:抽象主题角色Proxy:代理主题角色RealSubject:真实主题角色 1.3 模式例子 public class Proxy implements Subject { privat...
- Pinyin4j是一个流行的Java库,支持中文字符和拼音之间的转换,拼音输出格式可以定制,在项目中经常会遇到需求用户输入汉字后转换为拼音的场景,这时候Pinyin4j就可以派上用场 有自己私服的可以下载到私服,然后maven引入 <dependency> <groupId>net.sourceforge.pinyin4j</group... Pinyin4j是一个流行的Java库,支持中文字符和拼音之间的转换,拼音输出格式可以定制,在项目中经常会遇到需求用户输入汉字后转换为拼音的场景,这时候Pinyin4j就可以派上用场 有自己私服的可以下载到私服,然后maven引入 <dependency> <groupId>net.sourceforge.pinyin4j</group...
- 先要引入对应的jar,然后调用net.sf.json库的 ObjectMapper mapper = new ObjectMapper(); JavaType javaType = mapper.getTypeFactory().constructParametricType(List.class,FormModel.class); /*List<FormM... 先要引入对应的jar,然后调用net.sf.json库的 ObjectMapper mapper = new ObjectMapper(); JavaType javaType = mapper.getTypeFactory().constructParametricType(List.class,FormModel.class); /*List<FormM...
- 这篇博文主要介绍了一种基于机器学习的分类方法,K-邻近(KNN),并且使用这种方法来完成了一个简单的手写数字识别系统。 KNN 概述 什么是 KNN KNN(K–nearest-neighbor),即 K-邻近算法, 所谓 K 邻近,就是 K 个最近邻居的意思,说的是每个样本都可以用与它最接近的K 个邻居来进行表示。 工作原理 存在一个样本数据集合,... 这篇博文主要介绍了一种基于机器学习的分类方法,K-邻近(KNN),并且使用这种方法来完成了一个简单的手写数字识别系统。 KNN 概述 什么是 KNN KNN(K–nearest-neighbor),即 K-邻近算法, 所谓 K 邻近,就是 K 个最近邻居的意思,说的是每个样本都可以用与它最接近的K 个邻居来进行表示。 工作原理 存在一个样本数据集合,...
- 刚才在论坛不经意间,看到有关源码阅读的帖子。回想自己前几年,阅读源码那种兴奋和成就感,不禁又有一种激动。 源码阅读,我觉得最核心有三点:技术基础+强烈的求知欲+耐心。 说到技术基础,我打个比方吧,如果你从来没有学过Java,或是任何一门编程语言如C++,一开始去啃《Core Java》,你是很难从中吸收到营养的,特别是《深入Java虚拟机》这类书,别人觉得好,未必适合现在的你... 刚才在论坛不经意间,看到有关源码阅读的帖子。回想自己前几年,阅读源码那种兴奋和成就感,不禁又有一种激动。 源码阅读,我觉得最核心有三点:技术基础+强烈的求知欲+耐心。 说到技术基础,我打个比方吧,如果你从来没有学过Java,或是任何一门编程语言如C++,一开始去啃《Core Java》,你是很难从中吸收到营养的,特别是《深入Java虚拟机》这类书,别人觉得好,未必适合现在的你...
- maven作为一个高度自动化构建工具,本身提供了构建项目的功能,下面就来体验一下使用maven构建项目的过程。 一、构建Jave项目 1.1、创建Jave Project 1、使用mvn archetype:generate命令,如下所示: mvn archetype:generate -DgroupId=com.mycompany.app -Dartifac... maven作为一个高度自动化构建工具,本身提供了构建项目的功能,下面就来体验一下使用maven构建项目的过程。 一、构建Jave项目 1.1、创建Jave Project 1、使用mvn archetype:generate命令,如下所示: mvn archetype:generate -DgroupId=com.mycompany.app -Dartifac...
- 一、搭建环境 请参考《Cordova创建项目、编译、安装》 二、创建项目: 创建命令:cordova create [文件名] [包名] ~/Desktop/Cordova$ cordova create MyCordovaCamera com.cs.camera Creating a new cordova project. ~/Desktop/Cordova... 一、搭建环境 请参考《Cordova创建项目、编译、安装》 二、创建项目: 创建命令:cordova create [文件名] [包名] ~/Desktop/Cordova$ cordova create MyCordovaCamera com.cs.camera Creating a new cordova project. ~/Desktop/Cordova...
- Collection线程不安全的举例 前言单线程环境下多线程环境解决方案方案一:Vector方案二:Collections.sychronized()方案三:采用JUC里面的方法 HashSet线程不安全HashSet底层结构 HashMap线程不安全解决方法 前言 1、当我们执行下面语句的时候,底层进行了什么操作 new ArrayList... Collection线程不安全的举例 前言单线程环境下多线程环境解决方案方案一:Vector方案二:Collections.sychronized()方案三:采用JUC里面的方法 HashSet线程不安全HashSet底层结构 HashMap线程不安全解决方法 前言 1、当我们执行下面语句的时候,底层进行了什么操作 new ArrayList...
- Java8新特性[Stream API] 前言区别什么是StreamStream操作的三部曲创建流中间操作终止操作 Stream流的操作筛选与切片映射排序终止操作规约收集 总结 前言 了解Stream Java8中有两个比较大的改变 Lambda表达式Stream API (java.util.stream.*) Stream是Ja... Java8新特性[Stream API] 前言区别什么是StreamStream操作的三部曲创建流中间操作终止操作 Stream流的操作筛选与切片映射排序终止操作规约收集 总结 前言 了解Stream Java8中有两个比较大的改变 Lambda表达式Stream API (java.util.stream.*) Stream是Ja...
- Spring源码讲解 前言谈谈你对Spring的理解Spring上下文Spring初始化SpringBean的生命周期普通类的实例化Spring Bean实例化过程 前言 Spring源码方面的知识 Spring bean的生命周期Spring 工厂,Spring容器,上下文Spring BeanPostprocessorSpring 和 ... Spring源码讲解 前言谈谈你对Spring的理解Spring上下文Spring初始化SpringBean的生命周期普通类的实例化Spring Bean实例化过程 前言 Spring源码方面的知识 Spring bean的生命周期Spring 工厂,Spring容器,上下文Spring BeanPostprocessorSpring 和 ...
- 在软件开发的过程中,可以说调试是一项基本技能。调试的英文单词为 debug ,顾名思义,就是去除 bug 的意思。俗话说的好,编程就是制造 bug 的过程,所以 debug 的重要性毋庸置疑,如果能熟练掌握调试技能,也就可以很快的定位出代码中的 bug。要知道,看的懂代码不一定写的出代码,写的出代码不一定能调试好代码,为了能写出没有 bug 的代码,我们必须得掌握一些基... 在软件开发的过程中,可以说调试是一项基本技能。调试的英文单词为 debug ,顾名思义,就是去除 bug 的意思。俗话说的好,编程就是制造 bug 的过程,所以 debug 的重要性毋庸置疑,如果能熟练掌握调试技能,也就可以很快的定位出代码中的 bug。要知道,看的懂代码不一定写的出代码,写的出代码不一定能调试好代码,为了能写出没有 bug 的代码,我们必须得掌握一些基...
- 上一篇关于面试的谈得太多,招聘只好另起一章。 以当前的现状来看,优秀的毕业生会先被知名的大企业刷过一轮,那么,相对不知名的企业招聘负责人要如何找到适合自己公司的技术人才呢?询问过一些毕业生之后,我总结了如下经验。 1. 招聘会上的招聘材料的准备 一场招聘会上公司林林总总,面试者要了解你公司,只有他晃过去的那几秒钟,一张意义鲜明的海报,就特别重要。 很多海报自己设计得漂... 上一篇关于面试的谈得太多,招聘只好另起一章。 以当前的现状来看,优秀的毕业生会先被知名的大企业刷过一轮,那么,相对不知名的企业招聘负责人要如何找到适合自己公司的技术人才呢?询问过一些毕业生之后,我总结了如下经验。 1. 招聘会上的招聘材料的准备 一场招聘会上公司林林总总,面试者要了解你公司,只有他晃过去的那几秒钟,一张意义鲜明的海报,就特别重要。 很多海报自己设计得漂...
- 原子类AtomicInteger的ABA问题 连环套路 从AtomicInteger引出下面的问题 CAS -> Unsafe -> CAS底层思想 -> ABA -> 原子引用更新 -> 如何规避ABA问题 ABA问题是什么 假设现在有两个线程,分别是T1 和 T2,然后T1执行某个操作的时间为10秒,T2执行某个时间的操作是2秒,最开始T1,T2两个线程... 原子类AtomicInteger的ABA问题 连环套路 从AtomicInteger引出下面的问题 CAS -> Unsafe -> CAS底层思想 -> ABA -> 原子引用更新 -> 如何规避ABA问题 ABA问题是什么 假设现在有两个线程,分别是T1 和 T2,然后T1执行某个操作的时间为10秒,T2执行某个时间的操作是2秒,最开始T1,T2两个线程...
- 友情提醒:再看这边文章之前,请先去看我的上一篇文章《(重温)JavaWeb--Servlet技术(一)(JavaWeb 的三大组件之一)》 1.HttpServletRequest 类 a)HttpServletRequest 类有什么作用。 每次只要有请求进入 Tomcat 服务器,Tomcat 服务器就会把请求过来的 HTTP 协议信息解析好... 友情提醒:再看这边文章之前,请先去看我的上一篇文章《(重温)JavaWeb--Servlet技术(一)(JavaWeb 的三大组件之一)》 1.HttpServletRequest 类 a)HttpServletRequest 类有什么作用。 每次只要有请求进入 Tomcat 服务器,Tomcat 服务器就会把请求过来的 HTTP 协议信息解析好...
上滑加载中
推荐直播
-
华为云码道Agent集成与鸿蒙实战2026/08/11 周二 19:00-21:00
王一男-华为云码道产品规划专家;李炎-华为云码道产品专家;彭江敏-华为云鸿蒙端云一体化开发专家
本次直播带你解读华为云码道7月份产品新特性、新功能。更有专家演示码道Agent Space × 钉钉机器集成实战,从0到1打通消息通道;码道鸿蒙端云一体化实战,快速搭建员工签到系统。
回顾中 -
华为云开发者AI素养直播课·第三期2026/08/21 周五 16:00-18:00
林华鼎-华为云AI开发者运营负责人;念擎-华为云AI开发者运营案例开发专家
本期直播内容:AI六层能力首次详细解读 + 新一代华为云开发者空间亮相 + 校园案例直播带练
回顾中
热门标签