• 等级
  • 267564 访问
  • 273 原创
  • 12 转发
  • 9408 排名
  • 63 评论
  • 120 获赞

编写可靠Linux shell脚本的八个建议

这八个建议,来源于键者几年来编写shell脚本的一些经验和教训。事实上开始写的时候还不止这几条,后来思索再三,去掉几条无关痛痒的,最后剩下八条。毫不夸张地说,每条都是精挑细选的,虽然有几点算是老生常谈了。1.指定bashshell脚本的第一行,#!之后应该是什么?如果拿这个问题去问别人,不同的人的回答可能各不相同。我见过/usr/bin/envbash,也见过/bin/bas...

2019-05-23 07:51:54

Java零拷贝

1、MappedByteBufferjavanio提供的FileChannel提供了map()方法,该方法可以在一个打开的文件和MappedByteBuffer之间建立一个虚拟内存映射,MappedByteBuffer继承于ByteBuffer,类似于一个基于内存的缓冲区,只不过该对象的数据元素存储在磁盘的一个文件中;调用get()方法会从磁盘中获取数据,此数据反映该文件当前的内容,调用pu...

2019-05-23 07:49:06

黑客,一般用什么兵器来进行网络抓包呢?

这是一个什么工具呢?这么神奇"其实我相信大家很多人都听说过或者使用过,而且这个工具也是黑客或者从事网络工程的工作者必用的工具,它就是"网络抓包工具"。今天我们就详细介绍一下网络抓包的目的是什么?常用的网络抓包工具有哪些?网络抓包工具的使用方法和技巧!#网络抓包目的是什么?官方定义:抓包(packetcapture)就是将发送与接收的进行截获、重发、编辑、转存等操作,也用来检查网络安...

2019-05-22 07:58:40

JAVA线程池学习以及队列拒绝策略

为什么要用线程池?在Java中,如果每当一个请求到达就创建一个新线程,开销是相当大的。在实际使用中,每个请求创建新线程的服务器在创建和销毁线程上花费的时间和消耗的系统资源,甚至可能要比花在实际处理实际的用户请求的时间和资源要多的多。除了创建和销毁线程的开销之外,活动的线程也需要消耗系统资源。如果在一个JVM中创建太多的线程,可能会导致系统由于过度消耗内存或者“切换过度”而导致系统资源不足...

2019-05-21 07:37:52

不了解这12个语法糖,别说你会Java!

本文从Java编译原理角度,深入字节码及class文件,抽丝剥茧,了解Java中的语法糖原理及用法,帮助大家在学会如何使用Java语法糖的同时,了解这些语法糖背后的原理语法糖语法糖(SyntacticSugar),也称糖衣语法,是由英国计算机学家Peter.J.Landin发明的一个术语,指在计算机语言中添加的某种语法,这种语法对语言的功能并没有影响,但是更方便...

2019-05-17 08:02:30

轻松掌握linux常用技巧

前言linux中的一些小技巧可以大大提高你的工作效率,本文就细数那些提高效率或者简单却有效的linux技巧。命令编辑及光标移动这里有很多快捷键可以帮我们修正自己的命令。接下来使用光标二字代替光标的位置。删除从开头到光标处的命令文本ctrl+u,例如:$cd/proc/tty;ls-al光标如果此时使用ctrl+u快捷键,那么该条命令都会被清除,而不需要...

2019-05-09 17:58:04

lsof 命令应用

一前言本文深入的学习命令lsof--列出打开文件(listsopenfiles)。在linux系统中,我们可以通过文件访问文本数据,还可以访问网络连接和硬件。我们通过lsof命令可以查看进程开打了哪些文件,打开指定文件的进程有哪些,进程打开的端口(TCP、UDP)。找回/恢复删除的文件。二lsof用法权限需求因为lsof命令需要访问核心内存和各种文件,所以需要具有root权...

2019-05-09 16:06:26

IntelliJ Idea 常用快捷键列表

Ctrl+Shift+Enter,语句完成“!”,否定完成,输入表达式时按“!”键Ctrl+E,最近的文件Ctrl+Shift+E,最近更改的文件Shift+Click,可以关闭文件Ctrl+[OR],可以跑到大括号的开头与结尾Ctrl+F12,可以显示当前文件的结构Ctrl+F7,可以查询当前元素在当前文件中的引用,然后按F3可以选择Ctrl+N,可以快速打开类C...

2019-04-28 20:50:59

TCP的三次握手四次挥手

尽管TCP和UDP都使用相同的网络层(IP),TCP却向应用层提供与UDP完全不同的服务。TCP提供一种面向连接的、可靠的字节流服务。面向连接意味着两个使用TCP的应用(通常是一个客户和一个服务器)在彼此交换数据之前必须先建立一个TCP连接。这一过程与打电话很相似,先拨号振铃,等待对方摘机说“喂”,然后才说明是谁。这是一个互相确认的过程,以保证数据传输的可靠性。1、熟悉下tcp报文下面是...

2019-04-21 20:57:48

神奇高效的Linux命令行

命令行的学习捷径Linux命令有许多强大的功能:从简单的磁盘操作、文件存取,到进行复杂的多媒体图像和流媒体文件的制作,都离不开命令行。在Linux的学习中,新手都会遇到这么一个问题:自己对系统的每个命令都很熟悉,但是在系统出现故障的时候,就无从下手了。说到底,就是学习的理论知识没有很好地与系统实际操作相结合。5大系统运维状态对运维来说,查看系统运行状态...

2019-03-26 07:29:31

巧用这19条MySQL优化,效率至少提高3倍

1、EXPLAIN做MySQL优化,我们要善用EXPLAIN查看SQL执行计划。下面来个简单的示例,标注(1、2、3、4、5)我们要重点关注的数据:type列,连接类型。一个好的SQL语句至少要达到range级别。杜绝出现all级别。 key列,使用到的索引名。如果没有选择索引,值是NULL。可以采取强制索引方式。 key_len列,索引长度。 rows列,扫描行数。该值是个...

2019-02-24 19:55:35

Spring中获取request的几种方法,及线程安全性

概述在使用SpringMVC开发Web系统时,经常需要在处理请求时使用request对象,比如获取客户端ip地址、请求的url、header中的属性(如cookie、授权信息)、body中的数据等。由于在SpringMVC中,处理请求的Controller、Service等对象都是单例的,因此获取request对象时最需要注意的问题,便是request对象是否是线程安全的:当有大量并发请求...

2019-02-17 21:21:56

图解ZooKeeper的典型应用场景

zookeeper在很多框架中都有应用,例如:Dubbo,Hadoop,Kafka等,但典型的用法也就几种,掌握了这几种用法,再看zookeeper在相关框架中的应用就很轻松,下一篇文章将会详细介绍zookeeper在dubbo中的使用,以便有一个更深刻的了解本文参考了《从Paxos到ZooKeeper》,鉴于本文的定位是一篇科普性质的文章,因此对于一些诸如共享锁和分布式队列的具体实现没...

2019-02-17 21:14:25

BAT 经典算法笔试题 —— 磁盘多路归并排序

在LevelDB数据库中高层数据下沉到低层时需要经历一次MajorCompaction,将高层文件的有序键值对和低层文件的多个有序键值对进行归并排序。磁盘多路归并排序算法的输入是来自多个磁盘文件的有序键值对,在内存中将这些文件的键值对进行排序,然后输出到一到多个新的磁盘文件中。多路归并排序在大数据领域也是常用的算法,常用于海量数据排序。当数据量特别大时,这些数据无法被单个机器内存容...

2019-02-17 20:43:54

深入理解Java ClassLoader

ClassLoader做什么的? 延迟加载 各司其职 ClassLoader传递性 双亲委派 Class.forName 自定义加载器 Class.forNamevsClassLoader.loadClass 钻石依赖 分工与合作 Thread.contextClassLoaderClassLoader是Java届最为神秘的技术之一,无数人被它伤透了脑筋,摸不清...

2019-02-17 20:26:19

Java 自定义 ClassLoader 实现 JVM 类加载

定义需要加载的类 定义类加载器 编译需要加载的类文件 编译自定义的类加载器并支行程序 总结定义需要加载的类为了能够实现类加载,并展示效果,定义一个Hello类,再为其定义一个sayHello()方法,加载Hello类之后,调用它的sayHello()方法。publicclassHello{publicstaticvoidsayHello(){...

2019-02-17 20:08:59

Java 各种锁小结

一.synchronized 二.对象锁、类锁、私有锁 三.ReentrantLock 四.ReentrantReadWriteLock 五.CAS 六.Condition 七.Semaphore 八.CountDownLatch 九.锁的分类 十.总结一.synchronized在JDK1.6之前,synchronized是重量级锁,效率低下...

2019-02-17 18:09:18

Docker常用命令

1.容器操作新建容器:sudodockerrun-t-i-p1800:1800-v/Users/**/Desktop:/Desktopkaixhin/caffe/bin/bash-v-p端口映射-d退出容器按ctrl+D或exit退出当前容器。查看正在运行的容器dockerps查看所有容器dockerps-a...

2019-01-31 22:03:37

深入Java中的位操作

引学完本章节你将学会位的基础概念与语法,并且还会一些骚操作!! 与、或、非、位移 原码、反码、补码 字节、位、超区间...... 开始本章节之前,我们先思考一个问题: bytea=33; byteb=-3; 若我们输出a、b的二进制字符串是多少?答案是这样的么? a->//00100001 ...

2019-01-31 19:51:05

Java中15种锁的介绍

在读很多并发文章中,会提及各种各样锁如公平锁,乐观锁等等,这篇文章介绍各种锁的分类。介绍的内容如下:1.公平锁/非公平锁2.可重入锁/不可重入锁3.独享锁/共享锁4.互斥锁/读写锁5.乐观锁/悲观锁6.分段锁7.偏向锁/轻量级锁/重量级锁8.自旋锁上面是很多锁的名词,这些分类并不是全是指锁的状态,有的指锁的特性,有的指锁的设计,下面总...

2019-01-30 21:59:06

HelloWorld搬运工

HelloWorld是学习程序的第一个程序,搬运工是将一件东西从一个地方运到另一个地方。HelloWorld搬运工,分享技术知识,有原创也有转发,彼此交流,一起学习,共同进步。
关注
  • 互联网·电子商务/PD开发
  • 中国 北京 海淀区
奖章
  • 专栏达人
  • 持之以恒
  • 1024勋章
  • 勤写标兵Lv1