Java语言的作用域有哪些及分类知识

发布时间:2022-06-18 21:02:26

【提要】本篇《Java语言的作用域有哪些及如何分类【1】》特别为需要语言编程学习的朋友收集整理的,仅供参考。内容如下:

Java已经成为一个庞大而复杂的技术平台,对于开发人员而言,要想更好的掌握Java技术,深入理解底层的技术处理细节必不可少。以下是关于Java语言的作用域及分类的内容,欢迎阅读!Java语言的作用域有哪些及如何分类

在程序源码中,声明在不同地方的变量具有不同的作用域,例如:局部变量、全局变量等。在Java语言中,作用域是由花括号“{...}”的位置决定的,它决定了其定义的变量名的可见*与生命周期。

在Java语言中,变量类型主要有三种:成员变量、静态变量和局部变量。

类的成员变量的作用范围与类的实例化对象的作用范围相同,当类被实例化时,成员变量就会在内存中分配空间并初始化,直到这个被实例化对象的生命周期结束时,成员变量的生命周期才结束。

被static修饰的成员变量称为静态变量或全局变量,与成员变量不同的是,静态变量不依赖于特定的实例,而是被所有实例所共享,也就是说,只要一个类被加载,JVM就会给类的静态变量分配存储空间。因此,可以通过类名和变量名来访问静态变量。

局部变量的作用域与可见*为它所在的花括号内。

此外,成员变量也有四种作用域,它们的区别见下表。

(1)public。表明该成员变量或方法对所有类或对象都是可见的,所有类或对象都可以直接访问。

(2)private。表明该成员变量或方法是私有的,只有当前类对其具有访问权限,除此之外的其他类或者对象都没有访问权限。

(3)protected。表明该成员变量或方法对自己及其子类是可见的,即自己和子类具有权限访问。除此之外的其他类或对象都没有访问权限。

(4)default。表明该成员变量或方法只有自己和与其位于同一包内的类可见。若父类与子类位于同一个包内,则子类对父类的default成员变量或方法都有访问权限;若父类与子类位于不同的package(包)内,则没有访问权限。

需要注意的是,这些修饰符只能修饰成员变量,不能用来修饰局部变量。private与protected不能用来修饰类(只有public、abstract或final能用来修饰类)。【相关阅读】Java四大核心技术详解

1Java虚拟机

Java虚拟机的主要任务是装在class文件并且执行其中的字节码。Java虚拟机包含一个类装载器,它可以从程序和API中装载class文件。JavaAPI中只有程序执行时需要的那些类才会被装载。字节码由执行引擎来执行。

不同的Java虚拟机中,执行引擎可能实现得非常不同。在由软件实现的虚拟机中,最简单的执行引擎就是一次*解释字节码。另一种执行引擎更快,但是也更消耗内存,叫做"即时编译器(just-in-timepiler)"。在这种情况下,第一次被执行的字节码会被编译成本地机器代码。编译出的本地机器代码会被缓存,当方法以后被调用的时候可以重用。第三种执行引擎是自适应优化器。在这种方法里,虚拟机开始的时候解释字节码但是会监视运行中程序的活动,并且记录下使用最频繁的代码段。程序运行的时候,虚拟机只把那些活动最频繁的代码编译成本地代码,其他的代码由于使用得不是很频繁,继续保留为字节码-由虚拟机继续解释它们。一个自适应的优化器可以使得Java虚拟机在80%~90%的时间里执行被优化过的本地代码,而只需要编译10%~20%的对*能有影响的代码。

当Java虚拟机是由主机*作系统上的软件实现的时候,Java程序通过调用本地方法(nativemethod)和主机交互。Java中有两种方法:Java方法和本地方法。Java方法是由Java语言编写,编译成字节码文件,存储在class文件中的。本地方法是由其他语言(比如c,c++或汇编语言)编写的,编译成何处理器相关的机器代码。本地方法保存在动态链接库中,格式是各个平台专有的。运行中Java程序调用本地方法时,虚拟机装载包含这个本地方法的动态库,并调用这个方法。本地方法是联系Java程序和底层主机*作系统的连接方法。

通过本地方法,Java程序可以直接访问底层*作系统的资源。一个本地方法接口(JavaNativeInterface,JNI)-使得本地方法可以在特定主机系统的任何一个Java平台实现上运行。

如果希望使用特定主机上的资源,它们又无法从JavaAPI访问,那么可以写一个平台相关的Java程序来调用本地方法。如果希望保证程序的平台无关*,那么只能通过JavaAPI来访问底层系统资源。

2类装载器的体系结构

一个Java应用程序可以使用两种类装载器:"启动(bootstrap)"类装载器和用户定义的类装载器。启动类装载器(这是系统中唯一的)是Java虚拟机实现的一部分。启动类装载器通常使用某种默认方式从本地磁盘中装载类,包括JavaAPI类。

看了Java语言的作用域有哪些及分类知识还看了:
  • 通知的分类有哪些

    通知可分为“批示*通知”、“指示*通知”、“一般*通知”、“会议*通知”、“任免通知”五种。这里仅介绍“一般*通知”、“会议*通知”、“任免通知”三种。一、一般*通知。在上级机关的有关事宜需要使下级机关知道或办理时,如:庆祝某个节日,成立、...

  • Java的变量类型有哪些

    java是一种强类型语言,下面小编来给大家介绍Java的变量类型,希望对大家有帮助!Java变量类型在Java语言中,所有的变量在使用前必须声明。声明变量的基本格式如下:typeidentifier[=value][,identifier[...

  • 轴的特点及分类有哪些

    轴是穿在轴承中间或车轮中间或齿轮中间的圆柱形物件,但也有少部分是方型的。下面是百分网小编给大家整理的轴的分类及特点,希望能帮到大家!常见的轴根据轴的结构形状可分为曲轴、直轴、软轴、实心轴、空心轴、刚*轴、挠*轴(软轴)。直轴又可分为:①转轴...

  • 知识的名言警句有哪些

    知识是符合文明方向的,人类对物质世界以及精神世界探索的结果总和。有关知识的名言警句,欢迎大家一起来借鉴一下!1、重复是学习之母。——出自狄慈根2、知识有重量,但成就有光泽。有人感觉到知识的力量,但更多的人只看到成就的光泽。——出自切斯特菲尔...

  • 有哪些写作的基础知识及技巧呢

    (一)作文基础知识1、审清题意:“五审”(1)审清体裁(记叙文、应用文、说明文)(2)审清题材(人、物、事、景)(3)审清范围(时间、地点、人称、事件、对象具体限制)(4)审清主题(中心思想)(5)审清其他要求(附加要求)2、确定主题:“四...