java基础

来源:互联网 发布:2017淘宝c店 编辑:程序博客网 时间:2024/06/05 03:07
  • 字节码 是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创建的所有对象
如果字段是某个对象的引用,必须初始化该引用
基本成员如果没初始化默认赋值

0 0
原创粉丝点击