自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 RestTemplate的详解

引言在SpringCloud微服务中,通过引入 ribbon实现了服务消费者的客户端负载均衡功能,在这个过程中使用了一个非常有用的对象 RestTemplate。 该对象会使用 Ribbon 的自动化配置, 同时通过配置@LoadBalanced 还能够开启客户端负载均衡。下面我们将详细介绍 RestTemplate 针对几种不同请求类型和参数类型的服务调用实现。一、 GET请求在 RestTemplate 中, 对 GET 请求可以通过如下两个方法进行调用实现。第一种: getForEntit

2021-07-29 09:24:05 1937

原创 解读JVM如何保证三大特性及volatile和synchronized区别

并发编程有三个至关重要的特性分别是原子性、有序性和可见性,理解这三个特性对于开发正确的高并发程序会有很大的帮助。原子性所谓原子性是指在一次的操作或者多次操作中,要么所有的操作全部都得到了执行并且不会受到任何因素的干扰而中断,要么所有的操作都不执行。说起原子性一般都会用银行转账来进行举例说明,比如从Alex的账号往Tina的账号转入1000元,这个动作将包含两个最基本的操作:从Alex的账号上扣除1000元;给Tina的账号增加1000元。这两个操作必须符合原子性的要求,要么都成功要么都失败,总之不能

2021-07-28 16:28:17 253

原创 JAVA的内存模型

Java的内存模型决定了一个线程对共享变量的写入何时对其他线程可见, Java内存模型定义了线程和主内存之间的抽象关系,具体如下。共享变量存储于主内存(计算机的RAM)之中,每个线程都可以访问。每个线程都有私有的工作内存或者称为本地内存。工作内存只存储该线程对共享变量的副本。线程不能直接操作主内存,只有先操作了工作内存之后才能写入主内存。工作内存和Java内存模型一样也是一个抽象的概念,它其实并不存在,它涵盖了缓存、寄存器、编译器优化以及硬件等。...

2021-07-28 15:53:15 112

原创 对java类加载机制的详细解读

类的加载过程解读:ClassLoader的主要职责就是负责加载各种class文件到JVM中, ClassLoader是一个抽·象的class,给定一个class的二进制文件名, ClassLoader会尝试加载并且在JVM中生成构成这个类的各个数据结构,然后使其分布在JVM对应的内存区域中。一、类的加载过程简介类的加载过程一般分为三个比较大的阶段-分别是加载阶段、连接阶段和初始化阶段加载阶段:主要负责查找并且加载类的二进制数据文件,其实就是class文件。连接阶段:连接阶段所做的工作比较多,细分

2021-07-28 15:34:26 117

原创 关于RabbitMQ消息消费时的幂等性及如何解决数据丢失问题的解读

一、什么是幂等性?就是保证消费不被重复消费;1.为什么消息会被重复消费呢?在这里举个例子:消费者准备提交消费的信息时,但还没有提交的时候,消费者进程被重启了(比如说宕机了,或者kill-9啦)。那么此时已经消费过的数据offset还没有提交。kafka也就不知道你消费了offset=153的那条数据。消费者一旦重启,马上会找服务器说:哥们,把我上次消费到的那条数据之后的数据给我。数据1和数据2又发送过来了。等于对你来说,数据1和数据2在数据库里消费了2次。2.如何保证消息不被重复消费呢?也就是保

2021-06-08 14:07:55 550

原创 maven与gradle构建项目工具之间的解读

Java世界中主要有三大构建工具:Ant、Maven和Gradle。经过几年的发展,Ant几乎销声匿迹、Maven也日薄西山,而Gradle的发展则如日中天。笔者有幸见证了Maven的没落和Gradle的兴起。Maven的主要功能主要分为5点,分别是依赖管理系统、多模块构建、一致的项目结构、一致的构建模型和插件机制。Maven与Gradle在使用中各有千秋,根据使用场景择优用之。Maven 与 Gradle 对比maven要引入依赖 pom.xml<dependency> &l

2021-06-04 11:57:03 342

原创 Restful风格详解

SpringMVC Restful风格及实例、参数的转换一、Restful风格1、Restful风格的介绍Restful 一种软件架构风格、设计风格,而不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。REST(英文:Representational State Transfer,简称REST)描述了一个架构样式的网络系统,比如 web 应用程序。在目前主流的三种Web服务交互方案中,REST相比于

2021-03-09 10:45:36 34043 4

原创 Spring最常用的36的注解大全

一. 核心注解@Required此注解用于bean的setter方法上。表示此属性是必须的,必须在配置阶段注入,否则会抛出BeanInitializationExcepion。@Autowired此注解用于bean的field、setter方法以及构造方法上,显式地声明依赖。根据type来autowiring。当在field上使用此注解,并且使用属性来传递值时,Spring会自动把值赋给此field。也可以将此注解用于私有属性(不推荐),如下。@Componentpublic class Us

2021-03-04 09:20:26 109 1

原创 Springmvc介绍及与Mybatis整合技术详解

Springmvc1.概念springmvc是spring framework一个模块,不需要与spring框架整合2.框架原理(掌握)2.1 执行流程第一步:发起请求到前端控制器(DispatcherServlet)第二步:前端控制器请求HandlerMapping查找 Handler​ 可以根据xml配置、注解进行查找第三步:处理器映射器HandlerMapping向前端控制器返回Handler第四步:前端控制器调用处理器适配器去执行Handler第五步:处理器适配器去执

2021-02-03 14:20:12 383

原创 JSP的9大内置对象和4大域对象(作用域)

JSP的9大内置对象和4大域对象(作用域)九大内置对象内置对象(又叫隐含对象,有9个内置对象):不需要预先声明就可以在脚本代码和表达式中随意使用JSP中九大内置对象为:pageContext 页面上下文对象 类型 javax.servlet.jsp.PageContext 作用域 Pagerequest 请求对象   类型 javax.servlet.ServletRequest 作用域 Requestresponse 响应对象  

2021-01-07 20:08:55 203

原创 fatal: refusing to merge unrelated histories解决

fatal: refusing to merge unrelated histories解决天骄山仔 2019-08-30 09:09:51 44068 收藏 51分类专栏: 解决问题 文章标签: Git版权Git :fatal: refusing to merge unrelated histories解决今天本地创建了一个仓库(有README),把本地仓库和Github上关联以后,发现git pull,git feach提醒fatal: refusing to merge unrelate

2020-12-31 17:30:02 75

原创 前端js中遍历方法的总结

总结for循环:缺点: ①当嵌套循环时, 访问成员比较麻烦优点: 可以使用break、continue、return终止循环迭代器方法: (forEach、map、filter方法):缺点: 不能使用break、continue终止循环优点: 访问成员比较方便for in循环:特点:会将索引值转换成字符串会遍历到原型上的属性方法缺点: 不适合遍历数组优点: 可以使用break、continue、return关键字, 适合遍历对象for of循环:缺点: 不能访问属性值(可

2020-12-28 09:29:31 362

原创 jQuery与JavaScript与ajax三者的区别与联系

jQuery与JavaScript与ajax三者的区别与联系简单总结:1、JS是一门前端语言。2、Ajax是一门技术,它提供了异步更新的机制,使用客户端与服务器间交换数据而非整个页面文档,实现页面的局部更新。3、jQuery是一个框架,它对JS进行了封装,使其更方便使用。jQuery使得JS与Ajax的使用更方便关系比喻:若把js比作木头,那么jquery就是木板(半成品)jQuery与ajax都是js的一个框架,各有各的功能,若js是父亲的话,jquery与ajax就是两个儿子详细情况:

2020-12-28 09:10:05 159

原创 Orcal中表、数据、约束的增删改查及分页查询

Orcal操作相关的增删改查一.sql 结构化查询语言oracle和MySQL的查询语言很像,sql:Structured Query Language在oracle里的增删改查主要用到下面的关键字:DDL: 数据定义语言 create alter dropDQL: 数据查询语言 selectDML: 数据操作语言 insert update deleteDCL : 数据控制语言 grant revokeTCL: 事务控制语言

2020-12-25 15:13:01 324 2

原创 XML文件详解以及解析器应用

XML文件详解以及解析一、xml基础详解:1、概述:xml:即可扩展标记语言,xml是互联网数据传输的重要工具,它可以跨越互联网任何的平台,不受编程语言和操作系统的限制,可以说它是一个拥有互联网最高级别通行证的数据携带者。xml是当前处理结构化文档信息中相当给力的技术,xml有助于在服务器之间穿梭结构化数据,这使得开发人员更加得心应手的控制数据的存储和传输。Xml用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。Xml是标准通

2020-12-18 09:42:54 478

原创 JDBC利用事务处理实现简单增删改查的详解及工具类的创建

JDBC全称为:Java Data Base Connectivity (java数据库连接),主要用于java与数据库的链接。整个链接过程如下图:jdbc中进行事务处理介绍jdbc进行事务处理的语法获取连接对象con设置con.setAutoCommit(false);//关闭事务的自动提交-》开启事务执行多条sql对执行sql语句进行捕获如果出现异常则con.rollback();回滚事务执行成功则con.commit(); 提交事务// mysql默认开启事务的自动提交 //

2020-12-18 09:11:28 213

原创 关于利用servlet实现图片等文件的上传

java代码import org.apache.commons.fileupload.FileItem;import org.apache.commons.fileupload.FileUploadBase;import org.apache.commons.fileupload.FileUploadException;import org.apache.commons.fileupload.disk.DiskFileItemFactory;import org.apache.commons.fi

2020-12-18 08:47:59 364

原创 解析request.getParameter() 和request.getAttribute() 区别

一、request.getParameter() 和request.getAttribute() 区别(1)request.getParameter()取得是通过容器的实现来取得通过类似post,get等方式传入的数据,request.setAttribute()和getAttribute()只是在web容器内部流转,仅仅是请求处理阶段。(2)request.getParameter()方法传递的数据,会从Web客户端传到Web服务器端,代表HTTP请求数据。request.getParameter()

2020-12-08 13:39:27 4521

原创 System用法详细解析

System类代表系统,系统级的很多属性和控制方法都放置在该类的内部。该类位于java.lang包。由于该类的构造方法是private的,所以无法创建该类的对象,也就是无法实例化该类。其内部的成员变量和成员方法都是static的**.**标准输入输出, 如out、in、err**.**外部定义的属性和环境变量的访问,如getenv()/setenv()和getProperties()/setProperties()**.**加载文件和类库的方法,如load()和loadLibrary()、**.*

2020-12-04 13:29:37 4752

原创 利用丈夫与妻子结婚的方法理解实例对象的关系

public class Prcfengzhuang { static{ System.out.println("开始编程了"); } //丈夫与妻子结婚 public static void main(String[] args) { //创建对象,此时还没有妻子,应该为空 Huband h=new Huband("111","张三",null); //创建对象,此时还没有丈夫,应该为空 Wife w=new Wife ("333","小花",null);

2020-11-28 11:38:05 105

原创 聊聊Socket、TCP/IP、HTTP、FTP及网络编程

聊聊Socket、TCP/IP、HTTP、FTP及网络编程网络编程声明:转自http://blog.jobbole.com/99694/;如有侵犯版权,请联系我删除。1 这些都是什么既然是网络传输,涉及几个系统之间的交互,那么首先要考虑的是如何准确的定位到网络上的一台或几台主机,另一个是如何进行可靠高效的数据传输。这里就要使用到TCP/IP协议。1.1 TCP/IP协议组TCP/IP协议(传输控制协议)由网络层的IP协议和传输层的TCP协议组成。IP层负责网络主机的定位,数据传输的路由,由IP

2020-11-28 11:35:22 435

原创 用java完成二维码的自动生成及读取

使用java进行二维码的生成与读取使用到了谷歌的zxing.jar第一步 导入,maven依赖或者下载指定jar包 <!-- https://mvnrepository.com/artifact/com.google.zxing/javase --> <dependency> <groupId>com.google.zxing</groupId> <artifactId>javase</a

2020-11-20 15:13:37 287

原创 内部类解说

内部类概念在一个类中书写另一个类分类同级类(严格意义上来讲只是一种书写形式不是内部类)成员内部类(全局内部类)局部内部类(包含匿名内部类)①同级类在当前类同级下继续书写其他类,书写语法与普通类相同,但修饰符只能使用默认在使用时与普通类一致,只是访问范围只有本包下,将相当于少创建了一个文件//员工类public abstract class Employee { public String name;// 姓名 public int birthdayMonth;// 生日月份 pu

2020-11-14 12:10:45 125

原创 多态中向上及向下转型的详解(不看会后悔的)

多态的使用1、必须发生继承只有发生继承多个对象才能进行联系.2、向上转型.声明父类变量保存子类对象,这样才能使用同一个变量表示多个不同相关联的变量,jvm在进行使用时会根据不同对象进行使用.3、子类必须重写父类方法.如果多个子类没有重写父类方法,在使用方法时,如果不重写父类方法,那么调用的还是父类方法,多态没有意义,并且由于声明的是父类变量所以只能调用父类声明过的方法.涉及语法:声明父类变量 引用=new 子类对象由于该引用是父类类型的变量,即:只能使用父类的属性及父类的方法以及子类重

2020-11-12 13:52:15 643

原创 Java中this与super的区别

this:指代当前对象;1.this 用于实例方法,不能用于静态方法中;2.this可以用在构造方法中.3.当方法中得变量与成员变量冲突时,需要用this指代当前的对象的变量(成员变量),变量是就近原则赋值.4.this也可以通过当前的构造方法调用另一个本类的构造方法;语法:this(实际参数列表);注意:构造方法1与构造方法2必须都在同本一个类中;作用:提高代码的复用性.//创建一个类class Wife{ String id; String name; String phon

2020-11-11 19:55:45 123

原创 java 中各种数据类型的互相转换的常用方法

java 各种数据类型的互相转换1、StringBuilder转化为StringString str = "abcdefghijklmnopqrs"; StringBuilder stb = new StringBuilder(str);2、整型数组转化为字符串StringBuilder s = new StringBuilder(); for(i=1;i<=a.length-1;i++) { s.append(String.valueOf(a[i])); } String st

2020-11-05 18:30:37 990

原创 Udp协议的数据传入及传出

UDP​ 将数据源和目的封装成数据包中,不需要建立连接;每个数据报的大小在限制在64k;因无连接,是不可靠协议,传输数据容易丢失;不需要建立连接,速度快数据报协议:将发送的数据分割为指定大小后发送,无需连接接受端,发送端只管发送数据,无论接收端是否接收都会发送发送端思路1:建立udp的socket服务(创建DatagramSocket对象,发送端无需指定端口)2:将要发送的数据封装成数据包(创建DatagramPacket对象,传入数据字节数组,数据长度,ip地址对象,接收方接收端口号,将数据格

2020-11-05 17:56:24 414

原创 解读利用Tcp协议数据的传入及传出

TCP建立连接,形成传输数据的通道;在连接中进行大数据量传输;通过三次握手完成连接,是可靠协议;必须建立连接,效率会稍低。数据连接协议:数据的发送与接收建立在连接通道的基础上,客户端连接服务端后才可以发送接受请求数据。接收端(服务器)思路首先进行接收端的书写,tcp协议建立在连接之上,如果发送端没有连接到服务端则会报错思路:1:建立服务器端的socket服务(new ServerSocket(端口))2:服务端没有直接流的操作,而是通过accept方法获取客户端对象,在通过获取到的客户端对象的

2020-11-05 17:46:17 362

原创 比较常见的的几种设计模式

设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。单例模式简单点说,就是一个应用程序中,某个类的实例对象只有一个,你没有办法去new,因为构造器是被private修饰的,一般通过getInstance()的方法来获取它们的实例。getInstance()的返回值是一个对象的引用,并不是一个新的实例,所以不要错误的理解

2020-11-04 19:28:23 114

原创 实现多线程的常见方法

JVM允许应用程序并发执行多线程:最常用的是两个方法:(1)基础Thread类,重写run()方法;(2)或实现Runnable 接口,实现接口的run()方法;(3)jdk1.5以后额外新增两种方法是:实现callable 接口,重写call()方法;(4)线程池创建;案例:继承Thread类重写run方法public class MyThread extends Thread { // 创建类继承thread // 类似于自己为指定任务创建了一个线程类 String name; publ

2020-11-03 18:41:02 135

原创 多线程及IO流运用案例

多线程及IO流运用案例@使用多线程进行文件读取每读取一行创建线程输入指定文件中import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;/****@author

2020-11-03 18:11:39 446

空空如也

空空如也

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

TA关注的人

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