java基础要学到什么程度(java零基础自学容易吗),本文通过数据整理汇集了java基础要学到什么程度(java零基础自学容易吗)相关信息,下面一起看看。

  身边总有很多人心存疑虑。如何开始java自学?我不擅长英语和数学。零基础能学好java吗?

  一、Java的特点1、面向对象

  尽管受到其前辈的影响,Java并没有被设计成与其他语言兼容。这使得Java开发团队可以自由地从头开始。因此,Java语言可以更直接、更容易、更实用地处理对象。Java的对象模型简单,易于扩展。对于简单的数据类型,如整数,它保持高性能,但它不是一个对象。2.解释性和高性能

  字节可以在任何提供Java虚拟机(JVM)的系统上解释和执行。以前很多试图解决跨平台问题的解决方案,性能要求都很高。其他解释执行的语言系统,如BASIC、Tcl、PERL等,都有不可克服的性能缺陷。但是Java可以在很低级的CPU上流畅运行。如前所述,Java确实是一种解释性语言,Java的字节码是经过精心设计的,所以使用JIT编译技术很容易直接将字节码转换成高性能的原生代码。Java运行时系统在提供这一特性的同时仍然具有平台独立性,所以“高效跨平台”对于Java来说不再矛盾。3.动态的

   Java程序有多种运行时类型信息,用于检查和解决运行时的对象访问问题。这使得以安全有效的方式动态连接代码成为可能,对于小应用环境的健壮性也非常重要,因为在运行时系统中,字节码中的小程序是可以动态更新的。二、面向对象程序设计2.1摘要

  面向对象编程的一个基本要素是抽象。人们通过抽象来处理复杂性。比如,人们不会把汽车看成是由成千上万个独立部件组成的一套装置,而是把它看成是一个有自己独特行为的物体。这种抽象使人们很容易开车去杂货店,而不会被组成汽车的复杂零件所淹没。传统的面向过程程序的数据可以通过抽象用几个组成对象来表示,程序中的过程步骤可以看作是收集这些对象之间的消息。这样,每个对象都有自己独特的行为特征。您可以将这些对象视为具体的实体,并让它们对告诉它们做什么的消息做出反应。这是面向对象编程的精髓。面向对象的概念是Java的核心。2.2面向对象编程的三个原则

  所有面向对象的编程语言都提供了帮助您实现面向对象模型的机制。这些机制是封装、继承和多态。现在我们来看看他们的概念。密封和包装

  封装是一种编程机制,它将代码及其处理的数据绑定在一起。这种机制确保程序和数据不受外部干扰和误用。理解封装的一种方法是把它想象成一个黑盒,它可以防止外部定义的代码随意访问内部代码和数据。通过适当定义的接口,对黑盒中的代码和数据的访问受到严格控制。Java封装的基本单位是类。虽然类将在后面的章节中详细描述。还是有必要对其进行简单的探讨。类是逻辑结构,而对象是真实的物理实体。如果你熟悉C/C,可以这样理解:Java程序员调用的方法就是C/C程序员调用的函数。在完全用Java编写的程序中,方法定义了如何使用成员变量。这意味着类的行为和接口是由方法定义的,这些方法对它的实例数据进行操作。继承

  继承是一个对象获得另一个对象的属性的过程。继承很重要,因为它支持层次分类的概念。有了继承,对象只需要定义使它在类中唯一的属性,因为它可以从它的父类继承所有的公共属性。继承和封装相互作用。如果一个给定的类封装了一些属性,那么它的任何子类都将具有相同的属性,并且子类自己的唯一属性将被添加。这是一个关键的概念,面向对象程序的复杂度是线性增长的,而不是几何增长的。新的子类继承了其所有祖先的所有属性。它不会与系统中的大多数其他代码发生意外的交互。多态性

  多态性是一种特性,它允许同一种类的多个动作使用一个接口。所使用的具体动作与应用情况有关。我们以一个LIFO栈为例来说明。假设你有一个程序需要3种不同类型的栈。一个堆栈用于整数值,一个用于浮点值,一个用于字符。虽然存储在堆栈中的数据类型不同,但实现每个堆栈的算法是相同的。如果你使用非面向对象的语言,你必须创建三个不同的堆栈程序,每个程序都有一个名字。但是,如果您使用Java,由于它的多态性,您可以创建一个共享相同名称的公共堆栈程序集。多态性的概念通常被描述为“一个接口,多个方法”。这意味着可以为一组相关的动作设计一个公共接口。多态允许同一个类的多个动作使用同一个接口,从而降低了程序的复杂性。编译器的任务是选择要应用于每种情况的特定动作(即方法),而程序员不需要手动选择。你只需要记住并使用通用接口。3.hashmap hashtableHashMap是一个哈希表,它存储的内容是键值映射。HashMap继承自AbstractMap,实现了Map、Cloneable、java.io.Serializable的接口HashMap的实现不是同步的,这意味着它不是线程安全的。它的键和值可以为空。此外,HashMap中的映射是无序的。有两个参数会影响HashMap实例的性能:“初始容量”和“加载因子”。容量是哈希表中桶的数量,初始容量只是哈希表创建时的容量。负载因子是一种衡量哈希表在容量自动增加之前可以有多满的指标。当哈希表中条目的数量超过加载因子和当前容量的乘积时,哈希表应该被重新哈希(即重建内部数据结构),使得哈希表将具有大约两倍的桶数量。四。jvm内存模型1。程序计数器

  每个线程必须有一个独立的程序计数器来记录下一条要运行的指令。线程的私有内存区域。如果执行java方法,计数器记录正在执行的JAVA字节码地址,如果执行本机方法,计数器为空。2.虚拟机堆栈

  对于线程是私有的,并且与线程同时创建。管理JAVA方法执行的内存模型。本地方法区的作用类似于虚拟机栈,但它不是管理JAVA方法,而是本地方法区。

   Shared,用于存储虚拟机加载的类的元数据信息:如常量、静态变量、即时编译器编译的代码等。也称为永久世代。4.JAVA队

  线程化,存储所有对象实例和数组。垃圾回收的主要领域。它可以分为新的一代和旧的时代。五、运行时类型信息的概念(RTTI反射)——RTTI:运行时类型信息使你能够在程序运行时发现和使用类型信息。用法:Java如何让我们在运行时识别对象和类的信息,主要有两种方式(还有一种辅助的第三种方式,下面介绍):一种是“传统的”RTTI,假设我们在编译时已经知道所有的类型,比如Shape s=(Shape)S1;另一种是“反射”机制,运行我们在运行时发现并使用的类的信息,即使用Class.forName实际上还有第三种形式,即关键字instanceof,返回一个bool值。它保留了类型的概念,它指的是“你是这个阶级吗?还是这个类的派生类?”。如果将实际的类对象与==或equals进行比较,就不会考虑继承——要么是这种精确类型,要么不是。操作原理

  为了理解RTTI在Java中是如何工作的,我们必须首先知道类型信息在运行时是如何表示的。这项工作由一个叫做类对象的特殊对象来完成,类对象包含与类相关的信息。发送Java类对象执行其RTTI,由类加载器子系统实现。每当你想在运行时使用类型信息,你必须首先得到适当的类对象的引用反射和RTTI之间的区别。

   RTTI和反射的真正区别在于,对于RTTI,编译器打开并检查。编译时的类文件(即对象的所有方法都可以被普通方法调用);对于反射机制。类文件在编译时不可用,因此。类文件在运行时打开并检查。不及物动词即时编译器技术JIT Java虚拟机中有很多额外的技术可以提高速度,尤其是与加载器操作相关的技术,称为“即时”(JIT)编译器。这种技术可以将程序的全部或部分翻译成本地机器码(原本是JVM的工作),因此可以提高程序的运行速度。当需要加载一个类时,编译器将首先找到它的。类文件,然后将该类的字节码加载到内存中。此时,有两种选择:一种是让即时编译器编译所有代码。另一种方法叫做惰性求值,意思是即时编译器只在必要的时候编译代码,这样永远不会执行的代码可能根本不会被JIT编译。七、最终关键词对最终关键词的误解

   final修改基本数据类型时,意味着数值是常数(即编译时常数;如果是用static final修改,强调只有一个副本)。但是当final应用于对象引用而不是基本类型时,它的含义会有点混乱,因为当它用于对象引用时,final使引用成为常量,引用一旦初始化指向一个对象,就不能指向另一个对象。但是,对象本身是可以修改的。Java并没有提供让任何对象保持不变的方法(但是你可以自己编写类来达到让对象保持不变的效果)。这个限制也适用于数组,数组也是对象。以上是我们学习Java时需要掌握的基本点和一些重点难点。了解它们对我们学习java非常重要。以上是Java的基础知识点。只要我们愿意攀登,世上无难事。

  更多java基础要学到什么程度(java零基础自学容易吗)相关信息请关注本站,本文仅仅做为展示!详情价格咨询客服!