java学习笔记
文章平均质量分 55
保加利亚的鸡腿
这个作者很懒,什么都没留下…
展开
-
wait()怎么知道等待的资源到达了?
全网最硬核的 synchronized 面试题深度解析转载 2021-10-17 17:14:19 · 108 阅读 · 0 评论 -
hashmap源码笔记
HashMap三个构造方法 //hashMap中的第一个构造方法 public HashMap(int initialCapacity, float loadFactor) { //校验初始容量。当初始容量<0,抛异常 if (initialCapacity < 0) throw new IllegalArgumentException("Illegal initial capacity: " +原创 2021-10-17 11:42:54 · 110 阅读 · 0 评论 -
线程池的execute()方法源码笔记
public void execute(Runnable command) { if (command == null) throw new NullPointerException(); /* * Proceed in 3 steps: * * 1. If fewer than corePoolSize threads are running, try to * start a.原创 2021-10-14 11:28:37 · 163 阅读 · 0 评论 -
Java自动装箱、拆箱
什么是自动装箱与自动拆箱?装箱就是把基本类型转换成包装类,拆箱就是把包装类转换成基本类型。自动装箱与自动拆箱的例子: public static void main(String[] args) { List<Integer> list = Arrays.asList(1,2,3,4); int sum = 0; for(int i : list) { sum += i; } System.out.println(sum); }编译后的代码如下: pub原创 2021-06-16 19:37:39 · 83 阅读 · 0 评论 -
Java动态代理——JDK动态代理和CGLIB动态代理的实现
什么叫代理模式代理模式(Proxy Patrern)就是将对象的直接访问变为访问这个对象的代理对象。即通过代理对象间接地访问原本的对象。代理是为了扩展类而存在的,可以控制对目标类的服务的访问。1. JDK动态代理JDK动态代理是通过JDK自带的Proxy类中的newProxyInstance()方法来动态生成代理对象的。我们需要实现InvocationHandler接口,在其invoke()方法中编写调用目标对象的代码。下面编写代码来实现JDK动态代理:public class Solution原创 2021-06-10 20:53:16 · 301 阅读 · 0 评论 -
java字符串的两种创建方式以及与字符串常量池的关系
关于java字符串创建与常量池的关系,之前能分清的一些点现在有些记忆模糊了,做一个学习笔记。String字符串的两种创建方式1.new关键字创建String s1 = new String("aa");这种方式有可能会创建两个对象。首先去字符串常量池中找有没有"aa",发现没有,就会在字符串常量池中创建"aa"。然后在堆中创建一个新对象"aa",并且返回引用。s2指向的就是堆中的这个对象。2.字面量创建String s2 = "bb";用字面量"bb"直接对s1初始化。这种方式会先到原创 2021-05-15 17:52:29 · 271 阅读 · 0 评论 -
java形参的改变会影响实参吗?
java形参的改变会影响实参吗?昨天做题的时候遇到了这个问题(如图所示),传入的参数是int[]数组,实参跟着形参一起改变了。但是之前传入int型参数时形参的改变是不会影响实参的。所以想探究一下这个问题,到底什么情况下形参的改变会影响实参。形参和实参:首先分清楚形参和实参区别。简要来说形参就是定义方法的时候用到的参数,方法被调用时就是靠它来接收传入的参数。例如上图中的reverse(int[] arr,int k),这里的arr和k就是形参。实参就是调用方法时传进去的参数。例如上图中的reverse(原创 2021-05-07 11:44:08 · 2903 阅读 · 1 评论