自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(49)
  • 资源 (2)
  • 收藏
  • 关注

转载 mall在Windows环境下的部署

转载自http://www.macrozheng.com/#/deploy/mall_deploy_windowsmall在Windows环境下的部署本文主要以图文的形式讲解mall项目所需环境在windows下的安装,主要包括IDEA、Mysql、Redis、Mongodb、RabbitMQ、Elasticsearch、Logstash、Kibana、OSS。IDEA 关于IDEA的安装与使用请参考:https://github.com/judasn/IntelliJ-IDEA...

2020-09-30 14:25:39 834

原创 线程封闭和ThreadLocal详解

线程封闭什么是线程封闭当访问共享变量时,往往需要加锁来保证数据同步。一种避免使用同步的方式就是不共享数据。如果仅在单线程中访问数据,就不需要同步了。这种技术称为线程封闭。在Java语言中,提供了一些类库和机制来维护线程的封闭性,例如局部变量和ThreadLocal类Ad-hoc 线程封闭程序控制实现,比较脆弱,尽量少用 堆栈封闭:局部变量,无并发问题,在项目中使用最多,简单说就是局部变量,方法的变量都拷贝到线程的堆栈中,只有这个线程能访问到。尽量少使用全局变量(变量不是常量) Thre.

2020-09-30 08:30:58 265

原创 并发编程之深入理解Java中的不可变对象

深入理解Java中的不可变对象 一.什么是不可变对象  下面是《Effective Java》这本书对于不可变对象的定义: 1 不可变对象(Immutable Object):对象一旦被创建后,对象所有的状态及属性在其生命周期内不会发生任何变化。   从不可变对象的定义来看,其实比较简单,就是一个对象在创建后,不能对该对象进行任何更改。比如下面这段代码: 1 2 3 4 5 6 7 8

2020-09-29 08:49:57 257

原创 springboot+ELK日志监控系统

springboot+ELK日志监控系统ELK简介ELK是Elasticsearch+Logstash+Kibana简称Elasticsearch 是一个分布式的搜索和分析引擎,可以用于全文检索、结构化检索和分析,并能将这三者结合起来。Elasticsearch 基于 Lucene 开发,现在是使用最广的开源搜索引擎之一。Logstash 简单来说就是一根具备实时数据传输能力的管道,负责将数据信息从管道的输入端传输到管道的输出端,与此同时这根管道还可以让你根据自己的需求在中间加上滤网,L.

2020-09-28 17:02:33 1144

原创 Java多线程安全发布对象

Java多线程环境下对象安全的构建方式在并发编程中Happens-Before原则对多线程共享变量的重要性。要想确保让一个线程对共享变量的修改能被其它线程感知到,就必须让两个线程中的操作满足Happens-Before原则。在构建一个对象的过程中,更要考虑到多线程间共享数据的一致性问题,否则很可能会发生一个在A线程中构建完整的对象,在B线程中看到的却只被构建了一部分。例如下面的代码:public class UnsafeLazyInitialization { private .

2020-09-28 16:23:50 206

原创 从Java多线程可见性谈Happens-Before原则

从Java多线程可见性谈Happens-Before原则Happens-Before是一个非常抽象的概念,然而它又是学习Java并发编程不可跨域的部分。本文会先阐述Happens-Before在并发编程中解决的问题——多线程可见性,然后再详细讲解Happens-Before原则本身。Java多线程可见性在现代操作系统上编写并发程序时,除了要注意线程安全性(多个线程互斥访问临界资源)以外,还要注意多线程对共享变量的可见性,而后者往往容易被人忽略。可见性是指当一个线程修改了共享变量的值,.

2020-09-28 16:15:28 161

原创 Windows环境下安装RocketMQ及RocketMQ插件

一.预备环境1.系统Windows2. 环境JDK1.8、Maven、Git二. RocketMQ部署1.下载1.1地址:http://rocketmq.apache.org/release_notes/1.2选择一个版本 再选择‘Binary’进行下载1.3解压已下载工程2. 配置2.1 系统环境变量配置变量名:ROCKETMQ_HOME path3. 启动3.1 启动NAMESERVERCmd命令框执行进入至‘MQ文件夹\bin’下,然后执行‘sta...

2020-09-24 08:52:34 974

原创 springboot整合bootstrap pagehelper分页插件 mybaties 做多表头表格查询列表

1,页面效果页面html 首先引入js bootstrap bootstrap-table <div style="width:1000px;"> <table id="lnjfxxDataGrid" class="table table-hover"></table> </div>jsfunction grlnzh(rec...

2020-09-23 15:45:59 391

原创 Oracle格式化日期 to_charto_char

Oracle格式化日期:yyyy年mm月dd日如:yyyy年mm月dd日需要加双引号例子:SELECT to_char(SYSDATE,'yyyy"年"mm"月"dd"日"') FROM DUAL;

2020-09-23 11:34:24 497

原创 uni-app设置华为荣耀手机真机调试

uni-app如何设置华为荣耀手机真机调试手机和手机连接之后,还是不能真机调试,如下图第一步:电脑与手机用数据线连接起来,会弹出如下图,点击“传输文件”第二步:去手机设置->"系统"->"关于手机"点击版本号7次,之后返回“系统”,就会出现“开发人员选项”如下图第三步:进入“开发人员选项”之后再去uin-app开发软件查看,就可以真机调试了点击之后,首次会安装,所以要等待几分钟...

2020-09-22 18:00:15 5038

原创 PLSQL快速生成增删改查语句

PLSQL快速生成增删改查语句1、在PLSQL中新建一个SQL Windows2、鼠标左键选中表名往SQL Windows中拖,会出现一个菜单Navicat 生成查询语句

2020-09-22 15:15:41 1938

原创 rocketMQ简介

1、RocketMQ简介与安装 1.1、RocketMQ简介 Apache RocketMQ是一个采用Java语言开发的分布式的消息系统,由阿里巴巴团队开发,与2016年底贡献给 Apache,成为了Apache的一个顶级项目。 在阿里内部,RocketMQ 很好地服务了 集 团大大小小上千个应用,在每年的双十一当天,更有不可思议的万亿级 消息通过 RocketMQ 流转(在 2017 年的双十一当天,整个阿里巴巴集团通过 RocketMQ 流转的线上消息达到了 万 亿级,峰值 TP

2020-09-21 19:11:26 276

转载 MyBatis 互联网面试题

MyBatis 面试题 1、什么是 Mybatis? 1、Mybatis 是一个半 ORM(对象关系映射)框架,它内部封装了 JDBC,开发时 只需要关注 SQL 语句本身,不需要花费精力去处理加载驱动、创建连接、创建 statement 等繁杂的过程。程序员直接编写原生态 sql,可以严格控制 sql 执行性 能,灵活度高。 2、MyBatis 可以使用 XML 或注解来配置和映射原生信息,将 POJO 映射成数 据库中的记录,避免了几乎所有的 JDBC 代码和手动设置参数以及

2020-09-19 13:33:43 3219

原创 多线程 / 高并发 bat面试题

多线程 / 高并发 1. stop() 和 suspend() 方法为何不推荐使用? 反对使用 stop(),是因为它不安全。它会解除由线程获取的所有锁定,而且如果对象 处于一种不连贯状态,那么其他线程能在那种状态下检查和修改它们。结果很难检查出 真正的问题所在。 suspend() 方法容易发生死锁。调用 suspend() 的时候,目标线程会停下来,但却仍 然持有在这之前获得的锁定。此时,其他任何线程都不能访问锁定的资源,除非被 "挂 起" 的线程恢复运行。对任何线程来说,如

2020-09-19 11:58:51 474

原创 JVM bat常见面试题

JVM 面试题 一.Java 类加载过程? Java 类加载需要经历一下 7 个过程: 1. 加载 加载是类加载的第一个过程,在这个阶段,将完成一下三件事情: • 通过一个类的全限定名获取该类的二进制流。 • 将该二进制流中的静态存储结构转化为方法去运行时数据结 构。 • 在内存中生成该类的 Class 对象,作为该类的数据访问入口。 2. 验证 验证的目的是为了确保 Class 文件的字节流中的信息不回危害到 虚拟机.在该阶段主要完成以下四钟验证:

2020-09-19 11:55:40 211

原创 微服务部署 Dockerfile入门

Dockerfile 1.1 什么是Dockerfile Dockerfile是由一系列命令和参数构成的脚本,这些命令应用于基础镜像并最终创建一个 新的镜像。 1、对于开发人员:可以为开发团队提供一个完全一致的开发环境; 2、对于测试人员:可以直接拿开发时所构建的镜像或者通过Dockerfile文件构建一个新 的镜像开始工作了; 3、对于运维人员:在部署时,可以实现应用的无缝移植。 1.2 常用命令 FROM image_name:tag 定义了使用哪个基础镜...

2020-09-18 18:42:00 408

原创 java8 List<Map> 操作 以某个key合并两个List<Map>

public static List<HashMap<String, Object>> merge(ArrayList<HashMap<String, Object>> list1,ArrayList<HashMap<String, Object>> list2,String key) { //List<HashMap<String, Object>> list1 = new Arra...

2020-09-18 16:18:30 2555

原创 理解RESTful 常见的几个方法介绍

理解RESTful 2.5.1 何为RESTfulRESTful架构,就是目前最流行的一种互联网软件架构。它结构清晰、符合标准、易 于理解、扩展方便,所以正得到越来越多网站的采用。REST这个词,是Roy Thomas Fielding在他2000年的博士论文中提出的 . REST 是Representational State Transfer的缩写,翻译是”表现层状态转化”。 可以 总结为一句话:REST是所有Web应用都应该遵守的架构设计指导原则。 面向资源是REST最明

2020-09-17 17:56:17 584

原创 uni-app 商城实战项目

商城实战项目项目搭建利用HBuilder X创建基本项目结构运行项目整理基本项目结构,并修改窗口外观"globalStyle": { "navigationBarTextStyle": "white", "navigationBarTitleText": "商城", "navigationBarBackgroundColor": "#1989fa", "backgroundColor": "#F8F8F8"}配置tabbar创建tabbar对应的四个页面

2020-09-17 15:58:36 5913 3

原创 框架 uni-app 入门到精通

uni-app 是继 mui 框架之后的一个跨多端的开发框架,目前支持 iOS Android 和 wx(微信小程序), 也就是说开发一套代码可以实现相应端的开发,是基于Vue的一个很不错的开发框架,对于熟悉Vue 和微信小程序的开发小伙伴来说学习成本几乎为零。即使不跨端,uni-app同时也是更好的小程序开发框架。具有vue和微信小程序的开发经验,可快速上手uni-app为什么要去学习uni-app?相对开发者来说,减少了学习成本,因为只学会uni-app之后,即可开发出iOS、Andro

2020-09-17 15:53:11 837

原创 Java8 中的 Streams流式操作详解

Java 8 中的 Streams API 详解Streams 的背景以及 Java 8 中的使用详解为什么需要 StreamStream 作为 Java 8 的一大亮点,它与 java.io 包里的 InputStream 和 OutputStream 是完全不同的概念。它也不同于 StAX 对 XML 解析的 Stream,也不是 Amazon Kinesis 对大数据实时处理的 Stream。Java 8 中的 Stream 是对集合(Collection)对象功能的增强,它专注于对.

2020-09-15 19:43:06 620

原创 java常见的几种认证机制

1. HTTP Basic AuthHTTP Basic Auth简单点说明就是每次请求API时都提供用户的username和password,简言之,Basic Auth是配合RESTful API 使用的最简单的认证方式,只需提供用户名密码即可,但由于有把用户名密码暴露给第三方客户端的风险,在生产环境下被使用的越来越少。因此,在开发对外开放的RESTful API时,尽量避免采用HTTP Basic Auth2. OAuthOAuth(开放授权)是一个开放的授权标准,允许用户让第三方应用访问该用

2020-09-15 19:27:41 2824 1

原创 redis 布隆过滤器介绍及应用

1、布隆过滤器使用场景1.布隆过滤器的特性是:去重,多数去重场景都跟这个特性有关。比如爬虫的时候去掉相同的URL,推送消息去掉相同的消息等。2.解决缓存击穿的问题。3.反垃圾邮件,从数十亿个垃圾邮件列表中判断某邮箱是否垃圾邮箱(同理,垃圾短信).1、数据结构布隆过滤器是一个BIT数组,本质上是一个数据,所以可以根据下标快速找数据其内部维护一个全为0的bit数组,需要说明的是,布隆过滤器有一个误判率的概念,误判率越低,则数组越长,所占空间越大。误判率越高则数组越小,所占的空间越小

2020-09-15 18:48:24 926

原创 spring security中 BCrypt密码加密算法

任何应用考虑到安全,绝不能明文的方式保存密码。密码应该通过哈希算法进行加密。 有很多标准的算法比如SHA或者MD5,结合salt(盐)是一个不错的选择。spring security中有多种密码加密方式,MD5算法的Md5PasswordEncoder、SHA 算法的ShaPasswordEncoder,但由于是弱加密算法,都被弃用了。推荐使用的是BCrypt算法的BCryptPasswordEncoder。BCryptPasswordEncoder实现Spring的PasswordE..

2020-09-15 18:14:40 1706

原创 commons-collections4包工具类介绍

Packageorg.apache.commons.collections4This package contains the interfaces and utilities shared across all the subpackages of this component.See:Description Interface Summary Interface Description Bag<E> Defines a collectio..

2020-09-12 23:49:03 4457

原创 commons-lang3常用工具方法介绍

apache提供的众多commons工具包,号称Java第二API,而common里面lang3包更是被我们使用得最多的。因此本文主要详细讲解lang3包里面几乎每个类的使用,希望以后大家使用此工具包。Apache Commons Lang3 Maven 依赖:<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 --><dependency> <groupId>or.

2020-09-12 23:10:40 11080

原创 springboot整合poi实现导出excel

一,pom <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.17</version> </dependency> &lt...

2020-09-11 15:21:55 545

原创 springboot动态配置文件扩展接口EnvironmentPostProcessor

EnvironmentPostProcessor接口官网说明官方文档如下Allows for customization of the application's {@link Environment} prior to the application context being refreshed.允许定制应用的上下文的应用环境优于应用的上下文之前被刷新。(意思就是在spring上下文构建之前可以设置一些系统配置)EnvironmentPostProcessor implementat

2020-09-09 10:48:01 4195

原创 SPRING、SPRING BOOT解析PROPERTIES、XML、YML、YAML文件的方法

一、解析PROPERTIES和XML这里使用了FileSystemResource,spring的Resource继承于InputStreamSource,也就是spring封装了InputStreamSource;可以从spring源码看到除了FileSystemResource还有其他的实现,比如可以不用绝对路径用ClassPath,对应的实现类就是ClassPathResource。/*** * 解析Properties 、xml * */ public static void lo

2020-09-09 09:05:42 758

原创 java 读取classpath下的文件

1,获取classpath路径EnvironmentPostProcessorCustomer为获取类路径的类// classpath目录下URL resource = EnvironmentPostProcessorCustomer.class.getResource("/");System.out.println(resource);//file:/E:/daima/0903/scf/scf_base/target/classes/// classpath+该类所在路径URL res

2020-09-09 08:35:58 1934

原创 使用idea上传项目到码云(gitee)上

点击vcs选择import into version control 选择 create git repisitory点击项目目录右键,此时会出现一个git,这是仓库创建成功才会有的。然后点击add添加到缓冲区将缓冲区的项目添加到本地仓库中选择要提交的目录文件,和信息,然后点击commit,这样项目就提交到本地的git里面去了。上传到gitee(码云上面去),项目右键,依次点击图片上面的提示提交,通过git提交到gitee上面去。进入提交配置界面,点击mast...

2020-09-08 10:03:06 842

原创 看图识java

2020-09-07 10:55:36 130

原创 JVM参数调整

JVM参数的含义参数名称 含义 默认值 -Xms 初始堆大小 物理内存的1/64(<1GB) 默认(MinHeapFreeRatio参数可以调整)空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制. -Xmx 最大堆大小 物理内存的1/4(<1GB) 默认(MaxHeapFreeRatio参数可以调整)空余堆内存大于70%时,JVM会减少堆直到 -Xms的最小限制 -Xmn 年轻代大小(1.4or lat.

2020-09-07 10:16:44 248

原创 JVM回收策略

JVM将整个堆划分为Young区、Old区和Perm区,分别存放不同年龄的对象,这三个区存放的对象有如下区别:Young:分为Eden区和两个Survivor区,其中所有新创建的对象都在Eden区,当Eden区满后会出发minor GC将Eden区仍然存好的对象复制到其中一个Survivor区中,另外一个Survivor区中的存活对象也复制到这个Survivor中,以保证始终有一个Survivor区是空的。一般情况下,Young区的大小为整个堆区的1/4,Survivor区为整个Young区的1/8

2020-09-07 10:14:50 477

原创 JVM之深入理解 Java 类加载器

类加载器是 Java 语言的一个创新,也是 Java 语言流行的重要原因之一。它使得 Java 类可以被动态加载到 Java 虚拟机中并执行。类加载器从 JDK 1.0 就出现了,最初是为了满足 Java Applet 的需要而开发出来的。Java Applet 需要从远程下载 Java 类文件到浏览器中并执行。现在类加载器在 Web 容器和 OSGi 中得到了广泛的使用。一般来说,Java 应用的开发人员不需要直接同类加载器进行交互。Java 虚拟机默认的行为就已经足够满足大多数情况的需求了。类加载器

2020-09-04 19:10:20 121

原创 vue全家桶包括技术

vue全家桶:vue(整体架构) +  vuex(状态管理) +  vue-router(路由) +  vue_resource || axios(ajax请求) +  mint-UI(移动端UI框架库) || element-ui(饿了么公司PC端UI框架库)

2020-09-04 13:38:38 998

原创 linux知识体系

2020-09-04 11:26:41 272

原创 JVM调优和参数配置,请问如何盘点查看JVM系统默认值

一、JVM的参数类型:1、标配参数: 1 2 java -version java -help X参数(了解)-Xmixed 混合模式(先编译后执行)-Xint 解释执行-Xcomp 第一次使用就编译成本地代码3、XX参数:Boolean类型:公式:-XX:+ (+表示开启 -表示关闭) 是否打印GC收集细节 -XX:+PrintGCDetails -XX:-PrintGCDetails...

2020-09-04 10:56:39 356

原创 JM垃圾回收的时候如何确定垃圾?是否知道什么是 GC Roots

什么是垃圾: 简单的说, 内存中已经不再被使用的空间,就是垃圾.例如一个对象指向为null了 Person p1 = null , 那么就可以将p1对象进行回收.要进行垃圾回收, 怎么判断一个对象是否可以被回收?引用计数法 (了解)Java中,引用和对象是有关联的。如果要操作对象则必须用引用进行因此,很显然一个简单的办法是通过引用计数来判断一个对象是否可以回收。简单说,给对象中添加一个引用计数器,每当有一个地方引用它,计数器值加1每当有一个引用失效时,计数器值减1。任何时刻计数器值为零的

2020-09-04 10:17:24 145

原创 JVM之常见的垃圾回收算法

算法一:引用计数法。 这个方法是最经典点的一种方法。具体是对于对象设置一个引用计数器,每增加一个变量对它的引用,引用计数器就会加1,没减少一个变量的引用, 引用计数器就会减1,只有当对象的引用计数器变成0时,该对象才会被回收。可见这个算法很简单,但是简单往往会存在很多问题,这里我列举最明显的两个问题, 一是采用这种方法后,每次在增加变量引用和减少引用时都要进行加法或减法操作,如果频繁操作对象的话,在一定程度上增加的系统的消耗。...

2020-09-04 10:04:43 755

SpringCloud第2季2020.3.2.mmap

springCloud2详细介绍 nacos系列 netflex系列应用 系统整理 包含服务注册,限流熔断

2020-07-13

sigar.rar库文件

Sigar为不同平台提供的不同的库文件 windows平台:sigar-x86-winnt.dll linux平台:libsigar-x86-linux.so或 solaris平台: libsigar-x86-solaris.so或libsigar-sparc-solaris.so或libsigar-sparc64-solaris.so 64位平台:分为至强的libsigar-ia64-linux.so和AMD的libsigar-amd64-linux.so,sigar-amd64-winnt.dll

2020-03-29

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除