目录
switch的参数类型:
数组复制方法:
java.util.Collection:
java.util.Collections :
Math.round():
HashMap和Hashtable都是典型的Map实现:
JDBC使用的是桥接模式
实例变量是放在堆内存中。
Java String的join()方法:
" + "
HashMap采用了链地址法,ThreadLocalMap则是开放地址法。
数组:
switch的参数类型:
switch语句后的控制表达式只能是short、char、int、long整数类型和枚举类型,不能是float,double和boolean类型。String类型是java7开始支持。
没有break情况下,遇到匹配的case会一直运行下去。
数组复制方法:
1.for循环逐一复制2.System.arraycopy3.Array.copyOf4.使用clone方法
效率 : System.arraycopy > clone > Arrays.copyOf > for循环
public class test2 {public static void main(String[] args) {int []nums={1,2,3,4,5,6};System.out.println(Arrays.toString(nums));// long start = System.currentTimeMillis();int []num=new int[nums.length];for(int i=0;i<num.length;i++){num[i]=nums[i];}System.out.println(Arrays.toString(num));// long cost = System.currentTimeMillis() - start;// System.out.println("Logic cost : " + cost);// long start1 = System.currentTimeMillis();int []num1=new int[nums.length];System.arraycopy(nums,0,num1,0,nums.length);// long cost1 = System.currentTimeMillis() - start1;// System.out.println("Logic cost1 : " + cost1);System.out.println(Arrays.toString(num1));int []num2=nums.clone();System.out.println(Arrays.toString(num2));int[] num3 = Arrays.copyOf(nums,nums.length);System.out.println(Arrays.toString(num3));}
}
java.util.Collection:
是一个集合接口。它提供了对集合对象进行基本操作的通用接口方法。Collection接口在Java 类库中有很多具体的实现。Collection接口的意义是为各种具体的集合提供了最大化的统一操作方式。
java.util.Collections :
是一个包装类。它包含有各种有关集合操作的静态多态方法。此类不能实例化,就像一个工具类,服务于Java的Collection框架。
Math.round():
表示“四舍五入”,而四舍五入是往大数方向入。Math.round(11.5)的结果为12,Math.round(-11.5)的结果为-11而不是-12。
HashMap和Hashtable都是典型的Map实现:
Hashtable在实现Map接口时保证了线程安全性,而HashMap则是非线程安全的。所以,Hashtable的性能不如HashMap,因为为了保证线程安全它牺牲了一些性能。
Hashtable不允许存入null,无论是以null作为key或value,都会引发异常。而HashMap是允许存入null的,无论是以null作为key或value,都是可以的。
JDBC使用的是桥接模式
定义 : 将抽象部分与它的实现部分分离,使它们都可以独立的变化
意图 : 将抽象与实现解耦
实例变量是放在堆内存中。
静态变量是放在方法区中。
局部变量是放在对应方法的栈帧变量表当中。
Java String的join()方法:
将elements用指定的字符串delimeter连接起来,返回这个新组成的字符串
String message = String.join("-", "Java", "is", "cool");System.out.println(message);//Java-is-cool
" + "
在java中,“+” 和 “+=” 是经过重载的运算符,而java不允许程序员进行运算符的重载。如果 “+” 之前是String,那么此时,“+” 的作用就是连接两个字符串;若此时 “+” 后面是基本数据类型的话,可以直接进行连接,若是引用数据类型的话,则会调用该对象的toString()方法。
System.out.println("is "+ 100 + 5);//is 1005System.out.println(100 + 5 +" is");//105 isSystem.out.println("is "+ (100 + 5));//is 105System.out.println(100+" is"+5);//100 is5System.out.println(100+5+" is "+200+5);//105 is 2005System.out.println("is "+100+5+200+300);//is 1005200300
HashMap采用了链地址法,ThreadLocalMap则是开放地址法。
开放定址法:当冲突发生时,使用某种探查(亦称探测)技术在散列表中形成一个探查(测)序列。沿此序列逐个单元地查找,直到找到给定 的关键字,或者碰到一个开放的地址(即该地址单元为空)为止(若要插入,在探查到开放的地址,则可将待插入的新结点存人该地址单元)。查找时探查到开放的 地址则表明表中无待查的关键字,即查找失败。
链地址法:将所有关键字为同义词的结点链接在同一个单链表中。若选定的散列表长度为m,则可将散列表定义为一个由m个头指针组成的指针数 组T[0..m-1]。凡是散列地址为i的结点,均插入到以T[i]为头指针的单链表中。T中各分量的初值均应为空指针。
数组:
当数组的初始化完成后数组在内存中所占用的空间将会被固定,即使我们清空这个数组中的元素,它所占用的空间依然会被保留,这造成了Java数组长度的不可变。
数组是一种引用数据类型,继承自Object类的,所以其中也包含了未被重写的equals()方法,所有的引用变量都能调用equals()方法来判断他是否与其他引用变量相等,使用这个方法来判断两个引用对象是否相等的判断标准与使用==运算符没有区别,只有在两个引用变量指向同一个对象才会返回true。
个人总结:
今天成功返校,同时,也换了一个学习的地方,继续学习后端。
返校后还要进行一个周的隔离,这一个周都要在宿舍度过。问题不大,一眨眼就过去了。