1.java基础
1.方法中return关键字的作用?
- 在有返回值的方法中表示结束方法并且返回内容
- 在没有返回值的方法中也可使用,但不能在return后加内容,此时只表示结束方法。
- 分支结构情况下(if/else,switch等)必须保证执行每一分支时都有返回值。
2.方法的重载
- 参数列表不同:个数、类型、顺序(必须是不同类型之间)不同。类型指的是变量类型
3.byte的取值范围
- -128~127 -2^7~2^7-1
4.switch支持的数据类型
- short byte int char String(JDK7) 枚举 共六种,没有long与浮点型
5.基本数据类型:四型八种
6.this,static,super 、extends关键字
- this关键字:
- 访问属性,直接使用this.属性即可
- 访问方法,直接使用this.方法即可
- 访问构造方法,this(形参列表)即可。 必须在构造方法的第一句,并且只能有一个。
- static关键字:
- 修饰属性,不依托于对象而存在,在内存中只有一份拷贝,将被所有的对象共享。类名.属性
- 修饰方法,不需要创建对象即可访问,在内存中只有一份拷贝。
- 修饰代码块,在加载类的时候执行,多个代码块按照顺序执行,并且只执行一次。哪怕创建 多个对象也是执行一次,因为类只被加载一次。
- super关键字:可访问的与this同
- 父类的属性,直接super.访问,访问规则结合访问修饰符权限
- 父类的方法,直接super.访问,访问规则结合访问修饰符权限
- 父类的构造方法,super(形参列表)。必须在构造方法的第一句,并且只能有一个。
- extends关键字可继承:
- public修饰的属性和方法
- protected修饰的属性和方法
- 修饰的方法在不同包子类的情况下,只能继承,不能直接访问
- 默认修饰的属性和方法,要求父子类在同包。
- extends不能继承的内容:
- private修饰的属性和方法
- 构造方法
- 默认修饰的属性和方法,但是父子类在不同包
7.分别说明方法重载和方法重写的特点
- 重载
- 同一个类中
- 方法名称相同
- 参数列表不同(个数、类型、顺序)
- 跟返回值和访问修饰符无关
- 重写
- 存在于父子类中
- 方法名称相同
- 参数列表相同
- 返回值相同或者是其子类
- 访问权限不能严于父类
- 不能抛出比父类更多的异常
- 扩展:
- 父类的静态方法 子类可以继承,但是不能重写(即使写成与父类一模一样的静态方法,虽然可以正常运行,编译器不会报错,但此时不是重写)
- 父类的普通方法 不能被子类重写为静态方法
- 父类的静态方法 子类不能定义同名的非静态方法
8.静态变量使用什么修饰,与非静态变量使用上有什么区别?
- 使用static修饰
- 静态变量在本类中可以直接访问或通过类名+.访问
- 静态变量在非本类在必须通过类名+.访问
- 非静态变量在本类或非本类静态方法中都必须先创建对象,然后通过对象访问
- 非静态变量在本类普通方法中可直接访问,比如常写的getter与setter方法
9.构造方法的写法?
- 访问修饰符 + 类名
- (了解)
- public
public就不用解释了
private
当构造方法修饰符为private级别时,只能在当前类内访问,此类不能被继承,也不能被其他类创建对象。 可以对比其他几种修饰符的作用:abstract修饰的类,不允许被实例化,这点和private修饰构造方法相同,但abstract修饰的类可以被继承,拥有子类,可以创建子类的实例;final类禁止被继承,这点和private修饰构造方法相同,但是final类可以用new创建实例对象。 - protected
如果构造函数是protected,那么该类可以继承,可以在被包内其他类中创建实例,但是无法在包外或者子类以外的地方产生实例.
10.实例变量与静态变量的区别?
- 实例变量每创建一个对象,在内存中就有一份拷贝,多个对象之间互不影响。
- 静态变量在内存中只有一份拷贝,被多个对象共享,节省内存空间