A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Priscilla 中级黑马   /  2017-4-8 07:47  /  1568 人查看  /  4 人回复  /   5 人收藏 转载请遵从CC协议 禁止商业使用本文

1.      成员变量VS 局部变量
(1)     在类中位置不同:
成员变量在类中方法之外;
局部变量在方法定义中或在方法声明上;
(2)     在内存中位置不同:
成员变量在堆中;局部变量在栈中;
(3)     生命周期不同:
成员变量是随着对象的创建而存在,随着对象的消失而消失;
局部变量是随着方法的调用而存在,在方法调用完毕就消失;
(4)     初始值不同:
成员变量使用前要声明,可以不赋初始值,因其有默认的初始化值;
局部变量没有默认的初始化值,必须明并赋初始值,然后才能使用;
(5)     局部变量名称可以和成员变量名称一致,在方法中使用的时候,采用就近原则;
2.      i++ VS ++i
(1)    a=i++等价于:a=i;i=i+1
(2)    a=++i等价于:i=i+1;a=i
(3)    例子:
public class Test1
{
        publicstatic void main(String[] args)
        {
                      inti= 0;
                      for(intj=0;j<5;j++)
                      {
                                    inta = i++;// ①
//                                inta = ++i;// ②
//                                i= i++;// ③
//                                i= ++i;// ④
//                                ++i;//⑤
                                    i++;//⑥
                                    System.out.println("a="+ a);
                                    System.out.println("i="+ i);
//                                System.out.println("j="+ j);
                                    System.out.println("-----------------------");
                      }            
        }
}
3.      return VS break VS continue
a.return:
(1)     return从当前的方法中退出,返回到调用该方法的语句处,继续往下执行;
(2)     return返回一个值给该方法的调用端,返回的数据类型必须与方法的声明处的返回类型一致;
(3)     return后面也可以不带参数,这样就返回空,主要用于中断函数执行,返回函数的调用端;
b.break:
(1)break在循环体内,强行结束循环的执行,不再判断执行循环的条件是否成立,直接转向循环外面的语句;
(2)当break出现在switch语句中时,其作用是跳出该switch语句体;
C.  continue:
终止本次循环的执行,即跳过当前这次循环中continue语句后尚未执行的语句,接着进行下一次循环条件的判断
4.      数组操作的方法:
(1)    排序之选择法:
file:///C:\Users\PRISCI~1\AppData\Local\Temp\msohtmlclip1\01\clip_image002.jpg
(2)    排序之冒泡法:
file:///C:\Users\PRISCI~1\AppData\Local\Temp\msohtmlclip1\01\clip_image004.jpg
(3)    元素插入之顺序法:(:下面代码中变量”in”表示向数组中插入的整数)
file:///C:\Users\PRISCI~1\AppData\Local\Temp\msohtmlclip1\01\clip_image006.jpg
(4)    元素插入之倒序法:(:下面代码中变量”in”表示向数组中插入的整数)
file:///C:\Users\PRISCI~1\AppData\Local\Temp\msohtmlclip1\01\clip_image008.jpg
5.      方法中的局部变量为什么必须用final修饰符?
    内部类的生命周期和方法中的局部变量是不一样的。内部类也是一个类,存储在堆中。当对该类的引用消失时,内部类才会消亡。而方法中的局部变量是存储在栈中的。当调用结束时就会退栈,即在内存中,这个属性就消失了。也就是说,内部类的生命周期超过了方法中的局部变量的生命周期。内部类可能会调用到已经消失的属性,因此也就无法访问方法中的局部变量。一旦在方法中的局部变量前加上修饰符"final",局部变量就会存储在堆中,生命周期跟工程的生命周期是一样的,此时,内部类就可以访问到方法中的局部变量了。
6.      Java中字符'\'的含义
在Java中,'\'代表转义字符,起到标记的作用。它表示'\'后面的第一个字符不是普通的字符,而是被转义的字符。这样在执行代码时,JVM会根据转义之后的含义执行相应的操作。
7.      构造方法:
(1)没有返回值,连void也不能出现。
(2)构造方法一般用public修饰,但也可以用private,这是为了避免在类的外面生成对象。
(3)若定义一个类的时候,没有为其定义构造方法,那么java编译器会自动为其添加一个不带参数,且方法体为空的构造方法(即:默认的构造方法)
8.      New关键字在生成对象时完成哪些事情?
(1)     调用类的构造方法;
(2)     为对象开辟内存空间;
(3)     将生成的对象的地址返回;
9.      抽象类 VS 接口:
(1)     抽象类:
(2)     接口:
10.   if语句和三元运算符的区别:
(1)     用三元运算符实现的,都可以用if语句来实现;反之则不成立;
(2)什么时候if语句实现不能用三元改进呢?
当if语句控制的操作是一个输出语句的时候就无法用三元运算符;
因为三元运算符是一个运算符,运算符操作完毕就应该有一个结果,而不是一个输出。
11.  Switch语句中可以使用的数据类型:
(1)基本数据类型:char,byte,short,int
(2)只要能提升为int的都可以;
(3)引用数据类型中的枚举(JDK1.5);
(4)String(JDK1.7);
12.  选择结构switch语句的注意事项:
(1)     case后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同的;
(2)     default可以省略吗?
可以省略,但是不建议,因为它的作用是对不正确的情况给出提示。
(3) break可以省略吗?
a.最后一个可以省略,其他最好不要省略;
b.会出现一个现象:case穿透;
c.最终我们建议不要省略
(4)default一定要在最后吗?
不是,可以在任意位置。但是建议在最后;
(5)switch语句的结束条件:
a:遇到break就结束了;
b:执行到switch的右大括号就结束了;
(6) switch语句和if语句的各自使用场景:
a. switch建议判断固定值的时候用;
b.if建议判断区间或范围的时候用;

4 个回复

倒序浏览
你们这都是自己总结的吗,小伙
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
不错,总结的挺全面的
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
回复 使用道具 举报
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马