- 博客(34)
- 收藏
- 关注
原创 深入类加载机制
首先,我们定义一个待加载的普通Java类:Test.java。@Override注意:如果你是直接在当前项目里面创建,待Test.java编译后,请把Test.class文件拷贝走,再将Test.java`删除。因为如果Test.class存放在当前项目中,根据双亲委派模型可知,会通过sun.misc.Launcher$AppClassLoader类加载器加载。为了让我们自定义的类加载器加载,我们把Test.class文件放入到其他目录。
2024-06-01 10:59:10 899
原创 CSS栅格系统
*内容标签*/ width : 400px;/*设置行间距设置列间距组合定义:设置行列间距为20px与10px} div {/*背景被裁剪到内容框*/ } </ style >/*内容标签*/ width : 400px;/*设置行间距设置列间距组合定义:设置行列间距为20px与10px} div {/*背景被裁剪到内容框*/ } </ style >/*内容标签*/ width : 400px;/*设置行间距。
2024-05-31 18:59:29 731
原创 JDK1.8新特性
Lambda是一个匿名函数(方法), 允许把函数作为一个方法的参数。利用Lambda表达式可以写出更简洁、更灵活的代码。作为一种更紧凑的代码风格,使Java的语言表达能力得到了提升。一般都是优化匿名内部类函数式接口是指仅仅只包含一个抽象方法的接口,jdk1.8提供了一个@FunctionalInterface注解来定义函数式接口,如果我们定义的接口不符合函数式的规范便会报错。配合Lambda表达式一起使用Stream(流)是数据渠道,用于操作数据源(集合、数组等),生成元素序列。
2024-05-28 11:42:37 991
原创 Java注解Annotation学习
SuppressWarnings:镇压警告,定义在java.lang.SuppressWarnings中用来抑制编译时的警告信息,与前两个注释有所不同.你需要添加参数才能正确使用。元注解的作用:负责注解其他注解,Java定义了4个标准的meta-annotation类型,他们被用来提供对其他annotation类型作说明。@Overrlde:定义在java.lang.Override中,此注解只适用于修饰方法,表示一个方法声明打算重写超类中的另一个方法声明。
2024-05-27 20:46:56 342
原创 Java_IO流学习
I – in – 输入(读)O – out – 输出(写)流 – 一点一点的像水流一样去传输数据注意:站在程序的角度去看待输入还是输出。
2024-05-23 15:06:29 711
原创 JavaIO流学习
I – in – 输入(读)O – out – 输出(写)流 – 一点一点的想水流一样去传输数据注意:站在程序的角度去看待输入还是输出。
2024-05-20 13:04:39 253
原创 Java线程池
OverrideSystem.out.println(r.toString()+"执行了拒绝策略");});i <= 10;i++) {@Overridetry {在《阿里巴巴java开发手册》中指出了线程资源必须通过线程池提供,不允许在应用中自行显示的创建线程,这样一方面使线程的创建更加规范,可以合理控制开辟线程的数量;另一方面线程的细节管理交给线程池处理,优化了资源的开销。
2024-05-20 08:58:42 807
原创 Java线程池学习
OverrideSystem.out.println(r.toString()+"执行了拒绝策略");});i <= 10;i++) {@Overridetry {在《阿里巴巴java开发手册》中指出了线程资源必须通过线程池提供,不允许在应用中自行显示的创建线程,这样一方面使线程的创建更加规范,可以合理控制开辟线程的数量;另一方面线程的细节管理交给线程池处理,优化了资源的开销。
2024-05-18 13:01:07 983
原创 Java多线程
什么是线程?线程是进程里面的一条执行路径,每个线程同享进程里面的内存空间和系统资源一个进程 可以有 多个线程:各个线程都有不同的分工理解线程和进程的关系进程 与 进程 之间的关系:进程之间的内存空间和系统资源是独立的同一个进程里的多条线程 :线程之间的内存空间和系统资源是共享的进程里:可以有一条或一条以上的线程进程里只有一条线程的情况下,这条线程就叫做主线程进程里有多条线程的情况下,只有一条线程叫做主线程Ps:线程是在进程里的,他们是包含关系。
2024-05-17 18:54:49 519
原创 Vector底层源码
在多线程下使用,因为Vector方法上加锁,是线程安全的集合。如果容量增量大于0,扩容机制是:数组原来长度 + 容量增量。如果容量增量小于等于0,扩容机制是:数组原来长度的2倍。Vector的底层数据结构是什么?Vector的使用场景是什么?Vector的扩容机制是什么?Object类型的一维数组。
2024-05-17 17:40:05 194
原创 HashMap底层源码
负载因子过小(0.1),会导致数组装了一点点数据就扩容,利用了时间,浪费空间。最大容量是int类型,1<<30为int类型取值范围里最大的2的幂的数字。负载因子过大(1),会导致数组装满后才扩容,利用了空间,浪费时间。作用:数组长度*负载因子=阈值,负载因子决定扩容比例。HashMap的默认负载因子是多少?JDK1.7版的HashMap数据结构是什么?HashMap的默认负载因子为什么是0.75?HashMap的容量为什么必须是2的幂?HashMap的默认容量是多少?HashMap阈值的作用是什么?
2024-05-16 12:56:17 217
原创 手撕LinkedList底层源码
一般项目中使用ArrayList居多,因为业务流程里查询业务是最多的。ArrayList 和 LinkedList效率的区别?LinkedList的底层数据结构是什么?添加功能 - 不扩容:ArrayList快。添加功能 - 扩容:LinkedList快。删除功能:LinkedList快。LinkedList:双向链表。修改功能:ArrayList快。查询功能:ArrayList快。ArrayList:一维数组。
2024-05-15 16:11:32 337
原创 ArrayList底层源码分析
ArrayList最大容量为什么是Integer.MAX_VALUE-8?根据需求判断元素大概的长度,在创建集合时指定长度,减少扩容次数,提高效率。ArrayList默认初始化容量是多少?ArrayList的数据结构是什么?减8是为了腾出空间存放数组的头部信息。如何减少集合的伸缩性及其目的是什么?ArrayList最大容量是多少?ArrayList扩容机制是什么?扩容后的长度是原来长度的1.5倍。Object类型的一维数组。
2024-05-15 15:09:05 194
原创 Java集合学习
ListIterator :List接口下所有的实现类可以获取的迭代器,可以在遍历时删除、替换、添加元素,也可以指定下标开始遍历,还可以倒叙遍历。ConcurrentHashMap:存key+value,key去重,无序,线程安全,局部加锁、CAS-效率高。Hashtable:弃用,存key+value,key去重,无序,线程安全,方法加锁-效率低。LinkedHashMap:存key+value,key去重,有序,线程不安全。HashMap:存key+value,key去重,无序,线程不安全。
2024-05-14 15:42:47 561
原创 Java Day11
/抽象类public abstract class 类名{//抽象方法 public abstract void method();抽象方法交给非抽象的子类去实现(重写)应用场景:当一个方法必须在父类中出现,但是这个方法又不好实现,就把该方法变成抽象方法,交给非抽象的子类去实现面试题:1.抽象类不能有构造方法?抽象类可以有构造方法2.抽象类中只能有抽象方法?抽象类中有非抽象方法(成员方法和静态方法)3.抽象类中不可以没有抽象方法?抽象类中可以没有抽象方法,但是毫无意义。
2024-05-08 16:55:49 211
原创 Java Day10
使用场景:多个类似的类,有相同的属性和方法,就可以把相同属性和方法抽取到父类好处:减少了代码的冗余深入继承:创建子类对象,会不会调用父类构造方法?会创建子类对象,会不会创建父类对象?不会创建子类对象,为什么会调用父类构造方法?目的是将父类的属性存放在子类对象中创建子类对象,先调用父类构造方法还是子类构造方法?先调用子类构造方法创建子类对象,先完成父类构造方法还是子类构造方法?先完成父类构造方法子类可以继承父类私有化的属性和方法吗? 可以,但是只能间接调用。
2024-05-07 15:54:19 354
原创 Java Day09
知识点:构造方法/构造器知识点:this含义:this表示调用该方法的对象作用:1.this.属性:调用本对象的成员属性2.this.方法:调用本对象的成员方法3.this():在构造方法的第一句调用另外一个构造方法知识点:private理解:private是访问修饰符的一种,表示私有扩展:访问修饰符可以修饰属性和方法作用:1.修饰属性:该属性不能在类的外面使用2.修饰方法:该方法不能在类的外面使用应用场景:1.不想让外界直接调用的属性就使用private修饰。
2024-05-06 17:33:02 261
原创 while和dowhile的理解与使用
知识点:特殊的流程控制语句 – return。知识点:特殊的流程控制语句 – break。含义:作用于循环中,表示跳出/结束当前循环。知识点:特殊的流程控制语句 – label。含义:作用于方法中,表示结束当前方法。知识点:while循环。
2024-04-26 17:02:48 136
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人