
python
java架构师小芷
java构架大数据每天分享干货
展开
-
MongoDB干货总结
什么是MongoDB 基于分布式文件存储的数据库,介于非关系型和关系型数据库之间。 MongoDB和MySQL对比 MongoDB MySQL Database Database Collection(集合) Table Document(文档) Row Field Column MongoDB有什么特点 (1)面向集合存储数据,数据以json格式存储; (2)查询功能强大,几乎可以实现所有关系型数据库的单表查询功能; (3)自带分布式文件系统,原创 2020-09-23 13:57:47 · 429 阅读 · 0 评论 -
谈一谈不常见却又不可少的ThreadLocal
在写ThreadLocal之前,需要先巩固下一点相关知识:Java内存模型及共享变量的可见性。 内存模型中所有变量存储在主内存中,当一个线程中要使用某个变量时,需要从主内存复制该变量到其线程内才能操作,此时线程中操作的是主内存变量的副本,操作完成后再刷回主内存。刷回的实质就是变量赋值 如果多个线程访问同一个变量时,每个线程都具有一个副本,操作完毕后都会刷回主内存,刷回时间存在先后,则赋值有先后,当然后者会覆盖前者,这是造成可见性问题的次要原因。 引入以上知识点后,再来说明ThreadLocal。一个线原创 2020-09-20 15:55:48 · 308 阅读 · 0 评论 -
[译] Golang 汇编器快速指南
本文档是 Go编译器 GC 使用的非通用形式的汇编语言快速大纲。文档并不完整。 汇编器基于 Plan 9 汇编器的输入风格。详细文档在这里。如果你准备写一些汇编语言,那么虽然此文档是基于 Plan 9 的,你也应该通读。本文提供了语法摘要和与其解释内容的区别,并且描述了编写汇编与 Go 交互时所适用的特性。 最重要的是,Go 的汇编器并不是底层的直接表示。有一些是直接的映射,有一些不是。这是因为编译套件在常规流程中并不需要汇编器。相反,编译器针对一种半抽象的指令集操作,而且指令选择发生在一部分发生在代码原创 2020-09-11 13:24:28 · 414 阅读 · 0 评论 -
《Head First 设计模式》:迭代器模式
正文 一、定义 迭代器模式提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露其内部的表示。 要点: 迭代器模式把在元素之间游走的责任交给迭代器,而不是聚合对象。这样简化了聚合的接口和实现,也让责任各得其所。 二、实现步骤 1、创建迭代器接口 /** * 迭代器接口 */ public interface Iterator { /** * 是否有下一个元素 */ public boolean hasNext(); /**原创 2020-09-08 13:10:10 · 121 阅读 · 1 评论 -
别再手动管理接口文档了
大多数情况下,开发的接口都不是给开发这个接口的人用的,所以如果没有接口文档,别人就无法有哪些接口可以调用,即使知道了接口的 URL,也很难知道接口需要哪些参数,即使知道了这些参数,也可能无法理解这些参数的含义。因此接口文档应该是项目必不可少的配置。 编写接口文档有很多种方式,最为简单直接的方式就是打开一个记事本或者 word 文档,将接口的详细信息和用法写下来,别人就可以参考这个文档来调用接口。这样做虽然简单,但弊端也很明显:一是需要写大量的描述文字,非常枯燥,但其实这些信息在代码中已有体现,有点像是使用原创 2020-09-04 10:46:58 · 291 阅读 · 0 评论 -
什么是计时攻击?Spring Boot 中该如何防御?
小编最近在研究 Spring Security 源码,发现了很多好玩的代码,抽空写几篇文章和小伙伴们分享一下。 很多人吐槽 Spring Security 比 Shiro 重量级,这个重量级不是凭空来的,重量有重量的好处,就是它提供了更为强大的防护功能。 比如最近看到的一段代码: protected final UserDetails retrieveUser(String username, UsernamePasswordAuthenticationToken authentic原创 2020-09-02 15:18:32 · 462 阅读 · 1 评论 -
如何利用Spring Boot框架开发一个全球化的应用程序
Spring Boot 主要通过 Maven 或 Gradle 这样的构建系统以继承方式添加依赖,同时继承了 Spring 框架中的优秀元素,减少了 Spring MVC 架构中的复杂配置,内置 Tomcat,Jetty 容器,使用 Java application 运行程序,而不是传统地把 WAR 包置于 Tomcat 等容器中运行,从而简化加速开发流程。此外,Spring Boot 学习简单、轻量级、容易扩展。基于这些优秀的特点,Spring Boot 成为了蓬勃发展的快速应用开发领域的领导者。 在互原创 2020-08-31 15:07:34 · 280 阅读 · 1 评论 -
Github上被疯传的Redis实战文档也太香了
前言 Redis从一个不为人熟知、只有少量应用的崭新数据库,逐渐变成了内存数据库领域的事实标准。时至今日,经过大量的实践应用,Redis简洁高效、安全稳定的特性已经深入人心。 那么什么是Redis?为什么我们要用Redis? Redis就像是一个HashMap,不过不是在JVM中运行,而是以一个独立进程的形式运行。 一般说来,会被当作缓存使用。 因为它比数据库(mysql)快,所以常用的数据,可以考虑放在这里,这样就提高了性能。 总归一个字:快! redis有什么优势? 1,运行在内存,速度快原创 2020-08-29 13:35:25 · 330 阅读 · 0 评论 -
如何利用Spring Boot框架开发一个全球化的应用程序
Spring Boot 主要通过 Maven 或 Gradle 这样的构建系统以继承方式添加依赖,同时继承了 Spring 框架中的优秀元素,减少了 Spring MVC 架构中的复杂配置,内置 Tomcat,Jetty 容器,使用 Java application 运行程序,而不是传统地把 WAR 包置于 Tomcat 等容器中运行,从而简化加速开发流程。此外,Spring Boot 学习简单、轻量级、容易扩展。基于这些优秀的特点,Spring Boot 成为了蓬勃发展的快速应用开发领域的领导者。 在互原创 2020-08-28 20:28:21 · 145 阅读 · 0 评论 -
Spring Boot +Security+Redis+Vue构建后台管理系统源码免费分享
项目简介 一个基于 Spring Boot 2.1.0 、 Spring Boot Jpa、 JWT、Spring Security、Redis、Vue的前后端分离的后台管理系统,项目采用分模块开发方式, 权限控制采用 RBAC,支持数据字典与数据权限管理,支持一键生成前后端代码,支持动态路由! 后台管理系统源码已经全部上传完毕,如果您需要用到这份源码的话, 可以关注转发文章之后私信回复【666】即可免费获取到! 主要特性 使用最新技术栈,社区资源丰富。 项目按功能模块化,提升开发,测试效率。原创 2020-08-17 20:13:53 · 240 阅读 · 0 评论 -
面试官:你说你很了解多线程,那你说一下怎么使用多线程输出数列
一、前言 计算机的操作系统大多采用任务和分时设计,多任务是指在一个操作系统中可以同时运行多个程序,例如,可以在使用qq聊天的同时听音乐,即有多个独立运行的任务,每个任务对应一个进程,每个进程又可以产生多个线程。 1.进程 进程是程序的一次动态执行过程,它对应了从代码加载、执行至执行完毕的一个完整过程,这个过程也是进程本身从产生、发展至消亡的过程。操作系统同时管理一个计算机系统中的多个进程,让计算机系统中的多个进程轮流使用CPU资源。 进程的特点: 进程是系统运行程序的基本单位 每一个进程都有自己独原创 2020-08-12 13:29:25 · 252 阅读 · 0 评论 -
简直骚操作,ThreadLocal还能当缓存用
背景说明 有朋友问我一个关于接口优化的问题,他的优化点很清晰,由于接口中调用了内部很多的 service 去组成了一个完成的业务功能。每个 service 中的逻辑都是独立的,这样就导致了很多查询是重复的,看下图你就明白了。 上层查询传递下去 上层查询传递下去 对于这种场景最好的就是在上层将需要的数据查询出来,然后传递到下层去消费。这样就不用重复查询了。 如果开始写代码的时候是这样做的没问题,但很多时候,之前写的时候都是独立的,或者复用的老逻辑,里面就是有独立的查询。...原创 2020-08-11 14:45:21 · 408 阅读 · 0 评论 -
面试这么撩准拿offer,HashMap深度学习,扰动函数、负载因子、扩容拆分,原理和实践验证,让懂了就是真的懂!
一、前言 得益于Doug Lea老爷子的操刀,让HashMap成为使用和面试最频繁的API,没办法设计的太优秀了! HashMap 最早出现在 JDK 1.2中,底层基于散列算法实现。HashMap 允许 null 键和 null 值,在计算哈键的哈希值时,null 键哈希值为 0。HashMap 并不保证键值对的顺序,这意味着在进行某些操作后,键值对的顺序可能会发生变化。另外,需要注意的是,HashMap 是非线程安全类,在多线程环境下可能会存在问题。 HashMap 最早在JDK 1.2中就出现了原创 2020-08-10 14:18:48 · 238 阅读 · 0 评论 -
丢弃掉那些BeanUtils工具类吧,MapStruct真香!!!
在前几天的文章《为什么阿里巴巴禁止使用Apache Beanutils进行属性的copy?》中,我曾经对几款属性拷贝的工具类进行了对比。 然后在评论区有些读者反馈说MapStruct才是真的香,于是我就抽时间了解了一下MapStruct。结果我发现,这真的是一个神仙框架,炒鸡香。 这一篇文章就来简单介绍下MapStruct的用法,并且再和其他几个工具类进行一下对比。 为什么需要MapStruct ? 首先,我们先说一下MapStruct这类框架适用于什么样的场景,为什么市面上会有这么多的类似的框架。原创 2020-08-10 13:52:29 · 197 阅读 · 0 评论