黑马程序员技术交流社区
标题: java基础知识总结(第一天) [打印本页]
作者: Priscilla 时间: 2017-4-8 07:47
标题: java基础知识总结(第一天)
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建议判断区间或范围的时候用;
作者: javaeeheima 时间: 2017-4-8 08:06
你们这都是自己总结的吗,小伙
作者: 精诚所至 时间: 2017-4-8 08:10
不错,总结的挺全面的
作者: Hp_Yx 时间: 2017-4-9 11:24
小伙子,多谢总结
作者: 冒泡 时间: 2017-4-13 21:31
相当可以
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |