我差不多,哦不我已经是个废人了No.4
我是小蕉。
好吧大家都说技术看不懂,那好吧,今天一点技术都没有,主要谈谈一个人来如何懒起来。
前几日因为要部署一个ElasticSearch集群,虽然只有三台。但是,我就是不想一台一台去部署啊,烦死个人了。万一后面要部署1000台,那可要怎么办??真心一台一台去处理咩。我懒得要命,我才懒得这样干。 就抽象一下,提炼出一个垃圾批量部署的法子。安装包准备->环境准备->安装包上传解压->配置变更->启动服务器。看起来也就长这样,一个shell脚本搞定,虽然花了半天的时间,但是在后面操作其他机器的时候,发现三台机器的集群扛不住,我在不到三分钟内,就把集群扩展到了六台,不黑不吹,真人真事。
这大概是当一个程序猿最大的好处了吧,能搞一些小工具来提高生活的效率,其实从好几年前就一直在想,不要因为技术而技术,技术是为业务服务的。编程从根本上就是为提高生产效率而产生的,之前一直在想跨界的事情,生物学家加编程,音乐家加编程,书法家加编程,会变成什么?我能够预感到的事情,就是他们可能会从一个我们普通人想都想不到的角度,去把一个东西产品化,可能提供给大众,也提高了自己研究的效率。
人的本质还是不勤快的。
每天都做同一样事情,估计会疯掉把。懒人瓦特发明了蒸汽机,不就是懒得每次水开的时候都去打开盖子放气吗?其实吧我们做的很多事情都是懒,比如技术的快速实现是懒,是为了现在可以解决问题早点回家老婆孩子热炕头,王者守望LOL。比如代码的重构是懒,是为了实现第二个类似需求的时候可以少一点工作。我们在做这些东西的时候其实还真不是因为为了表现出勤快。
举个栗子,我想要勤快的话,比如打印十行的“人群之中钻出来一个光头”,我可以这样。
System.out.println("人群之中钻出来一个光头");
System.out.println("人群之中钻出来一个光头");
System.out.println("人群之中钻出来一个光头");
System.out.println("人群之中钻出来一个光头");
System.out.println("人群之中钻出来一个光头");
System.out.println("人群之中钻出来一个光头");
System.out.println("人群之中钻出来一个光头");
System.out.println("人群之中钻出来一个光头");
System.out.println("人群之中钻出来一个光头");
System.out.println("人群之中钻出来一个光头");
烦死个人了,写得我手都酸了,但是我就是不想写我就是要想偷懒我要怎么做呢?就像下面这样去思考,去总结,去想办法。喏。
int i = 10; while(i-->0){ System.out.println("人群之中钻出来一个光头"); }
还有就是大家都说程序猿的工资为什么这么高,这是什么原因。卧槽,我觉得这个问题可以换一下->为什么除了我以外的程序猿工资为什么这么高。我看过的一句话啊,可能是最好的回答。劳动人员在工作的时候,按照件数创造物品,或者各种单子促成交易,他们一旦下班那就没他们什么事了。但是程序猿,即使我们下班了,程序依然在跑着,依然在提供各种各样的服务,创造各种各样的价值,我觉得这就是对为什么程序猿工资这么高的原因了,这也是人类一直追寻的提高效率。
前方高能,非战斗人员迅速撤离撤离。
好了我不写了我手好酸,贴点代码,下面是我搞死我虚拟机的工具,886。
public class BlowUpJVM {
private static List<String> list = new ArrayList<String>();
public static void main(String[] args) {
testStackOverFlow(); //栈深度溢出
testOutOfHeapMemory();//堆溢出
testNativeMethodOutOfMemory();//本地方法栈溢出
//这个别跑!!!会死机的!!!别问我怎么知道的。
//testStackOutOfMemory();
}
public static void testNativeMethodOutOfMemory(){
while(true){
ExecutorService executors = Executors.newFixedThreadPool(50);
int i=0;
while(i++<10){
executors.submit(new Runnable() {
@Override public void run() {}
});
}
}
}
public static void testStackOutOfMemory(){
while (true) {
Thread thread = new Thread(new Runnable() {
@Override
public void run() {while(true){}}
});
thread.start();
}
}
public static void testOutOfHeapMemory(){
List<StringBuffer> list = new ArrayList<StringBuffer>();
while(true){
list.add(new StringBuffer(););
}
}
public static void testStackOverFlow(){
BlowUpJVM.testStackOverFlow();
}
}
- 浅谈JavaScript的事件(事件委托)
- 浅谈JavaScript的Canvas(绘制图形)
- 浅谈JavaScript的事件(事件流)
- 浅谈JavaScript的函数表达式(递归)
- 浅谈JavaScript的事件(事件模拟)
- Spring中@Transactional事务回滚实例及源码
- 浅谈JavaScript的函数表达式(闭包)
- 浅谈JavaScript的事件(事件类型)
- 17年编程生涯的三大经验总结
- 浅谈JavaScript的面向对象程序设计(四)
- 浅谈JavaScript的事件(事件对象)
- 浅谈JavaScript的字符串的replace方法
- 西方红玫瑰和辣条先生黑产组织深度分析报告
- HTTPS劫匪木马暴力升级:破坏ARK攻击杀软
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 如何审计MySQL 8.0中的分类数据查询?
- 聊一个 GitHub 上开源的 RBAC 权限管理系统,很6!
- Spring AOP,应该不会有比这更详细的介绍了!
- 我又发现 Spring Security 中一个小秘密!
- OpenCV的实用图像处理操作案例分享
- CentOS 7上搭建 Zabbix4.0,一次性成功,收藏了!
- 超全!我整理一波最常用的开源项目
- 【NLP】竞赛必备的NLP库
- Java NIO Selector 详解
- 【机器学习基础】一文搞懂机器学习里的L1与L2正则化
- 【深度学习】深入理解LSTM
- 短视频商城源码,两种方式实现点击出现弹窗显示
- 【50期】基础考察:ClassNotFoundException 和 NoClassDefFoundError 有什么区别
- MySQL 8.0新特性 — 管理端口
- 从单词嵌入到文档距离 :WMD一种有效的文档分类方法