自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 只移除git监管,不删除本地文件

git commit -m ‘delete 文件名’git rm -r --cached 文件名。#–cached不会把本地的文件删除。git 不小心提交不需要的文件夹,不删除本地文件,只在git中删除。

2022-09-29 16:07:36 187 1

原创 本地仓库首次提交或拉取时报错-refusing to merge unrelated histories

遇到无法提交的问题,一般先pull 也就是使用 git pull origin master 这里的 origin 就是仓库,而 master 就是需要上传的分支,因为两个仓库不同,发现 git 输出 refusing to merge unrelated histories 无法 pull 内容。原因:因为两个仓库有不同的开始点,也就是两个仓库没有共同的 commit ,所以被认为是两个仓库,无法提交合并。拒绝合并不相关的历史。

2022-09-29 15:28:00 175

原创 8. 高频面试题-SpringBoot&SpringCloud

项目中基础的Spring Cloud架构是有架构师搭建好的,我们主要安装代码规范开发微服务,并且把微服务注册到Eurake 注册中心,然后在需要调用微服务的客户端使用Feign的注解@FeignClient绑定接口来调用,同时。判定失败:Hystrix会在某个服务连续调用N次不响应的情况下,立即通知调用端调用失败,避免调用端持续等待而影响了整体服务,执行本地业务。为了防止微服务直接调用时,由于某一个微服务宕机导致整个无法雪崩,这里采用Hystrix来阻断对存在宕机,异常情况的请求,直接本地返回。

2022-09-19 13:56:43 179

原创 7. 高频面试题-框架

环绕通知(Around advice) :包围一个连接点的通知,类似Web中Servlet规范中的Filter的doFilter方法。BeanFactory是Spring中最底层的接口,提供了最简单的容器的功能,只提供了实例化对象和拿对象的功能。而ApplicationContext是Spring的一个更高级的容器,提供了更多的有用的功能。ApplicationContext提供的额外的功能:国际化的功能、消息发送、响应机制、统一加载资源的功能、强大的事件机制、对Web应用的支持等等。

2022-09-19 13:55:26 76

原创 6. 高频面试题 - JAVA WEB

JSP是Servlet技术的扩展,本质上就是Servlet的简易方式。JSP编译后是“类servlet”。Servlet和JSP最主要的不同点在于,Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来。而JSP的情况是Java和HTML可以组合成一个扩展名为.jsp的文件。16) session 共享怎么做的(分布式如何实现 session 共享)(3) 可以使用Spring Session完成session共享。(1) 可以使用tomcat广播机制实现session共享。

2022-09-19 10:00:59 93

原创 5. 高频面试题 - 数据库

6).InnoDB表比MyISAM表更安全,可以在保证数据不会丢失的情况下,切换非事务表到事务表(alter table tablename type=innodb)。5).MyISAM表是保存成文件的形式,在跨平台的数据转移中使用MyISAM存储会省去不少的麻烦。(11) 如果建了1个包含多个列的索引,查询的时候只用了第1列,能不能用上这个索引?(10) 如果建了1个单列索引,查询的时候查出2列,会用到这个单列索引吗?like aaa%呢?(5) 索引类别(B+树索引、全文索引、哈希索引)、索引的原理。

2022-09-19 10:00:01 89

原创 4. 高频面试题-设计模式

(3) 常见的单例模式以及各种实现方式的优缺点,哪一种最好,手写常见的单利模式。(6) Spring中用到了哪些设计模式。(2) 设计模式的的六大原则及其含义。(4) JDK中哪些实现了单例模式?(5) 设计模式在实际场景中的应用。(1) 常见的设计模式。

2022-09-19 09:59:13 60

原创 3. 高频面试题-多线程

sleep方法不同的是wait方法调用完成后,线程将被暂停,但wait方法将会释放当前持有的监视器锁(monitor),直到有线程调用notify/notifyAll方法后方能继续执行,而sleep方法只让线程休眠并不释放锁。总结:线程池中的核心线程数,当提交一个任务时,线程池创建一个新线程执行任务,直到当前线程数等于corePoolSize;如果该线程异常结束,会重新创建一个新的线程继续执行任务,唯一的线程可以保证所提交任务的顺序执行。(4) 线程的生命周期,线程状态以及API怎么操作会发生这种转换;

2022-09-19 09:58:09 69

原创 2. 高频面试题-JVM

访问类的静态变量(除常量【被final修辞的静态变量】原因:常量一种特殊的变量,因为编译器把他们当作值(value)而不是域(field)来对待。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9uLXS3cD-1663552626906)(http://static.zybuluo.com/Rico123/ojhhtids41ivtuowfj74mkb2/%E7%B1%BB%E5%8A%A0%E8%BD%BD%E8%BF%87%E7%A8%8B)]> 访问类的静态方法。

2022-09-19 09:57:35 51

原创 1. 高频面试题-集合

所以当插入的数据量很小时,两者区别不太大,当插入的数据量大时,大约在容量的1/10之前,LinkedList会优于ArrayList,在其后就劣与ArrayList,且越靠近后面越差。所以个人觉得,一般首选用ArrayList,由于LinkedList可以实现栈、队列以及双端队列等数据结构,所以当特定需要时候,使用LinkedList,当然咯,数据量小的时候,两者差不多,视具体情况去选择使用;(18) HashMap在什么时候时间复杂度是O(1),什么时候是O(n),什么时候又是O(logn);

2022-09-19 09:56:54 60

原创 数据库拆分

当数据库量非常大的时候,DB 已经成为系统瓶颈时就可以考虑进行水平垂直拆分了。

2022-09-17 14:50:11 313

原创 数据结构概述

队列是数据结构中比较重要的一种类型,它支持 FIFO,尾部添加、头部删除(先进队列的元素先出队列),跟我们生活中的排队类似。Set 继承于 Collection 接口,是一个不允许出现重复元素,并且无序的集合,主要 HashSet 和 TreeSet 两大实现类。在判断重复元素的时候,Set 集合会调用 hashCode()和 equal()方法来实现。在 List 中,用户可以精确控制列表中每个元素的插入位置,另外用户可以通过整数索引(列表中的位置)访问元素,并搜索列表中的元素。

2022-09-17 14:49:46 56

原创 类加载机制

当一个类收到了类加载请求时: 自己不会首先加载,而是委派给父加载器进行加载,每个层次的加载器都是这样。这样的类在各个类加载器下都是同一个类(只有当两个类是由同一个类加载器加载的才有意义,这两个类才相等。所以最终每个加载请求都会经过启动类加载器。只有当父类加载返回不能加载时子加载器才会进行加载。如果没有双亲委派模型,由各个类加载器自行加载的话。双亲委派的好处 : 由于每个类加载都会经过最顶层的启动类加载器,比如。双亲委派模型中除了启动类加载器之外其余都需要有自己的父类加载器。类,那样系统中就会出现多个。

2022-09-17 14:48:49 138

原创 synchronized

修饰实例方法,作用于当前对象实例加锁,进入同步代码前要获得当前对象实例的锁修饰静态方法,作用于当前类对象加锁,进入同步代码前要获得当前类对象的锁。也就是给当前类加锁,会作用于类的所有对象实例,因为静态成员不属于任何一个实例对象,是类成员( static 表明这是该类的一个静态资源,不管new了多少个对象,只有一份,所以对该类的所有对象都加了锁)。

2022-09-17 14:46:32 118

原创 SQL-优化

如 user 表中的性别字段,可以明显区分的才建议创建索引,如身份证等字段。这样虽然可以查出数据,但是会导致全表扫描。可以提高效率,可以让数据库停止游标移动。等全文索引工具来代替频繁的模糊查询。这样会带来和预期不一致的查询结果。不然也不会命中索引。

2022-09-17 14:45:06 53

原创 MySQL-索引

再通过二分查找发现大于87,通过 P3 指针发生了第三次 IO 将磁盘块11 加载到内存。观察树的结构,发现查询需要经历几次 IO 是由树的高度来决定的,而树的高度又由磁盘块,数据项的大小决定的。由此可见,如果一个几百万的数据查询只需要进行三次 IO 即可找到数据,那么整个效率将是非常高的。磁盘块越大,数据项越小那么树的高度就越低。是由一个一个的磁盘块组成的树形结构,每个磁盘块由数据项和指针组成。以磁盘块1为例,指针 P1 表示小于17的磁盘块,P2 表示在。之间的磁盘块,P3 则表示大于35的磁盘块。

2022-09-17 14:43:56 57

原创 ConcurrentHashMap

1.8 在 1.7 的数据结构上做了大的改动,采用红黑树之后可以保证查询效率(O(logn)),甚至取消了 ReentrantLock 改为了 synchronized,这样可以看出在新版的 JDK 中对 synchronized 优化是很到位的。

2022-09-17 14:42:20 240

原创 ArrayList源码分析

ArrayList 的底层是数组队列,相当于动态数组。与 Java 中的数组相比,它的容量能动态增长。在添加大量元素前,应用程序可以使用操作来增加 ArrayList 实例的容量。这可以减少递增式再分配的数量。它继承于,实现了List,,Cloneable,这些接口。在我们学数据结构的时候就知道了线性表的顺序存储,插入删除元素的时间复杂度为O(n),求表长以及增加元素,取第 i 元素的时间复杂度为O(1)ArrayList 继承了AbstractList,实现了List。

2022-09-17 14:41:32 52

原创 ArrayList扩容机制

对于大数据的2进制运算,位移运算符比那些普通运算符的运算要快很多,因为程序仅仅移动一下而已,不去计算,这样提高了效率,节省了资源。方法不知道大家注意到没有,这个方法 ArrayList 内部没有被调用过,所以很显然是提供给用户调用的,那么这个方法有什么作用呢?需要目标数组,将原数组拷贝到你自己定义的数组里或者原数组,而且可以选择拷贝的起点和长度以及放入新数组中的位置。阅读源码的话,我们就会发现 ArrayList 中大量调用了这两个方法。方法就一定会进过(执行)这个方法,下面我们来研究一下这个方法的源码!

2022-09-14 21:23:34 316 1

原创 7.J2EE基础知识

在Java Web程序中,Servlet主要负责接收用户请求,在doGet(),doPost()中做相应的处理,并将回应反馈给用户。Servlet可以设置初始化参数,供Servlet内部使用。一个Servlet类只会有一个实例,在它初始化时调用init()方法,销毁时调用destroy()方法。Servlet需要在web.xml中配置(MyEclipse中创建Servlet会自动配置),一个Servlet可以设置多个URL访问。Servlet不是线程安全,因此要谨慎使用类变量。

2022-09-14 21:20:57 81

原创 6.JVM垃圾回收

值得注意的是,在 JDK 1.8中移除整个永久代,取而代之的是一个叫元空间(Metaspace)的区域(永久代使用的是JVM的堆内存空间,而元空间使用的是物理内存,直接受到本机的物理内存限制)。w=599&h=250&f=png&s=8946)]为了更好的适应不同程序的内存情况,虚拟机不是永远要求对象年龄必须达到了某个值才能进入老年代,如果 Survivor 空间中相同年龄所有对象大小的总和大于 Survivor 空间的一半,年龄大于或等于该年龄的对象就可以直接进入老年代,无需达到要求的年龄。

2022-09-14 21:18:42 35

原创 5. Java内存区域

对于 Java 程序员来说,在虚拟机自动内存管理机制下,不再需要像C/C++程序开发程序员这样为内一个 new 操作去写对应的 delete/free 操作,不容易出现内存泄漏和内存溢出问题。正是因为 Java 程序员把内存控制权利交给 Java 虚拟机,一旦出现内存泄漏和溢出方面的问题,如果不了解虚拟机是怎样使用内存的,那么排查错误将会是一个非常艰巨的任务。

2022-09-14 21:17:52 51

原创 4. HashMap源码分析

HashMap 主要用来存放键值对,它基于哈希表的Map接口实现,是常用的Java集合之一。JDK1.8 之前 HashMap 由 数组+链表 组成的,数组是 HashMap 的主体,链表则是主要为了解决哈希冲突而存在的(“拉链法”解决冲突).JDK1.8 以后在解决哈希冲突时有了较大的变化,当链表长度大于阈值(默认为 8)时,将链表转化为红黑树,以减少搜索时间。

2022-09-13 19:05:38 49

原创 3. Java集合框架常见面试题总结

List,Set,Map三者的区别及总结Arraylist 与 LinkedList 区别ArrayList 与 Vector 区别HashMap 和 Hashtable 的区别HashSet 和 HashMap 区别HashMap 和 ConcurrentHashMap 的区别HashSet如何检查重复comparable 和 comparator的区别Comparator定制排序重写compareTo方法实现按年龄来排序。

2022-09-13 19:04:49 86

原创 2. final、static、this、super

在早期的Java实现版本中,会将final方法转为内嵌调用。但是如果方法过于庞大,可能看不到内嵌调用带来的任何性能提升(现在的Java版本已经不需要使用final方法进行这些优化了)。被 static 修饰的成员属于类,不属于单个这个类的某个对象,被类中所有对象共享。而 this 代表对本类对象的引用,指向本类对象;此关键字是可选的,这意味着如果上面的示例在不使用此关键字的情况下表现相同。在上面的例子中,Sub 类访问父类成员变量 number 并调用其其父类 Super 的。类名.静态方法名()

2022-09-13 19:03:04 46

原创 1. Java基础知识

这几个是Java中很基本很基本的东西,但是我相信一定还有很多人搞不清楚!为什么呢?因为我们大多数时候在使用现成的编译工具以及环境的时候,并没有去考虑这些东西。顾名思义它是给开发者提供的开发工具箱,是给程序开发者用的。它除了包括完整的JRE(Java Runtime Environment),Java运行环境,还包含了其他供开发者使用的工具包。普通用户而只需要安装 JRE(Java Runtime Environment)来运行 Java 程序。而程序开发者必须安装JDK来编译、调试程序。

2022-09-13 19:01:23 84

空空如也

空空如也

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

TA关注的人

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