- 网络数据的基本单位永远是 byte(字节)。Java NIO 提供 ByteBuffer 作为字节的容器,但该类过于复杂,有点难用。 ByteBuf是Netty当中的最重要的工具类,它与JDK的ByteBuffer原理基本上相同,也分为堆内与堆外俩种类型,但是ByteBuf做了极大的优化,具有更简单的API,更多的工具方法和优秀的内存池设计。 1 API Nett... 网络数据的基本单位永远是 byte(字节)。Java NIO 提供 ByteBuffer 作为字节的容器,但该类过于复杂,有点难用。 ByteBuf是Netty当中的最重要的工具类,它与JDK的ByteBuffer原理基本上相同,也分为堆内与堆外俩种类型,但是ByteBuf做了极大的优化,具有更简单的API,更多的工具方法和优秀的内存池设计。 1 API Nett...
- 栈Stack 堆栈是“后进先出”(LIFO)集合。它有时被称为叠加栈(pushdown stack),因为最后“压入”(push)栈的元素,第一个被“弹出”(pop)栈。经常用来类比栈的事物是带有弹簧支架的自助餐厅托盘。最后装入的托盘总是最先拿出来使用的。 Java 1.0 中附带了一个 Stack 类,结果设计得很糟糕(为了向后兼容,永远坚持 Java ... 栈Stack 堆栈是“后进先出”(LIFO)集合。它有时被称为叠加栈(pushdown stack),因为最后“压入”(push)栈的元素,第一个被“弹出”(pop)栈。经常用来类比栈的事物是带有弹簧支架的自助餐厅托盘。最后装入的托盘总是最先拿出来使用的。 Java 1.0 中附带了一个 Stack 类,结果设计得很糟糕(为了向后兼容,永远坚持 Java ...
- 1 前言 当我们使用Spring开发应用时,无需在程序中调用Spring的代码,就可使用Spring的功能特性。比如依赖注入、MVC,从而开发出高内聚低耦合的应用代码。 我们自己也写代码,能够做到让其他工程师不调用我们的代码就可以使用我们的代码的功能特性吗?大多数开发者应该做不到吧!那么Spring是如何做到的? 2 定义 DIP是指一种特定的解耦(传统的依赖关... 1 前言 当我们使用Spring开发应用时,无需在程序中调用Spring的代码,就可使用Spring的功能特性。比如依赖注入、MVC,从而开发出高内聚低耦合的应用代码。 我们自己也写代码,能够做到让其他工程师不调用我们的代码就可以使用我们的代码的功能特性吗?大多数开发者应该做不到吧!那么Spring是如何做到的? 2 定义 DIP是指一种特定的解耦(传统的依赖关...
- 容器为什么需要进行文件系统隔离呢? 被其他容器篡改文件,导致安全问题文件的并发写入造成的不一致问题 Linux容器通过Namespace、Cgroups,进程就真的被“装”在了一个与世隔绝的房间里,而这些房间就是PaaS项目赖以生存的应用“沙盒”。墙内的它们是怎样的生活呢? 1 容器里的进程眼中的文件系统 也许你会认为这是一个Mount Namespace的问题... 容器为什么需要进行文件系统隔离呢? 被其他容器篡改文件,导致安全问题文件的并发写入造成的不一致问题 Linux容器通过Namespace、Cgroups,进程就真的被“装”在了一个与世隔绝的房间里,而这些房间就是PaaS项目赖以生存的应用“沙盒”。墙内的它们是怎样的生活呢? 1 容器里的进程眼中的文件系统 也许你会认为这是一个Mount Namespace的问题...
- 创建虚拟DOM元素 什么是虚拟DOM 用js对象的形式,来表示DOM和DOM之间的嵌套关系。 const mydiv = React. createElement( 'div', { id: 'mydiv', title: 'div aaa' }, '这是一 个div元素' ) 12345 React. createElement 参数1 创建的元素的... 创建虚拟DOM元素 什么是虚拟DOM 用js对象的形式,来表示DOM和DOM之间的嵌套关系。 const mydiv = React. createElement( 'div', { id: 'mydiv', title: 'div aaa' }, '这是一 个div元素' ) 12345 React. createElement 参数1 创建的元素的...
- 专栏系列文章 第二篇:原子类的说明与使用第三篇:Lock的学习与使用第四篇:走近CopyOnWriteArrayList第五篇:HashMap的源码分析第六篇:走近ConcurrentHashMap(JDK1.8)第七篇:ConcurrentHashMap(JDK1.8)扩容的详细介绍以及多线程测试第八篇:链表的学习:链表的头插法和尾插法第九篇:队列的学习,用数组和链... 专栏系列文章 第二篇:原子类的说明与使用第三篇:Lock的学习与使用第四篇:走近CopyOnWriteArrayList第五篇:HashMap的源码分析第六篇:走近ConcurrentHashMap(JDK1.8)第七篇:ConcurrentHashMap(JDK1.8)扩容的详细介绍以及多线程测试第八篇:链表的学习:链表的头插法和尾插法第九篇:队列的学习,用数组和链...
- CopyOnWriteArrayList简介 熟悉Java开发的童鞋都知道ArrayList是线程不安全的,在多线程的环境下可能会发生fast-fail机制,抛出ConcurrentModificationException异常,虽然也有并发容器Vector,或者采用Collections的synchronizedCollection方法将ArrayList包装成线程... CopyOnWriteArrayList简介 熟悉Java开发的童鞋都知道ArrayList是线程不安全的,在多线程的环境下可能会发生fast-fail机制,抛出ConcurrentModificationException异常,虽然也有并发容器Vector,或者采用Collections的synchronizedCollection方法将ArrayList包装成线程...
- 文章目录 前言项目环境核心要点IOC容器的启动过程1. 资源定位,找到配置文件2.BeanDefinition的载入和解析,将配置文件解析成BeanDefiniton3. BeanDefinition的注册,将BeanDefinition向Map中注册`beanDefinitionMap` Bean的实例化和依赖注入Bean的实例化 流程分析实例化BeanBea... 文章目录 前言项目环境核心要点IOC容器的启动过程1. 资源定位,找到配置文件2.BeanDefinition的载入和解析,将配置文件解析成BeanDefiniton3. BeanDefinition的注册,将BeanDefinition向Map中注册`beanDefinitionMap` Bean的实例化和依赖注入Bean的实例化 流程分析实例化BeanBea...
- 今天我们来学习并发包下的Lock(锁)的知识。之所以Java在有synchronized的情况下,还提供基于lock接口实现的锁。是由于lock有一些synchronized没有特性。可以再发生死锁时相应中断,释放锁。 lock的类图 从该类图我们可以看出ReentrentLock实现了Lock接口,其对受保护资源的读写都要加锁。同时加锁之后需要手动的释放锁。由L... 今天我们来学习并发包下的Lock(锁)的知识。之所以Java在有synchronized的情况下,还提供基于lock接口实现的锁。是由于lock有一些synchronized没有特性。可以再发生死锁时相应中断,释放锁。 lock的类图 从该类图我们可以看出ReentrentLock实现了Lock接口,其对受保护资源的读写都要加锁。同时加锁之后需要手动的释放锁。由L...
- 迭代器可以让开发者遍历一个容器的元素,并且操作元素。 Java有两种原生的迭代器:Iterator和ListIterator, 其中 ListIterator继承自Iterator。 ListIterator比Iterator多了一些方法。例如逆序遍历,遍历时进行set元素到上次操作的元素的位置,add元素等操作。 ListIterator 在该类的说明中,JD... 迭代器可以让开发者遍历一个容器的元素,并且操作元素。 Java有两种原生的迭代器:Iterator和ListIterator, 其中 ListIterator继承自Iterator。 ListIterator比Iterator多了一些方法。例如逆序遍历,遍历时进行set元素到上次操作的元素的位置,add元素等操作。 ListIterator 在该类的说明中,JD...
- 上期回顾: SSIS从理论到实战,再到应用(3)—-SSIS包的变量,约束,常用容器 在SSIS体系中,控制流可能经常会遇到,比如你取得一列数据,需要循环这列数据然后做相应的操作时,就需要用到循环,下面,我来操作两种循环方式,FOR循环和Foreach循环. 一,For循环 &n... 上期回顾: SSIS从理论到实战,再到应用(3)—-SSIS包的变量,约束,常用容器 在SSIS体系中,控制流可能经常会遇到,比如你取得一列数据,需要循环这列数据然后做相应的操作时,就需要用到循环,下面,我来操作两种循环方式,FOR循环和Foreach循环. 一,For循环 &n...
- 前文回顾: SSIS从理论到实战,再到应用(1)—-创建自己的第一个包 上次说到创建了自己的第一个包,完成了简单的数据从数据库=>数据库,以及Excel文件=>数据库过程,这一次咱们回看看一个包里面到底有哪些好玩的元素构成: 咱们一般写过代码的人都知道,很多... 前文回顾: SSIS从理论到实战,再到应用(1)—-创建自己的第一个包 上次说到创建了自己的第一个包,完成了简单的数据从数据库=>数据库,以及Excel文件=>数据库过程,这一次咱们回看看一个包里面到底有哪些好玩的元素构成: 咱们一般写过代码的人都知道,很多...
- 1.流布局管理器: FlowLayout布局管理器中组件的相对位置随窗口大小而变化。 下面是流布局演示代码: package cn.hncu.MyJFrame1; import java.awt.FlowLayout; import javax.swing.JButton; import javax.swing.JFrame; public clas... 1.流布局管理器: FlowLayout布局管理器中组件的相对位置随窗口大小而变化。 下面是流布局演示代码: package cn.hncu.MyJFrame1; import java.awt.FlowLayout; import javax.swing.JButton; import javax.swing.JFrame; public clas...
- 缘起 最近一直在思考如何更改智能化抓取的事情,每当来了一个新的task,都要自己手动分析,手动写xpath ,然后写正则,各种测试,各种部署,其实说来,这些事情的重复度很高,那我们能不能把一些重复性的动作抽象出来,做成一个独立的单元呢?在参考佷多类似的自动化的工具之后,猜想了如下的动作是可以抽象出来的 开始页的格式化 比如http://www.cnblogs.com/#1 ... 缘起 最近一直在思考如何更改智能化抓取的事情,每当来了一个新的task,都要自己手动分析,手动写xpath ,然后写正则,各种测试,各种部署,其实说来,这些事情的重复度很高,那我们能不能把一些重复性的动作抽象出来,做成一个独立的单元呢?在参考佷多类似的自动化的工具之后,猜想了如下的动作是可以抽象出来的 开始页的格式化 比如http://www.cnblogs.com/#1 ...
- 上节,学完循环了~ 现在学Javascript的函数和数组。 JavaScript语法 每一种语言都有自己的语法规则,JS语法与Java很像,所以学习起来比较容易。JS中也一样有变量,语句,函数,数组等常见语言组成元素。 1.一般函数 格式: function 函数名(形式参数...) { 执行语句; return 返回值; }12345 函数是多条执行... 上节,学完循环了~ 现在学Javascript的函数和数组。 JavaScript语法 每一种语言都有自己的语法规则,JS语法与Java很像,所以学习起来比较容易。JS中也一样有变量,语句,函数,数组等常见语言组成元素。 1.一般函数 格式: function 函数名(形式参数...) { 执行语句; return 返回值; }12345 函数是多条执行...
上滑加载中
推荐直播
-
Skill 构建 × 智能创作:基于华为云码道的 AI 内容生产提效方案2026/03/25 周三 19:00-20:00
余伟,华为云软件研发工程师/万邵业(万少),华为云HCDE开发者专家
本次直播带来两大实战:华为云码道 Skill-Creator 手把手搭建专属知识库 Skill;如何用码道提效 OpenClaw 小说文本,打造从大纲到成稿的 AI 原创小说全链路。技术干货 + OPC创作思路,一次讲透!
回顾中 -
码道新技能,AI 新生产力——从自动视频生成到开源项目解析2026/04/08 周三 19:00-21:00
童得力-华为云开发者生态运营总监/何文强-无人机企业AI提效负责人
本次华为云码道 Skill 实战活动,聚焦两大 AI 开发场景:通过实战教学,带你打造 AI 编程自动生成视频 Skill,并实现对 GitHub 热门开源项目的智能知识抽取,手把手掌握 Skill 开发全流程,用 AI 提升研发效率与内容生产力。
回顾中 -
华为云码道:零代码股票智能决策平台全功能实战2026/04/18 周六 10:00-12:00
秦拳德-中软国际教育卓越研究院研究员、华为云金牌讲师、云原生技术专家
利用Tushare接口获取实时行情数据,采用Transformer算法进行时序预测与涨跌分析,并集成DeepSeek API提供智能解读。同时,项目深度结合华为云CodeArts(码道)的代码智能体能力,实现代码一键推送至云端代码仓库,建立起高效、可协作的团队开发新范式。开发者可快速上手,从零打造功能完整的个股筛选、智能分析与风险管控产品。
回顾中
热门标签