摘要:
1.一个方法只能有一个可变长参数,且这个可变长参数必须是该方法的最后一个参数,java 不允许存在一个方法具备多个变长参数或者变长参数不是方法的最后位置的情况。 public class Demo { public void print(String str, Integer... args) {} 阅读全文
摘要:
Hash算法(转至https://www.cnblogs.com/xiohao/p/4389672.html) 散列表,又叫哈希表,它是基于快速存取的角度设计的,也是一种典型的“空间换时间”的做法。顾名思义,该数据结构可以理解为一个线性表,但是其中的元素不是紧密排列的,而是可能存在空隙。 散列表(H 阅读全文
摘要:
一般我们说i+=1;就等同于i=i+1;但是如果链式编程i+=i-=i*=10那么在最后一步执行之前i的值都是不变的所以这个式子的值是-8。 int i = 4;其实类似字符串都是放入常量池,当我们要用的时候拿出来的都是值,i其实就是一个引用。 阅读全文
摘要:
1、ArrayList是实现了基于动态数组的数据结构,LinkedList是实现了基于链表的数据结构。 2、ArrayList使用时需要在堆中开辟连续完整的内存空间,所以可以如果进行增删操作会造成内存搬移,效率低下,但是可以通过下标找到元素所有查询很快。 而LinkedList不需要开辟连续完整的内 阅读全文
摘要:
首先我们都知道Set集合是不能有重复的,那么怎么能保证不能被放入重复的元素呢,一般情况我们用equals一个一个比较,但是如果集合数据很大比如100000个,那我放入一个数据就要用equals比较100000次,这样就很浪费资源。所以hashcode就出现了,它相当于一个身份证,将对象数据根据该对象 阅读全文
摘要:
int[] arr = new int[]{1,2,3};不会报错; 但是 int [] arr; arr={1,2,3};会报错; 得这样写: int[] arr; arr = new int[]{1,2,3}; 第一行会默认给new出一块空间而下面的不会。 阅读全文
摘要:
1、StringBuffer 并没有重写equals方法所以比较的还是地址,直接父类是CharSequence。 2、substring(0)则返回当前地址,substring(1)则new 一个新对象出来而不是直接去常量池找。同理toUpperCase 这些方法也是new 一个出来,所以地址不同。 阅读全文
摘要:
刚刚上路的小伙盘们牢记哦,JAVA只有值传递,八大基本类型传递的是值。所有当调用带有基本类型参数的方法时会把这个方法和他的局部变量一起合并成栈帧然后压栈,注意方法的参数也是这个方法的局部变量,所以当实参将值拷贝一份给形参的时候,实参和形参就没有关系了,形参就变成这个方法的局部变量了。所以当方法执行关 阅读全文
摘要:
1、包装类型在表达式中且表达式中至少有一个不是包装类型,所以 Long a == 128L 中 a 自动拆箱退化为基本类型比较,所以数值比较为 true。2、c == (a + b) ,这个就要注意了,在含有算术运算包括(==)的时候,会进行自动拆箱的操作运算完成后再装箱,在XX.equals()里 阅读全文