为什么我的expect脚本运行速度这么慢...... [问题点数:20分]

Bbs1
本版专家分:0
结帖率 96.15%
Bbs9
本版专家分:55334
Blank
红花 2012年4月 Linux/Unix社区大版内专家分月排行榜第一
2012年3月 Linux/Unix社区大版内专家分月排行榜第一
2012年2月 Linux/Unix社区大版内专家分月排行榜第一
2012年1月 Linux/Unix社区大版内专家分月排行榜第一
2011年7月 Linux/Unix社区大版内专家分月排行榜第一
2011年6月 Linux/Unix社区大版内专家分月排行榜第一
2011年2月 Linux/Unix社区大版内专家分月排行榜第一
2011年1月 Linux/Unix社区大版内专家分月排行榜第一
Blank
黄花 2013年7月 Linux/Unix社区大版内专家分月排行榜第二
2012年6月 Linux/Unix社区大版内专家分月排行榜第二
2011年5月 Linux/Unix社区大版内专家分月排行榜第二
2011年4月 Linux/Unix社区大版内专家分月排行榜第二
2011年3月 Linux/Unix社区大版内专家分月排行榜第二
2010年10月 Linux/Unix社区大版内专家分月排行榜第二
2010年9月 Linux/Unix社区大版内专家分月排行榜第二
Blank
蓝花 2011年9月 Linux/Unix社区大版内专家分月排行榜第三
2010年12月 Linux/Unix社区大版内专家分月排行榜第三
2010年11月 Linux/Unix社区大版内专家分月排行榜第三
2010年9月 C/C++大版内专家分月排行榜第三
Bbs4
本版专家分:1621
Bbs8
本版专家分:39235
Blank
红花 2011年8月 Linux/Unix社区大版内专家分月排行榜第一
Blank
黄花 2011年1月 Linux/Unix社区大版内专家分月排行榜第二
2010年12月 Linux/Unix社区大版内专家分月排行榜第二
2010年11月 Linux/Unix社区大版内专家分月排行榜第二
Blank
蓝花 2011年11月 Linux/Unix社区大版内专家分月排行榜第三
2011年10月 Linux/Unix社区大版内专家分月排行榜第三
2011年6月 Linux/Unix社区大版内专家分月排行榜第三
2011年5月 Linux/Unix社区大版内专家分月排行榜第三
2011年4月 Linux/Unix社区大版内专家分月排行榜第三
2011年3月 Linux/Unix社区大版内专家分月排行榜第三
2011年2月 Linux/Unix社区大版内专家分月排行榜第三
2010年5月 Linux/Unix社区大版内专家分月排行榜第三
Bbs10
本版专家分:112681
Blank
进士 2010年 总版技术专家分年内排行榜第六
Blank
红花 2011年5月 Linux/Unix社区大版内专家分月排行榜第一
2011年4月 Linux/Unix社区大版内专家分月排行榜第一
2011年3月 Linux/Unix社区大版内专家分月排行榜第一
2010年12月 Linux/Unix社区大版内专家分月排行榜第一
2010年11月 Linux/Unix社区大版内专家分月排行榜第一
2010年10月 Linux/Unix社区大版内专家分月排行榜第一
2010年9月 Linux/Unix社区大版内专家分月排行榜第一
2010年8月 Linux/Unix社区大版内专家分月排行榜第一
2010年7月 Linux/Unix社区大版内专家分月排行榜第一
2010年6月 Linux/Unix社区大版内专家分月排行榜第一
2010年5月 Linux/Unix社区大版内专家分月排行榜第一
2010年4月 Linux/Unix社区大版内专家分月排行榜第一
2010年3月 Linux/Unix社区大版内专家分月排行榜第一
2010年2月 Linux/Unix社区大版内专家分月排行榜第一
2010年1月 Linux/Unix社区大版内专家分月排行榜第一
2009年10月 Linux/Unix社区大版内专家分月排行榜第一
2009年9月 Linux/Unix社区大版内专家分月排行榜第一
Blank
黄花 2011年7月 Linux/Unix社区大版内专家分月排行榜第二
2011年6月 Linux/Unix社区大版内专家分月排行榜第二
2011年2月 Linux/Unix社区大版内专家分月排行榜第二
Blank
蓝花 2011年1月 Linux/Unix社区大版内专家分月排行榜第三
2009年11月 Linux/Unix社区大版内专家分月排行榜第三
Bbs1
本版专家分:0
Bbs1
本版专家分:0
Bbs1
本版专家分:0
Java与机器交互神器插件expect

2015年我在参与一个通讯行业的DNS管理的系统,需求是从厂家的一些设备采集原始数据并分析,生成一定规则的DNS数据。 当时连接设备有SSH和Telnet两种方式。做这个系统开始时没有经验,就在网上找相关的资料,想采用JAVA代码直接实现。 SSH采用的是ganymed-ssh2-build210.jar ,Telnet采用的是ommons-net-3.3.jar包,相关的代码网上很多,这个估

expect 脚本响应的很

![图片说明](https://img-ask.csdn.net/upload/201701/14/1484399216_805977.png) ![图片说明](https://img-ask.csdn.net/upload/201701/14/1484399241_85446.png) 为什么会先输出1,2,再执行<em>expect</em> 其次在relay那里会一直等待,等待了有20分钟左右才继续执行

linux expect 自动交互 执行命令 超时 不完整 中断 解决方法

使用 expec t自动交互执行命令时,默认超时timeout为30s 手动添加set timeout -1设置 超时时间为无穷大 就可以执行完命令了 通过<em>expect</em>执行scp,传输文件不完整 写了一个<em>脚本</em>来传输文件,类似于这样: sendsystem(){ <em>expect</em> -c " spawn scp $ORACLE_BASE/oradata/$ORACLE_SID...

在Linux下灵活使用expect脚本的小窍门

对于喜爱自动化的Linux系统管理员而言,一定是用过<em>expect</em>这个命令行工具。Expect 是由 Don Libes 基于 Tcl 语言开发的,并被广泛应用于交互式操作和自动化测试的场景之中,它尤其适用于需要对多台服务器执行相同操作的环境中,可以大幅度提高系统管理人员的工作效率。本文是thegeekstuff.com最近更新的一篇技术分享文章,其中详细讲述了如何通过不同的命令行选项来执行一个ex

expect匹配不上,执行一段时间自动输出匹配的内容问题

在最前面一行设置超时时间 set timeout -1 由于timeout默认为10s,10s后会匹配打印台输出内容,若无匹配的内容则自动输出匹配的内容。 #!/usr/bin/<em>expect</em> spawn ./install.sh set timeout -1 <em>expect</em> "password:" send "123\r" 其中 install.sh为目标<em>脚本</em>,若不设置timeout 为-1

java版本的expect: 简单方式实现ssh/telnet与服务器端的交互和自动化测试

在电信领域或IP领域,我们经常要与大量机器进行批量作业。<em>expect</em>能够很好的完成这类交互工作。 比方我们要登陆testmachine,执行三条命令snmpmanagement,checkresult和pwd。<em>expect</em><em>脚本</em>可以这么写: #!/usr/bin/<em>expect</em> spawn telnet testmachine <em>expect</em> “login:” send “name\r” exp

利用expect传输命令到多台机器并执行

首先简单介绍一下<em>expect</em>:   <em>expect</em>基于Tcl语言开发,主要应用于自动化交互式操作场合,借助Expect处理交互的命令,可以将交互 过程如:ssh登录,ftp登录等写在一个<em>脚本</em>上,使之自动化完。 <em>expect</em>语法:<em>expect</em> [选项] [ -c cmds ] [ [ -[f|b] ] cmdfile ] [ args ] <em>expect</em>中常用命令: spawn:启动新的进程 send...

关于expect的问题,执行后卡住,得ctrl+c才能退出,不知道怎么回事

#!/usr/bin/<em>expect</em> spawn ssh -l root 172.25.38.239 <em>expect</em> "root's password:" send "123456\r" <em>expect</em> "

expect4j-1.0.jar 连接SSH的开发包

<em>expect</em>4j连接SSH的开发包

expect取远程执行命令结果问题

求教<em>expect</em>达人,如何将远程主机执行命令的结果赋值给变量

Expect4J1.4源码

Expect4J1.4源码

shell expect settimeout超时问题

<em>expect</em><em>脚本</em>中设置超时,比如下面的<em>脚本</em> 文件<em>expect</em>_ssh_scp.sh #!/usr/bin/<em>expect</em> #表示使用<em>expect</em>解释器 set timeout 10 #设置超时限制为10

linux expect中的timeout设定

在做日志分析工具时,发现在屏幕上拿到日志结果会有点<em>慢</em>,然后查了一下<em>expect</em> ssh timeout的设置,原来是这里有个默认时间的问题,所以整理一下 <em>expect</em><em>脚本</em>我们都知道,首先spawn我们要执行的命令,然后就给出一堆<em>expect</em>的屏幕输出,如果输出match了我们的<em>expect</em>的东西,我们就会send一个命令上去,模拟用户输入。 但是<em>expect</em>中等待命令的输出信息是有一个ti

关闭脚本运行的提示

在使用IE6进行jsperf的测试过程中,经常会弹出如下的对话框。如何不让他提示呢? ---------------------------Microsoft Internet Explorer---------------------------该页上的<em>脚本</em>造成 Internet Explorer <em>运行</em><em>速度</em>减<em>慢</em>。如果继续<em>运行</em>,您的计算机将变得更<em>慢</em>。 是否取消该<em>脚本</em>?-------------...

expect传入参数和程序执行命令不成功问题

1.<em>expect</em> 关键字 send: 向进程发送字符串,用于模拟用户的输入。注意一定要加\r回车 <em>expect</em>: 从进程接收字符串 spawn: 启动进程(由spawn启动的进程的输出可以被<em>expect</em>所捕获) interact: 用户交互 2.如何向<em>expect</em><em>脚本</em>传入参数 set &lt;变量名称&gt; [lindex $argv &lt;param index&gt;] 注意下标从0...

spring boot启动较

1.linux启动spring boot时发现启动较<em>慢</em>,日志如下: 2019-09-20 11:24:04.838 INFO [localhost-startStop-1] [org.apache.juli.logging.DirectJDKLog.java:179] - Creation of SecureRandom instance for session ID generation u...

expect4j.jar 1.0

A powerful feature of Tcl has always been its integration with the Expect library (http://<em>expect</em>.nis

Linux expect 用法

<em>expect</em>是建立在tcl基础上的一个工具,它用来让一些需要交互的任务自动化地完成。因为<em>expect</em>是基于tcl的,所以需要你的系统中安装有tcl如何检查?[root@dev ~]# whereis tcltcl: /usr/lib/tcl8.4 /usr/share/tcl8.4如果看不到结果,请先安装tcl 安装 &gt; 安装tcl解压tcl安装包...

jsch的问题

本来用ant通过jsch连接一部机器一切正常 但是 改了第二台服务器的属性之后 就一直报这个错 com.jcraft.jsch.JSchException: SSH_MSG_DISCONNECT: 2

请问一下java 调用shell上传linux的问题

package com.wfj.cms.util; import java.io.IOException; import java.util.ArrayList; import java.util.Hashtable; import java.util.List; import org.apache.log4j.Logger; import org.apache.oro.text.regex.MalformedPatternException; import com.jcraft.jsch.ChannelShell; import com.jcraft.jsch.JSch; import com.jcraft.jsch.Session; import com.jcraft.jsch.UserInfo; import <em>expect</em>4j.Closure; import <em>expect</em>4j.Expect4j; import <em>expect</em>4j.ExpectState; import <em>expect</em>4j.matches.EofMatch; import <em>expect</em>4j.matches.Match; import <em>expect</em>4j.matches.RegExpMatch; import <em>expect</em>4j.matches.TimeoutMatch; public class Shell { private static Logger log = Logger.getLogger(Shell.class); private Session session; private ChannelShell channel; private static Expect4j <em>expect</em> = null; private static final long defaultTimeOut = 1000; private StringBuffer buffer=new StringBuffer(); public static final int COMMAND_EXECUTION_SUCCESS_OPCODE = -2; public static final String BACKSLASH_R = "\r"; public static final String BACKSLASH_N = "\n"; public static final String COLON_CHAR = ":"; public static String ENTER_CHARACTER = BACKSLASH_R; public static final int SSH_PORT = 22; //正则匹配,用于处理服务器返回的结果 public static String[] linuxPromptRegEx = new String[] { "~]#", "~#", "#", ":~#", "/$", ">" }; public static String[] errorMsg=new String[]{"could not acquire the config lock "}; //ssh服务器的ip地址 private String ip; //ssh服务器的登入端口 private int port; //ssh服务器的登入用户名 private String user; //ssh服务器的登入密码 private String password; public Shell(String ip,int port,String user,String password) { this.ip=ip; this.port=port; this.user=user; this.password=password; <em>expect</em> = getExpect(); } /** * 关闭SSH远程连接 */ public void disconnect(){ if(channel!=null){ channel.disconnect(); } if(session!=null){ session.disconnect(); } } /** * 获取服务器返回的信息 * @return 服务端的执行结果 */ public String getResponse(){ return buffer.toString(); } //获得Expect4j对象,该对用可以往SSH发送命令请求 private Expect4j getExpect() { try { log.debug(String.format("Start logging to %s@%s:%s",user,ip,port)); JSch jsch = new JSch(); session = jsch.getSession(user, ip, port); session.setPassword(password); Hashtable config = new Hashtable(); config.put("StrictHostKeyChecking", "no"); session.setConfig(config); localUserInfo ui = new localUserInfo(); session.setUserInfo(ui); session.connect(); channel = (ChannelShell) session.openChannel("shell"); Expect4j <em>expect</em> = new Expect4j(channel.getInputStream(), channel .getOutputStream()); channel.connect(); log.debug(String.format("Logging to %s@%s:%s successfully!",user,ip,port)); return <em>expect</em>; } catch (Exception ex) { log.error("Connect to "+ip+":"+port+"failed,please check your username and password!"); ex.printStackTrace(); } return null; } /** * 执行配置命令 * @param commands 要执行的命令,为字符数组 * @return 执行是否成功 */ public boolean executeCommands(String[] commands) { //如果<em>expect</em>返回为0,说明登入没有成功 if(<em>expect</em>==null){ return false; } log.debug("----------Running commands are listed as follows:----------"); for(String command:commands){ log.debug(command); } log.debug("----------End----------"); Closure closure = new Closure() { public void run(ExpectState <em>expect</em>State) throws Exception { buffer.append(<em>expect</em>State.getBuffer());// buffer is string // buffer for appending // output of executed // command <em>expect</em>State.exp_continue(); } }; List lstPattern = new ArrayList(); String[] regEx = linuxPromptRegEx; if (regEx != null && regEx.length > 0) { synchronized (regEx) { for (String regexElement : regEx) { try { RegExpMatch mat = new RegExpMatch(regexElement, closure); lstPattern.add(mat); } catch (MalformedPatternException e) { return false; } catch (Exception e) { return false; } } lstPattern.add(new EofMatch(new Closure() { // should cause // entire page to be // collected public void run(ExpectState state) { } })); lstPattern.add(new TimeoutMatch(defaultTimeOut, new Closure() { public void run(ExpectState state) { } })); } } try { boolean isSuccess = true; for (String strCmd : commands){ isSuccess = isSuccess(lstPattern, strCmd); } //防止最后一个命令执行不了 isSuccess = !checkResult(<em>expect</em>.<em>expect</em>(lstPattern)); //找不到错误信息标示成功 String response=buffer.toString().toLowerCase(); for(String msg:errorMsg){ if(response.indexOf(msg)>-1){ return false; } } return isSuccess; } catch (Exception ex) { ex.printStackTrace(); return false; } } //检查执行是否成功 private boolean isSuccess(List objPattern, String strCommandPattern) { try { int result = <em>expect</em>.<em>expect</em>(objPattern); boolean isFailed = checkResult(result); if (!isFailed) { <em>expect</em>.send(strCommandPattern); <em>expect</em>.send("\r"); return true; } return false; } catch (MalformedPatternException ex) { return false; } catch (Exception ex) { return false; } } //检查执行返回的状态 private boolean checkResult(int intRetVal) { if (intRetVal == COMMAND_EXECUTION_SUCCESS_OPCODE) { return true; } return false; } //登入SSH时的控制信息 //设置不提示输入密码、不显示登入信息等 public static class localUserInfo implements UserInfo { String passwd; public String getPassword() { return passwd; } public boolean promptYesNo(String str) { return true; } public String getPassphrase() { return null; } public boolean promptPassphrase(String message) { return true; } public boolean promptPassword(String message) { return true; } public void showMessage(String message) { } } public static void main(String[] orgs) throws IOException, InterruptedException{ String ip = "10.6.1.64"; int port = 22; String user ="tomcat"; String password = "123456"; String cmd[] = {" cd /usr","ls -ls"}; String command = "/home/tomcat"; Shell ssh = new Shell(ip,port,user,password); ssh.executeCommands(cmd); System.out.println(ssh.getResponse()); ssh.disconnect(); } } 最近要做一个sell上传jar包到linux上的程序, 大致的需求是.. 将本地(部署在linux服务器上的系统)的文件上传到一组linux服务器上,(多台服务器) 服务器文件路径都是一样的。 但是要用java写, 以前没弄过关于java 调用shell的。 就从网上找到以上代码,但是新的问题又来了, 不熟悉sell命令。 只会一点简单的。从一台服务器上发布到多台服务器(一台一台的上传) 求大神指点迷津。 小弟谦虚好学。 QQ599159992

Expect 教程

 原贴地址:http://blog.chinaunix.net/u/12973/showart_349128.html

expect set timeout -1 永不超时

. ~/.bash_profile passwd='xxx' <em>expect</em> <<! set timeout -1 spawn rsync -avH /webapps/Seeyon/A8/base/upload/ root@120.26.93.217:/webapps/Seeyon/A8/base/upload/ <em>expect</em> { "(yes/no)?" { send "

expect4j-1.0.jar

<em>expect</em>4j jar

Expect用法浅谈

1. Expect基础语法解释 1.1 cmd arg1 arg2 arg3             一条Tcl命令由空格分割的单词组成. 其中, 第一个单词是命令名称, 其余的是命令参数 .   1.2 $myVar  $符号代表变量的值. 在本例中, 变量名称是myVar.   1.3 [cmd arg]  ​       方括号执行了一个嵌套命令. 例如, 如果你想传递一个命令的结

java连接SSH服务器并执行shell命令

package com.flyingzl.ssh;import java.util.ArrayList import java.util.Hashtable import java.util.List import org.apache.log4j.Logger import org.apache.oro.text.regex.MalformedPatternException impo

Opensolaris: expect用法小结

<em>expect</em>是基于tcl演变而来的,很多语法和tcl类似,基本的语法见如下示例: #!/usr/tcl/bin/<em>expect</em> -f #page_autofiler_cifs_mount.exp mount_name remote_host remote_name user_n

在中国程序员是青春饭吗?

今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...

程序员请照顾好自己,周末病魔差点一套带走我。

程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。

C++(数据结构与算法)78:---分而治之

一、分而治之的思想 分而治之方法与软件设计的模块化方法非常相似 分而治之通常不用于解决问题的小实例,而要解决一个问题的大实例。一般步骤为: ①把一个大实例分为两个或多个更小的实例 ②分别解决每个小实例 ③把这些小实例的解组合成原始大实例的解 二、实际应用之找出假币 问题描述 一个袋子有16个硬币,其中只有一个是假币,这个假币比其他的真币重量轻(其他所有真币的重量都是相同的)...

springboot+jwt实现token登陆权限认证

一 前言 此篇文章的内容也是学习不久,终于到周末有时间码一篇文章分享知识追寻者的粉丝们,学完本篇文章,读者将对token类的登陆认证流程有个全面的了解,可以动态搭建自己的登陆认证过程;对小项目而已是个轻量级的认证机制,符合开发需求;更多精彩原创内容关注公主号知识追寻者,读者的肯定,就是对作者的创作的最大支持; 二 jwt实现登陆认证流程 用户使用账号和面发出post请求 服务器接受到请求后使用私...

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

win10暴力查看wifi密码

刚才邻居打了个电话说:喂小灰,你家wifi的密码是多少,我怎么连不上了。 我。。。 我也忘了哎,就找到了一个好办法,分享给大家: 第一种情况:已经连接上的wifi,怎么知道密码? 打开:控制面板\网络和 Internet\网络连接 然后右击wifi连接的无线网卡,选择状态 然后像下图一样: 第二种情况:前提是我不知道啊,但是我以前知道密码。 此时可以利用dos命令了 1、利用netsh wlan...

女程序员,为什么比男程序员少???

昨天看到一档综艺节目,讨论了两个话题:(1)中国学生的数学成绩,平均下来看,会比国外好?为什么?(2)男生的数学成绩,平均下来看,会比女生好?为什么?同时,我又联想到了一个技术圈经常讨...

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

MySQL数据库面试题(2020最新版)

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

如果你是老板,你会不会踢了这样的员工?

有个好朋友ZS,是技术总监,昨天问我:“有一个老下属,跟了我很多年,做事勤勤恳恳,主动性也很好。但随着公司的发展,他的进步<em>速度</em>,跟不上团队的步伐了,有点...

我入职阿里后,才知道原来简历这么写

私下里,有不少读者问我:“二哥,如何才能写出一份专业的技术简历呢?我总感觉自己写的简历太烂了,所以投了无数份,都石沉大海了。”说实话,我自己好多年没有写过简历了,但我认识的一个同行,他在阿里,给我说了一些他当年写简历的方法论,我感觉太牛逼了,实在是忍不住,就分享了出来,希望能够帮助到你。 01、简历的本质 作为简历的撰写者,你必须要搞清楚一点,简历的本质是什么,它就是为了来销售你的价值主张的。往深...

程序员写出这样的代码,能不挨骂吗?

当你换槽填坑时,面对一个新的环境。能够快速熟练,上手实现业务需求是关键。但是,哪些因素会影响你快速上手呢?是原有代码写的不够好?还是注释写的不够好?昨夜...

带了6个月的徒弟当了面试官,而身为高级工程师的我天天修Bug......

即将毕业的应届毕业生一枚,现在只拿到了两家offer,但最近听到一些消息,其中一个offer,我这个组据说客户很少,很有可能整组被裁掉。 想问大家: 如果我刚入职这个组就被裁了怎么办呢? 大家都是什么时候知道自己要被裁了的? 面试软技能指导: BQ/Project/Resume 试听内容: 除了刷题,还有哪些技能是拿到offer不可或缺的要素 如何提升面试软实力:简历, 行为面试,沟通能...

优雅的替换if-else语句

场景 日常开发,if-else语句写的不少吧??当逻辑分支非常多的时候,if-else套了一层又一层,虽然业务功能倒是实现了,但是看起来是真的很不优雅,尤其是对于我这种有强迫症的程序"猿",看到这么多if-else,脑袋瓜子就嗡嗡的,总想着解锁新姿势:干掉过多的if-else!!!本文将介绍三板斧手段: 优先判断条件,条件不满足的,逻辑及时中断返回; 采用策略模式+工厂模式; 结合注解,锦...

!大部分程序员只会写3年代码

如果世界上都是这种不思进取的软件公司,那别说大部分程序员只会写 3 年代码,恐怕就没有程序员这种职业。

离职半年了,老东家又发 offer,回不回?

有小伙伴问松哥这个问题,他在上海某公司,在离职了几个月后,前公司的领导联系到他,希望他能够返聘回去,他很纠结要不要回去? 俗话说好马不吃回头草,但是这个小伙伴既然感到纠结了,我觉得至少说明了两个问题:1.曾经的公司还不错;2.现在的日子也不是很如意。否则应该就不会纠结了。 老实说,松哥之前也有过类似的经历,今天就来和小伙伴们聊聊回头草到底吃不吃。 首先一个基本观点,就是离职了也没必要和老东家弄的苦...

2020阿里全球数学大赛:3万名高手、4道题、2天2夜未交卷

阿里巴巴全球数学竞赛( Alibaba Global Mathematics Competition)由马云发起,由中国科学技术协会、阿里巴巴基金会、阿里巴巴达摩院共同举办。大赛不设报名门槛,全世界爱好数学的人都可参与,不论是否出身数学专业、是否投身数学研究。 2020年阿里巴巴达摩院邀请北京大学、剑桥大学、浙江大学等高校的顶尖数学教师组建了出题组。中科院院士、美国艺术与科学院院士、北京国际数学...

为什么你不想学习?只想玩?人是如何一步一步废掉的

不知道是不是只有我这样子,还是你们也有过类似的经历。 上学的时候总有很多光辉历史,学年名列前茅,或者单科目大佬,但是虽然<em>慢</em><em>慢</em>地长大了,你开始懈怠了,开始废掉了。。。 什么?你说不知道具体的情况是怎么样的? 我来告诉你: 你常常潜意识里或者心理觉得,自己真正的生活或者奋斗还没有开始。总是幻想着自己还拥有大把时间,还有无限的可能,自己还能逆风翻盘,只不是自己还没开始罢了,自己以后肯定会变得特别厉害...

男生更看重女生的身材脸蛋,还是思想?

往往,我们看不进去大段大段的逻辑。深刻的哲理,往往短而精悍,一阵见血。问:产品经理挺漂亮的,有点心动,但不知道合不合得来。男生更看重女生的身材脸蛋,还是...

为什么程序员做外包会被瞧不起?

二哥,有个事想询问下您的意见,您觉得应届生值得去外包吗?公司虽然挺大的,中xx,但待遇感觉挺低,马上要报到,挺纠结的。

当HR压你价,说你只值7K,你该怎么回答?

当HR压你价,说你只值7K时,你可以流畅地回答,记住,是流畅,不能犹豫。 礼貌地说:“7K是吗?了解了。嗯~其实我对贵司的面试官印象很好。只不过,现在我的手头上已经有一份11K的offer。来面试,主要也是自己对贵司挺有兴趣的,所以过来看看……”(未完) 这段话主要是陪HR互诈的同时,从公司兴趣,公司职员印象上,都给予对方正面的肯定,既能提升HR的好感度,又能让谈判气氛融洽,为后面的发挥留足空间。...

面试:第十六章:Java中级开发

HashMap底层实现原理,红黑树,B+树,B树的结构原理 Spring的AOP和IOC是什么?它们常见的使用场景有哪些?Spring事务,事务的属性,传播行为,数据库隔离级别 Spring和SpringMVC,MyBatis以及SpringBoot的注解分别有哪些?SpringMVC的工作原理,SpringBoot框架的优点,MyBatis框架的优点 SpringCould组件有哪些,他们...

早上躺尸,晚上干活:硅谷科技公司这么流行迟到?

硅谷科技公司上班时间OPEN早已不是什么新鲜事,早九晚五是常态,但有很多企业由于不打卡,员工们10点、11点才“姗姗来迟”的情况也屡见不鲜。 这种灵活的考勤制度为人羡慕,甚至近年来,国内某些互联网企业也纷纷效仿。不过,硅谷普遍弹性的上班制度是怎么由来的呢?这种“流行性迟到”真的有那么轻松、悠哉吗? 《动态规划专题班》 课程试听内容: 动态规划的解题要领 动态规划三大类 求最值/计数/可行性 常...

面试阿里p7,被按在地上摩擦,鬼知道我经历了什么?

面试阿里p7被问到的问题(当时我只知道第一个):@Conditional是做什么的?@Conditional多个条件是什么逻辑关系?条件判断在什么时候执...

Python爬虫,高清美图我全都要(彼岸桌面壁纸)

爬取彼岸桌面网站较为简单,用到了requests、lxml、Beautiful Soup4

无代码时代来临,程序员如何保住饭碗?

编程语言层出不穷,从最初的机器语言到如今2500种以上的高级语言,程序员们大呼“学到头秃”。程序员一边面临编程语言不断推陈出新,一边面临由于许多代码已存在,程序员编写新应用程序时存在重复“搬砖”的现象。 无代码/低代码编程应运而生。无代码/低代码是一种创建应用的方法,它可以让开发者使用最少的编码知识来快速开发应用程序。开发者通过图形界面中,可视化建模来组装和配置应用程序。这样一来,开发者直...

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

大三实习生,字节跳动面经分享,已拿Offer

说实话,自己的算法,我一个不会,太难了吧

程序员垃圾简历长什么样?

已经连续五年参加大厂校招、社招的技术面试工作,简历看的不下于万份 这篇文章会用实例告诉你,什么是差的程序员简历! 疫情快要结束了,各个公司也都开始春招了,作为即将红遍大江南北的新晋UP主,那当然要为小伙伴们做点事(手动狗头)。 就在公众号里公开征简历,义务帮大家看,并一一点评。《启舰:春招在即,义务帮大家看看简历吧》 一石激起千层浪,三天收到两百多封简历。 花光了两个星期的所有空闲时...

Java岗开发3年,公司临时抽查算法,离职后这几题我记一辈子

前几天我们公司做了一件蠢事,非常非常愚蠢的事情。我原以为从学校出来之后,除了找工作有测试外,不会有任何与考试有关的事儿。 但是,天有不测风云,公司技术总监、人事总监两位大佬突然降临到我们事业线,叫上我老大,给我们组织了一场别开生面的“考试”。 那是一个风和日丽的下午,我翘着二郎腿,左手端着一杯卡布奇诺,右手抓着我的罗技鼠标,滚动着轮轴,穿梭在头条热点之间。 “淡黄的长裙~蓬松的头发...

大牛都会用的IDEA调试技巧!!!

导读 前天面试了一个985高校的实习生,问了他平时用什么开发工具,他想也没想的说IDEA,于是我抛砖引玉的问了一下IDEA的调试用过吧,你说说怎么设置断点...

都前后端分离了,咱就别做页面跳转了!统统 JSON 交互

文章目录1. 无状态登录1.1 什么是有状态1.2 什么是无状态1.3 如何实现无状态1.4 各自优缺点2. 登录交互2.1 前后端分离的数据交互2.2 登录成功2.3 登录失败3. 未认证处理方案4. 注销登录 这是本系列的第四篇,有小伙伴找不到之前文章,松哥给大家列一个索引出来: 挖一个大坑,Spring Security 开搞! 松哥手把手带你入门 Spring Security,别再问密...

面试官:你连SSO都不懂,就别来面试了

大厂竟然要考我SSO,卧槽。

终于,月薪过5万了!

来看几个问题想不想月薪超过5万?想不想进入公司架构组?想不想成为项目组的负责人?想不想成为spring的高手,超越99%的对手?那么本文内容是你必须要掌握的。本文主要详解bean的生命...

自从喜欢上了B站这12个UP主,我越来越觉得自己是个废柴了!

不怕告诉你,我自从喜欢上了这12个UP主,哔哩哔哩成为了我手机上最耗电的软件,几乎每天都会看,可是吧,看的越多,我就越觉得自己是个废柴,唉,老天不公啊,不信你看看…… 间接性踌躇满志,持续性混吃等死,都是因为你们……但是,自己的学习力在<em>慢</em><em>慢</em>变强,这是不容忽视的,推荐给你们! 都说B站是个宝,可是有人不会挖啊,没事,今天咱挖好的送你一箩筐,首先啊,我在B站上最喜欢看这个家伙的视频了,为啥 ,咱撇...

代码注释如此沙雕,会玩还是你们程序员!

某站后端代码被“开源”,同时刷遍全网的,还有代码里的那些神注释。 我们这才知道,原来程序员个个都是段子手;这么多年来,我们也走过了他们的无数套路… 首先,产品经理,是永远永远吐槽不完的!网友的评论也非常扎心,说看这些代码就像在阅读程序员的日记,每一页都写满了对产品经理的恨。 然后,也要发出直击灵魂的质问:你是尊贵的付费大会员吗? 这不禁让人想起之前某音乐app的穷逼Vip,果然,穷逼在哪里都是...

前端还能这么玩?(女朋友生日,用前端写了一个好玩的送给了她,高兴坏了)

前端还能这么玩?(女朋友生日,用前端写了一个好玩的送给了她,高兴坏了)

爬虫(101)爬点重口味的

小弟最近在学校无聊的很哪,浏览网页突然看到一张图片,都快流鼻血。。。然后小弟冥思苦想,得干一点有趣的事情python 爬虫库安装https://s.taobao.com/api?_ks...

在拼多多上班,是一种什么样的体验?我心态崩了呀!

之前有很多读者咨询我:武哥,在拼多多上班是一种什么样的体验?由于一直很忙,没抽出时间来和大家分享。上周末特地花点时间来写了一篇文章,跟大家分享一下拼多多的日常。 1. 倒时差的作息 可能很多小伙伴都听说了,拼多多加班很严重。这怎么说呢?作息上确实和其他公司有点区别,大家知道 996,那么自然也就能理解拼多多的“11 11 6”了。 所以当很多小伙伴早上出门时,他们是这样的: 我们是这样的: 当...

应聘3万的职位,有必要这么刁难我么。。。沙雕。。。

又一次被面试官带到坑里面了。面试官:springmvc用过么?我:用过啊,经常用呢面试官:springmvc中为什么需要用父子容器?我:嗯。。。没听明白你说的什么。面试官:就是contr...

太狠了,疫情期间面试,一个问题砍了我5000!

疫情期间找工作确实有点难度,想拿到满意的薪资,确实要点实力啊!面试官:Spring中的@Value用过么,介绍一下我:@Value可以标注在字段上面,可以将外部配置文件中的数据,比如可以...

从联想昭阳到MacBook Pro,致我的那些败家玩意——电脑

对于程序员来说,你懂的,电脑就是我们的女朋友,在很多层面上,它都是,打游戏、敲代码,以及看影片。 我第一台电脑是联想的笔记本(昭阳系列),花了 4000 多块买的。 那时候,家里很是缺钱,4000 多块可不是小数目。后来听父母说是他们忙活了两个多月,摘辣椒卖的钱。这还没算上插苗浇水除草的人力成本。可惜这台笔记本被偷了——小偷真特么无情,我真特么败家。 这台笔记本陪伴我的时间非常短暂,也就是从洛阳...

自学编程的 6 个致命误区

嗨,小伙伴们大家好,我是沉默王二。本篇文章来和大家聊聊自学编程中的一些误区——这是我在 B 站上看了羊哥的一期视频后有感而发的文章。因为确实有很多读者也曾私信问过我这些方面的问题,很有代表性,所以我就结合自己的亲身体会来谈一谈,希望对小伙伴们有所启发。 01、追求时髦 所谓基础不牢,地动山摇啊。可很多小伙伴压根就没注意过这个问题,市面上出什么新鲜的技术就想去尝试,结果把自己学的乱七八糟,心灰意冷...

小姐姐手机被偷后发朋友圈,结果…

事情的经过是这样的前些天上午,我正在开心的刷朋友圈看到了我们公司的HR小姐姐悲伤地宣布她的手机被偷了作为吃瓜同事我也没太在意继续愉快的刷朋友圈直到晚上小姐姐又更新了一条朋友圈不对啊瓜再这...

你离黑客的距离,就差这20个神器了

郑重声明:本文仅限技术交流,不得用于从事非法活动 在不少电影电视剧中,主角的身边都有这么一位电脑高手:他们分分钟可以黑进反派的网络,攻破安全防线,破解口令密码,拿到重要文件。他们的电脑屏幕上都是一些看不懂的图形和数字,你能看懂的就只有那个进度条,伴随着紧张的BGM,<em>慢</em><em>慢</em>的向100%靠近······ 上面的场景和套路是不是很眼熟? 影视作品中的黑客当然有夸张和戏剧化的表现,不过,现实世界中的黑客也...

2020年5月中国编程语言排行榜

编程语言比例 排名 编程语言 平均工资 工资中位数 最低工资 最高工资 人头 人头百分比 1 scala 20165 18000 7000 45000 3309 0.71% 2 rust 19364 17500 5398 43687 483 0.10% 3 python 18622 17500 6500 45000 36531 7.81% 4 julia 18455 ...

大海啊,夏天啊,全是腿啊,python带你爬取长腿妹子图

知乎还是很友好的 总体来说没啥难度 简单说下思路 1.评论是动态加载的 直接找json接口 2.分析接口参数,我测试的时候一次最多能拿20条数据(不过我还是一条一条拿的) 3.循环发送请求,其实可以先把评论数抓下来再for range 我只是比较懒(。・ω・。) 4.有的评论没图片,简单try一下或者if处理 首先需要引入爬虫库 import requests from bs4 import Be...

【相亲】95年高颜值妹子,喜欢上进的男生

颜值有点高,条件有点好

Mysql教程(十四)---窗口函数

目录 1、MySQL窗口函数简介 2、窗口函数如何使用 3、序号函数操作 1、MySQL窗口函数简介 &nbsp; &nbsp; &nbsp; &nbsp;MySQL从8.0开始支持窗口函数,这个功能在大多商业数据库和部分开源数据库中早已支持,有的也叫分析函数。 1)什么叫窗口? &nbsp; &nbsp; &nbsp; &nbsp;窗口函数也就是OLAP,拼写:online analytica...

你怎么看欧阳娜娜空降阿里p8?

前段时间 欧阳娜娜空降阿里P8被骂上热搜 有网友调侃道: 名牌大学毕业的研究生 要在阿里没日没夜、加班加点、 全年无休奋斗5年,才可能有机会 和20岁的欧阳娜娜一起喝下午茶…… 本来嘛,大厂✖明星的营销无可厚非 那是什么让撸代码N年的程序员愤愤不平呢? 还不是因为升到P8真的太难了! 这是很多阿里人甚至互联网人遥不可及的梦想! 阿里P8到底有多牛? 根据知乎大V@半佛仙人透露的情况: 阿里P8基本上要求研究生 5 年以上经验,本科 7 年以上经验; P8 一般去小公司就是各种 O,一般公司(非国企、.

面了个35的程序员,让我莫名的慌了。。。

月底免费送书活动,这两天是最后的机会,大家尽快参与!面试官:看你是85年的我:嗯,35了面试官:那应该经验很丰富了,那我们来聊聊spring吧我:好,这块我用了10几年了,你随便问吧面试...

被裁员了,哎

在一个阳光明媚的下午,突然接到被裁员的通知。 人事告诉我,因为疫情关系,公司也是没办法,两个选择一个降薪一个裁员。当时心里就想降薪不就是变相裁员吗,那我还是识趣的走吧。不过没有裁员补贴,没有想象中的n+1,好心伤。看来有能力的朋友们还是要去大厂工作的,至少被裁了也有丰厚的补贴啊,呜呜呜呜呜呜............. 作为一个咸鱼一样的女程序员,突然感到很迷茫,我是要在软件开发行业继续走下去,还是要转行另谋钱途呢,这个困扰让我不能静心做接下来的守卫工作,那就写点什么吧。 程序员要经常学习新得技术,嗯,这

谈谈Spring中的对象跟Bean,你知道Spring怎么创建对象的吗?

本系列文章: 读源码,我们可以从第一行读起 你知道Spring是怎么解析配置类的吗? 配置类为什么要添加@Configuration注解? 推荐阅读: Spring官网阅读 | 总结篇 Spring杂谈 本系列文章将会带你一行行的将Spring的源码吃透,推荐阅读的文章是阅读源码的基础! 文章目录两个问题1、在Spring中,什么是Bean?跟对象有什么区别?2、在创建对象前,Spring还做

python实用的几个脚本程序(自己在用)

文章目录一、简介二、 重点1. 数据集划分训练集与测试集1.1 数据集为视频帧文件夹(文件夹划分)1.2 数据集为视频文件(文件划分)2. label的重建2.1 原label读取2.2 新label的建立 一、简介 本文主要是自己近期在做毕业设计(连续手语识别)时候写的几个python<em>脚本</em>,用于处理数据集的。记录一下。 二、 重点 本文撰写采用Windows操作系统,如果是Linux记得修改字符串分割方式及目录层数多加一层。 1. 数据集划分训练集与测试集 1.1 数据集为视频帧文件夹(文件夹划分) tr

在滴滴和字节跳动干了 2 年后端开发,太真实…

先简单交代一下背景吧,某不知名985的本硕,17年毕业加入滴滴,之后跳槽到了头条,一直从事后端研发相关的工作。之前没有实习经历,算是两年半的工作经验吧。 这两年半之间完成了一次晋升,换了一家公司,有过开心满足的时光,也有过迷茫挣扎的日子,不过还算顺利地从一只职场小菜鸟转变为了一名资深划水员。 在这个过程中,总结出了一些还算实用的划水经验,有些是自己领悟到的,有些是跟别人交流学到的,在这里跟大家

boss说了:有谁要再用double定义商品金额,就自己收拾家伙走

先看现象 涉及诸如float或者double这两种浮点型数据的处理时,偶尔总会有一些怪怪的现象,不知道大家注意过没,举几个常见的例子: 典型现象(一):条件判断超预期 System.out.println(1f==0.9999999f);//打印:false System.out.println(1f==0.99999999f);//打印:true 纳尼? 典型现象(二):数据转换超预期 floatf=1.1f; doubled=...

女朋友要我教她CSS,我就写了这一篇长文,感动哭了?

女朋友她又要我教她CSS,这4w字长文够了吗?她会被感动到吗?

程序员为什么技术这么厉害,赚得钱却不多?

张总有两个事很纳闷,来找我倾诉,事情大概是这样的: 他和李四是几年前在一线互联网公司的同事,李四这个人能力一般,只会按领导安排来做事,做人倒还不错,自己跟他的关系也还可以,不过有时还蛮鄙视他的。自己就不一样了,技术甩他八条街都不止,项目遇到的难题都是自己解决的,别人只要有技术上的问题找自己,都能解决,走路都是带风的。 后来有猎头挖他到一家创业公司,薪资涨了近一倍,心里高兴的不得了。上班几个月,又有猎头挖他,薪资和职位都不错,就又换了份工作,称呼也从“张工”变成“张总”。后来这家创业公司倒..

刚去面试现场聊了一个多小时的Redis ,悄悄分享给大家!

Redis作为目前的主流NoSql数据库,不会是不可能的,在面试中也是非常高频的,一定不能在这个环节丢分,不管是学习,还是面试,以下知识点,都有必要掌握。博主会持续不断地来更新,希望大家可以支持我。 1.Redis是什么? Redis是一个开放源代码(BSD许可)的内存中数据结构存储,可用作数据库,缓存和消息代理,是一个基于键值对的NoSQl数据库。 2.Redis特性? <em>速度</em>快 基于键值对的数据结构服务器 丰富的功能、丰富的数据结构 简单稳定 客户端语言多 持久化 主从复制 高可以 &amp; 分布.

2020年了,前端还有的搞么?要怎么学?

前言 首先简单介绍下自己,目前七年前端实际项目经验,有一线大厂经验,也去过国外。算的上是前端老鸟了,这篇文章是个人的经验和心得,不吹不黑,中肯的态度来说,希望能够帮到大家。 都2020年了,我现在学前端还来的及么? 这是很多前端新人经常问我的一个问题,有学弟学妹,也有想转行的朋友。 我的意识里,“大前端时代”是从15年年底开始的,这一年Vue等三大框架开始在一线<em>慢</em><em>慢</em>被使用起来,到17年大火,甚至于你不会框架都找不到工作。 从前端...

SpringBoot + Vue + Electron 开发 QQ 版聊天工具

一、简介 这是一款基于 JS 实现的超轻量级桌面版聊天软件。主要适用于私有云项目内部聊天,企业内部管理通讯等功能,主要通讯协议websocket。也支持web网页聊天实现。文字聊天,互传文件,离线消息,群聊,断线重连等功能。 先看一下效果,下图左边是web版,右边为PC版。 二、本地搭建 2.1 技术栈 后端技术栈: springboot: 让开发人员快速开发的一款Java的微服务框架。 tio: 是百万级网络框架 oauth2.0: OAuth 2.0 是一个行业的标准授权协议。OAuth 2..

你真的会用ArrayList的subList方法吗?

导语 在日常的开发中通常会遇到截取List的情况,而大多数会选择使用subList方法进行截取,但是好多人对这个方法的理解都只是停留在使用层面上?这篇文章会非常详细达到源码级别的讲解sublList方法,需要的朋友赶紧收藏起来吧。 关于SubList 先通过下面这个例子,看看具体的返回类型: public class TestSubList { public static void main(String[] args) { ArrayList&lt;String&gt; list

2020年,令人惊叹的Echarts!

&nbsp;&nbsp;&nbsp;&nbsp;马上要毕业了,楼主也是一个弟弟,一直在苦苦的寻求一份工作,一直在刷和做公司给的面试题,就在前天一个前端岗位给我出了一题,我靠!利用bootstrap和echarts画出他给的图,楼主虽然以前也学习过echarts,但还是一时间懵逼,所以特意去复习总结了一遍希望对大家有所帮助! 废话不多说先上效果图 看完效果图,我在给大家详细的解释一下我们完成这个图所需要的具体的操作与技术吧! 1.可视化面板介绍 应对现在数据可视化的趋势,越来越多企业需要在很多场景(营销数据

初级JAVA程序员应该掌握的Linux知识

1.学会常用的linux命令 2.学会根据日志找出问题 3.学会发版 4.理解操作系统底层思想

java代码30行实现用我爱你重绘女朋友美照(我对你的爱,在每一个字里行间)

java代码还能表白?我来教你30行代码,用我爱你来绘一张女朋友的照片,程序员的强势浪漫,我对你的爱,在每一个字里行间。

爬虫初级 - 抖音视频无水印批量下载

最近接到了一个朋友的软件定制需求,需要爬取指定用户的所有抖音视频(无水印),确定接受这个任务之后,首先理一下实现的思路,计划实现的方案,实现的思路分三步走: 解析用户首页数据,拿到视频信息 一般数据都是分页展示,需要找到分页的标示,循环读取视频数据到结束标记 拿到视频数据,拼接解析视频地址,实现无水印下载 在确定了这个思路之后,按照个人经验,读取视频数据应该不算太难,难点是怎么实现无水印解析,网上有各种各样的无水印解析工具下载使用,必定有无水印的解析方法,不过网上的工具是没有源码给我们参考的。不过幸好

UltraEdit 15.10.0.1031中文版(外加疯狂注册码)下载

UltraEdit是能够满足你一切编辑需要的编辑器。UltraEdit是一套功能强大的文本编辑器,可以编辑文本、十六进制、ASCII码,可以取代记事本,内建英文单字检查、C++及VB指令突显,可同时编辑多个文件,而且即使开启很大的文件速度也不会慢。软件附有HTML标签颜色显示、搜寻替换以及无限制的还原功能,一般大家喜欢用其来修改EXE或DLL文件。 代码折叠 支持在所有 32 位 Windows 平台上进行 64 位文件处理(标准). Unicode 支持 基于磁盘的文本编辑和大文件处理 - 支持超过 4GB 的文件,即使是数兆字节的文件也只占用极少的内存 相关下载链接:[url=//download.csdn.net/download/caizhifei2003/2667521?utm_source=bbsseo]//download.csdn.net/download/caizhifei2003/2667521?utm_source=bbsseo[/url]

SIFT cmsc828j @maryland univercity下载

Sift 讲解的ppt很不错 深入浅出。 相关下载链接:[url=//download.csdn.net/download/coder101/2892886?utm_source=bbsseo]//download.csdn.net/download/coder101/2892886?utm_source=bbsseo[/url]

安国fc8308量产工具下载

安国fc8308量产工具 山寨版金士顿4G 经测试成功量产成8G 经测试能正常使用 相关下载链接:[url=//download.csdn.net/download/zjinwei6/1889777?utm_source=bbsseo]//download.csdn.net/download/zjinwei6/1889777?utm_source=bbsseo[/url]

我们是很有底线的