Java IO流
Java IO流
java io流知识体系(引用自pdai)
Java.io 包几乎包含了所有操作输入、输出需要的类。所有这些流类代表了输入源和输出目标。
Java.io 包中的流支持很多种格式,比如:基本类型、对象、本地化字符集等等。
一个流可以理解为一个数据的序列。输入流表示从一个源读取数据,输出流表示向一个目标写数据。
java io流知识体系(引用自pdai)
Java.io 包几乎包含了所有操作输入、输出需要的类。所有这些流类代表了输入源和输出目标。
Java.io 包中的流支持很多种格式,比如:基本类型、对象、本地化字符集等等。
一个流可以理解为一个数据的序列。输入流表示从一个源读取数据,输出流表示向一个目标写数据。
Java反射机制是在运行状态中,对于任何一个类,都能获得它的所有属性和方法,对于任何一个对象,都能够调用它的任意一个方法和属性。
RTTI(Run-Time Type Identification)运行时类型识别。其作用是在运行时识别一个对象的类型和类的信息。主要有两种方式:一种是“传统的”RTTI,它假定我们在编译时已经知道了所有的类型;另一种是“反射”机制,它允许我们在运行时发现和使用类的信息。反射就是把java类中的各种成分映射成一个个的Java对象。如果要动态获取到这些信息,需要依靠Class
对象。Class
类对象将一个类的方法、变量等信息告诉运行的程序。
科学上网
kubernetes(<=1.21)
kustomize(3.2.0) 下载链接
kubectl
允许master节点被调度
1 kubectl taint nodes --all node-role.kubernetes.io/master-
Cache Aside Pattern适合读多写少的场景。Cache Aside Pattern中服务端需要同时维系DB和cache,并且最终的结果以DB为准。
下面是该策略模式下缓存读写步骤。
写:
1 | git clone https://github.com/containerd/containerd -b release/1.4 |
1 | wget -c https://github.com/protocolbuffers/protobuf/releases/download/v3.11.4/protoc-3.11.4-linux-aarch_64.zip |
仅介绍使用keadm进行部署
云端:需要搭建K8S集群环境,参考K8S搭建EdgeX环境
边端:需要安装docker,参考docker安装
Keadm 用于安装 KubeEdge 的云和边缘组件。它不负责安装 K8s 和运行时。
请参考kubernetes-compatibility以确认Kubernetes 兼容性并确定要安装的 Kubernetes 版本。
本文参照一枝花算不算浪漫
ThreadLocal的特点:
主要探讨以下问题:
ThreadLocal
的key是弱引用,那么在ThreadLocal.get()
的时候,发生GC之后,key是否为null?ThreadLocal中ThreadLocalMap
的数据结构?ThreadLocalMap
的Hash算法?ThreadLocalMap
的扩容机制?ThreadLocalMap
中过期key的清理机制?探测式清理和启发式清理流程?ThreadLocalMap.set()
方法实现原理?ThreadLocalMap.get()
方法实现原理?JDK提供的并发容器大部分都在java.util.concurrent(juc)
包
ConcurentHahsMap
:线程安全的HashMap
CopyOnWriteArrayList
:线程安全的List,适用于读多写少的场景。ConcurrentLinkedQueue
:高效的并发队列,使用链表实现。可以当作一个线程安全的LinkedList
,这是一个非阻塞队列。BlockingQueue
:这个一个接口,JDK内部通过链表、数组等方式实现了这个接口。表示阻塞队列,适合用于作为数据共享的通道。ConcurrentSkipListMap
:线程安全的跳表。Atomic
是基于unsafe
类和自旋操作实现的,要理解Atomic
首先需要理解CAS。Atomic是指一个操作是不可中断的,即使在多个线程一起执行的时候,一个操作一旦开始,就不会被其他线程干扰。
所以,所谓源自类就说具有原子/原子操作特征的类。根据操作的数据类型,可以讲JUC包中的原子类分为4类。
要理解Atomic首先得了解CAS,CAS(Compare and Swap),其功能就是判断内存中的某个值是否与预期的值相等,相等就用新值更新旧值,否则就不更新。Java中CAS是基于
unsafe
类首先的,所有的unsafe
类中的方法都是native(原生)方法,直接调用操作系用底层资源执行任务。
Update your browser to view this website correctly.&npsb;Update my browser now