• 用Python写一个身份证号码校验工具

    这是一个用Python开发的GUI实战项目:居民身份证信息校验系统一、总体介绍本项目使用Tkinter作为GUI模块,充分利用Python面向对象的思想,开发一款实现身份证号码校验的应用程序。具备解析用户输入的身份证号码中的地区信息、出生日期、以及身份证号码是否合法等功能。是练习Python面向对象思想、tkinter GUI模块的优质练手项目。项目演示项目整体效果 以上,如果...

    Python 2020年12月23日 2823 0
  • kotlin web框架 Ktor 1.5.0发布

    我们很高兴地宣布Ktor 1.5.0的发布,它包含了新的功能,错误修复和新的文档!我们将继续努力。新功能1.5.0 是今年的第三个也是最后一个版本,按照我们的承诺,一年有三个主要或次要版本,每月至少发布一个补丁。我们很高兴地说,到目前为止,我们已经成功地或多或少地遵守了这个承诺,尽管有时会有一些延迟。在这次小更新中,我们有一系列的新功能,包括:新的开发模式Ktor提供了一系列针...

    Java 2020年12月23日 1497 0
  • 为什么推荐try-with-resource处理java异常

    这篇文章是我近期看了《Effective java》一书中总结的,来自其中第九条。为了对其理解的更加透彻,因此重新分析了一下,并加入了一些其他点。本文的所有例子均在本地代码运行完毕基于JDK版本1.8,运行环境eclipse本文类名:TryWithResources,下文的堆栈信息也以此为基础在java开发中,一些网络链接或者是文件资源都需要程序员去手动调用close方法关闭,...

    Java 2020年12月23日 1118 0
  • springboot 中使用JWT保护资源安全

    什么是JWT Json Web Token(JWT)是一个开放标准(RFC 7519),它定义了一种紧凑的、自包含的方式,用于在各方之间以JSON对象的形式安全地传输信息。此信息可以验证和信任,因为它是数字签名的。jwt可以使用密钥(使用HMAC算法)或使用RSA或ECDSA的公钥/私钥对进行签名。 尽管jwt可以被加密以提供双方之间的保密性,但我们将重点关注签名令牌。签名令牌...

    Java 2020年12月23日 1255 0
  • 文件写入的6种方法,这种方法性能最好

    在 Java 中操作文件的方法本质上只有两种:字符流和字节流,而字节流和字符流的实现类又有很多,因此在文件写入时我们就可以选择各种各样的类来实现。我们本文就来盘点一下这些方法,顺便测试一下它们性能,以便为我们选出最优的写入方法。在正式开始之前,我们先来了解几个基本的概念:流、字节流和字符流的定义与区别。0.什么是流?Java 中的“流”是一种抽象的概念,也是一种比喻,就好比水流...

    Java 2020年12月22日 933 0
  • 如何写个分布式配置中心

    前言一位读者朋友跟我反馈,能不能写一篇比较全的配置中心的文章。自己最近在面试过程中有被面试官问:如何设计一个配置中心? 这个话题,由于自己在工作中也没实际使用过配置中心,所以对于如何去设计是完全没有概念的。今天就给大家写一篇去配置中心需要考虑的点,我也不是什么配置中心开源项目的参与者,所以写出来的仅供大家参考。有必要重复造轮子吗?当面试官问你:如果让你写一个配置中心,说说你的设...

    Java 2020年12月22日 1377 0
  • 2020终极版PhpStorm:全面支持PHP8,静态分析器 PHP

    2020终极版PhpStorm:全面支持PHP8,静态分析器

    PhpStorm 是 JetBrains 公司开发的一款商业的 PHP 集成开发工具,旨在提高用户效率,可深刻理解用户的编码,提供智能代码补全,快速导航以及即时错误检查。这个主要版本包括对PHP 8,静态分析器PHPStan和Psalm,Xdebug 3,Tailwind CSS,通过Code With Me进行协作开发的全面支持。PhpStorm 2020.3现已上市!下载P...

    PHP 2020年12月21日 3108 0
  • Spring Boot @Condition 注解,组合条件你知道吗

    写在前面当我们构建一个 Spring 应用的时候,有时我们想在满足指定条件的时候才将某个 bean 加载到应用上下文中, 在Spring 4.0 时代,我们可以通过 @Conditional 注解来实现这类操作我们看到 @Conditional 注解接收的参数是 extends Condition 接口的泛型类,也就是说,我们要使用 @Conditional 注解,只需要实现 ...

    Java 2020年12月21日 1564 0
  • 为什么选择 Netty?Netty 入门教程

    JDK 编程感受了上面的 java 中的 BIO/NIO/AIO 详解,不知道你是否觉得 jdk 直接编程非常麻烦?还有很多情况需要去考虑处理,还有性能相关的问题、稳定性问题,拓展性问题。不选择Java原生NIO编程的原因现在我们总结一下为什么不建议开发者直接使用JDK的NIO类库进行开发,具体原因如下。(1) NIO的类库和API繁杂,使用麻烦,你需要熟练掌握Selector...

    Java 2020年12月21日 1217 0
  • 精通多线程,却不会异步编程?

    前言以前需要异步执行一个任务时,一般是用Thread或者线程池Executor去创建。如果需要返回值,则是调用Executor.submit获取Future。但是多个线程存在依赖组合,我们又能怎么办?可使用同步组件CountDownLatch、CyclicBarrier等;其实有简单的方法,就是用CompletableFuture线程任务的创建线程任务的串行执行线程任务的并行执...

    Java 2020年12月20日 1013 0
  • PHP为什么empty可以访问不存在的索引 PHP

    PHP为什么empty可以访问不存在的索引

    开始之前, 先抛出问题:$arr = []; echo 'empty: ', PHP_EOL; var_dump(empty($arr['1'])); echo 'is_array: ', PHP_EOL; var_dump(is_array($arr['1']));这段代码的运行结果:你是否和我有过同样的疑问? 同样是函数, 为什么empty访问不存在的索引就不会报错呢? 按...

    PHP 2020年12月20日 1541 0
  • Java高性能编程实战 --- 线程封闭与ThreadLocal

    1 线程封闭多线程访问共享可变数据时,涉及到线程间数据同步的问题。并不是所有时候,都要用到 共享数据,所以线程封闭概念就提出来了。数据都被封闭在各自的线程之中,就不需要同步,这种通过将数据封闭在线程中而避免使 用同步的技术称为线程封闭。避免并发异常最简单的方法就是线程封闭 即 把对象封装到一个线程里,只有该线程能看到此对象; 那么该对象就算非线程安全,也不会出现任何并发安全问题...

    Java 2020年12月18日 1093 0
  • 将HTML表格转换成精美的PDF,几种生成PDF的解决方案

    包含表格、图表和图形的Web应用程序通常包含将数据导出为PDF的选项。你有没有想过,作为一个用户,当你点击那个按钮时,幕后发生了什么?作为开发人员,如何让PDF输出看起来更专业?大多数免费的在线PDF导出器实际上只是将HTML内容转换为PDF,而不进行任何额外的格式化,这会使数据难以阅读。如果你也能添加诸如页眉和页脚、页码或重复的表列标题等内容呢?像这样的小点缀,对把一份看起来...

    Java 2020年12月18日 1864 0
  • 线程池的7种创建方式,强烈推荐你用它

    根据摩尔定律所说:集成电路上可容纳的晶体管数量每 18 个月翻一番,因此 CPU 上的晶体管数量会越来越多。但随着时间的推移,集成电路上可容纳的晶体管数量已趋向饱和,摩尔定律也渐渐失效,因此多核 CPU 逐渐变为主流,与之相对应的多线程编程也开始变得普及和流行起来,这当然也是很久之前的事了,对于现在而言多线程编程已经成为程序员必备的职业技能了,那接下来我们就来盘一盘“线程池”这...

    Java 2020年12月18日 1614 0
  • Spring Boot 2.4 对多环境配置的支持更改

    在目前最新的Spring Boot 2.4版本中,对配置的加载机制做了较大的调整。相关的问题最近也被问的比较多,所以今天就花点时间,给大家讲讲Spring Boot 2.4的多环境配置较之前版本有哪些变化。多环境配置2.4版本之前先回顾下,2.4版本之前,我们在yaml配置文件中,使用spring.profiles来定义不同环境的标识,比如下面这样:spring:  ...

    Java 2020年12月17日 1268 0
  • Springboot整合shiro基于url身份认证和授权认证

    权限管理在日常开发中很重要,所以硬着头皮也要啃下来。在这里插入图片描述实现功能:身份认证对不同页面进行url授权多表登录解决同一个页面多role访问项目完整github地址 欢迎starspringboot一些学习整合完整地址shiro的四大组件:身份认证(Authentication)-证明用户身份,通常叫做登陆(login)。授权(Authorization)-访问控制加密...

    Java 2020年12月16日 1229 0
  • 最佳的前后端分离:SpringBoot集成Swagger2

    一、是什么  当下很多公司都采取前后端分离的开发模式,前端和后端的工作由不同的工程师完成。在这种开发模式下,维持一份及时更新且完整的 Rest API 文档将会极大的提高我们的工作效率。传统意义上的文档都是后端开发人员手动编写的,相信大家也都知道这种方式很难保证文档的及时性,这种文档久而久之也就会失去其参考意义,反而还会加大我们的沟通成本。而 Swagger 给我们提供了一个全...

    Java 2020年12月16日 1186 0
  • 5 分钟入门 spring cloud 实战笔记

    今天和大家来一起体验一下 spring cloud,回首了一下以前的笔记,整理记录 spring cloud 已经 2 年有余,不过工作中不用,也就淡忘了。最近在梳理学习微服务相关知识,就将 spring cloud 重温一下。Spring CloudSpring Cloud 为开发人员提供了工具,以快速构建分布式系统中的一些常见模式(例如,配置管理,服务发现,断路器,智能路由...

    Java 2020年12月16日 1195 0
  • C#中多线程的那点事-死锁 C#

    C#中多线程的那点事-死锁

    我们讲述了多线程编程过程中,一种限制多个线程对资源的同时访问的技术——锁。小明同学,上周未和家人出去游玩去了。刚学了锁的用法,小明终于完善的模拟出了早餐店的流水线,所以他游玩很开心。但是回家的路上,却遇到了烦心事!由于天气很好,小明一家人游玩到了天黑才驱车回家。正值交通拥堵的时候,在他们即将行进到一个环岛的时候,交通完全堵死了。传说中的堵死小明在车上看着道路资源被无限的占用着,...

    C# 2020年12月16日 2061 0
  • 新手一看就懂的线程池

    那相信大家也能感受到,其实用多线程是很麻烦的,包括线程的创建、销毁和调度等等,而且我们平时工作时好像也并没有这样来 new 一个线程,其实是因为很多框架的底层都用到了线程池。线程池是帮助我们管理线程的工具,它维护了多个线程,可以降低资源的消耗,提高系统的性能。并且通过使用线程池,我们开发人员可以更好的把精力放在任务代码上,而不去管线程是如何执行的,实现任务提交和执行的解藕。本文...

    Java 2020年12月15日 1133 0
  • Java基础|强引用、弱引用、软引用、虚引用

    前言在ThreadLocal源码中,其中嵌套类ThreadLocalMap中的Entry继承了WeakReferenc。Java中提供这四种引用类型主要有两个目的:第一是可以让程序员通过代码的方式决定某些对象的生命周期;第二是有利于JVM进行垃圾回收。强引用(StrongReference)强引用是使用最普遍的引用。如果一个对象具有强引用,那垃圾回收器绝不会回收它。如下:Obj...

    Java 2020年12月15日 1283 0
  • 你来说一下springboot的启动时的一个自动装配过程吧

    前言没有面试就继续夯实自己的基础,前阵子的在面试过程中遇到的各种问题陆陆续续都会总结出来分享给大家,这次要说的也是面试中被问到的一个高频的问题,我当时其实没答好,因为很早之前是看到springboot的启动的一个过程的源码的,但是时间隔得有点久了(两年多没用过springboot),所以当时也没答好。这次好好总结这部分知识。SpringApplication.run()我看网上...

    Java 2020年12月15日 1624 0
  • 无锁队列Disruptor原理解析

    队列比较队列队列比较总结: 就性能而言,无锁(什么也不加) > CAS > LOCK; 从现实使用中考虑,我们一般选择有界队列(避免生产者速度过快,导致内存溢出);同时,为了减少Java的垃圾回收对系统性能的影响,会尽量选择array/heap格式的数据结构。所以我们实际使用中用ArrayBlockingQueue多一些;注:之后会将ArrayBlockingQue...

    Java 2020年12月15日 3463 0
  • 集成动态日志,“消灭”logback-spring.xml

    前言动态调整线上日志级别是一个非常常见的场景,借助apollo这种配置中心组件非常容易实现。作为apollo的官方技术支持,博主经常在技术群看到有使用者询问apollo是否可以托管logback的配置文件,毕竟有了配置中心后,消灭所有的本地配置全部交给apollo管理是我们的最终目标。可是,apollo不具备直接托管logback-spring.xml配置文件能力,但是,我们可...

    Java 2020年12月15日 1363 0
  • springboot之本地缓存-guava与caffeine

    1. 场景描述因项目要使用本地缓存,具体为啥不用redis等,就不讨论,记录下过程,希望能帮到需要的朋友。2.解决方案2.1 使用google的guava作为本地缓存初步的想法是使用google的guava,因为本身项目中就有guava的denpency。2.1.1 pom文件需要3个dependency,如下: <!--软件老王 1--> <depen...

    Java 2020年12月15日 1296 0
  • 分布式事务的七种实现方案汇总

    背景随着微服务的普及,分布式事务成为了系统设计中不得不面对的一个问题,而分布式事务的实现则十分复杂。阅读本文之前,需要你对数据库事务的ACID、CAP理论、Base理论以及两阶段提交有一定的认知,不熟悉者请自行百度或者阅读参考博客1、2、3和4。除此之外,在阅读本文过程中,如果对某种方案不理解,强烈建议先阅读对应方案中的参考博客后再阅读本文中对应的介绍。为了便于后文叙述,这里对...

    Java 2020年12月15日 1199 0
  • Springboot+MybatisPlus高效实现增删改查

    Mybatis-Plus基于mybatis做了增强,大大简化了单表CRUD操作,而且Mybatis-Plus是无侵入性的,不会影响现有项目,Mybatis-Plus提供了代码生成器,可以根据数据库表一键生成对应的service、mapper、xml文件,service和mapper提供了丰富的CRUD操作方法,xml文件也是非常简洁。目前最新版本是3.4.1版本。最新版本蛮看一...

    Java 2020年12月14日 3541 0
  • 完美的分布式监控系统——普罗米修斯

    DevOps工程师或SRE工程师,可能都知道Prometheus普罗米修斯。Prometheus于2012年由SoundCloud创建,目前已经已发展为最热门的分布式监控系统。Prometheus完全开源的,被很多云厂商(架构)内置,在这些厂商(架构)中,可以简单部署Prometheus,用来监控整个云基础架构设施。比如DigitalOcean或Docker都是普罗米修斯作为基...

    Java 2020年12月14日 1727 0
  • 动态高并发时为什么推荐重入锁而不是Synchronized?

    前言碎语Synchronized和 ReentrantLock 大家应该都不陌生了,作为java中最常用的本地锁,最初版本中 ReentrantLock 的性能是远远强于 Synchronized 的,后续java在一次次的版本迭代中 对 Synchronized 进行了大量的优化,直到 jdk1.6 之后,两种锁的性能已经相差无几,甚至 Synchronized 的自动释放锁...

    Java 2020年12月14日 1639 0
  • Spring Boot 整合 Netty

    前言Protobuf介绍使用代码编写服务端客户端功能测试其它前言本篇文章主要介绍的是SpringBoot整合Netty以及使用Protobuf进行数据传输的相关内容。Protobuf会简单的介绍下用法,至于Netty在之前的文章中已经简单的介绍过了,这里就不再过多细说了。Protobuf介绍protocolbuffer(以下简称PB)是google 的一种数据交换的格式,它独立...

    Java 2020年12月13日 1094 0