12 HelloWorld搬运工

尚未进行身份认证

HelloWorld是学习程序的第一个程序,搬运工是将一件东西从一个地方运到另一个地方。HelloWorld搬运工,分享技术知识,有原创也有转发,彼此交流,一起学习,共同进步。

等级
TA的排名 7k+

Core Java 并发:理解并发概念

1.简介从诞生开始,Java就支持线程、锁等关键的并发概念。这篇文章旨在为使用了多线程的Java开发者理解CoreJava中的并发概念以及使用方法。2.概念2.1竞争条件多个线程对共享资源执行一系列操作,根据每个线程的操作顺序可能存在几种结果,这时出现竞争条件。下面的代码不是线程安全的,而且可以不止一次地初始化value,因为check-then-act(...

2019-07-22 20:53:16

Spring中用了哪些设计模式

一:简单工厂模式又叫做静态工厂方法(StaticFactoryMethod)模式,但不属于23种GOF设计模式之一。简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类。spring中的BeanFactory就是简单工厂模式的体现,根据传入一个唯一的标识来获得bean对象,但是否是在传入参数后创建还是传入参数前创建这个要根据具体情况来定。如下配置,就是在He...

2019-07-18 07:37:23

统治世界的十大排序算法!

0算法概述0.1算法分类十种常见排序算法可以分为两大类:比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类排序。非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此也称为线性时间非比较类排序。0.2算法复杂度0.3相关概念稳定:如果a原...

2019-07-11 07:52:53

19个有趣的Linux 命令,最后一个?... 打死我都不敢尝试!

1.sl命令你会看到一辆火车从屏幕右边开往左边……安装$sudoapt-getinstallsl运行$sl命令有-alFe几个选项,-aAnaccidentseemstohappen.You'llfeelpityforpeoplewhocryforhelp.-lshowslittleone.-FItfli...

2019-07-07 18:30:35

短小强大的8个命令,分分钟帮你提高工作效率!

作为一名合格的Linux系统管理员,每天接触使用最多的莫过于Linux命令了。很多人喜欢Linux,因为Linux命令短小但却功能强大。在工作中经常使用的命令有很多,对于那些你未使用过的呢?今天小编就跟大家分享自己工作中总结的8个超级好用,但鲜为人用的Linux命令,希望对大家有帮助。1.fc命令用途:编辑最近的一条命令并自动执行该命令适用场景:执行了一条很长的命令,然而命令...

2019-07-07 18:14:31

这54个docker命令!你必须懂!

Docker是一个不断发展的系统,开发人员积极改进使用和性能。所以命令总是在变化。docker一些老的命令经常被弃用,并被新的或更有效的命令取代。您可以使用帮助选项检查Docker安装上的最新可用命令:$docker--help要使用特定命令的选项,可以使用该命令的help选项。例如,要使用dockerrun命令选项,可以使用以下命令:$dockerrun--help...

2019-07-03 21:14:30

19条效率至少提高3倍的MySQL技巧

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

2019-07-03 21:03:14

常用正则表达式公式总结

一、校验数字的表达式 数字:^[0-9]*$ n位的数字:^d{n}$ 至少n位的数字:^d{n,}$ m-n位的数字:^d{m,n}$ 零和非零开头的数字:^(0|[1-9][0-9]*)$ 非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$ 带1-2位小数的正数...

2019-06-20 07:36:06

使用 kill 命令杀死 java进程,你用对了吗?

在本地调试agent相关功能,需要经常性的杀掉Java进程,验证一些极端情况。每次都是本能执行如下步骤 jps kill-9 reboot 有一次发现代码中添加的ShutdownHook没有生效,难道和kill命令后面的数字有关?经过一番查阅,后面的数字代表的是具体信号,kill命令可将指定的信号发送给相应的进程,linux中常见的信号如下: 1...

2019-06-20 07:32:39

异步爬虫写起来太麻烦?来试试 Trio 吧!

Trio翻译过来是三重奏的意思,它提供了更方便异步编程,是asyncio的更高级的封装。它试图简化复杂的asyncio模块。使用起来比asyncio和Twisted要简单的同时,拥有其同样强大功能。这个项目还很年轻,还处于试验阶段但是整体设计是可靠的。作者鼓励大家去尝试使用,如果遇到问题可以在git上对他提issue。同时作者还提供了一个在线聊天室更方便与其沟通:ht...

2019-06-11 07:51:19

数据库死锁案例分析

一前言死锁,其实是一个很有意思也很有挑战的技术问题,大概每个DBA和部分开发同学都会在工作过程中遇见。关于死锁我会持续写一个系列的案例分析,希望能够对想了解死锁的朋友有所帮助二案例分析2.1业务场景用户录入商品,应用程序会提前检查是否存在相同记录,如果有则先删除再插入;如果没有则直接插入。2.2环境说明MySQL5.7.22事务隔离级别为RC模式。 cr...

2019-06-11 07:46:55

二分搜索树的原理与Java源码实现

01折半查找法了解二叉查找树之前,先来看看折半查找法,也叫二分查找法。在一个有序的整数数组中(假如是从小到大排序的),如果查找某个元素,返回元素的索引。如下:int[]arr=newint[]{1,3,4,6,8,9};在arr数组中查找6这个元素,查到返回对应的索引,没有找到就返回-1思想很简单:1先找到数组中间元素target与6比较2如果targ...

2019-06-10 08:05:20

理解Python爬虫框架pyspider

一、pyspider简介pyspider是Binux做的一个爬虫架构的开源化实现,主要功能有: 抓取、更新调度多站点的特定的页面 需要对页面进行结构化信息提取 灵活可扩展,稳定可监控 pyspider以去重调度,队列抓取,异常处理,监控等功能作为框架,只需提供给抓取脚本,并保证灵活性。最后加上web的编辑调试环境,以及web任务监控,即成为了这套框架。py...

2019-06-10 07:52:40

TCP/IP的底层队列实现原理

自从上次学习了TCP/IP的拥塞控制算法后,我越发想要更加深入的了解TCP/IP的一些底层原理,搜索了很多网络上的资料,看到了陶辉大神关于高性能网络编程的专栏,收益颇多。今天就总结一下,并且加上自己的一些思考。 我自己比较了解Java语言,对Java网络编程的理解就止于Netty框架的使用。Netty的源码贡献者NormanMaurer对于Netty网络开发有过一句建议,"Neverbl...

2019-06-09 17:15:42

24 道 shell 脚本面试题

虽然现在Python在运维工作中已经使用很普遍,但是很多企业在找Linux云计算工程师的时候还是会问到shell脚本的问题,它有助于你在工作环境中自动完成很多任务。如下是一些面试过程中,经常会遇到的shell脚本面试问题及解答:Q:1Shell脚本是什么、它是必需的吗?答:一个Shell脚本是一个文本文件,包含一个或多个命令。作为系统管理员,我们经常需要使用多个命令来完成一项...

2019-06-03 21:05:17

杀死僵尸进程,你需要这些神奇高效的Linux命令行

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

2019-06-03 20:57:18

计算机算法基础总结

00前言本文主要是通过通俗易懂的算法和自然语言,向大家介绍基础的计算机排序算法和查找算法,还有一些作为一名程序猿应该知道的名词,数据结构,算法等等.但是仅仅止于介绍,因为本人能力不足,对一些高级的算法和数据结构理解不够通透,所以也不作太多的深入的剖析..demo都在我的Github中能找得到。同样的,通过最近面试实习生的机会,把一些基础都捡起来,巩固巩固,同时...

2019-06-03 20:47:56

DockerFile 命令总结

只描述非windows系统。FROM[:][AS]:设置基础镜像 FROMalpine:latest RUN\["executable","param1","param2"]:执行shell脚本。进来少使用RUN,因为没执行一次docker就会增加一层只读层。 RUN/bin/bash-c'source$HOME/.bashrc;\...

2019-06-03 07:48:28

分布式、高并发、多线程?有什么区别

是不是很多人都认为分布式=高并发=多线程?当面试官问到高并发系统可以采用哪些手段来解决,或者被问到分布式系统如何解决一致性的问题,是不是一脸懵逼?一开始,不少人都会将三者混淆,误以为所谓的分布式高并发的系统就是能同时供海量用户访问,而采用多线程手段不就是可以提供系统的并发能力吗?实际上,他们三个总是相伴而生,但侧重点又有不同。什么是分布式?分布式更多的一个概念,是为了解决单个物理服...

2019-06-03 07:39:48

连接池究竟是什么

通常如何通过连接访问下游?工程架构中有很多访问下游的需求,下游包括但不限于服务/数据库/缓存,其通讯步骤是为:(1)与下游建立一个连接;(2)通过这个连接,收发请求;(3)交互结束,关闭连接,释放资源;不管是服务/数据库/缓存,官方会提供不同语言的Driver、Document、DemoCode来指导使用方建立连接与调用接口。以MongoDB的C++官方Driv...

2019-06-03 07:35:54

查看更多

勋章 我的勋章
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。