赞
踩
第一部分:编程题
/*@作者名:冒蔡静
*@版本号:2018.6.20
*@类名:Person
**/
public class Person {
/**
*私有字段name
*私有字段age
*/
protected String name;
protected int age;
/**
*空参构造器
*/
public Person(){}
/**
*有参构造器 给name int 赋值
*/
public Person(String name,int age){
this.name = name;
this.age = age;
//System.out.println("我叫" + this.name + this.age + "");
}
//get set方法
public void setName(String name){
this.name = name;
}
public void setAge(int age){
if(age >0 && age <= 140){
this.age = age;
return;
}
System.out.println("年龄非法");
}
//重写toString方法
public String toString(){
return"Name:" + this.name +"Age:" + this.age;
}
}
class Student extends Person{
private String school;
/**定义一个构造器
*用于给name、age、school赋值
*在构造器中要调用父类的带参构造器
*/
public Student(String name,int age,String school){
super(name,age);
this.school = school;
}
//定义一个空构造器
public Student(){}
}
class Client {
public static void main(String[] args) {
Student j = new Student();
j.setName("Jack");
j.setAge(20);
System.out.println(j.toString());
}
}
第二部分:简答题
1、JDK、JRE、JVM分别是什么?他们之间的关系是什么?
JDK是 Java 语言的软件开发工具包;
JRE是包含JVM标准实现及Java核心类库;
JVM是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。
JDK是整个Java的核心,包括了Java运行环境JRE、Java工具和Java基础类库。JRE是运行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心类库。JVM是整个java实现跨平台的最核心的部分,能够运行以Java语言写的程序。
2、Java支持的数据类型有哪些?什么是自动拆装箱?
基础数据类型:
数值型:
整数型:byte、short、int、long
浮点型:float、double
字符型:char
布尔型:boolean
引用数据类型:类(class)、接口(interface)、数组
自动装箱就是Java自动将原始类型值转换成对应的对象,比如将int的变量转换成Integer对象,这个过程叫做装箱,反之将Integer对象转换成int类型值,这个过程叫做拆箱。因为这里的装箱和拆箱是自动进行的非人为转换,所以就称作为自动装箱和拆箱.
3、什么是面向对象编程?面向对象编程的基本特征有哪些?请分别阐述对这些基本特征的理解。
1)面向对象编程:在完成一件事情时,会将事情中的实体对象抽象出来,形成「类」的概念,事情的完成是通过类的对象之间发生关系去实现的。
2)面像对象编程的基本特征有封装、多态、继承。
3)封装:把成员变量隐藏起来,暴露方法来提供成员的修改和访问
多态:允许不同类的对象对同一消息作出响应
继承:对象的一个新类可以从现有的类中派生
4、能否在static环境中访问非static变量?说明理由。
不能访问。因为static变量在Java中是属于类的,它在所有的实例中的值是一样的。当类被Java虚拟机载入的时候,会对static变量进行初始化。如果的代码尝试不用实例来访问非static的变量,编译器会报错,因为这些变量还没有被创建出来,还没有跟任何实例关联上。
5、我们说方法的参数传递是值传递,类变量在传递的时候,传递的是其引用地址,请简要说明你对这句话的理解,可以图示和代码的方式解释。
在传递的参数是基本数据类型时,会把这个参数拷贝一个副本存放在栈区,实际传递的是这个副本,这时在方法中对这个值进行操作与它原本的值没有关系。
如果传递的参数是一个引用数据类型时,传递的是这个这个引用数据类型在堆中的地址,这个地址指向这个引用数据类型,此时在方法中对这个参数进行操作,它的值也会随之改变。
6、Java中的Overriding和Overloading是什么意思?
Overloading:方法重载 如果在一个类中,两个或多个的方法方法名相同但形参列表不同,我们就把它成为方法重载。
Overriding:方法重写 如果在子类中遇到与父类同方法前面的情况,我们就把它称为方法重写。
7、请手写一个饿汉式的Sinleton类。
public class Singleton{
private static final Singleton instance = new Singleton();
private Singleton(){}
public static Singleton getInstance(){
return instance;
}
}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。