- 1 简介 BoxLayout,箱式布局管理器。它把若干组件按水平或垂直方向依次排列放置。Swing 提供了一个实现了 BoxLayout 的容器组件Box。使用 Box 提供的静态方法,可快速创建水平/垂直箱容器(Box),以及填充组件之间空隙的不可见组件。用水平箱和垂直箱的组合嵌套可实现类似于 GridBagLayout 的效果,但没那么复杂。 创建 创建一个... 1 简介 BoxLayout,箱式布局管理器。它把若干组件按水平或垂直方向依次排列放置。Swing 提供了一个实现了 BoxLayout 的容器组件Box。使用 Box 提供的静态方法,可快速创建水平/垂直箱容器(Box),以及填充组件之间空隙的不可见组件。用水平箱和垂直箱的组合嵌套可实现类似于 GridBagLayout 的效果,但没那么复杂。 创建 创建一个...
- 网络数据的基本单位永远是 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 ...
上滑加载中
推荐直播
-
华为云码道Skill实战与极速交付,智能开发全链路实战2026/07/22 周三 19:00-21:00
王一男-华为云码道产品规划专家;李炎-华为云码道产品专家;姜浩-华为云HCDG核心组成员
直播深度解读华为云码道6月产品新特性,从Skill市场安装专家技能,带你零距离体验从需求,开发,审查,重构全链路闭环的开发过程。从零构建并交付一个完整项目,让您体验从代码提交到服务上线的“极速”之旅。
回顾中 -
聚开发者之力,创具身新未来2026/07/23 周四 15:00-17:00
张豪杰/程文/王军/刘新春/黄钦开 /张晓天
本次华为云具身智能开发平台CloudRobo培训面向具身智能开发者,带您全流程体验机器人本体R2C小时级接入、环境重建与轨迹生成仿真数据生产、PB级数据管理、数据评测、模型训推、强化学习和Benchmark一键评测等功能,并体验业界主流具身模型应用。
回顾中 -
用码道,让你的AI作品三步上朋友圈2026/08/04 周二 19:00-20:00
林华鼎-华为云AI开发者运营负责人
从入门 · 到做AI应用 · 到企业级开发。不教编程,只教用AI · 零代码、有产出、能带走、可炫耀 · 每课人人动手实操
回顾中
热门标签