拷贝

设计模式——原型模式

我的梦境 提交于 2019-12-02 22:23:44
设计模式中,单例模式应该是大家最为熟悉的了,那如果我们需要对一个对象进行多次复制的话,大家会用什么呢?这就要用到今天要讲的原型模式了。 简介 其定义为: 使用原型实例指定将要创建的对象类型,通过复制这个实例创建新的对象。 具体来说就是,通过给出一个原型对象来指明所创建的对象的类型,然后使用自身实现的克隆接口来复制这个原型对象,该模式就是用这种方式来创建出更多同类型的对象。 这样的好处是: Object 类的 clone() 方法是一个本地方法,它可以直接操作内存中的二进制流,所以性能相对 new 实例化来说,更加优秀。 一个对象通过 new 实例化创建过程为: 在内存中开辟一块空间。 在开辟的内存空间中创建对象。 调用对象的构造函数进行初始化对象。 而一个对象通过 clone() 创建过程为: 根据原对象内存大小开辟一块内存空间。 复制已有对象,克隆对象中所有属性值。 相对 new 来说,clone() 少了调用构造函数。如果构造函数中存在大量属性初始化或大对象,则使用 clone() 的复制对象的方式性能会好一些。 简单例子 让我们通过一个例子来具体了解一下: /** * 实现Cloneable 接口的原型抽象类Prototype */ public class Prototype implements Cloneable { /** * 重写 clone() 方法 */

07 深浅拷贝

匿名 (未验证) 提交于 2019-12-02 22:11:45
基础数据类型的补充 join() 把列表转化成字符串,是迭代的方式进行的拼接 lst = ["alex", "dsb", "wusir", "xsb"] # 使用前面的字符串. 对后面的列表进行拼接,拼接的结果是一个字符串 s = "_".join(lst) print(s) ###alex_dsb_wusir_xsb split() 把字符串转化成列表 lst = 'alex$dsb$wusir$xsb' s = lst.split('$') print(s) ####['alex', 'dsb', 'wusir', 'xsb'] 列表和字典都不能再循环的时候直接删除,要把删除的内容记录在新的列表中,然后在循环这个新列表,删除列表(字典) 最合理的删除方式: 1,把要删除的内容写在新列表中 2, 循环这个新列表,删除老列表 lst = ['篮球', '排球', '足球', '电子竞技', '台球'] new_lst = [] for i in lst: if '球' in i: new_lst.append(i) for i in new_lst: lst.remove(i) print(lst) 关于删除的具体的讲解 st = ["篮球", "排球" ,"足球", "电子竞技", "台球"] lst.clear() for el in lst: lst.remove(el)

python的shutil模块

匿名 (未验证) 提交于 2019-12-02 22:11:45
转自https://www.cnblogs.com/caibao666/p/6433864.html python的shutil模块 shutil:高级的 文件、文件夹、压缩包 处理模块 shutil.copyfileobj(fsrc, fdst[, length])(copyfileobj方法只会拷贝文件内容) 将文件内容拷贝到另一个文件中 import shutil shutil.copyfileobj(open('old.xml','r'), open('new.xml', 'w')) shutil.copyfile(src, dst)  (copyfile只拷贝文件内容) 拷贝文件 shutil.copyfile('f1.log', 'f2.log') shutil.copy(src, dst) shutil.copy('f1.log', 'f2.log') shutil.copy2(src, dst) 拷贝文件和状态信息 shutil.copy2('f1.log', 'f2.log' s hutil.copymode(src, dst)  (前提是dst文件存在,不然报错) 仅拷贝权限。内容、组、用户均不变 shutil.copymode('f1.log', 'f2.log') shutil.copystat(src, dst) 仅拷贝状态的信息,即文件属性,包括

CentOS配置持续集成(.net core/jenkins/rancher/docker)

匿名 (未验证) 提交于 2019-12-02 22:06:11
1、配置代理 1、 开发机开启 Shadowsocks,允许其他设备连入 2、 临时开代理命令 (根据实际修改IP和端口) export http_proxy="http:// 10.5.21.127 : 1080 " export http s _proxy="http://10.5.21.127:1080" export ftp_proxy="http://10.5.21.127:1080" 3、 测试:curl google.com 2、安装Docker 1、卸载旧版 $ sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-selinux \ docker-engine-selinux \ docker-engine 2、安装依赖包 yum install -y yum-utils \ device-mapper-persistent-data \ lvm2 3、安装repository yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos

Sqoop拷贝MySQL数据表到HDFS存储

匿名 (未验证) 提交于 2019-12-02 22:06:11
下载地址, 这里选择1.4.7版本sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz http://archive.apache.org/dist/sqoop/1.4.7/ 传输到linux中,解压缩 修改系统环境变量/etc/profile, 添加sqoop/bin, 同时确保export HADOOP_HOME 进入sqoop/ conf 目录, 修改如下文件 cp sqoop-env-template.sh sqoop-env.sh 可以修改sqoop-env.sh添加相关目录所在位置, 包括hadoop,mapreduce,hive,hdfs,zookeeper 不修改sqoop-env.sh会warning, 部分功能无法使用 拷贝mysql的jar包到sqoop/ lib 中, 实现jdbc连接mysql时需要用到 https://download.csdn.net/download/wxfghy/10476946 sqoop命令测试是否成功, 无ERROR则成功,WARING不影响使用 确保mysql可以远程连接, 防火墙等已关闭或开端口, hadoop已启动, hdfs可访问 确保hdfs上不存在目标文件夹, sqoop会自动生成文件夹, 若已存在则报错 命令如下, 参数自行修改, mysql所在IP为ghys3, 用户名密码为root,

第1章 Linux文件类基础命令

匿名 (未验证) 提交于 2019-12-02 21:59:42
Linux文件类基础命令 1.1 关于路径 Linux中分绝对路径和相对路径,绝对路径一定是从/开始写的,相对路径不从根开始写,还可能使用路径符号。 路径展开符号: cd ../.. cd - cd ~ /dir/和/dir:一般都表示dir目录和dir目录中的文件。但在有些地方会严格区分是否加尾随斜线,此时对于加了尾随斜线的表示此目录中的文件,不加尾随斜线的表示该目录本身和此目录中的文件。 切换路径用cd命令; cd /opt 显示当前所在目录用pwd命令; pwd 1.2 查看目录内容(ls和tree) ls命令列出目录中的内容,和dir命令完全等价。 tree命令按树状结构递归列出目录和子目录中的内容,而ls使用-R选项时才会递归列出。 注意:ls的结果中是以制表符分隔多个文件的。 1.2.1 ls命令 ls的各个选项说明如下: -l:(long)长格式显示,即显示属性等信息(包括mtime)。注意:显示的目录大小是节点所占大小。像win一样计算目录大小时包括文件大小要用du -sh -c:列出ctime -u:列出atime -d:(direcorty)查看目录本身属性信息,不查看目录里面的东西。不加-d会查看里面文件的信息 -a:会显示所有文件,包括两个相对路径的文件"."和".."以及以点开头的隐藏文件 -A:会列出绝大多数文件,即忽略两个相对路径的文件"."和".."

linux SCP免密传输文件

匿名 (未验证) 提交于 2019-12-02 21:59:42
1 带密码的scp传输 从client端传输文件到server端。 client端发送文件到指定ip的目录下: 输入密码后,查看server端是否接收到文件: 2 在client端生成密钥对 /usr/local/app/.ssh路径即为: ~/.ssh 3 在client端将生成的公钥拷贝到server端的~/.ssh目录下 如果~/.ssh目录不存在,则创建该目录 拷贝前只有两个文件: 拷贝文件: 拷贝后server下的文件: 最好是把id_rsa.pub拷贝到server中的目录下,再追加到authorized_keys文件中,如果只拷贝id_rsa.pub里面的内容,可能会出现拷贝多了字符或少了字符的错误,导致无法无密传输。 如果该文件夹下无authorized_keys,则创建该文件,并将刚刚传过来的id_rsa.pub添加到该文件的后面 4 检验无密传输 client无密发送文件: server端接收到的文件: 5 scp与ssh的关系 SCP是Secure Copy的简称,是用来与远程主机之间进行数据传输的协议,相当于经过加密的Copy命令。SCP数据传输使用 ssh协议,并且和ssh 使用相同的认证方式,提供相同的安全保证 。 根据实际需要,scp进行验证时会要求你输入密码或口令。 不管SCP还是SFTP, 都是SSH的功能之一 ,也都是使用SSH协议来传输文件的。

Linux 移动或复制文件(文件夹)

匿名 (未验证) 提交于 2019-12-02 21:56:30
命令格式: 补充cp该命令的各选项含义如下 a 该选项通常在拷贝目录时使用。它保留链接、文件属性,并递归地拷贝目录,其作用等于dpR选项的组合。   - d 拷贝时保留链接。   - f 删除已经存在的目标文件而不提示。   - i 和f选项相反,在覆盖目标文件之前将给出提示要求用户确认。回答y时目标文件将被覆盖,是交互式拷贝。   - p 此时cp除复制源文件的内容外,还将把其修改时间和访问权限也复制到新文件中。   - r 若给出的源文件是一目录文件,此时cp将递归复制该目录下所有的子目录和文件。此时目标文件必须为一个目录名。 复制文件夹命令截图: 查看进程可以使用TOP命令,截图如下(所有正在执行的进程都会显示出来,太多,只截取一部分): 查看文件夹复制了多少: du -h --max-depth=1 /Public 截图如下: 来源:51CTO 作者: lkasdw 链接:https://blog.51cto.com/14509994/2434355

目录,命令

匿名 (未验证) 提交于 2019-12-02 21:56:30
Ŀ¼ 在每个目录下, 都会固定存在两个特殊目录, 分别是.和..的目录。 一个点代表的是当前目录, 两个点代表的是当前目录的上层目录。 注意: 在Linux下所有以点开始的文件都是"隐藏文件", 对于这类文件, 只使用命令ls -l是看不到的, 必 须要使用ls -la才可以看到,如下所示: Linux系统采用了目录树的文件组织结构, 在Linux下每个目录或文件都可以从根目录处开始寻找, 比如: /usr/bin目录。 这种从根目录开始的全路径被称为"绝对路径", 绝对路径一定是以 “/” 开头的。 如何确认当前所在的目录, 可以使用pwd命令查看: [root@gong ~]# cd /usr/local/ [root@ local]# pwd /usr/local 相对路径, 不以“/”开头的路径 相对路径 [root@gong usr]# cd ./local/ [root@gong /etc/sysconfig]# cd ../ssh/ [root@gong /etc/ssh]# cd ../../bin [root@gong ~]# useradd oldboy [root@gong ~]# ls /home/oldboy/ [root@gong ~]# ls ~/ [root@gong ~]# ls ~/file1 [root@gong ~]# ls ~/zls