美文网首页
java语言概括

java语言概括

作者: 0640fefbc8bf | 来源:发表于2019-03-12 16:42 被阅读0次

    1.1.2JAVA语言的目标

    • 面向对象、简单化、解释型与平台无关、多线程、安全高效、动态性

    1.1.3java语言的实现机制

    JAVA语言使用了jvm、垃圾回收机制、和java运行环境(jre)

    1.jvm

    Java语言的执行模式为编译加解释,编写好的java源程序由编译器转换为标准字节代码由jvm(java虚拟机)解释执行,jvm运行的 代码存储在.class文件中,每个文件最多包含一个public类的代码。
    jvm具体实现:

    • 加载代码:由类加载器完成。
    • 校验代码:由字节码校验器完成
    • 执行代码: 由解释器完成

    Java程序的下载和执行步骤
    (1) 源程序经编译器得字节代码
    (2)浏览器和服务器连接,要求下载字节码文件
    (3) 服务器将字节代码文件下载到客户机
    (4)客户机上的jvm执行
    (5)在浏览器上显示并交互

    2.垃圾回收机制

    所有的代码都封装在类中,需要时创建类的实例(对象)来处理,这种动态的实例存储在内存堆中,java有一个系统级的线程,对内存的使用进行自动跟踪。该线程能在jvm空闲时,对不用的内存进行自动回收,消除了释放内存的必要,也避免了内存的泄漏。

    3.java运行环境(jre)

    java语言的运行环境包括java应用程序接口(api)和jvm
    java有三个平台:javaSE javame javaee。都立足于核心开发工具jdk的各种版本

    1.2java语言面向对象编程

    1.2.1

    • 基本概念:抽象、继承、封装、多态
      抽象:面向对象编程强调按照于人类思维方法中的抽象、分类、组合、封装等原则去模拟现实世界中的物理存在。

    封装: 封装是面向对象技术中隐蔽信息的一种机制(类是程序封装最小单位)

    继承:继承是描述两个类之间的关系:允许一个新类(称为子类)包含另一个已有类(称为父类)的状态和行为,减少类的重复说明。 子类的派生过程称为类的继承,继承是抽象类分层管理的实现机制。

    继承分为单继承和多继承: 单继承指的是任何子类都只能从一个父类派生,多继承指一个子类可以由多个父类派生。在java中 除了object类外 都有父类。继承只支持单继承,多继承通过接口实现
    Java中 创建一个类后可用关键字extends 去创建他的子类。

    多态:多态是允许一个类中有多个同名方法,但方法的具体实现却不同的机制
    多态分为重载式多态和重写式多态
    重载式多态:方法名相同而参数列表不同的一组方法就是重载。在调用这种重载的方法时,通过传入不同的参数最后得到不同的结果。
    重写式多态:这种多态通过函数的重写以及向上转型来实现,
    向上转型
    子类引用的对象转换为父类类型称为向上转型。通俗地说就是是将子类对象转为父类对象。此处父类对象可以是接口。

    看一个大家都知道的例子:

    public class Animal {
        public void eat(){
            System.out.println("animal eatting...");
        }
    }
     
    public class Cat extends Animal{
     
        public void eat(){
     
            System.out.println("我吃鱼");
        }
    }
     
    public class Dog extends Animal{
     
        public void eat(){
     
            System.out.println("我吃骨头");
        }
     
        public void run(){
            System.out.println("我会跑");
        }
    }
     
    public class Main {
     
        public static void main(String[] args) {
     
            Animal animal = new Cat(); //向上转型
            animal.eat();
     
            animal = new Dog();
            animal.eat();
        }
     
    }
     
    //结果:
    //我吃鱼
    //我吃骨头
    

    这就是向上转型,Animal animal = new Cat(); 将子类对象 Cat 转化为父类对象 Animal。这个时候 animal 这个引用调用的方法是子类方法。

    转型过程中需要注意的问题

    • 向上转型时,子类单独定义的方法会丢失。比如上面Dog类中定义的run方法,当animal引用指向Dog类实例时是访问不到run方法的,animal.run()会报错。
    • 子类引用不能指向父类对象。Cat c = (Cat)new Animal()这样是不行的。

    向上转型的好处

    • 减少重复代码,使代码变得简洁。
    • 提高系统扩展性。

    1.2.2类与包

    1.类的修饰符(类的修饰符可以有多个,说明使用类的权限)

    • public:说明为公共类,被其他类访问引用成员变量和成员方法。
      注意! 包含main()方法的类必须是公共类。

    • abstract:抽象类,指明不能实例化的类,定义它常常为改变他的子类而设置

    • final:终结类,指明该类不能有子类

    如果类没有修饰符,说明该类具有默认访问权限,只允许与该类相同包中的类可以访问和调用,其他包不能访问和调用

    2.成员变量

    变量修饰符

    • public:允许所有的类来访问该变量
    • protected: 仅允许相同包的类和该类的子类来访问
    • private:仅允许本类访问的内部变量
    • static:表示该变量是类变量 不需要创建对象就可以直接通过类名访问
      静态方法:
      static 关键字用来声明独立于对象的静态方法。静态方法不能使用类的非静态变量。静态方法从参数列表得到数据,然后计算这些数

    3.成员方法

    protected、public、private表示访问权限

    • static:表示类方法可直接进行访问和调用 不用他修饰的是实例方法

    • abstract:表示抽象方法没有方法体,static方法和final都不能是abstract方法

    • synchronized:表示多个并发线程对共享数据访问的控制。

    • final:终结方法不允许子类方法覆盖

    • 在类方法只能调用本身的类方法不能直接调用实例方法

    • 在实例方法可直接调用类的类方法和实例方法

    • 在实例方法中用this.方法名和super.方法名调用

    构造方法(用来初始化对象)

    • 无返回值,与类名相同
    • 不能直接调用需要new自动调用
    • 可分为带参不带参
    Point(int x){
    this.x = x;
    

    this指向当前对象

    相关文章

      网友评论

          本文标题:java语言概括

          本文链接:https://www.haomeiwen.com/subject/cocnpqtx.html