• .NET 中依赖注入组件 Autofac 的性能漫聊 C#

    .NET 中依赖注入组件 Autofac 的性能漫聊

    Autofac 是一款超赞的 .NET IoC 容器 ,在众多性能测评中,它也是表现最优秀的一个。它管理类之间的依赖关系, 从而使 应用在规模及复杂性增长的情况下依然可以轻易地修改。它的实现方式是将常规的.net类当做 组件 处理。简单的性能测试在 LINQPad 中,我们可以很容易的构建出一个测试环境(需要引入 Microsoft.Extensions.DependencyI...

    C# 2021年01月30日 1727 0
  • Java泛型的协变与逆变

    从面向对象说起Java作为一门面相对象的语言,当然是支持面相对象的三大基本特性的,反手就蹦出三个词:封装、继承、多态。我们假设有三个类,动物、猫、狗。父类是动物Animal,有两个子类猫Cat和狗Dog。那在Java中或其它任何支持面相对象的语言中,子类可以把引用赋值给父类。下面这段代码没有任何问题:Animal animalOne = new Cat(); Animal an...

    Java 2021年01月30日 1078 0
  • 关于Spring AOP的灵魂十问

    AOP全称是Aspect Oriented Programming,翻译过来是“面向切面”编程。在Java语言里,一切皆对象,所以我们通常说Java语言是一门“面向对象”编程的语言。而面向切面编程,不是要取代面向对象编程,而是对它的一种补充。AOP要解决的问题是用一个“横切面”的方式,来统一处理很多对象都需要的,相同或相似的功能,减少程序里面的重复代码,让代码变得更干净,更专注...

    Java 2021年01月30日 1364 0
  • ES 2021 来了,详细解读5个新特性,附案例

    ES 2021是世界上最受欢迎的编程语言的最新版本〜本次迭代中包含了五个新特性,让我们来一睹为快。ES20211.全部替换replaceAll:js默认的replace 方法仅替换字符串中一个模式的第一个实例,要全局替换,你需要自己写正则,因此2021带来了全新的replaceAll方法。'Hello'.replaceAll('l', 'L') // 'HeLLo' 2。 Pr...

    Java 2021年01月30日 1169 0
  • 分布式调度框架 elastic-job 实践详解(超详细)

    在前几篇文章中,我们详细的介绍了 Quartz 的架构原理以及应用实践,虽然 Quartz 也可以通过集群方式来保证服务高可用,但是它也有一个的弊端,那就是服务节点数量的增加,并不能提升任务的执行效率,即不能实现水平扩展!之所以产生这样的结果,是因为 Quartz 在分布式集群环境下是通过数据库锁方式来实现有且只有一个有效的服务节点来运行服务,从而保证服务在集群环境下定时任务不...

    Java 2021年01月30日 1076 0
  • 在pdf上加盖电子签章

    在pdf上加盖电子签章,并不是只是加个印章图片,。而是要使用一对密钥中的私钥对文件进行签字。为啥要用私钥呢?很简单,因为公钥是公开的,其他人才可以用公钥为你证明,这个文件是你签的。这就是我们常说的:私钥签字,公钥加密。用公钥进行加密,才只有有对应私钥的人能解开。下面给出具体代码。另外,这对密钥应该去官方申请,我这里只是测试,所以就自己生成了。数字证书常见标准符合PKI ITU-...

    Java 2021年01月30日 2995 0
  • php基础-php7和php5的异同点

    大家好,今天要给大家分享的是任何一门语言都要学习的东东语法(大牛请忽略这篇文章)。那么php的语法是什么样的呢?为了给大家讲解以及自己巩固。我将php5与最新的php7的语法做了些整理。一 关于变量php5和7并无区别变量以非特殊字符,数字开头错误的命名方式:$^&%name,$123name正确的命名方式:$name123,$_Name123二 关于include,...

    PHP 2021年01月29日 1344 0
  • 如何使用PHP优雅地开发应用 PHP

    如何使用PHP优雅地开发应用

    流程图设计在我们开发一个应用的时候,第一时间我们不应该去想如何编码,我们第一要做的应该是理清楚需求,因为解决需求才是一个应用存在的价值。有句老话说得好,干活不由东,累死也无功。很多时候,我们可能一开始并不能理解用户的需求,或者说,用户或者产品经理一开始也不能够确切地表明他们自己的真实需求。我们有责任,也有义务帮助产品经理理清思路,而帮助他们理清思路,我们要做的就是通过画出流程图...

    PHP 2021年01月29日 1315 0
  • iOS 14.4正式版发布!苹果官方提醒:必须更新 IOS

    iOS 14.4正式版发布!苹果官方提醒:必须更新

    各位苹果用户们,iOS又双叒更新啦!就在昨天,苹果正式向所有iPhone用户推送了iOS 14.4的正式版,同步更新的还有iPadOS 14.4。从官方给出的更新版本字面内容来看,这貌似又是一次平平无奇的常规升级。什么相机能识别小二维码啦、优化耳机识别选项啦、修复拍照HDR的Bug啦……但是!就在这平平无奇的更新内容中,苹果却暗藏了不少“玄机”。我们一点一点来说!检测非原装摄像...

    IOS 2021年01月29日 2427 0
  • 关于useGeneratedKeys获取自增主键

    场景描述:一级菜单和二级菜单通过外键关联,在添加一级菜单同时添加二级菜单时,将一级菜单的主键id值作为二级菜单外键id值问题解决:可通过mybatis在insert后通过useGeneratedKeys获取一级菜单自增主键,在添加二级菜单时作为外键id值继续存入二级菜单Java Bean/** * 一级列表名称 * @author xj */ @Entity @Gett...

    Java 2021年01月29日 1234 0
  • Map get(K key)方法中隐藏的引用问题

    一、问题引出先是在 map中存放了 几个Student对象,然后 通过 map 的get(key) 方法,赋值给一个 声明的Student对象,然后调用了 student 的set方法,改变属性,发现 map中的对应的位置上面的 Student 对象中的属性也发生了变化二、示例代码package char01.testmap; public class Student { p...

    Java 2021年01月28日 1065 0
  • 如何讲清楚 Java 面向对象的问题与知识?

    写在最前面这个项目是从20年末就立好的 flag,经过几年的学习,回过头再去看很多知识点又有新的理解。所以趁着找实习的准备,结合以前的学习储备,创建一个主要针对应届生和初学者的 Java 开源知识项目,专注 Java 后端面试题 + 解析 + 重点知识详解 + 精选文章的开源项目,希望它能伴随你我一直进步!说明:此项目我确实有很用心在做,内容全部是我参考了诸多博主(已注明出处)...

    Java 2021年01月28日 1162 0
  • jvm调优的几种场景

    假定你已经了解了运行时的数据区域和常用的垃圾回收算法,也了解了Hotspot支持的垃圾回收器。一、cpu占用过高cpu占用过高要分情况讨论,是不是业务上在搞活动,突然有大批的流量进来,而且活动结束后cpu占用率就下降了,如果是这种情况其实可以不用太关心,因为请求越多,需要处理的线程数越多,这是正常的现象。话说回来,如果你的服务器配置本身就差,cpu也只有一个核心,这种情况,稍微...

    Java 2021年01月28日 1044 0
  • 阿里 Mock 工具正式开源,干掉市面上所有 Mock 工具

    最近栈长注意到阿里开源了自家的 Mock 工具:TestableMock,该工具号称最轻量、简单、舒适的 Mock 测试工具,功能十分强大,媲美 PowerMock,用法比 Mockito 还要简洁,还不挑框架,指哪换哪,一个 @MockMethod 注解打天下。。。这么强大的么?栈长赶紧来体验一翻!TestableMock 简介TestableMock 开源地址:https:...

    Java 2021年01月28日 4483 0
  • 开发者值得关注的9大流行PHP框架 PHP

    开发者值得关注的9大流行PHP框架

    数十年来,PHP一直是全球最受欢迎的编程语言之一。PHP开发具有快速安全、易于维护、大量可用软件库、以及更少的手动编程量等特点。如今,PHP在网站中的使用量已高达79%。与此同时,经过这么多年的发展,业界出现了许多不同的PHP框架产品,及其解决方案。作为开发人员,您也许会问:哪一款是最常用的PHP框架?又应该如何进行选择呢?下面,我将为您总结和梳理出开发者值得关注的9大流行PH...

    PHP 2021年01月28日 1254 0
  • f-string:一种改进的Python格式语法

    f-string是Python3.6提供的一种新的格式化字符串的方法。 与其他格式化方式相比,代码更具可读性,更简洁且不易出错,而且速度更快! 在本文中,您将了解如何以及为什么现在就开始使用f-string。在使用f-string之前,我们还是先了解下之前是如何处理格式化的。Python中的“老式”字符串格式在Python 3.6之前,有两种方法可以将Python表达式嵌入字符...

    Python 2021年01月27日 1506 0
  • 深入理解什么是端口(port)

    每当看到有人的简历上写着熟悉 tcp/ip, http 等协议时, 我就忍不住问问他们: 你给我说说, 端口是啥吧! 可惜, 很少有人能说得让人满意... 所以这次就来谈谈端口(port), 这个熟悉的陌生人.在此过程中, 还会谈谈间接层, naming service 等概念, IoC, 依赖倒置等原则以及 TCP 协议的一些重点知识.常见端口在我们的日常开发过程中, 特别是...

    Java 2021年01月27日 1144 0
  • 修炼SpringMVC-核心技能-文件上传

    在开发Web应用程序中,关于文件的上传操作是十分常见的,本节将了解下怎么利用SpringMVC进行文件上传。一、关于文件上传的一些配置1.导入上传的相关jar包在SpringMVC中实现文件处上传需要导入以下两个Jar包(版本可能有所不同)。com.springsource.org.apache.commons.fileupload-1.2.0.jar com.springso...

    Java 2021年01月27日 1059 0
  • 分布式延时任务方案解析

    前言在开发中,往往会遇到一些关于延时任务的需求。例如生成订单30分钟未支付,则自动取消生成订单60秒后,给用户发短信对上述的任务,我们给一个专业的名字来形容,那就是延时任务。那么这里就会产生一个问题,这个延时任务和定时任务的区别究竟在哪里呢?一共有如下几点区别定时任务有明确的触发时间,延时任务没有定时任务有执行周期,而延时任务在某事件触发后一段时间内执行,没有执行周期定时任务一...

    Java 2021年01月27日 1136 0
  • JeecgBoot 2.4.2 积木报表版本发布

    项目介绍JeecgBoot是一款基于代码生成器的低代码平台!前后端分离架构 SpringBoot2.x,SpringCloud,Ant Design&Vue,Mybatis-plus,Shiro,JWT 支持微服务。强大的代码生成器让前后端代码一键生成! JeecgBoot引领低代码开发模式(OnlineCoding-> 代码生成-> 手工MERGE), 帮...

    Java 2021年01月27日 1727 0
  • 硬技能——Swagger一键生成接口文档,好轻松

    在开发测试过程中,经常遇到这种情况:1.测试人员,要看传递的参数对不对,数据类型,精度,边界值等传输是否正确2.前端开发人员,要看接口出入参,数据类型,层级关系,接口调用关系3.对接的第三方系统要看我们的接口文档很多时候,我们都会通过Word手写的形式,花费大量的时间精力来做这件事。殊不知知识就是效率地提升的最佳方案。首先在保证项目集成swagger的前提下,可以一键生成接口文...

    Java 2021年01月27日 1258 0
  • Java世界最常用的工具类库

    Apache CommonsApache Commons有很多子项目,常用的项目如下@Data public class User { private String username; private String password; }设置和获得属性User user = new User(); BeanUtils.setProperty(user, "user...

    Java 2021年01月26日 1403 0
  • ThinkPHP V6.0.7发布——修正版本

    V6.0.7版本发布,本版本主要针对上个版本做了一些路由修正,还意外收获了一些性能提升,是一个建议更新的版本。主要更新修正Validate类的PHP8兼容性改进redis驱动的append方法修正路由匹配检测问题优化路由变量正则规则生成改进responseView的内容渲染安装和更新V6版本开始仅支持Composer安装及更新,支持上个版本的无缝更新,直接使用composer ...

    PHP 2021年01月26日 1563 0
  • Java之finally、final、finalize的区别

    这是一道比较常见的面试题,考察应聘者的Java基本功。其实我一直觉得这道面试题挺奇怪的,因为他仨除了长得像之外,在功能上没有任何相似之处。经典回答如下:finallyJava的异常处理机制分为:抛出异常(throws)和捕获异常(try - catch)。fianlly的作用是不管代码块是否发生异常,保证一段代码一定会被执行,用法是try - fianlly或者try - ca...

    Java 2021年01月26日 1151 0
  • 深入理解分布式缓存设计

    前言在高并发的分布式的系统中,缓存是必不可少的一部分。没有缓存对系统的加速和阻挡大量的请求直接落到系统的底层,系统是很难撑住高并发的冲击,所以分布式系统中缓存的设计是很重要的一环。下面就来聊聊分布式系统中关于缓存的设计以及过程中遇到的一些问题。缓存的收益与成本使用缓存我们得到以下收益:· 加速读写。因为缓存通常是全内存的,比如Redis、Memcache。对内存的直接读写会比传...

    Java 2021年01月25日 1040 0
  • 记一次Netty「直接内存溢出」导致线上网关项目宕机排查过程

    作为一名Java开发者,我们都知道Java进程是运行在Java虚拟机上的,而Java进程要想正常运行则需要向计算机申请内存,其中主要为Java对象实例所占用的堆(heap)内存(当然还有其他的也会占用内存,比如栈等),这些内存一般划分为Java虚拟机所占内存。在当今网络通信过程中,不可避免地需要用到高性能IO通信框架Netty,Spring Cloud Gateway也不例外用...

    Java 2021年01月25日 5114 0
  • 如何理解Spring框架的核心设计思想IoC模式

    Spring不单单只是一个框架,现在已经成为了一个产品家族,包括一系列以Spring命名的产品。整个Spring家族最早的成员Spring框架,是目前流行的web开发框架Spring Boot以及微服务治理框架Spring Cloud的基础,可以说Spring框架的出现改变了企业级互联网Java开发的历史。从Spring框架说起Spring框架诞生的时候,正是Java EE和E...

    Java 2021年01月25日 1280 0
  • IDEA Spring Boot 自动化构建+部署

    本文所有操作都基于Alibaba cloud Toolkit进行操作。1.插件安装在插件市场中下载安装。1.在IntelliJ IDEA顶部菜单栏中选择File>Settings。2.在Settings对话框的左侧导航栏中单击Plugins。3.在Plugins区域单击Marketplace。4.在搜索栏中输入Alibaba Cloud Toolkit。5.Search ...

    Java 2021年01月25日 1118 0
  • AES前后端对称加密

    概述 高级加密标准(AES,Advanced Encryption Standard)为最常见的对称加密算法,对称加密算法即加密和解密的过程使用同一个秘钥进行加密。本文从实用的角度去描述前后端使用AES对称加密。需求分析 前端请求数据传递参数时,需要对其进行加密,而不是使用明文进行传输,防止http请求被人截获而获取到信息,AES对称加密就是一种方式,前端对密码进行加密,传输给...

    Java 2021年01月25日 1202 0
  • PHP之十六个魔术方法详解

    前言PHP中把以两个下划线__开头的方法称为魔术方法(Magic methods),这些方法在PHP中充当了举足轻重的作用。 魔术方法包括:__construct(),类的构造函数__destruct(),类的析构函数__call(),在对象中调用一个不可访问方法时调用__callStatic(),用静态方式中调用一个不可访问方法时调用__get(),获得一个类的成员变量时调用...

    PHP 2021年01月25日 1170 0