zoukankan      html  css  js  c++  java
  • Java平台理解

    1、从宏观角度看

    Java跟C/C++组大的不同点在于,C/C++编程式面向操作系统的,需要开发者关心不同操作系统之间的差异性;而Java平台通过虚拟机屏蔽了操作系统的底层细节,使得开发无需关系不同操作系统之间的差异性;通过增加一个间接的中间层俩进行“解耦”是计算机领域常用的手法,虚拟机是这样的,操作系统如是;不同的操作系统有不同的API,为了支持多平台,C语言程序的源文件根据不同平台需要修改多次
    Java平台已经形成了一个生态系统,有着诸多的研究领域和应用领域:虚拟机、编辑技术的研究;Java语言的优化、大数据、java并发、客户端开发(如 Android)

    2、从微观角度

    Java平台有两大核心:

    • Java语言本省、JDK所提供的核心类库和相关工具;
    • Java虚拟机以及其他包含的GC等;

    Write once, run anywhere

    3、Java与C++的区别

    • C++是编译型语言,首先将源代码编译生成机器语言,再由机器运行机器码;执行速度快,效率高;依赖编译器、跨平台性差;
    • Java是解释型语言,源代码编译成字节码,再由解释器对字节码进行解释运行;执行速度慢、效率低;依赖解释器、跨平台性好;
    • C++对所有的数字类型有标准的范围限制,但字节长度是跟具体实现相关的;Java在所有平台上对所有基本类型都有标准的范围限制和字节长度;
    • C++允许直接调用本地的系统库;Java要通过JNI调用或者JNA;
    • C++允许过程式程序设计和面向对象程序设计;Java必须适应面向对象的程序设计方式;
    • C++支持指针,引用,传值调用。Java只有值传递;
    • C++需要显示的内存管理,支持析构函数;Java是自动管理内存的;
    • C++支持多重继承,包括虚拟继承;Java只允许,但是接口之间可以多继承;

    4、面向对象与面向过程

    • 面向过程:把问题分解成一个一个步骤,每个步骤用函数实现;进行面向过程编程时,上来先定义一个函数,然后使用诸如if-else等方式进行代码执行;
    • 面向对象:将问题分解成一个一个步骤,对每个步骤进行相应的抽象、形成对象,通过不同对象之间的调用,组合解决问题;是一种变成死信,提倡使用类来抽象现实模型

    5、三大基本特征

    • 封装:通常认为封装是把数据和操作数据的方法绑定起来,对数据的访问只能通过已定义的接口;面向对象的本质就是:将现实世界描绘成一系列完全自然、封闭的对象。在类中的编写的方法就是对实现细节的一种封装;编写一个类就是对数据和数据操作的封装;
    • 继承:继承是从已有类中得到继承信息并创建新类的过程。提供继承信息的类被称为父类;得到继承信息的类被称为子类。继承让变化中的软件系统有了一定的延续性,同时继承也是封装程序中可变因素的重要手段;
    • 多态:指允许不同子类型的对象对同一消息作出不同的响应;

    6、五大基本原则

    • 单一职责原则
    • 开放封闭原则
    • 里氏替换原则
    • 依赖倒置原则
    • 接口隔离原则

    注意点:

    在正式学习java并安装配置开发环境之前,有必要了解一些有关Java的专业术语:

    • JDK(Java Development Kit ):编写Java程序的程序员使用的软件
    • JRE(Java Runtime Environment):运行Java程序的用户使用的软件
    • Server JRE (Java SE Runtime Environment):服务端使用的 Java 运行环境SDK(Software
      Development Kit):软件开发工具包,在Java中用于描述1998年~2006年之间的JDK
    • DAO(Data Access Object):数据访问接口,数据访问,顾名思义就是与数据库打交道
    • MVC(Model View Controller):模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用于组织代码用一种业务逻辑和数据显示分离的方法
    别废话,拿你代码给我看。
  • 相关阅读:
    mysql设置不区分大小写
    java.lang.StackOverflowError: null
    与或非
    mysql自动备份
    Cause: com.microsoft.sqlserver.jdbc.SQLServerException: 不支持“variant”数据类型。
    MySQL主从复制 + Mycat实现读写分离
    Swing做的非阻塞式仿飞秋聊天程序
    Hudson + SVN + Maven 持续集成实现自动化编译、打包、部署(over SSH 和 Deploy war/ear to a container 两种部署方式)
    CMake安装(源码方式)
    多线程使用实例
  • 原文地址:https://www.cnblogs.com/lvxueyang/p/13707562.html
Copyright © 2011-2022 走看看