Java理论易错知识

以下内容根据网上的题库总结,细心网友发现错误的可以在评论中随意指出,共同讨论。

  1. 一个Java源文件里只能有一个main方法,而且只能有一个public类
  2. 一个类中可以没有main()方法
  3. this和super的区别
    this是自身的一个对象,代表对象本身,可以理解为:指向对象本身的一个指针。
    super可以理解为是指向自己超(父)类对象的一个指针,而这个超类指的是离自己最近的一个父类。
  4. this和super不能用在main中的原因
    main方法是静态方法,是随着类加载而加载,而this与super是表示本类对象和父类对象,是随着对象加载而加载,因此this和super不是静态的,所以不能用在main方法中。
  5. 静态方法只能访问静态成员。(非静态既可以访问静态,也可以访问非静态)
  6. 成员变量和静态变量的区别
    ①生命周期不同
    -成员变量随着对象的创建而存在,随着对象的回收而释放
    -静态变量随着类的加载而存在,随着类的消失而消失
    ②调用方式不同
    -成员变量只能被对象调用
    -静态变量可以被对象调用,还可以被类名调用
    ③数据存储位置不同
    -成员变量数据存储在堆内存的对象中,所以也叫对象特有数据
    -静态变量数据:存储在方法区(的静态区),所以也叫对象的共享数据
  7. 抽象类不能实例化,即不能创建对象
  8. 线程对象的生命周期包含5个生命状态:新建、就绪、运行、阻塞、死亡
  9. abstract
    ①抽象类:抽象类除了不能实例化对象之外,类的其它功能依然存在,成员变量、成员方法和构造方法的访问方式和普通类一样。由于抽象类不能实例化对象,所以抽象类必须被继承,才能被使用,相当于半成品。一个类只能继承一个抽象类,而一个类却可以实现多个接口。
    ②抽象方法:只有声明,而没有实现,需要子类重写
    联系:有抽象方法的类一定是抽象类。但是抽象类中不一定都是抽象方法,也可以全是具体方法。抽象类只能被继承、抽象方法只能被覆盖。
  10. Java中的swing五种常见布局:FlowLayout(流式)、BorderLayout(边框)、GridLayout(网格)、BoxLayout(盒布)、CradLayout(卡片)。容器javax.swing.JPanel,它的默认布局是FlowLayout.
  11. Java线程的优先级在1 至10之间,越大优先级越高,默认优先级为5
  12. C语言和Java的区别(经典面试题)
    总体:C更接近底层,生成机器代码效率高。Java更简洁,功能更加强大,编程效率高。
    ①C语言的指针采用了类似汇编的寻址方式。C的位操作可以减少除法和取模的运算。宏函数仅仅作为预先写好的代码嵌入到当前程序,不会产生函数调用,所以仅仅是占用了空间,而使程序可以高效运行。
    ②Java的通用性好,可以跨平台直接移植,只要有安装Java虚拟机(JVM)就可以了。Java没有C中冗余以及容易引起异常的功能成分,并且增加了多线程、异常处理、网络编程等方面的支持功能,开发的效率高。Java语言不使用指针,并提供了自动的废料收集,使得程序员不必为内存管理而担忧。
  13. 抽象类与接口有何不同?
    ①抽象类中可以存在非抽象的方法, 接口中的方法被默认的变成抽象方法;
    ②方法是抽象的,必须重写实现。抽象类中可以有非抽象的方法,子类可以选择继承;接口中的方法默认都是抽象方法,必须实现接口中的所有方法;
    ③抽象类可以有私有的成员变量和成员方法,接口中的方法全都被默认的修饰为: public abstract 类型的方法;
    ④一个类只能继承一个抽象类,一个类可以实现多个接口,接口可以实现多继承;
    ⑤抽象类中的非抽象的方法可以选择继承,接口中的方法必须全部被重写 ,并且全部是公有的public 方法.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值