- 栈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 函数是多条执行...
- 唔!经历之前眼瞎的教程之后,现在我继续的眼瞎着写接下来的章节… 注:注意我们每一行代码后面的分号表示我们一句代码的结束,就像我们在写文字的时候的标点符号,一个句号表示一句话的结尾。 注:我们printf()或者system()里面的双引号表示参数,参数的含义可能目前还不懂,大家就照着写就好了,我们后面会说到。 首先贴出我们这一节所要说的代码: #include<... 唔!经历之前眼瞎的教程之后,现在我继续的眼瞎着写接下来的章节… 注:注意我们每一行代码后面的分号表示我们一句代码的结束,就像我们在写文字的时候的标点符号,一个句号表示一句话的结尾。 注:我们printf()或者system()里面的双引号表示参数,参数的含义可能目前还不懂,大家就照着写就好了,我们后面会说到。 首先贴出我们这一节所要说的代码: #include<...
上滑加载中
推荐直播
-
华为云码道Agent集成与鸿蒙实战2026/08/11 周二 19:00-21:00
王一男-华为云码道产品规划专家;李炎-华为云码道产品专家;彭江敏-华为云鸿蒙端云一体化开发专家
本次直播带你解读华为云码道7月份产品新特性、新功能。更有专家演示码道Agent Space × 钉钉机器集成实战,从0到1打通消息通道;码道鸿蒙端云一体化实战,快速搭建员工签到系统。
回顾中 -
华为云开发者AI素养直播课·第五期2026/09/04 周五 16:00-18:00
林华鼎-华为云AI开发者运营负责人;蒋春阳-华为云AI开发者案例开发专家
本期直播内容: AI工具体验营 · 第5-8课连讲。Agent-Team 多智能体协作完成毕业设计实践
回顾中 -
华为云开发者AI素养ClassRoom·第六期2026/09/08 周二 19:00-20:00
樊渊-2026华为软件挑战赛冠军
高手来了:看软挑高手解析二维排样问题—从工业难题到算法突破
回顾中
热门标签