2019-10-24 15:13
之前在阅读《阿里巴巴Java开发手册》时,发现有一条是关于循环体中字符串拼接的建议,具体内容如下:
阿里巴巴Java开发手册
那么我们首先来用例子来看看在循环体中用 + 或者用 StringBuilder 进行字符串拼接的效率如何吧(JDK版本为 jdk1.8.0_201)。
package com.wupx.demo;
/**
* @author wupx
* @date 2019/10/23
*/
public class StringConcatDemo {
public static void main(String[] args) {
...
2019-10-24 14:21
019年10月24日,组委会正式发布了China .NET Conf 2019中国 .NET 开发者峰会的主题内容。
chinadotnetconnf
2014年微软组织并成立.NET基金会,微软在成为主要的开源参与者的道路上又前进了一步。2014年以来已经有众多知名公司加入.NET基金会,Google,微软,AWS三大云厂商已经齐聚.NET基金会,在平台项目中,.NET平台上有87%贡献者其实并不在Microsoft工作。为了将.NET基金会变成一个更加多样化和成员驱动的组织,微软把.NET 的发展真正交给社区,为了让OSS真正蓬勃发展。
...
2019-10-24 13:57
在Docker上创建Go镜像文件并不困难,但建立的文件很大,接近1G,使用起来不太方便。Docker镜像的一个主要难题就是如何优化,创建小的镜像。我们可以用多级构建的方法来创建Docker镜像文件,它也不复杂。但由于使用这种方法时,需要用简版的Linux(Alpine),它带来了一系列的问题。本文讲述如何解决这些问题并成功创建优化的Go镜像文件,优化之后只有14M。...
2019-10-24 13:30
按照单一职责的原则,拦截器只负责需要的拦截操作的执行,至于它采用何种方式应用到目标方法上,以及它在整个拦截器管道中的位置则属于“拦截器注册”的范畴。Dora.Interception提供了几种典型的注册方法,用户也可以根据自己的需求实现自己的注册方式。
一、IInterceptorProvider
一般来说,每一个拦截器类型都对应着一个IInterceptorProvider实现类型,后者利用其Use方法负责将前者放置到拦截器管道指定的位置。如下面的代码所示,IInterceptorProvider还具有一个布尔类型的AllowMultiple属性,它表示相同类型的多一个拦截器对象是否可以同时应用到同一个方法上。如果该属性返回False,Dora.Interception只会选择其中一个。
...
2019-10-24 13:56
本文作者 | HelloGitHub-小猪蹄...
2019-10-24 13:25
人生苦短,我选Python
前文传送门
小白学 Python(1):开篇
小白学 Python(2):基础数据类型(上)
小白学 Python(3):基础数据类型(下)
小白学 Python(4):变量基础操作
前言
前面我们讲了变量的基础操作,本文我们接着讲运算符。
运算符根据用途可以分为以下这么几类:
算术运算符
比较运算符
赋值运算符
逻辑运算符
成员运算符
身份运算符
本篇我们先介绍前两个,算术运算符和比较运算符。
算数运算符
算术运算符顾名思义就是我们做数字计算的时候用到的运算符,当然,加减乘除肯定都有,除此之外呢,还有程序中常见的取摸、取幂和取整除。详细如下表:
...
2019-10-24 13:09
当前时间:2019年10月24日。距离 JDK 14 发布时间(2020年3月17日)还有多少天?...
2019-10-24 13:40
.NET CORE 3.0新增了Worker Services的新项目模板,可以编写长时间运行的后台服务,并且能轻松的部署成windows服务或linux守护程序。如果安装的vs2019是中文版本,Worker Services变成了辅助角色服务。Worker Services 咱也不知道怎么翻译成了这个名称,咱也不敢乱翻译,下文就保持原名称。。。,本文将会演示如何创建一个Worker Services项目,并且部署为windows服务或linux守护程序运行;
开始创建worker service 项目
...
2019-10-24 09:36
目录
实现原理
遍历时不用加锁的原因
CopyOnWriteArrayLis的缺点
使用场景
总结
参考
本篇博客介绍CopyOnWriteArrayList类,读完本博客你将会了解:
什么是COW机制;
CopyOnWriteArrayList的实现原理;
CopyOnWriteArrayList的使用场景。
经过之前的博客介绍,我们知道ArrayList是线程不安全的。要实现线程安全的List,我们可以使用Vector,或者使用Collections工具类将List包装成一个SynchronizedList。其实在Java并发包中还有一个CopyOnWriteArrayList可以实现线程安全的List。
...
2019-10-24 09:56
在SpringBoot开发过程,我们经常会遇到@Enable开始的好多注解,比如@EnableEurekaServer、@EnableAsync、@EnableScheduling等,今天我们就来分析下这些注解到底是如何工作的?...
2019-10-24 09:25
正文
看完了clean code -- 代码整洁之道,那么接下来就应该读读其姊妹篇:clean architecture -- 架构整洁之道。不过对我而言,代码是实实在在的,看得见,摸得着;而架构虽然散发着光芒,但好像有点虚,似乎认知、思考还比较少。本文主要记录《clean architecture》的主要内容以及自己的一点思考。
本文地址:https://www.cnblogs.com/xybaby/p/11729354.html
架构的存在意义
回到顶部
clean architecture的作者是一位从事软件行业几十年的架构大师,参与开发了各种不同类型的软件,在职业生涯中发现了一个规律:那就是,尽管几十年来硬件、编程语言、编程范式发生了翻天覆地的变化,但架构规则并没有发生变化。
...
2019-10-23 15:33
目录
线程封闭
1、栈封闭
2、ThreadLocal
3、Java四种引用的简要概述
回到顶部
线程封闭
在多线程的环境中,我们经常使用锁来保证线程的安全,但是对于每个线程都要用的资源使用锁的话那么程序执行的效率就会受到影响,这个时候可以把这些资源变成线程封闭的形式。
1、栈封闭
所谓的栈封闭其实就是使用局部变量存放资源,我们知道局部变量在内存中是存放在虚拟机栈中,而栈又是每个线程私有独立的,所以这样可以保证线程的安全。
2、ThreadLocal
我们先看ThreadLocal和线程Thread的关系图。
...