黑马程序员技术交流社区

标题: 比较容易犯错的地方 [打印本页]

作者: 0803_hang    时间: 2015-8-14 21:53
标题: 比较容易犯错的地方
1.如果数组直接定义内容 int[] in = new int[]{2,3,4};[]里不可以有长度!
2.打印是print 输出是System.out, "字段"表示成员变量,"方法"也是函数.
3.有运算符参与运算,为一个表达示,这个表达式必须要有结果,且结果与里面变量结果属于两个类型,如int x=1;x++==2:结果为false,其实加个=就可以明白,运算必须有结果.
4.\表示转义,字符串里要用两个一起用,比如:"\\."才表示 .
5.变量的作用域是在本方法{}内有效!
成员变量(在类中)可以与局部变量(在方法中)同名,因为存储区域不一样,成员变量在堆内存中,局部变量在栈内存中,用this来区分,但局部变量不可以和局部变量同名
public class  Test
{
        int x =0;成员变量
        public static void main(String[] args)
        {
                int x =5;局部变量
if (true)
{
        int x = 6;局部变量 (这里不合法!!)
}
class Test3
{
        int x=7;成员变量,所以这里也合法
}
                System.out.println("Hello fada!");
        }
}
6.public 及static类型修饰符只能修饰类成员.而final可以修饰方法内的属性.

7.创建对象时,里面的成员变量首先自动初始化,然后如果构造函数有赋值操作,再进行赋值操作.
8.字符型一旦参与运算,自动强转为整数型参与运算.
9.引用型数据类型为默认为null
10.java执行就近原则,也就是本{}内有,先用自已的, 没有,再去外{}中寻找。
作者: 0803_hang    时间: 2015-8-14 21:55
11.java内存中是先进后出,先进行运行的方法要等后面进去的方法运行完以后再消失.
12.java对空格没有严格限制,没空格的地方,都可以有空格,多几个与少几个无所谓,但是如果有空格的,绝对不能成为无空格,也就是只能没空格的转为有空格,需要空格的,不能没有空格,如:int[]==int  []   但int a!=inta;
13.有new就会在堆内存中开辟空间.然后把地址值赋给栈内存.形成指向引用.
14.成员变量在类中都有效,但主方法除外.因为主方法是static修饰,只能使用静态成员变量.
15.类的属性(变量)可以是任意数据类型.
16.构造函数只能用权限修饰符修饰,如public private
17.class Demo
{
void Demo(){}//这个不是构造函数!!!构造函数格式:[修饰符] 类名(){}没有返回值
}
静态大多与资源有关,因为静态代码块最先执行,且只加载一次.

18.每个构造函数第一行默认有一个super();父类的构造函数引用.但一但自已定义了一个super()或super(参数)或this()或this(参数);;那么就不会有!!且super或this在构造函数中,有且只能有一个!这一切都是因为:this和super在构造函数中只能在第一行!!!!有多个,那么其它的放哪????
19.this和super只能用于方法中.
java是没有多继承,但接口除外
作者: 0803_hang    时间: 2015-8-14 21:57
21.Test t = new Test(); 假如里面有一个show方法 那么t.show()==new.Test().show();另外匿名对象,可以独立成一行语句..
22.类里有实例属性和类属性,实例方法与类方法.注意一点,实例属性随对象在堆内存中,而类属性在方法区.被static修饰的属性和方法叫类属性和类方法.
23.final修饰的成员属性没有赋值,还是默认值的情况下,允许在构造函数中赋值一次.(注意:如果同时被static 和final修饰则不允许)
24.多态中父类的引用调用属性时,是父类的,调用非静态方法,是子类的重写方法,调用静态方法,即使子类重写了方法,实际调用的还是父类的.\
25.类包含属性和方法,但是对象只包含非静态属性,方法在方法区,我们用对象调用方法,所以对象里的内容是非静态属性.
26.质数与积数的区别,质数就是只能被本身和1整除的数.唯一的区别就是比积数多一个---2.
27.在try{}catch(){}finally异常处理函数中,finally一定会被执行,前提是try之前代码运行正常,没有异常.
28.for 或if可以不加括号,那么只表示对其下面的一条语句起作用.一个for循环表示一个语句
29.exit退出虚拟机
30.i基本数据类型,精度由低到高: byte--short---int---long---float---double
作者: 0803_hang    时间: 2015-8-16 22:56
31.让一个类不能实例化,两种方法,一是让其为抽象类二是私有化构造函数
32.接口没有构造方法.
33.基本数据类型的对象缓存:
Integer num3 = 127;
                Integer num4 = 127;
System.out.println(num3 == num4);超过127就是false
34.集合用增强for循环遍历时,不可以修改里面的元素.
35.转换流只能转换字符文件,不然会乱码
作者: kingxiao    时间: 2015-8-16 23:07
不错收下了
作者: 福娃(小白)    时间: 2015-8-16 23:26
感谢楼主分享……
作者: kenfans    时间: 2015-8-16 23:42
帮你顶一下
作者: 阮文江    时间: 2015-8-16 23:58

感谢楼主分享……
作者: wang949055945    时间: 2015-8-17 00:40
顶一下      
作者: fantianfei    时间: 2015-8-17 01:44
谢谢分享
作者: icichacici    时间: 2015-8-17 06:49
不错不错。
作者: 3174918418    时间: 2015-8-17 07:16
顶一下, 谢谢分享
作者: kevin986745    时间: 2015-8-17 07:16
整理的很全面呀
作者: l_15562009298    时间: 2015-8-17 10:28
哎呦,不错欧
作者: 风华正茂    时间: 2015-8-17 12:29
感谢楼主分享,楼主辛苦了
作者: Z攻城狮    时间: 2015-8-17 15:04
感谢分享。赞
作者: vipsong    时间: 2015-8-17 16:24
感谢分享
作者: ℃葫芦    时间: 2015-8-17 16:46
很有用,顶上去
作者: xp2015    时间: 2015-8-17 21:21
总结得很好 赞一个~




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2