guest

if-else代码优化的八种方案

孤街醉人 提交于 2020-04-06 11:01:25
if-else代码优化的八种方案 if-else代码优化的八种方案 前言 代码中如果if-else比较多,阅读起来比较困难,维护起来也比较困难,很容易出bug,接下来,本文将介绍优化if-else代码的八种方案。 优化方案一:提前return,去除不必要的else 如果if-else代码块包含return语句,可以考虑通过提前return,把多余else干掉,使代码更加优雅。 优化前: if(condition){ //doSomething }else{ return ; } 优化后: if(!condition){ return ; } //doSomething 优化方案二:使用条件三目运算符 使用条件三目运算符可以简化某些if-else,使代码更加简洁,更具有可读性。 优化前: int price ; if(condition){ price = 80; }else{ price = 100; } 优化后: int price = condition?80:100; 优化方案三:使用枚举 在某些时候,使用枚举也可以优化if-else逻辑分支,按个人理解,它也可以看做一种 表驱动方法 。 优化前: String OrderStatusDes; if(orderStatus==0){ OrderStatusDes ="订单未支付"; }else if(OrderStatus=

用JAVA访问共享文件系统

試著忘記壹切 提交于 2020-04-02 23:35:56
用JAVA访问共享文件系统 前言 在Microsoft 网 络 系 统 中,SMB(Server Message Block, 服 务 信 息 块) 协 议 是Windows for Workgroup(WfWg)、Windows 95、Windows NT 和LanManager 用 来 实 现 共 享 局 域 网 上 文 件 和 打 印 机 的 协 议。 对 于 利 用Linux 和Windows NT 构 建 的 局 域 网 来 说,Samba 就 是 为Linux 提 供 的SMB 客 户 程 序/ 服 务 器 程 序 的 软 件 包, 其 功 能 是 实 现Windows 和Linux 互 相 共 享 对 方 的 磁 盘 空 间 和 打 印 机。通用网络文件系统简称CIFS,它事实上是windows平台文件共享的标准协议,它是windows explorer,网络邻居和映射网络驱动器的底层实现协议。JAVA具有天然的平台无关性,使用JAVA可以访问任何类型的服务器或客户机上的共享文件系统,并且编写的软件产品可以运行于任何平台,因此用JAVA访问共享文件系统在企业应用中具有得天独厚的优势。 JAVA中的CIFS实现 Jcifs是CIFS在JAVA中的一个实现,是samba组织本着linux的精神,负责维护开发的一个开源项目

CPU 虚拟化

隐身守侯 提交于 2020-03-17 06:43:09
本文首发于我的公众号 Linux云计算网络(id: cloud_dev) ,专注于干货分享,号内有 10T 书籍和视频资源,后台回复 「1024」 即可领取,欢迎大家关注,二维码文末可以扫。 前面 虚拟化技术总览 中从虚拟平台 VMM 的角度,将虚拟化分为 Hypervisor 模型和宿主模型,如果根据虚拟的对象(资源类型)来划分,虚拟化又可以分为计算虚拟化、存储虚拟化和网络虚拟化,再细一些,又有中断虚拟化,内存虚拟化,字符/块设备虚拟化,网络功能虚拟化等。 我会将此作为一个系列来写,本文先看 CPU 虚拟化。在这之前,我们先来笼统看下虚拟化的本质是什么,它到底是如何做到将 Host 的硬件资源虚拟化给 Guest 用,我这里用两个词来定义, intercept 和 virtualize ,中文翻译成 截获 和 模拟 比较恰当一点,这两个词基本上是虚拟化的终极定义了,带着这两个词去看每一种虚拟化类型,会发现很容易理解和记忆。 CPU 软件虚拟化 基于软件的 CPU 虚拟化,故名思议,就是通过软件的形式来模拟每一条指令。通过前面的文章我们知道常用的软件虚拟化技术有两种:优先级压缩和二进制代码翻译。这两种是通用技术,可以用在所有虚拟化类型中。我们就结合 intercept 和 virtualize 来看看 CPU 软件虚拟化是怎么做的。 首先,一些必须的硬件知识要知道,X86

Django模型

放肆的年华 提交于 2020-03-17 02:45:14
一、设计系统表 Django提供了完善的模型层来创建和存取数据,它包含所存储数据的必要字段和行为。通常每个模型对应数据库中唯一的一张表,所以,模型避免了我们直接对数据库操作。 Django模型基本知识: 每个模型是一个python类,继承django.db.models.Model类。 该模型的每个属性表示一个数据库字段 所有这一切,已经给了你一个自动生成数据库访问的API 打开/sign/models.py 文件,通过模型完成表的创建。 from django.db import models # Create your models here. #发布会表 from django.db import models class Event(models.Model): name = models.CharField(max_length = 100) #发布会标题 limit = models.IntegerField() #参加人数 status = models.BooleanField() #状态 address = models.CharField(max_length = 200) #地址 start_time = models.DateTimeField('events time') #发布会时间 create_time = models.DateTimeField

RabbitMQ的下载、安装

空扰寡人 提交于 2020-03-16 09:07:48
下载 有windows版的,用得不多。 运维一般用的是tar.xz,最符合需求,但需要自己配置很多东西,有些麻烦。 我们使用最简单的rpm即可。rpm对新手友好,环境变量什么的自动给你配好,很简单,但安装配置使用的都是预置选项,有些地方可能不太符合需求。 RabbitMQ是Erlang写的,需要配置Erlang环境。查看推荐的erlang版本,然后到erlang官网下载。 源码、文档、windows版,这些都不是我们想要的,往下滑,找rpm安装包 点进去选择需要的版本下载。 安装 1、先安装erlang的依赖 yum install epel-release unixODBC unixODBC-devel SDL 如果不先安装erlang的依赖,安装erlang时会报错:没有提供xxx。此外erlang还需要一些依赖,安装erlang时会自动提示,那时候再安装。 2、安装erlang yum install esl-erlang_22.2.2-1~centos~8_amd64.rpm 3、安装rabbitmq server   yum install rabbitmq-server-3.8.3-1.el8.noarch.rpm 默认安装目录是/usr/lib/rabbitmq,默认已经把rabbitmq安装为服务(默认不会开机自启)。 4、开启rabbitmq的控制台 cd

Ubuntu上安装和使用RabbitMQ

本小妞迷上赌 提交于 2020-03-14 04:23:18
Ubuntu上安装和使用RabbitMQ 1. 安装RabbitMQ服务软件包 输入以下命令进行安装 #apt install rabbitmq-server 2.安装完成后在rabbitMQ中添加用户 命令:#rabbitmqctl add_user tiankafei tiankafei 将用户设置为管理员(只有管理员才能远程登录) 命令:#rabbitmqctl set_user_tags tiankafei administrator 同时为用户设置读写等权限 命令:#rabbitmqctl set_permissions -p / tiankafei ".*" ".*" ".*" 3.安装RabbitMQ监控管理插件进行RabbitMQ的管理 命令:#rabbitmq-plugins enable rabbitmq_management 插件rabbitmq_management启动成功后就可以通过web页面进行RabbitMQ的监控和管理 4.使用rabbitmq_management插件进行监控和管理 使用firefox浏览器登录:http://192.168.12.111:15672 在登录页面使用 guest/guest用户名和密码登录RabbitMQ管理系统,在系统中可以对RabbitMQ服务进行channel,queue,用户等的管理 PS

Linux环境下安装RabbitMQ

落爺英雄遲暮 提交于 2020-03-12 03:15:59
首先RabbitMQ是使用erLang编写的开源消息中间件.所以需要先安装erlang环境. 我使用的是CentOS的系统安装erlang21.0的步骤如下: #下载安装包 (下面是我用的比较匹配的版本,可以直接使用,防止出现RabbitMQ嫌弃ErLang版本太低的问题,互相不兼容的问题,喜欢的请留个赞,谢谢!) 方法一: 链接: https://pan.baidu.com/s/1pQiMMF3K1sekoPKRN_S1xw 提取码: 749j 安装方法直接解压:rpm -ivh ....XXXX.rpm.gz 如果不喜欢可以使用以下方法直接去官网下载.如果遇到不匹配的情况,可以下载多个版本试验一下 方法二: wget http://erlang.org/download/otp_src_21.0.tar.gz # 解压文件 tar -zxvf otp_src_21.0.tar.gz cd otp_src_21.0 #编译 ./otp_build autoconf ./configure make (如果执行到此报错,请往下看,解决方案) #安装 make install ***如果在make的时候报错**** Makefile:248: /usr/local/otp_src_18.1/make/x86_64-unknown-linux-gnu/otp_ded.mk: No

RabbitMQ安装配置

若如初见. 提交于 2020-03-07 13:34:14
1. 以ubuntu安装为例 # sudo apt-get install erlang-nox # sudo apt-get install rabbitmq-server 2. RabbitMQ状态管理 # sudo service rabbitmq-server start   # 启动rabbitmq服务 # sudo service rabbitmq-server stop   # 关闭rabbitmq服务 # sudo service rabbitmq-server restart # 重启rabbitmq服务 # sudo service rabbitmqctl status     # 查看rabbitmq服务状态 3.RabbitMQ可以直接使用命令行操作,也可以使用自带的web界面 # 安装启动插件 # sudo rabbitmqctl start_app # sudo rabbitmq-plugins enable rabbitmq_management 然后就可以通过http://xxx.xxx.xxx.xxx:15672访问web端了,出入用户名和密码,默认用户名密码是guest/guest。如果访问登录失败说明没有开启超级管理员登录。 创建用户: # sudo rabbitmqctl add_user admin admin1234           

Ubuntu 中 RabbitMq 的安装与运行

↘锁芯ラ 提交于 2020-03-05 18:41:51
安装RabbitMq 可以参照RabbitMq官网的安装教程(Installing on Debian and Ubuntu),来进行安装。 这里我们使用apt-get来安装,就简单的几条命令: 1.由于rabbitMq需要erlang语言的支持,在安装rabbitMq之前需要安装erlang,执行命令: sudo apt-get install erlang-nox # 安装erlang erl # 查看relang语言版本,成功执行则说明relang安装成功 2.添加公钥 wget -O- https://www.rabbitmq.com/rabbitmq-release-signing-key.asc | sudo apt-key add - 3.更新软件包 sudo apt-get update 4.安装 RabbitMQ sudo apt-get install rabbitmq-server #安装成功自动启动 5.查看 RabbitMq状态 systemctl status rabbitmq-server #Active: active (running) 说明处于运行状态 # service rabbitmq-server status 用service指令也可以查看,同systemctl指令 执行了上面的步骤,rabbitMq已经安装成功。 6.启用

qcow2快照原理

余生长醉 提交于 2020-02-26 05:30:51
关键术语: cluster 一个Qcow2 img文件由固定大小的单元组成,该单元称为cluster,默认大小为65536bytes/64K sector 数据块读写的最小单元,大小为512字节 host cluster 位于Host上qcow2 img文件的cluster管理名称 guest cluster Guest所看到的virtual disk的cluster管理名称 Qcow2 Header Qcow2 img的文件头信息,占用第一个cluster refcount Qcow2内部用于管理cluster的分配而维护的引用计数 refcount table 用于查找refcount的第一级表 refcount block 用于查找refcount的第二级表 L1 table 用于查找guest cluster到host cluster映射的第一级表 L2 table 用于查找guest cluster到host cluster映射的第二级表 IBA image block address VBA virtual block address Qcow2 Header typedef struct QCowHeader { uint32_t magic; uint32_t version; uint64_t backing_file_offset; uint32_t