Java基础
文章平均质量分 53
维护世界和平有我
这个作者很懒,什么都没留下…
展开
-
MapStruct、ignore
文章目录@[toc]使用由Spring代理不由spring代理其它属性ignore原理Json工具是通过序列化反序列化来实现的,性能低下。MapStruct是通过getter、setter来实现的。 <!--MapStruct依赖--> <!-- https://mvnrepository.com/artifact/org.mapstruct/mapstruct-jdk8 --> <dependency>原创 2021-05-19 12:37:24 · 3701 阅读 · 0 评论 -
jdbc、PreparedStatement预编译原理
PreparedStatement预编译原理https://www.zybuluo.com/stefanlu/note/254899前提知识 MySQL预编译只使用PreparedStatement无法使用预编译功能,因为mysql默认不开启预编译,需要连接db时添加useServerPrepStmts=true参数,例如jdbc:mysql://127.0.0.1:3306/user?useServerPrepStmts=true注意:useServerPrepStmts=true参数只对此次连原创 2021-05-18 00:06:39 · 925 阅读 · 0 评论 -
SPI机制入门、SPI机制原理
文章目录@[toc]使用入门SPI机制原理https://blog.csdn.net/qq_20397315/article/details/106095184SPI ,全称为 Service Provider Interface,是一种服务发现机制。它通过在ClassPath路径下的META-INF/services文件夹查找文件,自动加载文件里所定义的类。使用入门创建接口和其实现类public interface DbInterface { void say();}pu原创 2021-05-17 23:50:39 · 694 阅读 · 1 评论 -
Java反射详解
反射1.将Java文件保存到本地硬盘2.编译Java文件,生成.class文件3.使用Java虚拟机(JVM)将字节码文件加载到内存4.字节码文件在内存中使用Class类表示5.使用反射的时候,首先获取到Class类,就可以得到class文件里的所有内容,包含属性、构造方法、普通方法6.属性通过Filed类表示7.构造方法通过Constructor表示8.普通方法通过Method表示JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够原创 2021-05-16 00:44:12 · 597 阅读 · 0 评论 -
JDK动态代理入门、JDK动态代理原理、为什么JDK动态代理是基于接口的
动态代理JDK动态代理JDK动态代理 只能 代理接口;CGLIB动态代理可以代理类;静态代理缺点当接口增删改方法,那么代理类已得要跟着修改;代理类的每个接口对象对应一个委托对象,如果委托对象很多,代理类就会变得异常臃肿https://www.jianshu.com/p/85d181d7d09a定义委托对象接口public interface Subject { void test();}委托对象接口实现类public class RealSubject impleme原创 2021-05-15 01:06:50 · 636 阅读 · 1 评论 -
Java泛型原理、类型擦除
注意泛型不能使用在静态属性上泛型可以用在接口、抽象类、普通类上泛型方法泛型方法可以定义在非泛型类中,这个方法可以是静态方法或者成员方法;public class Method { //泛型方法,是在返回类型前面加上<> public static <T> void say(T t){ System.out.println(t); } public <T> T test(T x){//有返回值的泛型方法原创 2021-05-15 01:04:51 · 833 阅读 · 0 评论 -
HashMap原理、hashmap常见面试题
HashMapMap遍历map有多种遍历方法,这里是最简单的一种,通过遍历key,来得到key和对应的valueMap<Integer, Integer> map = new HashMap<Integer, Integer>(); //遍历map中的keyfor (Integer key : map.keySet()) { System.out.println("Key = " + key+); //因为hashmap的时间复杂度接近o(1),原创 2021-05-15 01:02:24 · 1278 阅读 · 0 评论 -
HashSet原理、TreeSet
Set主要有HashSet和TreeSet类在判断重复元素的时候,Set集合会调用hashCode()和equal()方法来实现HashSetpublic class HashSet<E> extends AbstractSet<E> implements Set<E>, Cloneable, java.io.Serializable { private transient HashMap<E,Object> map; ...Has原创 2021-05-15 01:00:36 · 677 阅读 · 0 评论 -
Vector原理与基本使用
VectorVector可以理解为,线程安全的 ArrayList,并且能指定每次扩容时增长的数量。构造函数 与 扩容Vector共有4个构造函数// 默认构造函数,默认大小为 10,扩容时,容量大小增加一倍。Vector()// capacity是Vector的默认容量大小。当由于增加数据导致容量增加时,每次容量会增加一倍。Vector(int capacity)// capacity是Vector的默认容量大小,capacityIncrement是每次Vector容量增加时的增量值原创 2021-05-15 00:59:15 · 697 阅读 · 0 评论 -
ArrayList、LinkedList原理
ListArrayListArrayList的底层是基于动态数组实现 transient Object[] elementData; private int size;常用的方法 ArrayList<String> arrayList = new ArrayList<>(); //或者ArrayList<String> arrayList = new ArrayList<>(4); array原创 2021-05-15 00:58:14 · 702 阅读 · 0 评论 -
Java String详解、String原理、StringBuilder和StringBuffer的区别
Stringequals方法如果参数是String则比较内容,否则比较地址;public boolean equals(Object anObject) { if (this == anObject) { return true; } if (anObject instanceof String) { String anotherString = (String)anObject;原创 2021-05-15 00:46:11 · 673 阅读 · 0 评论 -
Java final关键字详解
final关键字final关键字 可以修饰 类、方法、变量;修饰类: 不可被继承;(不能修饰接口、抽象类,也不可以修饰抽象方法)修饰方法:不可被重写;(可以被重载)修饰变量:一旦变量被赋值,就不能在更改;修饰成员变量:修饰成员变量时,必须完成初始化,也可以在构造器中完成初始化;修饰普通变量:一旦完成初始化就不能更改;修饰成员变量时必须初始化,可以有以下几种情况:1 定义时初始化2 构造器中初始化修饰成员变量public class T1 { private f原创 2021-05-15 00:43:29 · 648 阅读 · 0 评论 -
equals方法 和 ==的区别
文章目录@[toc]equals方法 和 ==equals==equals方法 和 ==equalsObject类中,equals比较的是内存地址;//equals方法来源于Object类 public boolean equals(Object obj) { return (this == obj); }String中,equals方法的参数是String的话就比较内容,不是String就比较地址;//String类 ,equals方法源码 publi原创 2021-05-15 00:41:35 · 553 阅读 · 0 评论