自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 Optional优化空指针

相信很多小伙伴在工作中会遇到各种各样的空指针(NullPointerException) 异常,接下来举一些例子如何使用Optional 语法来优化代码package com.zh.service;import lombok.Data;import java.util.Optional;/** * @Description: 测试Optional 断言 * @ClassName TestOptional * @date:2022年-01月-15日 14:51* @Author: zhangh

2022-04-20 11:52:05 212

原创 Flutter 网络请求 & JSON 解析

使用 Dio 请求数据,json_serializable 解析 json 数据可以创建 flutter 项目,也可以创建 dart 项目。因为只是数据解析,不需要用到 flutter 视图组件。添加 Dio 依赖 dio | Dart Packagename: dartlearn # 项目名字version: 0.0.1description: A sample command-line application for dartdependencies: dio: ^3.0.9 #

2022-04-19 09:57:48 2740

原创 Android Studio创建一个安卓项目

目前不管事项目还是产品,都是有各种的APP、小程序,这里就跟大家分享一个App项目的搭建吧。前提条件:需要安装JDK,这里要注意,AS要求JDK7及更高版本,这里就不必多说。在新建项目之前,可以看一下已经下载的SDK,如果是经常开发,我们可以把常用的sdk都下载好点击图标打开sdk管理器勾选右下角,可以查看具体下载的api版本点击切换查看sdktools新建项目时,根据自定义向导finish以后,开始构建项目,可能会构建失败,一般情况是因为墙的问题,我们配置一..

2022-04-18 17:29:26 4691

原创 设计模式六大原则理解

前言:在开发当中,可能很多人都没去考虑过以设计模式的方案写代码,其实在很多地方处处都展示了设计模式的强大,任何框架都会以某种模式进行设计,那以下就给大家介绍下设计模式。一、设计模式中的使用设计模式在软件开发中的两个主要用途。1、开发人员的共同平台设计模式提供了一个标准的术语系统,且具体到特定的情景。例如,单例设计模式意味着使用单个对象,这样所有熟悉单例设计模式的开发人员都能使用单个对象,并且可以通过这种方式告诉对方,程序使用的是单例模式。2、最佳的实践设计模式已经经历了很长.

2022-04-15 14:02:20 135

原创 初识Nginx

前言:公司项目刚刚上线的时候,并发量小,用户使用的少,所以在低并发的情况下,一个jar包启动应用就够了,然后内部tomcat返回内容给用户。于是横向扩展,又增加了服务器。这个时候几个项目启动在不同的服务器上,用户要访问,就需要增加一个代理服务器了,通过代理服务器来帮我们转发和处理请求。我们希望这个代理服务器可以帮助我们接收用户的请求,然后将用户的请求按照规则帮我们转发到不同的服务器节点之上。这个过程用户是无感知的,用户并不知道是哪个服务器返回的结果,我们还希望他可以按照服务器的性能提供不同的权重选择。保证最

2022-04-14 15:24:39 129

原创 Vue插槽介绍

1、什么是vue?Vue.js是一套构建用户界面的渐进式的框架,Vue 采用的是自下向上增量开发的设计,其核心库只关注视图层,更易于上手,同时vue完全有能力驱动采用单文件组件和 Vue 生态系统支持的库开发的复杂单页应用。2、vue在网站制作,项目开发中有哪些显著优势?1.数据的绑定。 vue会根据对应的那些元素,设置元素数据,通过输入框,以及获取数据等多种方式进行数据的实时绑定,进行网页的数据渲染 。2.组件式开发 需要通过vue的模块封装,可以将一个web开发中设计的各种模块.

2022-04-13 11:32:43 683

原创 Lambda

前言Lambda表达式是Java8新特性之一,平时我们在写代码时,就可以用到Lambda来简化我们的代码,俗话说菜鸟10行代码大佬只需一行代码解决,其不含就是简化了代码,下面就给大家介绍Lambda的几大用法。1、介绍- 匿名函数- 一段可以传递的代码,将代码像数据一样传递- 语法糖- Lambda的本质: 作为函数式接口的实例- Lambda表达式只适用于函数式接口2、关键词 @FunctionalInterface 一个接口中只有一个抽象方法 java.

2022-04-12 13:53:09 376

原创 初识ELK(日志系统)

1、ELK是Elasticsearch、Logstash、 Kibana三大开源框架首字母大写简称。在市面上也被称之为Elastic Stack。其中Elasticsearch是一个基于Lucene架构、通过Restful风格方式进行交互的数据的,实时性很强的搜索平台框架之一。2、像我们平时访问的百度、谷歌等等这种数据量非常大的场景就可以使用Elasticsearch作为搜索引擎框架。Logstash是ELK的中央数据流引擎,用于从不同目标(文件/数据存储/MQ )收集的不同格式数据,经过过滤后

2022-04-11 14:50:16 2582

原创 初识ZooKeeper

1、ZooKeeper 简介前言:虽然现在是微服务、分布式架构时代,我在很多家公司呆过但都没有用到过zookeeper框架,可能都是中小型企业用的少吧(哈哈),大厂用的其实也挺多的,那么我就分析一下zookeeper的一些知识吧,以下官方是这样定义zookeeper:2、ZooKeeper 设计目的3、ZooKeeper数据模型Zookeeper是会维护一个具有层次关系的数据结构,它非常类似于一个标准的文件系统,如图所示:Zookeeper这种数据结构有...

2022-04-07 11:55:53 106

原创 Redis快速入门

redis如今是人手必备的技能,很多项目基本是离不开缓存,不像几年前一个mysql数据库解决一切问题,现在讲究的是效率,性能,所以学习redis是必要的。1.概述redis是什么Redis(Remote Dictionary Server ),也就是远程字典服务。 是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的APl。redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了mas..

2022-04-06 11:42:23 136

原创 非关系型数据库

一、为什么要用Nosql1. 单机MySQL的时代。 一个基本的网站访问量一般不会太大,单个数据库完全足够。 那时候更多使用的静态网页html,服务器根本没有太大压力。 这时候网站的瓶颈是什么? - 数据量如果太大,一个机器放不下。 - 数据量太大需要建立数据的索引(B+ Tree),一个服务器内存放不下。 - 访问量读写混合,一个服务器承受不了。2. memcached缓存+MySQL+垂直拆分(读写分离)。 网站80%的情况都是在读,每次都要...

2022-04-02 11:32:56 1074

原创 RabbitMQ的学习

大家在项目当中遇到消息中间件,应该还是挺多的吧,在业务量大的情况下,就可以把消息中间件整合在项目当中,实现异步消峰,高可用等,今天先给大家分享一个在linux环境下手动安装以及容器安装消息中间件。一、linux安装RabbitMQ1. 首先下载erlang包和RabbitMQ包 下载erlang wget https://packages.erlang-solutions.com/erlang-solutions-2.0-1.noarch.rpm 下载RabbitMQ(也可以直接去

2022-04-01 16:08:18 2350

原创 上java培训班有用吗?Java有必要上培训班吗?

Java的工资是比较高的,很多人自然会选择转行学习Java,但是Java的高工资是有原因的。Java的技术是一个难点,很多人都在纠结是自学Java还是报名参加Java培训班。那么去Java培训班有用吗?Java有必要上培训班吗?如果你想问我Java培训版是否有用?那么我肯定会告诉你它很有用。许多人最害怕的问题是他们花了很多学费,但培训课程发现它没有用。今天,让我们来看看自学Java和注册Java培训版本的特点。假如你选择Java培训班。在培训和学习中,老师会带领你学习,但你需要辞职,你.

2022-03-31 11:00:05 985

原创 webpack打包学习

从上图我们可以看出,webpack 可以将多种静态资源 js、css、sass文件等转换成一个静态文件,以此可以减少页面的请求,从而提高浏览器响应速度1.安装开发依赖包npm install webpack webpack-cli -D2.添加打包配置文件webpack.config.js(执行打包命令时会默认执行)const path = require('path');module.exports = { //development:开发模式,producti...

2022-03-23 10:57:43 880

原创 zookeeper实现分布式锁

前言zookeeper的设计初衷,就是为了协调分布式服务,因此利用zookeeper来解决分布式锁的问题是一种最为简单的实现1 原理利用zookeeper的顺序临时节点的特性来实现1.1 获取锁 首先,在zookeeper当中创建一个父节点 /testLock; 当第一个客户端C1想要获取锁时,会先在父节点下创建一个临时顺序节点N1; 之后,C1会查找父节点下的所有的临时顺序节点并排序,判断自己所创建的节点N1是不是最小的(最靠前的); 如果是,则成功获得锁; ..

2022-03-21 11:57:11 2412

原创 分布式搜索引擎对比

1、ElasticSearch简介2、Solr简介3、Lucene简介Lucene是一个全文检索引擎的架构,它提供了完整的查询引擎和索引引擎等等。Lucene的目的是为软件开发人员提供一个简单的api工具包,以方便的在系统中实现检索的功能。Lucene是一套用于全文检索和搜寻的开源程式库,由Apache软件基金会支持和提供。Lucene提供了一个简单却强大的应用程式接口,能够做全文索引和搜寻。在Java开发环境里Lucene是一个成熟的免费开源工具。就其本身而言,Lucene..

2022-03-16 11:54:30 413

原创 Spring-boot集成elasticsearch

前言:ElasticSearch 是如今在搜索领域当中用的比较广泛技术框架。它是具有实时性搜索、稳定可靠的特点,易安装且使用方便。支持通过 HTTP 请求方式,使用的是 JSON格式来进行数据索引。一、概要二、安装结构图docker-compose.ymlik中文分词ik_max_word和ik_smart ik_max_word: 将文本按最细粒度的组合来拆分,比如会将我们毕业了拆分为“我们、毕业了、毕业、了、千年华夏”,总之是可能的组合; ...

2022-03-14 11:42:16 876

原创 云服务器发布JAVA项目

本地代码完成以后,下一步就是打包到服务器上去执行jar包或者war包,接下来就演示一下云服务器上的操作吧。首先了解下什么是云服务器?云服务是基于互联网的相关服务的增加、使用和交互模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源。云是网络、互联网的一种比喻说法。过去在图中往往用云来表示电信网,后来也用来表示互联网和底层基础设施的抽象。云服务指通过网络以按需、易扩展的方式获得所需服务。这种服务可以是IT和软件、互联网相关,也可是其他服务。它意味着计算能力也可作为一种商品通过互联网进行流通。

2022-03-10 11:23:50 1283

原创 Nginx的安装(windows、Linux)

一、windows下安装1、下载nginx可以在官网上nginx: download 下载稳定版本。 以nginx/Windows-1.16.1为例,直接下载 nginx-1.16.1.zip。 下载后解压,解压后如下:2、启动nginx有很多种方法启动nginx(1)直接双击nginx.exe,双击后一个黑色的弹窗一闪而过(2)打开cmd命令窗口,切换到nginx解压目录下,输入命令 nginx.exe ,回车即可3、检查nginx是否启动成功直接在浏览器地址栏输.

2022-03-09 10:47:36 1671

原创 Jenkins学习

jenkins是什么?Jenkins是一个开源的、提供友好操作界面的持续集成(CI)工具,起源于Hudson(Hudson是商用的),主要用于持续、自动的构建/测试软件项目、监控外部任务的运行(这个比较抽象,暂且写上,不做解释)。Jenkins用Java语言编写,可在Tomcat等流行的servlet容器中运行,也可独立运行。通常与版本管理工具(SCM)、构建工具结合使用。常用的版本控制工具有SVN、GIT,构建工具有Maven、Ant、Gradle。CI/CD是什么?CI(持续集成)是一种软件

2022-03-08 16:30:31 602

原创 JVM面试总结分析

金三银四,如今快到跳槽高峰期了,很多小伙伴在面试的时候,恐怕都会遇到jvm虚拟机的一些刁钻问题吧,我总结了如下几个高频问题。1、类的加载流程【.Class Files】 -> 【加载 (ClassLoader)】 -> 【链接 (验证、准备、解析)】 -> 【初始化】2、类的加载器启动类加载器、扩展类加载器、应用程序类加载器、自定义加载器3、双亲委派机制在类的加载时,不会由当前加载器直接加载,而是先由委托父加载器,父加载器在委托父...

2022-03-04 14:31:17 325

原创 Vue学习之路由转发

Vue学习之路由转发1、路由(routing)是通过网络把信息从源地址传输到目标地址的路径叫路由。2、路由器就提供了两种机制:路由和转发。路由是决定数据包从源地址到目标位地的路径。转送将输入端的数据转发到输出端。3、路由中有一个重要的概念叫做路由表。路由表本质上就是一张后端映射表,决定了url的指向路径。一般是由后端就行封装。随着网页开发目前基本是前后端分离时代。由于Ajax(异步 JavaScript 和 XML)的出现,就有了前后端分离的开发模式。后端只需要提供接口来返回数据,前端就通过.

2022-03-03 10:10:00 1762

空空如也

空空如也

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

TA关注的人

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