编程基础
短路运算符和位运算
- 1.解释运算符&和&&、|和||的区别
- 2.用最有效率的方法计算2乘以8:2<<3
原理:将一个数左移n位,相当于乘以2的n次方。
常见的JDK源码里面HashMap的默认容量是16
int DEFAULT_INITIAL_CAPACITY=1<<4
讲解异或的考察点与分析
- 1.写个方法,传递两个非0的int数值进去,实现变量的交换方式有几种?
public class SwapNum {
//方法一
public static void swap_01(int a,int b){
a=a+b;
b=a-b;
a=a-b;
System.out.printf("
a=%d,b=%d",a,b);
}
//方法二
public static void swap_02(int a,int b){
a=a^b;
b=b^a;//b=b^a^b=a
a=a^b;//a=a^b^b^a^b=a^0^a^b=a^a^b=0^b=b
System.out.printf("
a=%d,b=%d",a,b);
}
//方法三:借助第三变量(略)
public static void main(String args[]){
int a=3,b=4;
System.out.printf("a=%d,b=%d",a,b);//注意printf和println的区别,一个是可以格式化输出,一个不行的
swap_01(a,b);
swap_02(a,b);
}
}
Java基础语法
- 1.Java数据类型的划分和运算
基础数据类型:byte、short、int、long、float、double、char、boolean
引用数据类型:除了八个基础数据类型,其余的全部都是引用数据类型(如String、Enum) - 2.运算
return的优先级大于自增/自减运算符的优先级
public static int test1(){
int i=0;
return i++;//返回值为0
}
public static int test2(){
int i=0;
return ++i;//返回值为1
}
- 3.==与equals的区别
基本数据类型:比较使用==判断是否相等
引用数据类型:==比较的是内存地址是否一样,不同对象的内存地址不一样;equals比较的是具体的内容,可以自定义比较的规则。
try-catch-finally执行顺序
- 1.观察下列代码,说说执行结果
public class TRY {
public static int test1(){
int a=1;
try {
System.out.println(a/0);
a=2;
}catch (ArithmeticException e){
a=3;
return a;
}finally {
a=4;
}
return a;
}
public static int test2(){
int a=1;
try {
System.out.println(a/0);
a=2;
}catch (ArithmeticException e){
a=3;
return a;
}finally {
a=4;
return a;
}
}
public static void main(String args[]){
System.out.println(test1());
System.out.println(test2());
}
}
在执行try、catch中的return之前一定会执行finally中的代码(若finally存在),如果finally中有return语句,就会直接执行finally中的return方法,所以finally中的return语句是一定会被执行的。
执行流程:finally执行前的代码里包含有return,则会先确定return的返回值,然后再执行finally中的代码,最后在执行return
需要注意的是:在try-catch内确定好return的值之后,无论finally如何对该值怎么修改,只要finally内不含return,都是对返回值无效的修改。