[JAVA]java基础知识,
[JAVA]java基础知识,
1. java和c#不支持多重继承,但c++可以。java和c#支持继承多个接口。
2. obsolete属性可以用来废弃某个方法。
3. 子类的构造方法必须调用父类的构造方法,如果不显式调用,则默认调用父类的默认构造方法。因为,子类包含父类,子类在实例化的时候,必须先实例化自己的父类。如现有父亲,才能有儿子。
4.值类型存放在栈空间中,引用类型只在栈中存放引用的地址,数据存放在堆中。静态数据存放在专门的数据段中。
int i;// 在栈中分配空间
cat cat;// 在栈中分配空间,但内容为null
cat = new cat();// 在堆中创建对象,并保存地址到栈中
5.this表示一个指向自身的引用。
6.局部变量和成员变量。方法内部声明的变量成为局部变量。类的变量成为成员变量。成员变量存放在堆中,局部变量存放在栈中。
成员变量如果没有初值,则有默认值0;局部变量则必须赋初始值。
声明对象时,内存不分配空间,只存在一个空对象;当用new 分配内存空间时,类中的成员变量就会被分配到相应的空间中,并通过构造方法(如果有)初始化,函数的入口地址也会被载入内存.但此时局部变量不会被分配内存空间,只有当对象调用类中的函数时,函数中的局部变量才被分配空间,但函数执行完后,局部变量释放内存,所以如果在函数中没有对局部变量进行初始化,就没有默认值,因此在使用局部变量之前,要事先为其赋值.
创建多个对象之间没有相互状态影响,个用个自的内存空间.
7.重载[overload]:相同的返回值类型,不同的形参个数或者类型。
不允许相同的方法名,返回值类型不同。因为如果
int getmax();
void getmax();
如果调用的时候不需要返回值,直接getmax(),就会出错,不知道是哪一个。
8.c、c++中的数组可以分配在栈上,但java中数组属于引用类型。数组也可以堪称是对象。数组中的每个元素相当于对象的成员变量。
若元素为引用类型,则每一个元素都必须实例化。
9.class takecare
{
static int x;
int y;
}
class a
{
takecare a1=now takecare();
takecare a2=now takecare();
//在此代码中如果给x赋值那么,a1.x 和a2.x指的是同一个内存空间,无论那个对象修改都是对一个x进行操作
}
当java程序执行时,类的字节码文件被加载到内存,如果该类没有创建对象,类的实例成员变量不会被分配内存.但是类中的类变量被加载到内存时,会被分配相应的内存空间.简单的说就是,没创建对象当类加载到内存时候,只有类变量(static)会被分配内存空间,只有创建对象时候实例变量才会被分配空间的.
像上面的例子里,在没有创建takecare的对象时候,takecare::x是有空间的即此时可以访问的,当且仅当takecare a1=now takecare()时a1.y才会有内存空间.
10.再一个例题:
public class outerclass {
private double d1 = 1.0;
//insert code here
}
you need to insert an inner class declaration at line 3. which two inner class declarations are
valid?(choose two.)
a. class innerone{
public static double methoda() {return d1;}
}
b. public class innerone{
static double methoda() {return d1;}
}
c. private class innerone{
double methoda() {return d1;}
}
d. static class innerone{
protected double methoda() {return d1;}
}
e. abstract class innerone{
public abstract double methoda();
}
说明如下:
一.静态内部类可以有静态成员,而非静态内部类则不能有静态成员。 故 a、b 错
二.静态内部类的非静态成员可以访问外部类的静态变量,而不可访问外部类的非静态变量;return d1 出错。
故 d 错
三.非静态内部类的非静态成员可以访问外部类的非静态变量。 故 c 正确
四.答案为c、e
11.9、介绍java中的collection framework(包括如何写自己的数据结构)?
答:collection framework如下:
collection
├list
│├linkedlist
│├arraylist
│└vector
│ └stack
└set
map
├hashtable
├hashmap
└weakhashmap
collection是最基本的集合接口,一个collection代表一组object,即collection的元素(elements)
map提供key到value的映射
======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/
相关文章
- 暂无相关文章
用户点评