您的位置:首页 > 编程语言 > Java开发

java基础

2016-03-18 17:20 239 查看
字节码 是Java 编译之后的 的代码 是为了让JVM执行的 jar可以分为 可执行的 和不可执行的

java -jar Test 可以直接运行可执行的 jar包 那些不可执行的 你看的最多的 就是 像JRE这样的依赖包

类之间关系

使用,聚合,继承

class A

{}

class B extends A//继承 是的关系

{

A a;//聚合 有的关系

void a()

{

A a=new A();//使用 用的关系
}


}

class Student extends Human

{

}

Human h=new Student(); //引用变量(类型是Human类型) 访问对象唯一手段是引用

派生类继承父类所有属性

public 没有任何限制

private 局限类的内部

protected 同包和继承者课访问

包权限 同包内可访问

解决命名冲突?1. 延长命名

2.分成几部分局部范围内

无名包 不用导入

一个源文件public 类只能有一个 源文件名字与类名相同

一个类的父类只能有一个

protected 受保护的成员,只能通过子类实例访问,不能通过父类实例来访问

final 等同于c++中constant

final int i=0;

对象常量一般小写,简单数据类型是大写

final 类不能被继承(断子绝孙)

重载,函数名相同,参数(类型,数量)不同

覆盖,子类中出现与父类相同的函数(函数名和函数参数相同)

构造函数1.

2.一个类的构造函数里可以调用super(…)来实现父类构造函数

class Point()

{

int x,y;

{}//初始化代码

static

{}//静态初始化代码,当类被加载时被执行

Point(int x,int y){

this.x=x;

this.y=y;

}

Point(int x)

{

this.(x,0);

}

Point()

{

this.(0,0);

}

}

初始化顺序:

父类初始化 初始化变量 初始化代码 构造函数

class A

{

public A()

{

System.out.println(“p”)

this.init();

}

public void init()

{

System.out.println(“q”);

}

}

class B extends A

{

int i=4;

B(int i)

{

System.out.println(“s”);

this.i=i;

}

public void init()

{

System.out.println(i)

}

public static void mian(String[] args)

{

B b=new B(5);

}

}

p 0 s

一个类调用本类函数特别危险,因为父类函数有可能被覆盖

对象引用放在堆栈但对象是放在堆中

基本类型直接存储值在堆栈中

boolean数值类型所占存储空间大小没有明确指定

BigInteger支持任意精度的整数

BigDecimal支持任何精度的定点数

c和c++的数组就是内存块 如果一个程序要访问自身内存块之外的数组,或在数组初始化前使用,后果难以预料

java确保数组就会被初始化,而且不能在它的范围外被访问

作用域决定了在其内存内定义的变量名的可见性和生命周期

c和c++中将一个较大作用域的变量隐藏的做法,在java中不允许

java垃圾回收器用来监视new创建的所有对象

如果字段是某个对象的引用,必须初始化该引用

基本成员如果没初始化默认赋值
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: