bridge

一些Java中不为人知的特殊方法,学完后面试官可能都没你知道的多

可紊 提交于 2020-08-18 12:22:51
如果你用过反射并且执行过getDeclaredMethods方法的话,你可能会感到很吃惊。你会发现出现了很多源代码里没有的方法。如果你看一下这些方法的修饰符的话,可能会发现里面有些方法是volatile的。顺便说一句,如果在Java面试里问到“什么是volatile方法?”,你可能会吓出一身冷汗。正确的答案是没有volatile方法。但同时,getDeclaredMethods()或者getMethods()返回的这些方法,Modifier.isVolatile(method.getModifiers())的结果却是true。 一些用户遇到过这样的问题。他们发现,使用immutator(这个项目探索了Java的一些不为人知的细节)生成的Java代码使用volatile了作为方法的关键字,而这样的代码没法通过编译。结果就是这根本没法用。 这是怎么回事?syntethic和bridge方法又是什么? 可见性 当你创建一个嵌套类的时候,它的私有变量和方法对上层的类是可见的。这个在不可变嵌套式Builder模式中用到了。这是Java语言规范里已经定义好的一个行为。 package synthetic; //java框架www.1b23.com public class SyntheticMethodTest1 { private A aObj = new A(); public class

[KVM] 网络虚拟化原理

拟墨画扇 提交于 2020-08-18 08:36:47
KVM 网络的配置有一下几种 用户模式,即创建 vm 时默认的网络模式 Bridge 模式 NAT 模式 VT-d 技术 Bridge 模式 bridge 是二层转发设备,主要功能是多个 LAN 间的的数据帧转发,即包括 MAC 学习,生成树协议等。 Qemu vm 启动时的网桥配置,是使用 tap 设备完成的,如下命令: qemu -system -x86_64 \ -netdev tap ,id =host -net0 ,ifname =vm1eth0 ,script = /etc /ifup ,downscript = /etc /ifdown \ -device virtio -net -pci ,netdev =host -net0 ,id =host -net0 ,mac = 0a :e8 : 4f :c5 : 6a : 16 ,bus =pci . 0 ,addr = 0x7 // 解释: // -ifname: Host 上呈现的 tap 虚拟设备的名称 // -script: Host 在启动 GuestOS 时默认执行脚本,一般是将 tap (vm1eth0) 加入到 bridge 中 // -downscript: Host 在关闭 GuestOS 时默认执行脚本,一般是将 tap (vm1eth0) 从 bridge 中移除 tap 原理: tap

open***中server.conf和client.conf配置文件详解

余生颓废 提交于 2020-08-17 17:11:14
Server使用的配置文件server.conf —————————– #申明本机使用的IP地址,也可以不说明 ;local a.b.c.d #申明使用的端口,默认1194 port 1194 #申明使用的协议,默认使用UDP,如果使用HTTP proxy,必须使用TCP协议 ;proto tcp proto udp #申明使用的设备可选tap和tun,tap是二层设备,支持链路层协议。 #tun是ip层的点对点协议,限制稍微多一些,本人习惯使用TAP设备 dev tap ;dev tun #Open×××使用的ROOT CA,使用build-ca生成的,用于验证客户是证书是否合法 ca ca.crt #Server使用的证书文件 cert server.crt #Server使用的证书对应的key,注意文件的权限,防止被盗 key server.key # This file should be kept secret #CRL文件的申明,被吊销的证书链,这些证书将无法登录 crl-verify ***crl.pem #上面提到的生成的Diffie-Hellman文件 dh dh1024.pem #这是一条命令的合集,如果你是Open×××的老用户,就知道这条命令的来由 #这条命令等效于: # mode server #Open×××工作在Server模式

K8s在LinuxONE上搭建(一)

拜拜、爱过 提交于 2020-08-17 16:47:35
一、介绍 Kubernetes 是当先炙手可热的技术,它已然成为可开源界的PASS管理平台的标准,当下文章对大多数是对X86平台搭建Kubernetes平台,下面笔者进行在LinuxONE上搭建开源的Kubernetes平台。 搭建K8S 平台主流的有两种方法, 第一种是基于二进制的搭建,通过一步一步的搭建可以加深对K8S各个服务的理解。 官方推荐的自动化部署工具 kubeadm 本次使用官方推荐的Kubeadm 的搭建方法, kubedm 把K8S 自身的服务都被K8S自身的pod,除此之外事先的基础服务是用system服务的方式运行。 master节点安装组件: docker、kubelet、kubeadm 基于本地的system服务运行 kube-proxy 是 动态的可被k8s 管理的pod api-server、kube-controller、etcd、 是托guan在pod node节点组件 docker、kubelet 基于本地的system服务运行 kube-proxy 是 动态的可被k8s 管理的pod flannel 是 动态的可被k8s 管理的pod 二、安装 1. 环境 系统版本 IP地址 主机名 ubuntu1~18.04.1 172.16.35.140 master ubuntu1~18.04.1 woker-1 2.安装docker 安装基础的包

设计模式之7个结构型模式

こ雲淡風輕ζ 提交于 2020-08-17 15:24:40
结构型模式概述 结构型模式(Structural Pattern) 描述 如何将类或者对象结合在一起形成更大的结构 ,就像搭积木,可以通过简单积木的组合形成复杂的、功能更为强大的结构。 结构型模式概述 结构型模式可以分为 类结构型模式 和 对象结构型模式 类结构型模式关心类的组合 ,由多个类可以组合成一个更大的系统,在类结构型模式中一般只存在继承关系和实现关系。 对象结构型模式关心类与对象的组合,通过关联关系使得在一个类中定义另一个类的实例对象,然后通过该对象调用其方法。 根据“合成复用原则”,在系统中尽量使用关联关系来替代继承关系,因此大部分结构型模式都是 对象结构型模式 。 适配器模式(Adapter) 桥接模式(Bridge) 组合模式(Composite) 装饰模式(Decorator) 外观模式(Facade) 享元模式(Flyweight) 代理模式(Proxy) 1适配器模式 把客户类的请求转化为对适配者的相应接口的调用 1.1 优点 将目标类和适配者类解耦 ,通过引入一个适配器类来重用现有的适配者类,而无须修改原有代码。 增加了类的透明性和复用性 ,将具体的实现封装在适配者类中,对于客户端类来说是透明的,而且提高了适配者的复用性。 灵活性和扩展性都非常好 ,通过使用配置文件,可以很方便地更换适配器,也可以在不修改原有代码的基础上增加新的适配器类,完全符合“开闭原则”

react入门之使用react-bootstrap当轮子造车(二)

你说的曾经没有我的故事 提交于 2020-08-17 08:51:00
react入门之使用react-bootstrap当轮子造车(二) 上一篇我们谈了谈如何配置react的webpack环境 react入门之搭配环境(一) 可能很多人已经打开过官方文档学习了react的基础知识 不管有没有,在介绍react之前,我想先介绍一下react-bootstrap 先懂得使用别人造的轮子,就能更快成为老司机。 好的,源代码奉上: git clone https://github.com/lingjiawen/ react_bootstrap_demo.git cd react_bootstrap_demo npm install npm run dev 打开浏览器输入:localhost:8080 react-bootstrap官方网址 现在就让我们来看看它能干什么吧! 一、Button 使用Button声明一个按钮, bsSize 有如下四个属性,可以分别有大、中、小、超小四种大小的按钮,再用ButtonToolbar包裹起来 <ButtonToolbar> <Button bsStyle="primary" bsSize="large">Large button</Button> <Button bsSize="large">Large button</Button> </ButtonToolbar> <ButtonToolbar> <Button

Springboot整合MongoDB的Docker开发,其它应用也类似

半腔热情 提交于 2020-08-16 05:54:24
1 前言 Docker 是容器开发的事实标准,而 Springboot 是 Java 微服务常用框架,二者必然是会走到一起的。本文将讲解如何开发 Springboot 项目,把它做成 Docker 镜像,并运行起来。 2 把Springboot打包成Docker镜像 Springboot 的 Web 开发非常简单,本次使用之前讲解过的 Springboot 整合 MongoDB 的项目,请参考 实例讲解Springboot整合MongoDB进行CRUD操作的两种方式 ,文章中有源码; MongoDB 的安装请参考: 用Docker安装一个MongoDB最新版玩玩 。 2.1 修改配置文件,让容器内部连接宿主机服务 修改 Springboot 的配置文件,主要是 MongoDB 的连接信息: server.port=8080 spring.data.mongodb.authentication-database=admin spring.data.mongodb.database=testdb spring.data.mongodb.username=user spring.data.mongodb.password=123456 spring.data.mongodb.host=host.docker.internal spring.data.mongodb.port=27017

Springboot整合MongoDB的Docker开发,其它应用也类似

泄露秘密 提交于 2020-08-16 05:51:29
1 前言 Docker 是容器开发的事实标准,而 Springboot 是 Java 微服务常用框架,二者必然是会走到一起的。本文将讲解如何开发 Springboot 项目,把它做成 Docker 镜像,并运行起来。 2 把Springboot打包成Docker镜像 Springboot 的 Web 开发非常简单,本次使用之前讲解过的 Springboot 整合 MongoDB 的项目,请参考 实例讲解Springboot整合MongoDB进行CRUD操作的两种方式 ,文章中有源码; MongoDB 的安装请参考: 用Docker安装一个MongoDB最新版玩玩 。 2.1 修改配置文件,让容器内部连接宿主机服务 修改 Springboot 的配置文件,主要是 MongoDB 的连接信息: server.port=8080 spring.data.mongodb.authentication-database=admin spring.data.mongodb.database=testdb spring.data.mongodb.username=user spring.data.mongodb.password=123456 spring.data.mongodb.host=host.docker.internal spring.data.mongodb.port=27017

[CCNA学习笔记] 二层交换基本知识

雨燕双飞 提交于 2020-08-15 15:06:50
基础知识  中继器(Repeater):工作在物理层,由于物理线路的限制,信号在传输过程中会衰减,所以中继器对传输的信号进行放大,连接两个网段。现在很少用。  集线器(Hub):相比于中继器,集线器可以连接更多的网段,半双工,同一时间只允许一台设备发生消息。  网桥(Bridge):有MAC地址表,在软件层面上实现。可以允许多个设备发送消息。只有两个端口。  交换机(Switch):相当于多端口的网桥,靠硬件实现MAC表。全双工。  半双工时代,一条线路再同一时间只允许一台设备发送消息,如果有两方同时发送消息,在线路上就会产生冲突。为此引入CSMA/CD机制(只有在半双工才有)。  CSMA/CD:发生冲突时,产生堵塞信号通知练到线路上的所有设备,设备根据算法随机等待一段时间,谁先计时结束谁先发送消息,避免了冲突的产生。生产环境基本看不到,设备基本是全双工。  冲突域:集线器会产生冲突,因为他是半双工,所以形成冲突域。 广播域:交换机广播,一台交换机默认一个广播域(vlan),两台相连也是一个广播域 一个集线器是一个冲突域,多个集线器只要连一起也属于一个冲突域,如果是全双工,不存在冲突,但是习惯上说交换机一个端口一个冲突域。  物理线缆: 10Base-T:10Mbps带宽 100Base-T:fastethernet,Rj45接口 1000Base-T:1Gbps带宽