java基础
文章平均质量分 54
FREE_GIFT_白给怪
这个作者很懒,什么都没留下…
展开
-
动态代理原理
文章目录动态代理是什么?JDK动态代理实现JDK动态代理源码解析动态代理是什么?动态代理是在程序运行的过程中动态生成代理类的字节码文件,然后把字节码文件加载到方法区,生成一个具体的class对象,然后反射拿到构造方法进行实例化,获取代理类JDK动态代理实现首先需要一个接口public interface MyCalculator { void sout();}然后写一个普通类实现接口public class Calculator implements MyCalculator {原创 2022-04-21 20:49:56 · 715 阅读 · 0 评论 -
BlockingQueue常用方法add、off、put、take、poll使用说明
文章目录import java.util.Collection;import java.util.Queue;import java.util.concurrent.TimeUnit;public interface BlockingQueue<E> extends Queue<E> { /** * 1.在不违反容量限制的情况下将指定元素插入队列,成功则立即返回true。 * 2.如果没有空间则抛出IllegalStateException异常转载 2022-03-30 10:44:15 · 792 阅读 · 0 评论 -
HashMap原理
文章目录散列表哈希碰撞与下标冲突扩容与负载因子引入红黑树HashMap 简介散列表HashMap中的数据结构为散列表,又名哈希表。数组:数组删除、插入性能不佳,寻址性能极优链表:链表查询性能不佳,删除、插入性能极优区别详解:https://blog.csdn.net/Jasminexjf/article/details/88847127数组和链表的优缺点取决于他们各自在内存中存储的模式,也就是直接使用顺序存储(连续空间)或链式存储(非连续空间)导致的。无论是数组还是链表,都有明显的缺点。而在实原创 2022-03-15 14:55:52 · 260 阅读 · 0 评论 -
ArrayList源码&扩容机制分析
这里补充一点比较重要,但是容易被忽视掉的知识点:1.java 中的 length属性是针对数组说的,比如说你声明了一个数组,想知道这个数组的长度则用到了 length 这个属性.2.java 中的 length() 方法是针对字符串说的,如果想看这个字符串的长度则用到 length() 这个方法.3.java 中的 size() 方法是针对泛型集合说的,如果想看这个泛型有多少个元素,就调用此方法来查看! /** * 保存ArrayList数据的数组 */ trans转载 2022-03-01 17:33:18 · 83 阅读 · 0 评论 -
Java序列化
文章目录一、序列化的含义、意义及使用场景二、Java序列化的几种方式三、springboot序列化一、序列化的含义、意义及使用场景序列化:将对象写入到IO流中反序列化:从IO流中恢复对象意义:序列化机制允许将实现序列化的Java对象转换位字节序列,这些字节序列可以保存在磁盘上,或通过网络传输,以达到以后恢复成原来的对象。序列化机制使得对象可以脱离程序的运行而独立存在。使用场景:所有可在网络上传输的对象都必须是可序列化的,比如RMI(remote method invoke,即远程方法调用),传入的原创 2022-02-14 19:49:04 · 411 阅读 · 0 评论 -
linux 硬连接与软连接与java的强软弱虚
linux 硬连接与软连接java的强软弱虚一、引用强度排序强引用>软引用>弱引用>虚引用二、强引用:正常创建的对象,只要引用存在,永远不会被GC回收,即使OOMObject obj = new Object();如果要中断强引用和某个对象的关联,为其赋值null,这样GC就会在合适的时候回收对象Vector类的clear()方法就是通过赋值null进行清除三、软引用内存溢出之前进行回收,GC时内存不足时回收,如果内存足够就不回收使用场景:在原创 2022-01-12 08:05:04 · 321 阅读 · 0 评论 -
java面试中面试官让你讲讲反射,应该从何讲起?
反射机制是在程序运行状态中, 对于任意一个类, 都能够知道这个类的所有属性和方法; 对于任意一个对象, 都能够调用它的任意一个属性和方法。依靠此机制,可以动态的创建一个类的对象和调用对象的方法。常用的Api为Class.forName(完整包名)等等优点就是增加灵活性,可以在运行时动态获取对象实例。缺点是反射的效率很低,而且会破坏封装,通过反射可以访问类的私有方法,不安全。框架中的运用:Spring 框架的 IOC 基于反射创建对象和设置依赖属性。mybatis框架通过读取sql,得到字段名称(.原创 2021-03-10 17:17:38 · 139 阅读 · 0 评论 -
new Hashmap 和 new ArrayList时设置初始化容量多少合适
我们在使用集合时,例如HashMap时,默认初始容量为16,加载因子0.75,2倍扩容,如何设置初始容量呢?对于HashMap,如果预知存储为n个,则 n/0.75向上取整为m(此处默认加载因子是0.75),则初始容量设为大于m的最小的2的幂次方的数(其实底层默认就是2的幂次方),较少resize带来的消耗。总结: n/0.75向上取整为m,然后初始容量设置为大于m的最小的2的幂次方的那个数。关于ArrayList,默认初始容量10,1.5倍扩容,没有加载因子的说话,所以初始容量设置为n就行,其中A.原创 2021-03-08 21:32:52 · 978 阅读 · 0 评论 -
Java 8 Stream 用法讲解流式编程
List<Persion> list =new ArrayList<>(5); list.add(new Persion(10,"小明")); list.add(new Persion(5,"小红")); list.add(new Persion(30,"小张")); list.add(new Persion(50,"小呆")); list.add(new Persion(2,"小唧"))...原创 2021-03-08 21:27:38 · 188 阅读 · 0 评论 -
关于String==和String.intern()的面试题,一文读懂
1.new String时是在堆上创建字符串对象2.通过字面量复制创建字符串(如:String str=”twm”)时,会先在常量池中查找是否存在相同的字符串,若存在,则将栈中的引用直接指向该字符串;若不存在,则在常量池中生成一个字符串,再将栈中的引用指向该字符串。3.调用 intern() 方法时,intern方法会先去查询常量池中是否有已经存在,如果存在,则返回常量池中的引用.如果在常量池找不到对应的字符串,就在常量池中生成一个对原字符串的引用。4.常量字符串的“+”操作,编译阶段直接会合成原创 2021-03-04 16:33:17 · 725 阅读 · 14 评论 -
浅谈重不重写equals和hashcode对于HashMap添加元素的影响
文章目录1.不重写hashcode与equals方法2.重写 equals 不重写hashcode3.不重写 equals 重写hashcode4.重写 equals 重写hashcode只针对键是自定义类型的情况1.不重写hashcode与equals方法public class Dog { private String name; private Integer old; public Dog(String name, Integer old) { th原创 2021-02-18 12:07:48 · 1363 阅读 · 0 评论 -
Java 8 Stream 优雅的流式编程, 过滤集合类型的数据lambda表达式
例子 List<Cat> cat = new ArrayList<>(); cat.add(new Cat("小白", 8, null)); cat.add(new Cat("小嘿", 10, null)); cat.add(new Cat("小绿", 12, null)); //过滤出年龄小于等于10的猫并打出名字 cat.stream().filter(Cat -> Cat.ge原创 2021-02-04 14:21:44 · 641 阅读 · 0 评论 -
Lambda表达式概念理解
package ceshi;/** * @author: Boss * Date: 2021/1/27 * Time: 8:54 * Description: */public interface Sout { String returnString();}package ceshi;/** * @author: Boss * Date: 2021/1/26 * Time: 17:27 * Description: */public class test {原创 2021-01-27 09:14:57 · 96 阅读 · 0 评论 -
servelet原理
原创 2020-11-05 14:48:48 · 180 阅读 · 0 评论 -
JAVA回调机制(CallBack)详解
序言最近学习java,接触到了回调机制(CallBack)。初识时感觉比较混乱,而且在网上搜索到的相关的讲解,要么一言带过,要么说的比较单纯的像是给CallBack做了一个定义。当然了,我在理解了回调之后,再去看网上的各种讲解,确实没什么问题。但是,对于初学的我来说,缺了一个循序渐进的过程。此处,将我对回调机制的个人理解,按照由浅到深的顺序描述一下,如有不妥之处,望不吝赐教!开始之前,先想象一个场景:幼稚园的小朋友刚刚学习了10以内的加法。第1章. 故事的缘起幼师在黑板上写一个式子 “1 + 1 =转载 2020-11-03 10:44:35 · 153 阅读 · 0 评论