![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
问题总结
文章平均质量分 82
DongGei
这个作者很懒,什么都没留下…
展开
-
HashMap面试题
1.8 数组+链表/红黑树 1.7 数组+链表。原创 2023-06-03 16:00:43 · 376 阅读 · 0 评论 -
JAVA-IO流复习
流:是一张抽象概念,是数据传输的总称,数据在设备之间的传输为流。分类:输出流/输入流,字节流/字符流(在记事本读的懂的是字符流,读不懂的是字节流)(不确定用字节)位置:作用:作用1,在JKD11,FileRead.FileWrite中已经可以指定了作用2:字节流到字符流解决了乱码,字符流到缓存字符流 解决了读一行。原创 2023-03-15 09:49:08 · 356 阅读 · 0 评论 -
JAVA多线程join()方法细解 到底释放锁吗?
join方法能干吗?在A线程中调用B.join()那么B线程会获得cpu执行。当前线程进入WAITING/TIMED_WAITING状态,线程t执行完毕或者millis时间到,当前线程t一般情况下进入RUNNABLE状态。t1.wait();会释放t1 这个线程的对象锁 也就是说t1.join()会释放t1这个对象的锁,其他的锁不会释放。wait方法:native方法 作用是释放调用对象的对象锁,当前线程进入等待状态。不会释放 因为join的调用对象是mythread,释放的是mythreda的锁。原创 2023-03-03 17:33:43 · 472 阅读 · 0 评论 -
JVM全面总结
一.类加载子系统why 为什么要这么做?when 什么时候会触发加载How 怎么样进行的---加载相关---类加载器双亲委派机制沙箱安全机制---链接过程相关------初始化相关---类构造器clinit()二.运行时数据区1.方法区(永久代 元空间)(1)方法区在哪?(2)方法区里有什么?为什么使用元空间替换永久代?4.8. 方法的调用常量池内存位置演化2.堆调用关系3.程序计数器(PC寄存器)4.虚拟机栈(1)操作数栈栈顶缓存技术(Top Of Stack Cashing)技术(2)动态链接。原创 2023-02-26 21:19:09 · 1324 阅读 · 0 评论 -
HashMap相关的一系列问题
在受到攻击和用户实现这种不好的hash算法时可以保证一定的性能。尽量使用链表hash值如果足够随机,则在hash表内按泊松分布,在负载因子0.75的情况下,长度超过8的链表出现概率是0.00000006,选择8就是为了让树化几率足够小。源码中的解释:当hashCode离散性很好的时候,树型bin用到的概率非常小,因为数据均匀分布在每个bin中,几乎不会有bin中链表长度会达到阈值。原创 2023-02-22 13:21:32 · 270 阅读 · 0 评论 -
分布式理论
一个分布式系统里面,节点组成的网络本来应该是连通的。然而可能因为一些故障,使得有些节点之间不连通了,整个网络就分成了几块区域。数据就散布在了这些不连通的区域中。这就叫分区。当你一个数据项只在一个节点中保存,那么分区出现后,和这个节点不连通的部分就访问不到这个数据了。这时分区就是无法容忍的。原创 2023-02-08 17:19:30 · 400 阅读 · 0 评论 -
TCP的三次握手 四次挥手 和相关问题
这其中的原因就是,要确保服务器是否已经收到了我们的 ACK 报文,如果没有收到的话,服务器会重新发 FIN 报文给客户端,客户端再次收到 ACK 报文之后,就知道之前的 ACK 报文丢失了,然后再次发送 ACK 报文。如果client发的SYN请求 在网络中长时间的滞留了,以致延误到连接释放以后的某个时间才到达server。但是后面serve接收到了,假设不采用“三次握手”,那么只要server发出确认,新的连接就建立,server却以为新的运输连接已经建立,并一直等待client发来数据。原创 2023-02-09 18:42:45 · 346 阅读 · 0 评论 -
spring源码-容器refresh
更容易进一步的 创建 注入BeanDefinition的属性:可以看出是对xml里信息的封装。原创 2023-01-04 22:13:02 · 417 阅读 · 0 评论 -
java常见题3
协议不同:如 http 和 https;域名不同端口不同springboot 的解决方法**使用 @CrossOrigin 注解实现跨域 **修饰类,也可以修饰方法通过配置文件实现跨域;添加 @Configuration 注解,实现 WebMvcConfigurer 接口;重写 addCorsMappings 方法,设置允许跨域的代码。通过 CorsFilter 对象实现跨域;和上一种实现方式类似,它也可以实现全局跨域@Configuration // 一定不能忽略此注解@Bean。原创 2023-01-04 22:03:07 · 328 阅读 · 0 评论 -
java常见题2
6.String作为hashmap的键为什么好? 7.finally和return之间的纠缠 8.不会初始化子类的3种情况 9.String s = new String(" a ") 到底产生几个对象? 10.String s="java"+"and"+360 到底产生几个对象?;原创 2022-12-12 20:21:25 · 73 阅读 · 0 评论 -
java常见题1
在程序执行的过程中,可以创建多个对象,既多次实例化。父类方法是包访问权限,子类的重写方法是public访问权限。实例变量:随着对象的创建而初始化,随着对象的被回收而消亡,每一个对象的实例变量都是独立的。非静态实例变量显示赋值代码和非静态代码块从上到下顺序执行,而对应构造器的代码最后执行、类变量:随着类的初始化而初始化,随着类的卸载而消亡,该类的所有对象的类变量是共享的。()方法 方法可能重载有多个,有几个构造器就有几个()方法方法。:上图中的 4 没有输出,重写的方法两个类中都调用的是子类的。原创 2022-11-07 20:25:12 · 295 阅读 · 0 评论 -
数据结构-红黑树 B B+树
二分查找二叉树二叉平衡树平衡因子不超1查找和二叉查找一样的 删除和插入比较复杂四种失去平衡的方法LR 两步RL 两步不断旋转比较耗时 进一步改进:调整的次数少 平衡性不如二叉平衡树 ,插入删除频繁的使用红黑树,不频繁的使用二叉平衡树。(这里的空节点是叶子节点,与以往太不一样)1.结点是红色或黑色。2.根结点是黑色。3.每个叶子结点都是黑色的空结点(NIL结点)。4.红属性 :每个红色结点的两个子结点都是黑色。5.黑属性:每一个结点到其每个叶子的所有路径都包含相同数目的黑色结点。The height of原创 2022-11-15 22:01:48 · 1207 阅读 · 0 评论 -
11种行为型模式
笔记来源于黑马程序员行为型模式分为类行为模式和对象行为模式,前者采用继承机制来在类间分派行为,后者采用组合或聚合在对象间分配行为。由于组合关系或聚合关系比继承关系耦合度低,满足“合成复用原则”,所以对象行为模式比类行为模式具有更大的灵活性。行为型模式分为:以上 11 种行为型模式,除了模板方法模式和解释器模式是类行为型模式,其他的全部属于对象行为型模式。在面向对象程序设计过程中,程序员常常会遇到这种情况:设计一个系统时知道了算法所需的关键步骤,而且确定了这些步骤的执行顺序,但某些步骤的具体实现还未知,或者转载 2022-11-05 18:18:03 · 113 阅读 · 0 评论 -
java的四种引用类型代码
虚引用是最弱的一种引用关系,如果一个对象仅持有虚引用,那么它就和没有任何引用一样,它随时可能会被回收,在 JDK1.2 之后,用 PhantomReference 类来表示,通过查看这个类的源码,发现它只有一个构造函数和一个 get() 方法,而且它的 get() 方法仅仅是返回一个null,也就是说将永远无法通过虚引用来获取对象,虚引用必须要和 ReferenceQueue 引用队列一起使用。在 JDK1.2 之后,用java.lang.ref.SoftReference类来表示软引用。原创 2022-10-29 23:09:19 · 160 阅读 · 0 评论 -
5种创建者模式
* 单例模式* 工厂方法模式* 抽象工厂模式* 原型模式* 建造者模式转载 2022-10-27 19:00:30 · 96 阅读 · 0 评论 -
UML图和软件设计原则
类图(Class diagram)是显示了模型的静态结构,特别是模型中存在的类、类的内部结构以及它们与其他类的关系等。类图不显示暂时性的信息。类图是面向对象建模的主要组成部分。原创 2022-10-25 21:30:57 · 183 阅读 · 1 评论 -
Vm options -D 修改springboot项目的配置文件(在idea一个项目多开)
例如 我希望在idea中一个项目多开,不同的端口,模拟集群效果。spring.application.name也可以更改。对应application.yml中的位置。原创 2022-10-13 13:24:23 · 2080 阅读 · 0 评论 -
解析域名的步骤——hashcode和equals的联系——跨域问题
浏览器缓存–>本机系统的dns缓存–>hosts文件–>DNS被人修改了本地hosts文件 叫域名劫持 ,目前浏览器会一定的防止域名劫持功能hashcode 在HashMap中会使用到。get时先看hashcode是否一致,再看equals是否一致,都一致说明是同一个对象现在很多项目开发都是前后端分离的,前端和后端都是独立运行的,后端提供json数据格式。那么两边是不同的ip、端口,跨站点进行资源分享,就是跨域。所以前后端分离就肯定有跨域问题。同源策略:浏览器出于安全考虑,会限制跨域访问,就是不允许跨域原创 2022-07-10 16:09:30 · 295 阅读 · 0 评论 -
进程通信的方式——线程的生命周期——mybatis #和$的区别是什么
匿名管道无名管道只能用于具有亲缘关系的进程间的通信。命名管道不相关的进程也能交换数据信号事件发生时对进程的通知机制,有时也称之为软件中断消息队列信号可以导致一个正在运行的进程被另一个正在运行的异步进程中断,转而处理某一个突发事件。共享内存+信号量信号量: P 操作和 V 操作内存映射是将磁盘文件的数据映射到内存,用户通过修改内存就能修改磁盘文件SocketSocket 一般用于网络中不同主机上的进程之间的通信调用的sleep()方法时间到了。调用的阻塞式IO方法已经返回。成功地抢到了锁。其他线程发原创 2022-07-10 16:03:33 · 144 阅读 · 0 评论