自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Tomcat 启动 HTTP状态 404 - 未找到

tomcat启动的项目访问地址实际是根据应用程序上下文的目录来决定的,而不是服务器那边配置的URL的地址来决定的。

2023-11-20 11:28:31 349

转载 github.com 拒绝了我们的连接请求。

github.com 拒绝了我们的连接请求——解决方法

2022-06-04 16:03:57 22630 7

原创 java8时间API

java8时间API1 例子1 例子package com.javaTechnology;import java.time.*;import java.time.temporal.ChronoUnit;import java.util.Set;/** * @author LanceQ * @date 2022年05月29日 10:54 * 任何方法都不会更改所操作的类 */public class TimeTest { public static void main(Str

2022-05-29 12:29:36 241

原创 Netty之Reactor介绍

Netty之Reactor介绍1 线程模型基本介绍2 Reactor模式3 单Reactor单线程模式4 单Reactor多线程5 主从Reactor模式1 线程模型基本介绍不同的线程模式,对程序的性能有很大影响,为了搞清Netty 线程模式,我们来系统的讲解下各个线程模式,最后看看Netty线程模型有什么优越性.目前存在的线程模型有:传统阻塞I/O服务模型Reactor模式根据Reactor的数量和处理资源池线程的数量不同,有3种典型的实现,单Reactor单线程;单Reactor多线

2022-04-16 18:26:35 1361

原创 AIO的了解

AIO的了解1 AIO的了解1 AIO的了解JDK 7引入了Asynchronous I/O, 即AIO。在进行I/O编程中,常用到两种模式:Reactor和Proactor. Java的NIO就是Reactor,当有事件触发时,服务器端得到通知,进行相应的处理AIO即NIO2.0,叫做异步非阻塞的I0。AIO引入异步通道的概念,采用了Proactor模式,简化了程序编写,有效的请求才启动线程,它的特点是先由操作系统完成后才通知服务端程序启动线程去处理,一般适用 于连接数较多且连接时间较长的应

2022-04-05 21:13:47 1147

原创 缓冲区buffer、Channel通道、 selector选择器

缓冲区buffer、Channel通道、 selector选择器1 buffer基本介绍2 Channel基本介绍3 buffer和channel的注意事项4 selector选择器4.1 Selector4.2 NioEventLoop4.3 Selector例子1 buffer基本介绍缓冲区(Buffer):缓冲区本质上是一个可以读写数据的内存块,可以理解成是一个容器对象(含数组),该对象提供了一组方法,可以更轻松地使用内存块,缓冲区对象内置了一些机制,能够跟踪和记录缓冲区的状态变化情况。Chann

2022-04-05 20:37:36 762

原创 Netty介绍以及IO了解

Netty介绍以及I/O了解1 netty介绍2 适用场景3 I/O3.1 BIO基本介绍3.2 NIO基本介绍3.3 NIO和 BIO的比较1 netty介绍Netty是由JBOSS提供的一个Java开源框架,现为Github上的独立项目。Netty是一个异步的、基于事件驱动的网络应用框架,用以快速开发高性能、高可靠性的网络lO程序。Netty主要针对在TCP协议下,面向Clients端的高并发应用,或者Peer-to-Peer场景下的大量数据持续传输的应用。Netty本质是

2022-04-05 15:48:24 725

原创 BIO的了解

BIO1 BIO同步阻塞1.1 介绍1.2 代码1 BIO同步阻塞1.1 介绍Java BIO就是传统的java io编程,其相关的类和接口在java.ioBIO(blocking l/0):同步阻塞,服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销,可以通过线程池机制改善(实现多个客户连接服务器。)BIO方式适用于连接数目比较小且固定的架构,这种方式对服务器资源要求比较高,并发局限于应用中,JDK

2022-03-06 20:33:29 437

原创 java与json的转化

java与json的转化1 JsonLib示例2 Jackson示例3 Gson示例4 Fast示例5 实体类1 JsonLib示例package com.jsonDemo;import net.sf.json.JSONObject;import java.util.HashMap;import java.util.Map;/** * @author LanceQ * @date 2022年01月01日 15:40 */public class JsonLibDemo {

2022-01-02 13:25:46 742

原创 IDEA快捷键记录

IDEA快捷键1 快捷键1 快捷键查找快捷键 介绍Ctrl + F 在当前文件进行文本查找Ctrl + R 在当前文件进行文本替换Shift + Ctrl + F 在项目进行文本查找Shift + Ctrl + R 在项目进行文本替换Shift + Shift 快速搜索Ctrl + N 查找classCtrl + Shift + N 查找文件Ctrl + Shift + Alt + N 查找symbol(查找某个方法名)跳转切换快捷键 介绍Ctrl + E 最近文件Ctrl

2021-12-12 17:22:22 502

原创 Java8特性记录

Java8特性1 Lambda表达式1.1 案例一1.2 案例二2 函数式接口(functional)3 方法引用与构造器引用4 Stream API4.1 并行流4.2 串行流5 Optional类6 其他1 Lambda表达式Lambda是一个匿名函数,可以把Lambda表达式理解为是一段可以传递的代码(将代码像数据一样进行传递)。使用它可以写出更简洁、更灵活的代码。作为一种更紧凑的代码风格,使Java的语言表达能力得到了提升。1.1 案例一package com.java8;import

2021-12-04 20:20:28 356

转载 Java8 Stream

Java8 Stream1 stream介绍1.1 什么是Stream?2 实现2.1 Stream可以通过集合数组创建2.2 Optional2.3 代码案例1 stream介绍1.1 什么是Stream?Stream将要处理的元素集合看作一种流,在流的过程中,借助Stream API对流中的元素进行操作,比如:筛选、排序、聚合等。Stream可以由数组或集合创建,对流的操作分为两种:中间操作,每次返回一个新的流,可以有多个。终端操作,每个流只能进行一次终端操作,终端操作结束后流无法

2021-08-15 21:53:35 159

原创 stream()

stream()1 stream()1.1 stream().filter()1.2 stream().map()1.3 stream().sorted()2 全部代码1 stream()1.1 stream().filter()stream().filter()一般适用于list集合,主要作用就是条件查询,从集合中查询想要的数据。filter里面的参数user是指集合里面的每一项import java.util.ArrayList;import java.util.List;import ja

2021-08-14 20:46:06 3801 1

原创 Git介绍

Git介绍1 Git安装2 Git结构3 代码托管中心_本地库和远程库的交互方式3.1 团队内部协作3.2 跨团队协作4 初始化本地仓库1 Git安装Git官网:https://git-scm.com/安装流程,一直下一步。安装成功后,可以点击Git Bash Here打开Git终端:2 Git结构3 代码托管中心_本地库和远程库的交互方式我们已经有了本地库,本地库可以帮我们进行版本控制,为什么还需要代码托管中心呢?它的任务是帮我们维护远程库,下面说一下本地库和远程库的

2021-07-18 21:37:56 317 4

原创 Github仓库页面的功能键介绍

Github仓库页面的功能键介绍wacth:关注项目的变化,如被别人提交了pull request、发起了issue等等,在你的通知中心,会收到一条消息star:类似微信朋友圈的点赞、支持,让项目更有热度Fork:得到一份原项目的拷贝,如果后续原项目改变,需要自己去处理同步Branch:分支Tag:标签code:代码lessues:讨论、评论;对项目提出各种讨论比如Bug、Build、help、wanted等,有各种问题都可以提状态Open:讨论中Closed:关闭,如已经解决i

2021-07-17 19:55:51 579

转载 Reids的两种持久化存储的形式

Reids的两种持久化存储的形式1 RDB内存快照与AOF增量日志1.1 RDB(Redis Data Base)内存快照1.1.1 优点1.1.2 缺点1.2 AOF(Append Only File)增量日志1.2.1 优点1.2.2 缺点2 Fork1 RDB内存快照与AOF增量日志1.1 RDB(Redis Data Base)内存快照RDB内存快照:指的是在指定的时间间隔内将内存中的数据集以快照的形式写进磁盘,RDB是内存快照(内存数据的二进制序列化形式)的方式持久化,每次都是从Redis中

2021-07-16 22:03:36 89

原创 查找二进制中1的个数

查找二进制中1的个数public class NumberOfBinaryOnes { public static void main(String[] args) { int a=199; //方法一 NumberOfBinary(a); //方法二 String x = Integer.toBinaryString(a); System.out.println(x); char[]

2021-07-16 21:16:14 111

转载 SpringBoot通过线程池试实现异步任务

SpringBoot通过线程池试实现异步任务1 配置application.properties文件2 线程池配置类3 异步接口和异步具体实现类4 Controller调用接口5 运行结果6 自定义线程池显示信息1 配置application.properties文件# 异步线程配置#核心线程数async.executor.thread.core_pool_size=5#配置最大线程数async.executor.thread.max_pool_size=10#配置队列大小async.e

2021-07-15 20:01:30 391

原创 String类型的字符串与ASCII之间的转换

String类型的字符串与ASCII之间的转换public class CharToAscii { public static void main(String[] args) { CharToAscii.AscToString(); CharToAscii.StringToSAsc(); char a='0'; int b=22307; //char类型参与四则运算的时候是转化成asciii码的, 字符‘0’的asc

2021-07-14 21:23:21 3995

转载 String 类常用方法

String 类常用方法1 indexOf():返回指定字符的索引。2 charAt():返回指定索引处的字符。3 replace():字符串替换。4 trim():去除字符串两端空白。5 split():分割字符串,返回一个分割后的字符串数组。6 getBytes():返回字符串的 byte 类型数组。7 length():返回字符串长度。8 toLowerCase():将字符串转成小写字母。9 toUpperCase():将字符串转成大写字符。10 substring():截取字符串。11 equals

2021-07-13 21:25:14 90

转载 static

static静态变量:也叫类变量,属于类的。类中所以的实例都共享静态变量,也可以通过类名来访问它。静态变量在内存中只存在一份。静态方法:静态方法在类加载的时候就存在了,它不依赖于任何实例。所以静态方法必须要实现,也就是说它不能是抽象方法。只能访问所属类的静态字段和静态方法,方法中不能有this或者super关键字。静态代码块:静态代码块在类初始化的时候创建。静态内部类:非静态内部类依赖于外部类的实例,而静态内部类则不需要,静态内部类不能访问外部类的非静态变量和方法;初始化顺序:静态变量和静态代

2021-07-11 22:13:13 74

转载 消 息 队 列

消息队列1 消息队列的用途1.1 解耦1.2 异步1.3 流量削峰1.4 延时任务2 消息队列的本质3 消息队列模型3.1 队列模型3.2 发布 - 订阅模型4 消息队列代价4.1 高可用4.2 消息丢失问题(后续记得补充:标记)4.3 重复消费问题(后续记得补充:标记)5 消息队列选择1 消息队列的用途1.1 解耦通过消息队列,降低系统间的耦合,避免过多的调用。就好像公司的行政小姐姐要通知一件事情,她通常会是在群里发一个公告,然后我们扣1就行了。要是一个个通知,她要通知几十上百次。1.2

2021-07-10 21:23:38 144

原创 if与else

if与else1 替换If-Else的方法1.1 完全不必要的Else块1.2 价值分配1.3 前提条件查询1.4 将If-Else的else动作封装起来—完全避免If-Else1 替换If-Else的方法 if(condition){ //do something }else if(otherCondition){ //do something else }else{ //Defaul

2021-07-10 13:20:59 673

原创 &与&&的区别

&与&&的区别Java中&&和&都是表示与的逻辑运算符,都表示逻辑运算符and,当两边的表达式都为true的时候,整个运算结果才为true,否则为false。&&:有短路功能,当前面的第一个表达式的值为false的时候,则不再计算第二个计算式。&:不管第一个表达式的结果是否为true,第二个都会执行。除此之外,&还可以用做位运算符:当&两边的表达式不是Boolean类型的时候,&表示位运算符。..

2021-07-09 22:04:27 98

转载 通信双方如何保证消息不丢失?

通信双方如何保证消息不丢失?1 介绍1.1 分组出差错时的处理1.2 分组丢失的问题处理1.3 流水线的方法传递数据,提高传递的效率1.3.1 回退N步协议1.3.2 选择重传(SR)1 介绍数据在传输的时候是分割成一小块一小块传输的,我们把这一小块的数据称之为一个分组。我们在传输这块分组的时候,主要面临两个问题。这个分组在传输的过程中,由于在信道传输过程中,收到干扰,导致这个分组到达目的地紫火出现差错,例如分组里面的二进制位1变成0,0变成1.分组还没传递到目的地,就丢失了,即分组传到目的地之后

2021-07-09 18:09:46 552

转载 throw 和 throws

throw 和 throws1 throw2 throws3 区别1 throwthrow关键字,用于主动地抛出异常;正常情况下,当除数为0的时候,程序会主动抛出ArithmeticException;当时如果我们想要除数为1的时候也抛出ArithmeticException异常,就可以使用throw关键字主动地抛出异常。throw new Exception_class("异常类错误信息!");语法也非常简单,throw 关键字后跟上 new 关键字,以及异常的类型还有参数即可。pub

2021-07-08 20:52:37 423

原创 Hystrix---断路器

Hystrix---断路器1 Hystrix介绍2 应用3 Hystrix请求命名4 Hystrix注解异步调用5 Hystrix容错(请求命令方式)6 Hystrix异常处理7 Hystrix请求缓存(了解即可)8 Hystrix请求合并9 Hystrix请求合并(注解方式)1 Hystrix介绍Hystrix 叫做断路器/熔断器。微服务系统中,整个系统出错的概率非常高,因为在微服务系统中,涉及到的模块太多了,每一个模块出错,都有可能导致整个服务出错,当所有模块都稳定运行时,整个服务才算是稳定运行。

2021-07-08 14:04:31 333

原创 注册中心Consul

注册中心Consul1 Consul介绍2 安装3 Consul使用3.1 Consul集群注册4 消费1 Consul介绍在 Spring Cloud 中,大部分组件都有备选方案,例如注册中心,除了常见 Eureka 之外,像zookeeper 我们也可以直接使用在 Spring Cloud 中,还有另外一个比较重要的方案,就是 Consul。(Go语言开发)Consul 是 HashiCorp 公司推出来的开源产品。主要提供了:服务发现、服务隔离、服务配置等功能。相比于 Eureka 和 zoo

2021-07-08 13:38:26 1691 1

转载 Kotlin

Kotlin1 Kotlin2 为什么选择Konlin?1 KotlinKotlin是一种在java虚拟机上运行的静态类型编程语言。被称为Android世界的Swift,由JetBrains设计开发并开源。Kotlin可以编译成Java字节码,也可以编译成JavaScript,方便在没有JVM的设备上运行。在Google I/O 2017中,Google宣布Kotlin成为Android官方开发语言。Kotlin程序文件以.kt结尾,如hello.kt、app.ktpackage hello

2021-07-08 12:54:06 99

原创 == 和 equals

== 和 equals== :如果比较的对象时基本数据类型,则比较的是数值是否相等;如果比较的是引用数据类型,则比较的是对象的地址是否相等。public class EqualsDemo { public static void main(String[] args) { int a=10; int b=10; StringBuilder sb = new StringBuilder(10); StringBuilder sb1 =

2021-07-07 21:17:33 46

原创 二叉树之统计二叉树中叶子节点的个数

二叉树之统计二叉树中叶子节点的个数二叉树的叶子节点是既没有左子树又没有右子树的特殊的节点,使用递归我们可以方便的计算出共有多少叶子节点。public class TreeNode { int val; TreeNode left; TreeNode right; TreeNode() { } TreeNode(int val) { this.val = val; } TreeNode(int val, TreeNode l

2021-07-06 16:35:07 2842

原创 算法---- 借用栈实现链表反转

算法---- 借用栈实现链表反转题目描述定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。示例:public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } @Override public String toString() { return val+"->"+n

2021-07-06 14:53:24 438

原创 算法----合并两个有序数组

算法----合并两个有序数组给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。初始化 nums1 和 nums2 的元素数量分别为 m 和 n 。你可以假设 nums1 的空间大小等于 m + n,这样它就有足够的空间保存来自 nums2 的元素。例 1:输入:nums1 = [1,2,3,0,0,0], m = 3, nums2 = [2,5,6], n = 3输出:[1,2,2,3,5,6]示例 2:输入:nu

2021-07-06 12:40:15 146

原创 三次握手和四次挥手

三次握手和四次挥手1 为什么三次握手2 为什么四次挥手1 为什么三次握手三次握手的目的是为了建立可靠的通讯信道,就是双方确定自己与对方的发送和接受功能都正常。第一次握手:客户端什么都不能确认;服务端确定自己可以收到对方发送的信息,自己的接收正常。第二次握手 :客户端确认了:自己的发送和接收正常,对方的发送正常;服务端确认了:自己的接收和对方的发送正常。第三次握手:客户端确认了:自己的发送和接收正常,对方的发送和接收正常;服务端确认了:自己的发送、接收正常,对方的发送、接收正常。生活例子:就像

2021-07-05 21:19:48 73 1

原创 Spring AOP 和 AspectJ AOP 有什么区别?

Spring AOP 和 AspectJ AOP 有什么区别?Spring AOP 属于运行时增强,而 AspectJ 是编译时增强。 Spring AOP 基于代理(Proxy), ⽽ AspectJ 基于字节码操作(Bytecode Manipulation)。Spring AOP 已经集成了 AspectJ ,AspectJ 应该算的上是 Java ⽣态系统中最完整的 AOP 框架了。AspectJ 相⽐于 Spring AOP 功能更加强⼤,但是 Spring AOP 相对来说更简单,如果我们

2021-06-29 21:36:17 425

原创 什么是Spring?

什么是Spring?1 什么是Spring?2 使用 Spring 框架的好处是什么?1 什么是Spring?Spring是一种轻量级的开发框架,是为了提高开发人员的开发效率以及系统的可维护性。Spring 框架指的都是 Spring Framework,它是很多模块的集合,使用这些模块可以很方便地协助我们进行开发。这些模块是:核心容器、数据访问/集成、Web、AOP(面向切面编程)、工具、消息和测试模块。比如:Core Container 中的 Core 组件是Spring 所有组件的核心,Bean

2021-06-29 20:04:49 568

原创 @RestController与@Controller

@RestController与@Controller1 @Controller2 @RestController3 @Controller+@ResponseBody1 @Controller@Controller返回一个页面,就是会把你方法的返回值当成一个页面路径,根据你的页面路径去查找页面来显示。单独使用@Controller不加@ResponseBody的话一般使用在要返回一个视图的情况,这种情况属于比较传统的Spring MVC的应用,对应于前后端不分离的情况。2 @RestCont

2021-06-29 19:11:41 133

原创 Spring中使用了那些设计模式

Spring中使用了那些设计模式工厂设计模式:Spring使用工厂模式通过BeanFactory、ApplicationContext(应用上下文)创建bean对象。代理设计模式:Spring AOP功能的实现。单例模式:Spring中的Bean默认都是单例的。模板方法模式:Spring中的jdbcTemplate、hibernateTemplate 等以 Template 结尾的对数据库的操作的类,他们就使用到了模板模式。装饰器设计模式:在项目中需要连接多个数据库,而且不同的

2021-06-29 18:51:03 121

原创 排 序 算 法

算法排序1 冒泡算法2 选择排序算法3 插入排序1 冒泡算法从第一个开始比较,找到最大的值,让其交换到数组的最后面,然后就第二大,第三大·····,不断比较,当前一个的值都比后一个的值小的时候,数组排序结束。时间复杂度是O(n^2)稳定性较强,因为总是相邻的两个元素在交换public class TenAlgorithm { public static void main(String[] args) { int[] a={4,5,8,9,6,2,3,5,4,58,15,9

2021-06-29 14:26:32 173 3

转载 计算机网络五层模型

计算机网络五层模型1 五层网络传输模型1.1 物理层1.2 数据链路层1.3 网络层1.4 传输层1.5 应用层1 五层网络传输模型通过5层网络传输模型一台计算机找到另外一台计算机并且把数据发送给另一台计算机的。1.1 物理层通过光纤、电缆,双绞线等介质把不同的电脑连接起来,然后才能进行通信。1.2 数据链路层计算机之间的数据传输是以0、1这样的电信号进行的。但这些0,1组合的传送毫无规则的话,计算机是解读不了的。所以就出现了下面的协议来识别0、1。以太网协议(确定数据传输的大小和形式)

2021-06-26 17:05:47 640

空空如也

空空如也

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

TA关注的人

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