javaoo总结

javaoo总结

1、Java语言的特点是什么?

easy 面向对象,跨平台,多线程,健壮性和安全性

2、如何编译和执行java文件?产生帮助文档用什么命令?
javac文件     **.java

3、虚拟机的工作流程是什么?
编写源文件(*.java)--编译成*.class字节码文件--类加载--字节码校验--解释器---操作系统

4、main方法怎么书写?
public  static void main (String []args){}

5、什么是标识符?标识符有几种?标识符的命名规则是什么?
可以命名的地方叫做标识符,通常使用标识符名类,方法,变量
标识符有两种:系统标识符和用户标识符
标识符的命名规则为:   必须为字母,数字,下划线,$不能已数字开始
标识符的规范:1.见名知义  2.类名已大写字母开始 采用驼峰命名;3、变量名和方法名以小写字母开始,采用驼峰命名;4、常量全部用大写字母。
6、Java中基本数据类型有哪些?各占几个字节?Java中引用数据类型有哪些?
八种基本数据类型:byte(1)、short(2)、int(4)、long(8)、float、double、char、boolean
java中引用类型:类、接口、数组
基本数据类型和引用数据类型区别:基本类型变量存放具体数据、而引用类型变量存放对象地址
7、Java中char类型用什么编码?

unicode
8、变量三要素是什么?
变量类型,变量名,变量值
9、Java的注释有几种?
多行注释,单行注释,文档注释
10、定义常量用什么关键字?
finally
11、什么是对象?什么是类?对象和类的关系是什么?

对象: 对象是有明确的定义和特征,行为,万物皆为对象,对象因关注而产生
类: 具有相同行为和属性的一组对象集合
对象和类的关系:类是对象的抽象,对象是类的具体体现和实例,对象的类的具体的体现

12、变量按作用域划分有哪几种?局部变量使用时需要注意什么问题?
局部变量:存放在栈空间,方法或语句块结束,局部变量销毁。
成员变量(属性):存放在堆空间,随对象的产生而产生,随对象的销毁而销毁。
静态变量(类变量):存放在数据段中,长驻内存,虚拟机关闭消失。
局部变量使用时需要注意:1、局部变量使用前必须初始化。2、局部变量使用时,需要注意作用域。3、局部变量只能声明为默认或final

13、静态变量和成员变量有什么区别?应该怎么调用?
1.成员变量存放在堆空间中,是对象的组成部分,对象和对象之间属性彼此独立,静态变量存放在数据段中,是独立在对象之外的变量,很多对象共享员工静态变量。 2.静态变量加载的时机在对象之前,静态方法不能直接调用成员方法或者成员变量。  3.成员变量的调用:对象,成员变量调用.  静态变量的调用类名.  对象.     都可以调用。但是推荐使用类名.调用。所以静态变量也成为类变量

14、垃圾回收GC回收什么样的对象?
没有被变量指向的对象,同时没有被使用的对象

15、什么是包?包的作用是什么?如何导入别的包中的类?什么样的类不需要导入?

包就是文件夹            作用是通过包来组织类,通过包来做到信息隐藏         import             java.lang.*不用导入 本包中的类和java.lang的类无需导入可以直接使用
16、静态方法能直接调用成员方法或属性吗?为什么?

不能     因为静态方法在对象产生之前就首先被加载,所以静态变量不能直接调用成员变量和成员方法
17、当传递和返回对象,传递和返回的是什么?
引用(地址)

18、什么是构造方法?构造方法的作用是什么?

构造方法:就是构造方法的方法名和类名相同,没有返回值,利用构造方法,可以产生该类的对象包括(void)
作用:1.为对象分配空间  2.如果没有加载,则加载类  3.初始化成员变量  4.返回对象的引用
19、创建对象有几种方式?

new对象     Clone方法(克隆)       反序列化  反射机制
20、this和super各代表什么含义?
this表示当前对象    super表示父类对象
21、数组如何定义?

数组类型 [] 变量名 = new 数组类型[数组长度] 或者 数组类型 [] 变量名 = {数组元素};

22、数组、字符串、集合各自的长度如何获得?
数组、字符串长度用.length()、集合的长度用.size()。
23、数组有哪些特点?
1、数组是一串连续的内存空间,通过下标访问元素。下标从0开始最大下标为数组长度-1.2、数组元素都是变量,变量的类型为定义数组的类型。3、数组创建之后,会对每个元素进行初始化int--0、double--0.0、引用类型--null。4、数组的长度不可以改变
24、继承用什么关键字?子类继承父类,构造方法第一句应该如何书写?
extends  super();
25、重写和重载的区别是什么?重写有什么要求?
重载:发生在同一个类中。两个方法的方法名相同,参数列表不同(参数类型、个数、顺序)和返回类型无关。调用时,根据方法的参数来决定调用哪个方法。
重写:重写发生在父类和子类之间,子类的方法名、参数列表、返回类型与父类相同。子类重写父类的方法,调用时,会优先调用子类重写的方法。
重写的要求:子类方法的访问修饰符要大于或等于父类访问修饰符,抛出的异常要小于或等于父类方法抛出的异常
26、项目开发的步骤。
需求分期
设计
编码实现
调试
维护

27、说出下列代码执行结果
a、public  class  Test{    
    public static void main(String[] args){
    int  j;
    System.out.println(j);
    }
   }
编译错误 j没有初始化

b、public  class  Test{
    static int j;
    public static void main(String args){
    System.out.println(j);
    }
   }
编译通过,但运行时找不到程序入口点
c、public  class  Test{
    int  j;
    public int getNum(){
    return this.j;
    }
    public static void main(String[] args){
    System.out.println(getNum());
    }
   }
编译错误,静态方法不能直接调用非静态方法


d、public  class  Test{  
    public String  x;
    public static void main(String[] args){
     Test t = new Test();
    String  y = "";
    System.out.println(t.x.equals(y));
    }
   }
     运行错误,构造方法会初始化成员变量,x属性由于是引用类型,所以被初始化为null。当对null调用方法或者属性时,会抛出空指针异常。

28、说出代码执行结果。
public class Test{
    public int x = 8;
    public void move(int x){
        System.out.println(x);
        System.out.println(this.x);
    }

    public static void main(String[] args){
        Test t = new Test();
        t.move(6);
    }
}
6.8

29、下列哪一行进行了垃圾回收  
   Object o1 = new Object();
   Object o2 = new Object();
   Object[] array = new Object[2];

    o1 = o2;
    o2 = array[0];
     Array[0] = new Object();
    o1 = array[0];垃圾回收

 o1 = o2;
30、说说下面的方法哪些重载了构造方法?
public class Test{
    public Test(int x){}
}
  a、public Test(int y){}
  b、public Test(String y){}
  c、public void Test(String x){}
  d、public int Test(int y,String x){}
  e、public Test(int y,String x){}
  f、public Test(String x,int y){}
bef

31、说出代码执行结果
public class X{
     public X(){
       System.out.println("XXX");
    }
}

class Y extends X{
    public Y(){
       System.out.println("yyy");
    }
    
    public static void main(String[] aa){
       Y y = new Y();
    }
}
xxxyyy
32、说出代码执行结果
public class X{
    public int x;
    public int y;
    public X(int x){
        this.y = x;
    }
}

class Child extends X{
    public Child(int x){
        super(x);
    }
}


class Test{
    public static void main(String[] aa){
       Child c = new Child(10);
       System.out.println(c.x);
    }
}
0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值