
Java学习笔记
文章平均质量分 70
莫等闲,白了少年头
路漫漫其修远兮,吾将上下而求索。
展开
-
使用CountdownLatch和线程池批量处理http请求,并处理响应数据
问题点:如果遍历所有的服务器地址,然后串行请求就会出现请求时间过长,加入需要请求十个服务器,一个服务器是1s那么请求服务器数据总时间就需要10s,导致响应时间太长,所以需要使用多线程。如果直接使用多线程去请求,那么没法知道是否所有接口是否都请求结束,所以用到了技术门闩。 四个接口(三个模拟请求服务器接口,一个直接访问的接口),由于我是本地环境,所以在每个接口中设置了不同的休眠时间,来模拟不同服务器场景。 背景:最近项目的一个接口数据,需要去请求其他多个服务器的数据,然后统一返回;原创 2023-10-22 10:34:42 · 538 阅读 · 0 评论 -
尚硅谷谷粒商城部分报错问题处理
记录b站尚硅谷的谷粒商城教程,出现的一些问题及其处理方式原创 2023-10-01 10:02:15 · 807 阅读 · 2 评论 -
Java打包相关
【代码】Java打包相关。原创 2022-08-26 11:41:17 · 300 阅读 · 1 评论 -
接口文档管理工具--Yapi安装
前言现在咱们做的项目都是前后端分离的,这样就可以保证前端和后端可以同时进行,但是同时会出现一个问题—>前端不知道咱们服务器的接口是怎么定义的,不知道里面的参数应该如何传递。这个时候就需要使用接口文档工具了,之前用过swagger感觉也挺好的,但这次项目需要使用Yapi来进行管理接口文档,故记录一下。安装环境:阿里云服务器一台(Centos7.6)步骤:安装nodejs–>安装mongodb–>配置远程访问–>安装git–>搭建Yapi环境–>可视化部署1、安原创 2021-09-17 21:53:35 · 5110 阅读 · 0 评论 -
Java小工具--hutool和其他小方法
记录一些小方法,因为很多时候不用就忘了,所以记在这里:1、 Mybatis-plus使用条件查询方式。QueryWrapper<User> queryWrapper = new QueryWrapper();queryWrapper.lambda().eq(User::getUserName, userName).eq(User::getAge, age);2、遍历获取枚举的值:public static void main(String[] args) { for原创 2021-09-09 22:10:01 · 456 阅读 · 0 评论 -
MQ相关基础知识
MQ1、AMQP和rabbitMq:amqp是一种网络协议,支持符合条件的客户端和消息代理中间件进行通讯。rabbitmq是amqp的实现,所以rabbitmq可以使用amqp的所有概念和准则。2、消息流向:生产者(publisher/producer)生产具有指定路由键(routing key)的消息将其发布给消息代理(broker 即rabbitmq)中的交换机(exchange),交换机将消息中的路由键与队列(queue)绑定信息(binding)中存储的路由键对比,将消息路由到匹配的队列中。原创 2021-08-11 21:16:04 · 857 阅读 · 2 评论 -
SpringCloud---Fegin、Gateway、分布式配置中心、Bus服务总线
三SpringCloud----Eureka(一)Springcloud之负载均衡、熔断器1.FeignFeign可以把Rest的请求进行隐藏,伪装成类似SpringMVC的Controller一样。你不用再自己拼接url,拼接参数等等操作,一切都交给Feign去做。1.1.实操导入依赖:<dependency> <groupId>org.springframework.cloud</groupId> <原创 2021-01-23 23:23:36 · 428 阅读 · 0 评论 -
Springcloud之负载均衡、熔断器
二1.负载均衡Ribbon1.1.案例在user-service中设置端口:复制一个新的application,端口号设为9092启动Eureka:1.2.开启负载均衡在consumer中加入LoadBalanced注解:修改controller,不再手动获取ip和端口,而是直接通过服务名称调用:1.3.负载均衡的策略类名:RibbonLoadBalanceClient。方法名:choose()默认方法是轮询。修改负载均衡配置规则(将轮询修改为随机):user-ser原创 2021-01-20 23:00:37 · 699 阅读 · 5 评论 -
SpringCloud----Eureka(一)
SpringCloud1. 系统演变单一应用–>垂直拆分–> 分布式服务–>SOA–>微服务1.1. 单一应用将所有的功能都部署在一起,以减少部署节点和成本。优点:系统开发速度快维护成本低适用于并发要求较低的系统缺点:代码耦合度高,后期维护困难无法针对不同模块进行优化无法水平扩展单点容错率低,并发能力差1.2. 垂直拆分优点:系统拆分实现了流量分担,解决了并发问题可以针对不同模块进行优化方便水平扩展,负载均原创 2021-01-12 23:08:28 · 211 阅读 · 0 评论 -
记录
1、th标签中获取后台值:<div class="form-group"> <label>性别:</label> <!-- TODO 回显性别 --> <input type="radio" name="sex" value="男" th:value="*{sex}"/>男 <input type="radio" name="sex" value="女" th:value="*{sex}"原创 2021-01-04 23:28:58 · 148 阅读 · 0 评论 -
我和springboot的第一次相遇
SpringBoot初识一、基础1、概念springboot是spring快速开发脚手架,通过约定大于配置的方式,快速构建和启动spring项目2、特点 快速开发spring应用的框架 内嵌tomcat和jetty容器,不需要单独安装容器,jar包直接发布一个web应用 简化maven配置,parent这种方式,一站式引入需要的各种依赖 基于注解的零配置思想 和各种流行框架,spring web mvc,mybatis,spring cloud无缝整合3、基础配置<?xml原创 2020-12-03 08:45:22 · 273 阅读 · 0 评论 -
SSM基础框架配置文件
调了好几个晚上终于调通了配置文件,记录下SSM项目基础框架配置文件:环境:jdk11、idea2020、maven3.6、mysql81、pom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLoc原创 2020-11-26 23:22:05 · 135 阅读 · 0 评论 -
!!!!!!吐血总结SSM(Spring SpringMVC Mybatis),万字血书!!!!!!
SSM一、Spring1、简介Spring是一个分层的JavaSE/EE full-stack(一站式) 轻量级开源框架。2、特点1.方便解耦,简化开发2.AOP编程的支持3.声明式事务的支持4.方便程序的测试5.方便集成各种优秀框架6.降低Java EE API的使用难度3、组织架构ORM- object relation mappingOXM-Object xml mappingJMS - Java消息服务(Java Message Service ,JMS)WebSoc原创 2020-11-21 21:56:04 · 548 阅读 · 0 评论 -
非关系型数据库----NoSql
Nosql一、简介NoSQL,泛指非关系型的数据库。优势:易扩展大数据量,高性能灵活的数据模型高可用二、Redis全称:REmote DIctionary Server(远程字典服务器)特点:Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存Redis支持数据的备份,即master-slave(主从)模式的数据备份原创 2020-11-15 15:28:53 · 611 阅读 · 0 评论 -
Maven配置
Maven1、Maven:项目对象模型2、配置环境变量3、Pom.xml文件<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <原创 2020-11-12 23:34:28 · 207 阅读 · 0 评论 -
第一次Web项目实现过程的报错记录
问题1:第一次做web项目启动服务器时出现这个错误:Caused by: java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/Java_Mvc_war_explode原创 2020-10-15 23:35:02 · 872 阅读 · 0 评论 -
Java学习之Tomcat
Idea安装tomcat1、第一步配置tomcat服务。run–>Edit Configuration -->’+’–>Tomcat server–>local–>选择Tomcat服务安装包的路径。2、创建一个Web 项目。创建成功后需要在WEB-INF目录下创建两个新的目录:lib 和classes。其中lib存放之后需要用到的jar包,classes存放生成的字节码文件。创建成功之后需要对这两个目录进行配置:配置classes目录:配置lib目录:原创 2020-10-10 22:06:39 · 177 阅读 · 0 评论 -
JAVA学习之Mysql进阶
数据库高级多表查询:1、表联结 就是一种查询的机制,用来在一个select语句中关联多个表进行查询,称为联结需要查询出所有商品以及对应的供应商信息?供应商名称,商品名称,商品价格select vend_name,prod_name,prod_pricefrom vendors,productswhere vendors.vend_id = products.vend_idorder by vend_name2、使用where进行表的联结查询外,还可以使用另外一种联结方式,jo原创 2020-10-08 09:31:35 · 248 阅读 · 0 评论 -
Java学习之Mysql基础语法
Mysql数据库一、基础概念1、定义数据库(Database)就是按照数据结构来组织,存储和管理数据的仓库 专业的数据库是专门对数据进行创建,访问,管理,搜索等操作的软件,比起我们自己用文件读写的方 式对象数据进行管理更加的方便,快速,安全2、作用对数据进行持久化的保存 方便数据的存储和查询,速度快,安全,方便 可以处理并发访问 更加安全的权限管理访问机制3、分类关系型数据库: MySQL,Oracle,PostgreSQL,SQLserver非关系型数据库:Redis内存数据库,原创 2020-09-29 23:35:20 · 243 阅读 · 0 评论 -
Java学习之正则表达式
正则表达式正则表达式是构成*搜索模式(search pattern)*的字符序列。正则表达式可以是单字符,或者更复杂的模式。正则表达式可用于执行所有类型的文本搜索和文本替换操作。使用g可以匹配满足正则表达式的所有数据 。1匹配是否以数字开头。[0-9]¥匹配是否以数字结尾。//基础语法<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <me原创 2020-09-26 00:58:21 · 575 阅读 · 0 评论 -
Java学习之Js基础
JavaScript1、定义:JavaScript 是⼀种客户端脚本语⾔(脚本语⾔是⼀种轻量级的编程语⾔)。JavaScript 通常被直接嵌⼊ HTML ⻚⾯,由浏览器解释执⾏JavaScript 是⼀种解释性语⾔(就是说,代码执⾏不进⾏预编译)。特点:弱类型和基于对象。(因为⾯向对象需要具有封装、继承、多态的特征)JavaScript语⾔中包含三个核⼼:ECMAScript基本语法、DOM、BOM*2、前端Web技术的组成HTML、CSS、JavaScriptHTML是⼀种标记语⾔原创 2020-09-25 00:33:35 · 228 阅读 · 0 评论 -
JAVA学习之枚举、注解和反射
枚举、注解和反射一、枚举枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。注意:用于定义有限数量的一组同类常量,1、定义:方法一:public enum Demo1 { LOW(1),MEDIUM(50),HIGH(100); private int levelValue; private Demo1(int levelValue) { this.levelValue = levelValue; } pu原创 2020-09-11 23:17:45 · 272 阅读 · 0 评论 -
JAVA学习之XML和JSON
XML和JSON一、概念又称为可扩展性语言特点:与平台无关的独立标记语言。并且具有自我描述性。注意:.XML文件是保存XML数据的一种方式 XML数据也可以以其他的方式存在(如在内存中构建XML数据)。不要将XML语言狭隘的理解成XML文件。多用于配置文件二、语法1. XML文档声明 <?xml version="1.0" encoding="UTF-8"?> 2. 标记 ( 元素 / 标签 / 节点) XML文档,由一个个的标记组成. 语法:开始标记(开放标记):原创 2020-09-10 23:49:22 · 657 阅读 · 0 评论 -
JAVA学习之单元测试和常用快捷键
调试优化一、单元测试1、工具:junit-4.8.jar流程:2、常用快捷键:Alt + Enter IDEA 根据光标所在问题,提供快速修复选择Ctrl + Alt + T 对选中的代码弹出环绕选项弹出层(try,if等语句包裹)Alt + Insert 代码自动生成,如生成对象的 set / get 方法,构造函数,toString() 等Ctrl + O 选择可重写的方法Ctrl + I 选择可实现的方法Ctrl + / 注释光标所在行代码,会根据当前不同文件原创 2020-09-10 20:08:46 · 1296 阅读 · 0 评论 -
Java学习之IO流
IO流一、java.ioA、File类:文件和目录路径名的抽象表示定义:定义时需要为其指定一个文件,若不存在可以调用方法进行创建。方法:createNewFile、mkdir示例:///若路径下不存在可以调用方法创建,若已存在则会创建失败 File file = new File("F:\\1.txt"); boolean flag = file.createNewFile(); //file.createNewFile()会返回一个bool类型得数据原创 2020-09-06 22:55:31 · 247 阅读 · 0 评论 -
Java学习之多线程
多线程一、线程与进程A、进程:是指一个内存中运行的应用程序,每个进程都有一个独立的内存空间。比如一个独立运行的软件B、线程:(1)、是进程中的一个执行路径,共享一个内存空间,线程之间可以自由切换,并发执行. 一个进程最少有一个线程(2)、线程实际上是在进程基础之上的进一步划分,一个进程启动之后,里面的若干执行路径又可以划分成若干个线程C、线程调度1、分时调度所有线程轮流使用 CPU 的使用权,平均分配每个线程占用 CPU 的时间。2、抢占式调度优先让优先级高的线程使用 CPU,如果线程原创 2020-09-06 16:03:36 · 240 阅读 · 0 评论 -
Java学习之集合
集合文章目录*\*一、类集\**二、二叉树和链表**A、*****\*链表:\******A、*****\*二叉树\****二、接口A、Collection 接口B、List接口C、ArraryList接口D、Vector接口E、Set接口三、链表操作类A、LinkedList四、集合输出A、IteratorB、foreach五、MapA、HashMapB、Map类的区别*一、类集*1、类集的目的:可以把类集称为 java 对数据结构的实现2、类集中最大的几个操作接口:Collection、Map、原创 2020-09-04 19:12:54 · 209 阅读 · 0 评论 -
JAVA学习之异常处理(try+catch)
异常处理一、Try Catch1、异常是在程序中导致程序中断运行的一种指令流。分类:1、受检查异常:编写时标红2、非受检查异常:运行时出现异常。格式:try{// 有可能发生异常的代码段 }catch(异常类型1 对象名1){ // 异常的处理操作 }catch(异常类型2 对象名2){try+catch的处理流程 finally 异常体系结构 // 异常的处理操作 }... finally{ // 异常的统一出口 }finally:是程序必然执行的语句块。3、处理流程1、原创 2020-08-31 00:26:50 · 1222 阅读 · 0 评论 -
JAVA学习之面向对象进阶和高阶
一、封装在类中加一个set方法进行设置传递的值。加一个get方法获取值。建议所有属性都进行封装。二、this关键字this指的是当前对象。既可以调用方法,也可以调用方法。**注意:**在一个构造方法中调用另一个构造方法时,必须写在构造方法的第一行。三、Static关键字1、可以直接用快捷键创建set、get方法。2、使用static修饰的属性存储在方法区中。重点:1、静态成员 在类加载时加载并初始化。2、无论一个类存在多少个对象 , 静态的属性, 永远在内存中只有一份( 可以理解为所原创 2020-08-29 12:00:20 · 375 阅读 · 0 评论 -
Java学习之面向对象基础
1、概述2、特征3、思想4、类与对象5、构造方法和重载原创 2020-08-25 22:30:06 · 169 阅读 · 0 评论 -
Java学习之基础知识2
1、二进制2、变量2.1、分类按数据类型:基础数据类型变量引用数据类型变量按声明的位置:局部变量成员变量3、数据类型4、数据类型转换原创 2020-08-23 14:59:32 · 214 阅读 · 0 评论 -
Java学习之基础知识1
1、Java的起源2、Java的分类3、Java的特性4、跨平台原理5、垃圾回收器6、JDK环境变量配置7、开发工具介绍原创 2020-08-23 14:44:27 · 158 阅读 · 0 评论