自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java 攻城狮面试题 00_Java虚拟机 JVM

JVM 虚拟机 概述什么是 Java 虚拟机?为什么 Java 被称作是“平台无关的编程语言”?Java 虚拟机是一个可以执行 Java 字节码的虚拟机进程。Java 源文件(.java)被编译成能被 Java 虚拟机执行的字节码(.class)文件。Java 被设计成允许应用程序可以运行在任意的平台,而不需要程序员为每一个平台单独重写或者是重新编译。Java 虚拟机让这个变为可能,因为它知道底层硬件平台的指令长度和其他特性。Jvm:在倒数第二层,由它可以在(最后一层的)各种平台上运行 Java

2021-11-09 21:57:36 929

原创 Java 攻城狮面试题 04_Redis 分布式缓存数据库

Redis 概念Redis 是什么?都有哪些使用场景?Redis 是一个使用 C 语言开发的高速缓存数据库。Redis 使用场景:记录帖子点赞数、点击数、评论数;缓存近期热帖;缓存文章详情信息;记录用户会话信息。Redis 有哪些功能?数据缓存功能分布式锁的功能支持数据持久化支持事务支持消息队列Redis 和 memcache 有什么区别?存储方式不同:memcache 把数据全部存在内存之中,断电后会挂掉,数据不能超过内存大小;Redis 有部份存在硬盘上,这样能

2021-10-29 21:57:42 2404 1

原创 Java 攻城狮面试题 03_ Nginx 反向代理服务器

Nginx 概念什么是正向代理和反向代理?1、正向代理,为用户代理。意思是一个位于客户端和原始服务器(origin server)之间的服务器,为了从目标服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端(用户)才能使用正向代理。特点:用户了解访问的服务器到底是谁只有用户可以使用正向代理 (客户端代理)正向代理保护了用户的信息2、反向代理,为目标服务器代理。对于用户而言,反向代理服务器就相当于目标服务器,即用户直

2021-10-29 20:40:41 387

原创 Java 攻城狮面试题 02_MySQL 关系型数据库

基础概念Mysql 的技术特点是什么?Mysql 数据库软件是一个客户端或服务器系统,其中包括:支持各种客户端程序和库的多线程 SQL 服务器、不同的后端、广泛的应用程序编程接口和管理工具。Mysql 服务器默认端口是什么?Mysql 服务器的默认端口是 3306与 Oracle 相比,Mysql 有什么优势?Mysql 是开源软件,随时可用,无需付费。Mysql 是便携式的。带有命令提示符的 GUI。使用 Mysql 查询浏览器支持管理。MySQL由哪些部分组成,分别用来做什么?

2021-10-28 21:56:18 2208

原创 Java 攻城狮面试题 05_SSM

SpringSpring MVC什么是Spring MVC?简单介绍下你对Spring MVC的理解。Spring MVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,通过把模型-视图-控制器分离,将web层进行职责解耦,把复杂的web应用分成逻辑清晰的几部分,简化开发,减少出错,方便组内开发人员之间的配合。Spring MVC的优点?可以支持各种视图技术,而不仅仅局限于JSP;与Spring框架集成(如IoC容器、AOP等);清晰的角色分配:前端控制器(disp

2021-10-25 21:56:06 5865

原创 Java 攻城狮面试题 06_Spring Cloud 微服务

微服务架构单体架构你觉得存在什么缺陷?(容量、计算、故障)为什么要使用分布式架构?(增加容量、高并发、高性能、高可用)分布式架构有什么劣势?(设计的难度、维护成本)为什么要使用缓存?(减少数据库访问压力、提高性能)使用缓存时要注意什么问题?(一致性、淘汰算法、击穿、雪崩)如何理解反向代理?(服务端代理,是服务端服务器的一种代理机制,请求转发)反向代理如何实现负载均衡?(轮询,轮询+权重,哈希IP)什么是读写分离、读写分离的目的是什么?(单机数据库有瓶颈、读写频次,并发能力)读写分离后可能

2021-10-20 19:28:47 1941

原创 Java 攻城狮面试题 01_Java 基础

Java基础JDK 和 JRE 有什么区别?JDK:Java Development Kit 的简称,Java 开发工具包,提供了 Java的开发环境和运行环境。JRE:Java Runtime Environment 的简称,Java 运行环境,为 Java 的运行提供了所需环境。具体来说 JDK 其实包含了 JRE,同时还包含了编译 Java 源码的编译器 Javac,还包含了很多 Java 程序调试和分析的工具。简单来说:如果你需要运行 Java 程序,只需安装JRE 就可以

2021-10-16 20:31:15 814

原创 【Java编程】14_java8新特性之Steam

Stream的到来,也得益于lambda表达式带来函数式编程,用于解决集合类库既有的弊端。Stream是一种流式思想,类似于工厂的流水线。工厂的流水线,我们可以在不同的关口设置筛选、检查等,那么这里的Stream也可以类似的理解。循环遍历的弊端:Java 8的Lambda让我们可以更加专注于做什么(What),而不是怎么做(How),这点此前已经结合内部类进行了对比说明。现在,我们仔细体会一下上例代码,可以发现:for循环的语法就是“怎么做”for循环的循环体才是“做什么”为什么使用循环?因为要进行遍历

2022-06-27 16:26:09 303 1

原创 微信小程序开发入门实战

小程序注册流程1、注册方法在微信公众平台官网首页(mp.weixin.qq.com)点击右上角的“立即注册”按钮。2、选择注册的帐号类型选择“小程序”,点击“查看类型区别”可查看不同类型帐号的区别和优势。3、填写邮箱和密码请填写未注册过公众平台、开放平台、企业号、未绑定个人号的邮箱。4、激活邮箱登录邮箱,查收激活邮件,点击激活链接。5、填写主体信息点击激活链接后,继续下一步的注册流程。请选择主体类型选择,完善主体信息和管理员信息。选择主体类型:填写主体信息并选择验证方式.

2021-12-09 10:47:02 1157 1

原创 【jenkins】环境搭建及入门

踩过的坑:1,报错403,因为tomcat限制了访问地址(https://www.cnblogs.com/luoruiyuan/p/6518508.html)2,构建springboot项目需要tomcat8以上,否则无法构建;3,构建Jenkins成功后,修改系统配置里面的URL,不要使用localhost,使用本机地址,访问Jenkins也不要用localhost一、环境准备操作环境:Windows安装JDK本文采用jdk-8u111-windows-x64.exe;配置tomca

2021-12-09 09:13:56 669

原创 Mybatis四种分页方式

sql分页mybatis接口List<Student> queryStudentsBySql(Map<String,Object> data);xml文件<select id="queryStudentsBySql" parameterType="map" resultMap="studentmapper"> select * from student limit #{currIndex} , #{pageSize}</select&gt

2021-12-07 00:04:02 247

原创 【Java Web】 vue基础操作

VUE工程结构打开 工程目录下的 App.vuetemplate写 htmlscript写 jsstyle写cssVUE基本语法一个template下只能有一个并列的 div,可以这么写,所以复制官网示例的时候只要复制 div 里面的内容就好。但是不能这样写入门案例步骤:导入vue.js文件,html下部编辑指定区域进行渲染 ,需要准备div vue.js代码创建VUE.js对象,指定渲染区域,动态调用<!DOCTYPE html><html&gt

2021-12-05 20:04:10 1253

原创 【Java Web】 vue crud 练习

vue<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title>vue-axios练习</title> </head> <body> <script src="../js/vue.js"></script> <script src="../js/axios.js"></script

2021-12-03 23:33:31 154

原创 Git 分布式版本控制系统

SVN与Git的最主要的区别?SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,如果在局域网还可以,带宽够大,速度够快,如果在互联网下,如果网速慢的话,就纳闷了。Git是分布式版本控制系统,那么它就没有中央服务器的,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上。既然每个人的电脑都有一

2021-12-03 00:26:54 137

原创 Struts2 基础入门

什么是Struts2Struts2 是 Apache 软件组织推出的一个基于 MVC 模式的轻量级 Web 框架,自问世以来,就受到了广大 Web 开发者的欢迎。目前,Struts2 在 Java Web 开发领域中已占据了十分重要的地位。目前为止,Struts 框架拥有两个主要版本:Struts1.x 和 Struts2.x。Struts1 是最早的基于 MVC 模式的轻量级 Web 框架,它能够合理划分代码结构,并包含验证框架、国际化框架等多种实用工具框架。随着技术的不断进步,Struts1 的局

2021-11-29 22:40:39 1523

原创 【Java Web】Java Web 基础实战

Java Web基本概念Java Web,是用Java技术来解决相关Web (Web就是在Http协议基础之上,利用浏览器进行访问的网站)互联网领域的技术总和。Web包括Web服务器和Web客户端两部分:1、 Java在客户端的应用有java applet: Java Applet就是用Java语言编写的小应用程序,可以直接嵌入到网页中,并能够产生特殊的效果,不过使用得很少。2、 Java在服务器端的应用非常的丰富,比如Servlet, JSP和第三方框架等等。Servlet是Java Ser

2021-11-21 02:05:04 594

原创 【Java Web】Tomcat的安装、目录结构与IDEA中的搭建

1、Tomcat 官网下载Tomcat服务器并解压。2、配置tomcat的JAVA_HOME:1)设置jdk的环境变量2)setclasspath.bat加一句代码:set JAVA_HOME 和 set JRE_HOME3、在tomcat的bin目录下启动cmd运行startup.bat,启动tomcat在cmd中输入startup指令 解决tomcat运行乱码问题对于乱码问题,本质原因就一个:字节流解码为字符串时,使用了错误的字符集(和编码所用字符集不一致)!我们来到tomc

2021-11-21 01:54:54 619

原创 五阶段大纲

文章目录随堂笔记笔记乱码问题课程安排(17到18天)开发环境常用地址Spring Cloud Netflixeureka高可用04调用02、03Zuul API 网关Hystrix dashboardVMware离线安装 Docker配置中心RabbitmqBus 配置刷新链路跟踪向注册中心注册时,选择正确网卡,注册ip地址订单流量削峰分布式事务搭建业务案例全局唯一id发号器订单远程调用 storage, account, easy-idSeata AT 事务TCC 事务可靠消息最终一致性事务Rocket

2021-11-15 21:19:57 1951

原创 【数据库基础】03_MySQL 基础 Transaction 事务

什么是事务数据库事务(Database Transaction),是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行。简单的说:事务就是将一堆的SQL语句(通常是增删改操作)绑定在一起执行,要么都执行成功,要么都执行失败,即都执行成功才算成功,否则就会恢复到这堆SQL执行之前的状态。下面以银行转账为例,A转100块到B的账户,这至少需要两条SQL语句:给A的账户减去100元;update 账户表 set money=money**-100** where name='A

2021-11-08 01:04:23 572

原创 【数据库基础】02_数据库基础练习

部门表#部门表create table t_department(did int primary key auto_increment,dname varchar(100) not null, description varchar(200), manager_id int);insert into t_department(dname,description) values('教学部','技术培训'), ('咨询部','课程咨询服务');工作表#工作表create table

2021-11-06 21:00:42 813

原创 【Spring】Spring @Async用法详解及简单实例

Spring中@Async用法在Java应用中,绝大多数情况下都是通过同步的方式来实现交互处理的;但是在处理与第三方系统交互的时候,容易造成响应迟缓的情况,之前大部分都是使用多线程来完成此类任务,其实,在spring 3.x之后,就已经内置了@Async来完美解决这个问题,本文将完成介绍@Async的用法。何为异步调用?在解释异步调用之前,我们先来看同步调用的定义;同步就是整个处理过程顺序执行,当各个过程都执行完毕,并返回结果。 异步调用则是只是发送了调用的指令,调用者无需等待被调用的方法完全执行完毕

2021-10-29 11:03:13 932

原创 【Java编程】13_雪花算法解读

背景针对每个公司,随着服务化演进,单个服务越来越多,数据库分的越来越细,有的时候一个业务需要分成好几个库,这时候自增主键或者序列之类的主键id生成方式已经不再满足需求,分布式系统中需要的是一个全局唯一的id生成规则。概述SnowFlake 算法,是 Twitter 开源的分布式 id 生成算法。其核心思想就是:使用一个 64 bit 的 long 型的数字作为全局唯一 id。在分布式系统中的应用十分广泛,且ID 引入了时间戳,基本上保持自增的,后面的代码中有详细的注解。雪花算法生成的最终结果其实就

2021-10-26 21:16:33 577

原创 【Spring Cloud】14_Spring Cloud的链路跟踪 Sleuth

sleuth 链路跟踪随着系统规模越来越大,微服务之间调用关系变得错综复杂,一条调用链路中可能调用多个微服务,任何一个微服务不可用都可能造整个调用过程失败。spring cloud sleuth 可以跟踪调用链路,分析链路中每个节点的执行情况。微服务中添加 spring cloud sleuth 依赖修改以下微服务的 pom.xml,添加 sleuth 依赖sp02-itemservicesp03-userservicesp04-orderservicesp06-zuul<dep

2021-10-25 15:22:37 139

原创 【Spring Cloud】12_Spring Cloud Hystrix 数据监控仪表盘 与 Turbine 聚合监控

Hystrix dashboardHystrix数据监控仪表盘Hystrix日志,是通过 Actuator 工具来暴露出来实战案列Hystrix dashboard 的搭建创建工程创建sp07-hystrix-dashboard工程pom.xml添加依赖netflix-hystrix-dashboardnetflix-eureka-client <dependency> <groupId>org.springframework.clo

2021-10-22 20:17:53 131

原创 【Spring Cloud】13_Spring Cloud的服务配置中心 Config

配置中心实战案列git上搭建配置环境创建yml配置文件在springcloud01工程下新建config文件夹,并将sp02-itemservice、sp03-userservice、sp04-orderservice中的application.yml文件复制一份并改名为放入config文件夹。新增yml配置三个 yml 文件中都新增下面配置,防止配置中心的配置,覆盖本地命令参数spring: cloud: config: override-none: true

2021-10-21 21:50:57 159

原创 【Spring Cloud】10_Spring Cloud的声明式服务调用 Feign

Feign 的远程调用之前的系统结构是浏览器直接访问后台服务后面我们通过一个Demo项目演示 Spring Cloud 远程调用实战案列添加 Feign,用Feign的声明式客户端接口做远程调用pom.xml 添加 Feign 依赖启动类添加注解: @EnableFeignClients定义两个客户端接口:ItemClient 、 UserClient修改 OrderServiceImpl 完成远程的调用通过 Sp04Order 订单服务调用 Sp02Item

2021-10-21 15:39:45 126

原创 【Spring Cloud】11_Spring Cloud的API网关服务 Zuul 与 Hystrix 容错和限流

Zuul API 网关统一的权限校验集成 Ribbon 负载均衡和重试集成 Hystrix 容错和限流实战案列Zuul 实现统一的访问入口创建工程新建模块: sp06-zuulpom.xml添加依赖:eureka clientzuulsp01application.ymlyml 配置路由转发规则,服务id设置成访问子路径,是默认规则,zuul会根据注册表的注册信息完成自动配置,最好手动配置,防止注册表不全。spring: application:

2021-10-21 15:39:29 332

原创 【Spring Cloud】09_Spring Cloud 的服务治理 Eureka

Spring Cloud Eureka概述Spring Cloud Eureka是Spring Cloud Nettix微服务套件中的一部分,它基于NetfixEureka做了二次封装,主要负责完成微服务架构中的服务治理功能。Spring Cloud通过为Eureka增加了 Spring Boot风格的自动化配置,我们只需通过简单引入依赖和注解配置就能让Spring Boot构建的微服务应用轻松地与Eurcka服务治理体系进行整合。eureka 注册与发现eureka四条运行机制注册客户端会

2021-10-20 19:59:50 145

原创 【Spring Cloud】RabbitMQ 消息队列服务入门

准备工作更改虚拟网络更改子网费IP安装虚拟机打开VMware虚拟机,并点击下面文件,将 centos-8 添加到VMware虚拟机中打开 centos-8虚拟机,检查网络关闭虚拟机,并克隆 centos-8 或 centos-7: docker-base使用MobaXterm_Personal工具链接虚拟机系统,运行终端安装 Docker参考【Docker技术实践】01-Docker入门...

2021-10-20 18:26:29 335

原创 【Spring Cloud】08_Spring Cloud入门实战Demo搭建(Hoxton版)

spring cloud 实战基础Demo搭建server服务 业务流程商品服务 item service,端口 8001用户服务 user service,端口 8101订单服务 order service,端口 8201创建父工程修改依赖版本pom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="h

2021-10-20 12:27:30 210

原创 【Redis】06-RedisTemplate及在SpringBoot工程中的综合应用

RedisTemplate应用简介RedisTemplate为SpringBoot工程中操作redis数据库的一个Java对象,此对象封装了对redis的一些基本操作。准备工作第一步:创建工程配置文件application.yml,其内容如下:单机(非集群)模式配置spring: redis: host: 192.168.64.128 #写自己的ip port: 6379 #写自己的port第二步:创建工程启动类,例如:package com.jt;impor

2021-10-16 21:15:50 303

原创 【Java编程】13_详解JAVA序列化

序列化的概述背景现在开发过程中经常遇到多个进程多个服务间需要交互,或者不同语言的服务之间需要交互,这个时候,我们一般选择使用固定的协议,将数据传输过去,但是在很多语言,比如java等jvm语言中,传输的数据是特有的类对象,而类对象仅仅在当前jvm是有效的,传递给别的jvm或者传递给别的语言的时候,是无法直接识别类对象的,那么,我们需要多个服务之间交互或者不同语言交互,该怎么办?这个时候我们就需要通过固定的协议,传输固定的数据格式,而这个数据传输的协议称之为序列化,而定义了传输数据行为的框架组件也称之为

2021-10-13 20:11:09 178

原创 【Redis】05-Redis架构设计应用实践

Redis主从复制简介单个Redis支持的读写能力还是有限的,此时我们可以使用多个Redis来提高Redis的并发处理能力,这些Redis如何协同,就需要有一定的架构设计,这里我们首先从主从(Master/Slave)架构进行分析和实现。基本架构redis主从架构如图所示:其中,master负责读写,并将数据同步到slave,从节点负责读操作。快速入门实践基于Redis,设计一主从架构,一个Master,两个Slave,其中Master负责Redis读写操作,并将数据同步到Slave,Sla

2021-10-12 20:53:10 178

原创 【Redis】04-Redis 事务处理实践

Redis事务简介概述Redis采用了乐观锁方式进行事务控制,它使用watch命令监视给定的key,当exec(提交事务)的时候,如果监视的key从调用watch后发生过变化,则整个事务会失败。也可以调用watch多次监视多个key。注意watch的key是对整个连接有效的,如果连接断开,监视和事务都会被自动清除。当然exec,discard,unwatch命令都会清除连接中的所有监视。基本指令redis进行事务控制时,通常是基于如下指令进行实现,例如:multi 开启事务exec 提交事务

2021-10-11 21:32:05 105

原创 【Redis】03-Redis 数据持久化实践

简介背景Redis是一种内存数据库,在断电时数据可能会丢失。比如你redis整个挂了,然后redis不可用了,如果没有持久化的话,redis就会丢失所有的数据,如果通过持久化将数据搞一份儿到磁盘上去,然后再定期同步到一些云存储服务上去,那么就可以保证一些数据不丢失,保证数据的可靠性。持久化方式Redis中为了保证在系统宕机(类似进程被杀死)情况下,能更快的进行故障恢复,设计了两种数据持久化方案,分别为rdb和aof方式。Rdb方式持久化概述Rdb方式是通过手动(save-阻塞式,bgsave-

2021-10-11 17:22:24 268

原创 【Spring Cloud】06_微服务版的单点登陆系统设计及实现

背景分析多点登陆系统传统的登录系统中,每个站点都实现了自己的专用登录模块。各站点的登录状态相互不认可,各站点需要逐一手工登录。例如:这样的系统,我们又称之为多点登陆系统。应用起来相对繁琐(每次访问资源服务都需要重新登陆认证和授权)。与此同时,系统代码的重复也比较高。由此单点登陆系统诞生。单点登陆系统单点登录,英文是 Single Sign On(缩写为 SSO)。即多个站点共用一台认证授权服务器,用户在其中任何一个站点登录后,可以免登录访问其他所有站点。而且,各站点间可以通过该登录状态直接交互。

2021-09-29 16:33:09 829 1

原创 【Spring Boot】面向切面编程AOP

AOP 简介背景分析我们知道,面向对象的特点是继承、多态和封装。而封装就要求将功能分散到不同的对象中去,这在软件设计中往往称为职责分配。实际上也就是说,让不同的类设计不同的方法。这样代码就分散到一个个的类中去了。这样做的好处是降低了代码的复杂程度,使类可重用。对于一个业务而言,我们如何在不修改源代码的基础上对对象功能进行拓展,例如现有一个公告(通知)业务接口及实现:AOP概述AOP 与 OOP 字面意思相近,但其实两者完全是面向不同领域的设计思想。AOP(Aspect Orient Program

2021-09-29 16:32:48 59

原创 【Spring Cloud】05_微服务文件上传实战

业务描述基于Spring Cloud Alibaba解决方案实现文件上传,例如工程创建及初始化工程结构参考如下工程结构,进行项目创建,例如:创建父工程创建项目父工程用来管理项目依赖创建文件服务工程 resource创建用于处理文件上传业务的工程,例如:创建客户端服务工程 resource-ui创建一个客户端工程,在此工程中定义一些静态页面,例如文件上传页面:父工程初始化打开父工程的pom.xml文件,添加如下依赖: <!--定义java编译版本-->

2021-09-24 21:12:16 417

原创 【Spring】Java中 拦截器(Interceptor)与 过滤器(Filter)

过滤器(Filter)Servlet中的过滤器Filter是实现了javax.servlet.Filter接口的服务器端程序,主要的用途是设置字符集、控制权限、控制转向、做一些业务逻辑判断等。其工作原理是,只要你在web.xml文件配置好要拦截的客户端请求,它都会帮你拦截到请求,此时你就可以对请求或响应(Request、Response)统一设置编码,简化操作;同时还可进行逻辑判断,如用户是否已经登陆、有没有权限访问该页面等等工作。它是随你的web应用启动而启动的,只初始化一次,以后就可以拦截相关请求

2021-09-22 21:59:36 1783

原创 【Spring Cloud】04_网关Gateway 应用实践

网关简介背景分析我们知道,一个大型系统在设计时,经常会被拆分为很多个微服务。那么作为客户端要如何去调用这么多的微服务呢?客户端可以直接向微服务发送请求,每个微服务都有一个公开的URL,该URL可以直接映射到具体的微服务,如果没有网关的存在,我们只能在客户端记录每个微服务的地址,然后分别去调用。这样的架构会存在着诸多的问题,例如,客户端请求不同的微服务可能会增加客户端代码或配置的复杂性。还有就是每个服务,在调用时都需要独立认证。并且存在跨域请求,也在一定程度上提高了代码的复杂度。基于微服务架构中的设

2021-09-22 19:22:43 252

空空如也

空空如也

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

TA关注的人

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