一、三目运算符
条件 ? 结果1 : 结果2;
条件的结果一定是boolean ,只能是true或者false;
条件的结果true->结果一
条件的结果false->结果二
条件是可以复杂的
二、数据类型的转型
任何有精度缺失(有可能让两个数变成完全不一样的两个数)的转型都需要强转,jvm不给你负责。
取值范围大的转取值范围小的自动转,反之需要强转。
三、switch 和 if 的比较
如果判断的具体数值不多, 而且符合 byte、 short 、 int、 char, enum[枚举], String 这 6 种类型。 虽然两个语句都可 以使用, 建议使用 swtich 语句。
其他情况: 对区间判断, 对结果为 boolean 类型判断, 使用 if, if 的使用范围更广 。
四、while和do while区别
do while无论如何都要先执行以下,然后才去判断
while 满足条件才能进入
五、数组的性质
1、数组一旦建立,长度不能改变。
2、每个位置只能存一个值,多了会覆盖。
3、数组创建后会有默认值:int 0, short 0, byte 0, long 0, float 0.0,double 0.0, char \u0000, boolean false, String null
4、编号从0开始,下标必须在指定范围内使用, 否则报: 下标越界异常。
5、他有个长度的属性,最后一个位置的编号是 长度-1。 0 - length -1
6、数组里边可以是基本类型,也可以是引用类型。
六、数组的扩容
// 定义原始数组
int[] nums = new int[]{3,4,6};
// 定义一个新的临时数字
int[] temp = new int[6];
// 讲原始数组的数据全部拷贝到临时数组
for (int i = 0; i < nums.length; i++) {
temp[i] = nums[i];
}
// 让原始数组的引用指向临时数组,感觉上就像原始数组被扩容了
nums = temp;
for (int i = 0; i < nums.length; i++) {
System.out.println(temp[i]);
}
6
4
3
0
0
0
七、在void中,即没有返回值得方法中能 用return吗?
是可以的,这里return只能代表方法的终止。
八、
hash算法有几个特点:
1、只能通过原文计算出hash值,而且每次计算都一样,不能通过hash值计算原文。
2、原文的微小变化就能是hash值发生巨大变化。
3、一个好的hash算法还能尽量避免发生hash值重复的情况,也叫hash碰撞。