- 1. k8s基本介绍 k8s是谷歌2014年开源的容器化集群和系统 使用k8s进行容器化部署 (让docker部署简单) 使用k8s更利于应用扩展 k8s的目标是让部署容器化应用更加简洁有效 k8s积累了作为google环境中运行工作负载15年的经验 最主要的效果: 可以让运维减少手工操作,让docker集群更简单化,自动化。 大型公司都在使用k8s,... 1. k8s基本介绍 k8s是谷歌2014年开源的容器化集群和系统 使用k8s进行容器化部署 (让docker部署简单) 使用k8s更利于应用扩展 k8s的目标是让部署容器化应用更加简洁有效 k8s积累了作为google环境中运行工作负载15年的经验 最主要的效果: 可以让运维减少手工操作,让docker集群更简单化,自动化。 大型公司都在使用k8s,...
- 我们从传统的物理服务器时代,过度到了容器部署时代; 在传统物理服务器时代,各个组件都在物理机上运行,很难为物理机中的应用程序定义资源边界,从而导致资源分配问题。 比如工作中我们经常会遇到某一个应用程序占用大部分资源的情况,导致的结果很可能是其他应用资源的性能下降。 一般我们的解决方案是让不同的应用程序,运行在不同的物理机上,但这样会导致资源利用不足,而且维护成本变高... 我们从传统的物理服务器时代,过度到了容器部署时代; 在传统物理服务器时代,各个组件都在物理机上运行,很难为物理机中的应用程序定义资源边界,从而导致资源分配问题。 比如工作中我们经常会遇到某一个应用程序占用大部分资源的情况,导致的结果很可能是其他应用资源的性能下降。 一般我们的解决方案是让不同的应用程序,运行在不同的物理机上,但这样会导致资源利用不足,而且维护成本变高...
- 单例模式是一种常见的设计模式,在《Java与模式》一书中,阎宏博士对单例模式做了全面的总结。 JavaSingleton模式就为我们提供了这样实现的可能。使用Singleton的好处还在于可以节省内存,因为它限制了实例的个数,有利于Java垃圾回收(garbage collection)。 单例模式也是一种比较常见的设计模式,它到底能带给我们什... 单例模式是一种常见的设计模式,在《Java与模式》一书中,阎宏博士对单例模式做了全面的总结。 JavaSingleton模式就为我们提供了这样实现的可能。使用Singleton的好处还在于可以节省内存,因为它限制了实例的个数,有利于Java垃圾回收(garbage collection)。 单例模式也是一种比较常见的设计模式,它到底能带给我们什...
- 迭代对于我们搞 Java 的来说绝对不陌生。我们常常使用 JDK 提供的迭代接口进行 Java 集合的迭代。 Iterator iterator = list.iterator(); while(iterator.hasNext()){ String string = iterator.next(); //do something } 12345 迭代其实我们可以简... 迭代对于我们搞 Java 的来说绝对不陌生。我们常常使用 JDK 提供的迭代接口进行 Java 集合的迭代。 Iterator iterator = list.iterator(); while(iterator.hasNext()){ String string = iterator.next(); //do something } 12345 迭代其实我们可以简...
- 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...
上滑加载中
推荐直播
-
HDC深度解读系列 - Serverless与MCP融合创新,构建AI应用全新智能中枢
2025/08/20 周三 16:30-18:00
张昆鹏 HCDG北京核心组代表
HDC2025期间,华为云展示了Serverless与MCP融合创新的解决方案,本期访谈直播,由华为云开发者专家(HCDE)兼华为云开发者社区组织HCDG北京核心组代表张鹏先生主持,华为云PaaS服务产品部 Serverless总监Ewen为大家深度解读华为云Serverless与MCP如何融合构建AI应用全新智能中枢
回顾中 -
关于RISC-V生态发展的思考
2025/09/02 周二 17:00-18:00
中国科学院计算技术研究所副所长包云岗教授
中科院包云岗老师将在本次直播中,探讨处理器生态的关键要素及其联系,分享过去几年推动RISC-V生态建设实践过程中的经验与教训。
回顾中 -
一键搞定华为云万级资源,3步轻松管理企业成本
2025/09/09 周二 15:00-16:00
阿言 华为云交易产品经理
本直播重点介绍如何一键续费万级资源,3步轻松管理成本,帮助提升日常管理效率!
回顾中
热门标签