自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 SpringCloud(三)服务网关Zuul

zuul是什么zuul是Netflix设计用来为所有面向设备、web网站提供服务的所有应用的门面,zuul可以提供动态路由、监控、弹性扩展、安全认证等服务,他还可以根据需求将请求路由到多个应用中。zuul是用来解决什么问题的在使用网关之前,动态的路由是通过Nginx的配置来做的,但是一旦发生改变,比如IP地址发生改变,加入其它路由,就要重新配置Nginx,重启Nginx。安全认证是放在每一个...

2020-02-25 16:50:48 239

原创 SpringCloud(二)config统一配置中心

首先,第一步导入依赖 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-config-server</artifactId> </dependency>第二步:启动类上加 @...

2020-02-23 12:09:38 172

原创 MySQL锁模块MyISAM与InooDB关于锁方面的区别

MyISAM与InooDB关于锁方面的区别是什么?MyISAM默认用的是表级锁,不支持行级锁当表进行查询的时候,MyISAM会自动给表上个表级的读锁,会block其他session对其数据的更新;而进行增删改的时候MyISAM会给表上个表级的写锁。当读锁未被释放,另外一个session想对这张表加上写锁就会被阻塞,直到所有的读锁都被释放为止。lock tables person_in...

2020-02-18 22:07:31 221

原创 Redis学习(一)

Redis的数据类型string最基本的数据类型,二进制安全;可以存任何数据,比如:Jpg图片或者序列化的对象常用命令:get /set /incr 加一/decr 减一mapString元素组成的字典,适合用于存储对象常用命令:hmset:从 hash 中添加内容hget:从 hash 中取内容list列表,按照String元素插入顺序常用命令:添加:lpush/r...

2020-02-16 22:45:42 156

原创 JMM(JAVA内存模型)的可见性

Java内存模型JMMJava内存模型(Java Memory Model) 本身是一种抽象的概念,并不真实存在,它描述的是一组规则或规范,通过这组规范定义了程序中各个变量(包括实例字段,静态字段和构成数组对象的元素)的访问方式。首先将变量从主内存拷贝到 线程自己的工作内存当中,对变量进行操作,操作完之后将变量写回主内存,不能直接操作主内存当中的变量。线程间的传值必须通过主内存来完成JMM...

2020-02-15 23:54:33 217

原创 Synchronized原理

个人的形象理解就是,被synchronize修饰的对象,就像是一个坑位,但是不能蹲两个人!!!哈哈哈哈哈哈哈造成线程安全问题的主要诱因存在共享数据存在多条线程共同操作这些数据解决问题的根本方法:同一时刻有且只有一个线程在操作共享数据,其他线程必须等到该线程处理完数据后再对共享数据进行操作。此时便引入了互斥锁。互斥锁的特性:互斥性:即在同一时间只允许一个线程持有某个对象锁,通过...

2020-02-15 22:21:47 119

原创 Docker虚拟机管理命令

2020-02-14 21:34:39 106

原创 @autowired和@resource@qualifier的区别

@Resource 和@Autowired都是做bean的注入时使用,其实@Resource并不是Spring的注解,它的包是 javax.annotation.Resource需要导入,但是Spring支持该注解的注入。相同点:两者都可以写在字段和setter方法上。如果两者都写在字段上,那么就不需要再写setter方法。不同点:@Autowired 为 Spring 提供的注解,@...

2020-02-14 19:49:50 1700 5

转载 Spring事务的隔离级别与传播性

Q:在一个批量任务执行的过程中,调用多个子任务时,如果有一些子任务发生异常,只是回滚那些出现异常的任务,而不是整个批量任务,请问在Spring中事务需要如何配置才能实现这一功能呢?隔离级别隔离性(Isolation)作为事务特性的一个关键特性,它要求每个读写事务的对象对其他事务的操作对象能相互分离,即该事务提交前对其他事务都不可见,在数据库层面都是使用锁来实现。事务的隔离级别从低到高有以下四...

2020-02-14 19:24:37 118

原创 HashMap(三)手撕源代码

1.HashMap核心属性分析(threshold,loadFactory,size,modCount)缺省大小table最大长度缺省负载因子大小树化阈值树降级为链表的阈值树化条件:整个hash表的所有元素个数超过64,且某个链上达到8个元素,就会树化哈希表扩容阈值,当hash表中元素超过阈值时,触发扩容负载因子,threshold = capacity * l...

2020-02-12 20:14:58 137

原创 HashMap(二)原理讲解

1.HashMap的继承体系是怎么样的?2.Node数据结构的分析?Node的成员变量 final int hash; final K key; V value; Node<K,V> next;hash:存放哈希值key、value:就是map.put(key,value)next:哈希碰撞后形成的链表3....

2020-02-12 16:59:47 111

原创 HashMap(一)基础入门

1.数组的优势/劣势数组的内存空间是连续的特点:索引速度快劣势:增加、删除数据时,浪费性能2.链表的优势/劣势链表不是连续的内存,每一块内存中有一个引用保存下一个内存的地址。优势:增加、删除数据时,效率高劣势:如果要访问最后一个元素,只能从头依次访问每一个内存,查询效率低3.有没有一种方式整合两种数据的优势?散列表。整合了数组的快速索引,和链表的动态扩容4.什么是哈希?...

2020-02-12 16:30:37 176

原创 SpringCloud(一)Eureka服务注册与发现

Eureka简介Eureka是Spring Cloud Netflix微服务套件中的一部分,可以与Springboot构建的微服务很容易的整合起来。Eureka包含了服务器端和客户端组件。服务器端,也被称作是服务注册中心,用于提供服务的注册与发现。Eureka支持高可用的配置,当集群中有分片出现故障时,Eureka就会转入自动保护模式,它允许分片故障期间继续提供服务的发现和注册,当故障分片恢复...

2020-02-11 00:27:03 155

原创 JAVA-GC相关

先了解几个必会单词Stop-the-world:1.JVM由于要执行GC而停止了应用程序的执行2.任何一种GC算法中都会发生3.多数GC优化通过减少Stop-the-world发生的时间来提高性能Safepoint:(比喻:打扫卫生时,不允许再丢垃圾。。。 垃圾清理时在一个快照点进行,所有线程都被冻结了)1.分析过程中对象引用关系不会发生变化的点2.产生安全点的地方:方法调用;循...

2020-02-09 19:16:14 164

原创 JAVA内存模型

2020-02-09 00:54:07 74 1

原创 不同JDK版本的inter()方法区别

String s = new String ("a")s.inter();JDK6:当调用intern方法时,如果字符串常量池先前已创建出该字符串对象,则返回池中的该字符串的引用。否则,将此字符串对象添加到字符串常量池中,并且返回该字符串对象的引用。JDK6+:当调用inter方法时,如果字符串常量池先前已创建出改字符串 对象,则返回池中的该字符串的引用。否则如果该字符串对象已经存在于J...

2020-02-09 00:50:35 2535

原创 JAVA内存模型中堆和栈的区别

我们重点来说一下堆和栈:栈内存:栈内存首先是一片内存区域,存储的都是局部变量,凡是定义在方法中的都是局部变量(方法外的是全局变量),for循环内部定义的也是局部变量,是先加载函数才能进行局部变量的定义,所以方法先进栈,然后再定义变量,变量有自己的作用域,一旦离开作用域,变量就会被释放。栈内存的更新速度很快,因为局部变量的生命周期都很短。堆内存:存储的是数组和对象(其实数组就是对象),凡是new...

2020-02-09 00:14:03 377

原创 JVM三大性能调优参数的含义

-Xms:设置初始分配大小,默认为物理内存的“1/64”-Xmx:最大分配内存,默认为物理内存的“1/4”-Xss规定了每个线程堆栈的大小。一般情况下256K是足够了。影响了此进程中并发线程数大小。在整个堆内存的调整策略之中,有经验的人基本只会调整两个参数:“-Xmx”(最大内存)、“-Xms”(初始化内存)。如果要取得这些内存的整体信息,直接利用Runtime类即可;在很多情况下,...

2020-02-08 23:15:13 1538

原创 loadClass和forName的区别

类的加载方式隐式加载:new显示加载:loadClass,forName等loadClass和forName的区别让我们直接干进源码!!loadClass public Class<?> loadClass(String name) throws ClassNotFoundException { return loadClass(name, false);...

2020-02-08 20:55:30 472

原创 深入理解ClassLoader工作机制

1.类从编译到执行的过程以Robot.java为例1.编译器将Robot.java源文件编译为Robot.class字节码文件2.ClassLoader将字节码转换为JVM中的Class (Robot)对象3.利用Class(Robot)对象实例化为Robot对象2.ClassLoader作用:ClassLoader在java中有着非常重要的作用,它主要工作在Class装载的加载阶段,...

2020-02-08 19:31:21 140

原创 JAVA反射机制实操(二)

题目1:利用反射API检查对象的内部结构public class Demo01 { public static void main(String[] args) { /** * 利用反射API检查对象的内部结构 */ test("abc"); //test(123); //test(new ArrayList<>()); } pu...

2020-02-07 22:23:57 110

原创 JAVA反射机制实操(一)

首先,让我们来谈谈反射JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能成为java语言的反射机制。光说不练假把式,那就写个例子吧 :题目1:运行Robot类中的方法public class Robot { private String name; ...

2020-02-07 22:12:23 139

转载 Java常见问题-----------数据库(数据库索引及其实现)

目录首先介绍这些索引的概念:接着结合mysql进行讲解:首先介绍这些索引的概念:1、聚集索引聚集索引:指索引项的排序方式和表中数据记录排序方式一致的索引也就是说聚集索引的顺序就是数据的物理存储顺序。它会根据聚集索引键的顺序来存储表中的数据,即对表的数据按索引键的顺序进行排序,然后重新存储到磁盘上。因为数据在物理存放时只能有一种排列方式,所以一个表只能有一个聚集索引。比如字典中,用‘拼...

2020-02-05 13:57:14 138

原创 数据库索引

1.为什么要使用索引因为索引可以避免全表扫描查找数据,提升检索效率。2.什么样的信息能成为索引主键、唯一键等,只要是让数据具备一定区分性的字段都能成为索引3.索引的数据结构主流为B±tree 还有Hash结构和 BitMap结构;Mysql数据库不支持BitMap索引,基于InnoDB和Myisam引擎的Mysql不支持显示Hash...

2020-02-05 13:35:22 81

原创 GET请求和POST请求的区别

从三个层面来解答HTTP报文层面:GET将请求信息放在URL,长度有限制,不同浏览器限制的长度不同。POST放在请求正文中,想要获取正文中的信息必须解析,较GET请求而言相对安全,但是想要获取信息还是容易,所以两者其实都并不安全!长度无限制。数据库层面:GET符合幂等性和安全性,POST不符合 GET 做查询操作,不会改变数据库中的数据POST 会往数据库中提交数据,因此会...

2020-02-04 00:14:01 87 1

原创 对HTTP协议的理解

HTTP协议 — 超文本传输协议HTTP协议是应用层协议,在互联网上广泛被使用,BS结构通讯的基础协议。浏览器与服务端之间就是使用HTTP协议交互数据的,而HTTP协议要求必须建立在可靠的传输协议基础之上进行,所以底层的通讯协议通常使用TCP协议。HTTP协议规定了客户端(浏览器)与服务端之间传输的数据的格式及内容,并且也规定了两者之间的通讯方式。在HTTP协议中要求的通讯方式为:一...

2020-02-03 23:55:39 375

原创 TCP四次挥手

TCP采用四次挥手来释放连接第一次挥手:Client发送一个FIN,用来关闭Client到Server的数据传送,Client进入FIN_WAIT_1状态;第二次挥手:Server收到FIN后,发送一个ACK给Client,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号),Server进入CLOSE_WAIT状态;第三次挥手:Server发送一个FIN,用来关闭Server到...

2020-02-03 13:30:21 85

原创 TCP三次握手

先来了解几个 TCP FlagsURG:紧急指针标志ACK:确认序号标志为1表示确认号有效为0表示报文中不包含确认信息,忽略确认号字段PSH:push标志RST:重置连接标志SYN:同步序号,用于建立连接过程当SYN=1 ACK=0 表示数据段没有带上确认域当SYN=1 ACK=1 表示连接应答FIN:finish标志,用于释放连接为1时表示发送方已经没有数据发送了,即关闭...

2020-02-03 12:56:27 119

原创 左移右移逻辑右移的区别

最近在看有关HashMap源码的知识,出现此类知识,再加上之前面试出现过,那就记录一下吧~1. “>>” 与 “>>>” *>>表示右移,如果该数为正,则高位补0,若为负数,则高位补1。如:注:以下数据类型默认为byte-8位正数:r = 20 >> 225的二进制补码:0001 1001向右移动两位后:0000 01...

2020-01-17 16:19:12 617

原创 算法-整数反转

之前面试碰到的题目,然后在LeetCode上又刷到了,感觉出现频率蛮高的,记录一下!给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例 1:输入: 123 输出: 321 示例 2:输入: -123 输出: -321 示例 3:输入: 120 输出: 21 注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−2^31, 2^31 ...

2020-01-16 10:24:50 136

原创 ajax同步请求和异步请求的区别

刚毕业那会有一位面试官问我的问题,现在想做个总结jquery 的 async 这个属性 默认是true:异步 , false:同步。那么异步和同步到底有什么区别呢?异步:异步处理是客户端通过事件触发ajax ,向服务器发送请求,在这个期间无论服务器有没有响应,客户端的其他代码一样可以运行。同步:同步处理是客户端通过事件触发ajax ,向服务器发送请求,在这个期间客户端不能做任何处理。当a...

2020-01-16 10:11:42 3471

原创 有关担保项目业务理解

再担保:再担保是对担保的担保,是指在债务已设定担保的基础上,对该担保再设定担保,当前一担保人(A)不能清偿债务时,由后一担保人(B)在前一担保人不能清偿的范围内对债务清偿。双方按约承担相应责任,享有相应权利。所谓再担保,是指再担保机构利用自身的信誉和能力,为担保机构提供信用增级和担保业务风险分担的行为。也就是说,当担保机构不能独立承担担保责任时,再担保机构将按合同约定比例承担相应责任。举例:...

2019-12-01 19:33:50 188

转载 Oracle中的as和with as 的用法

转关于Oracle中的as和with as 的用法在Oracle中as关键字不能用于指定表的别名,在Oracle中指定表的别名时只需在原有表名和表的别名之间用空格分隔即可,但可以用于指定列的别名,但在存储过程中如果列的别名与原有列名相同,在运行时会报错(编译时不会出错),其他情况下列的别名可以与列名本身相同。在查询oracle中as关键字的用法的时候,发现oracle中with as的用...

2019-04-23 14:59:03 2943 2

空空如也

空空如也

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

TA关注的人

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