[导读]Java已经成为一个庞大而复杂的技术平台, 关于开发人员而言, 要想更好的掌握Java技术,

Java已经成为一个庞大而复杂的技术平台, 关于开发人员而言, 对核心概念和思想的掌握可以帮助我们举一反三、举一反三,

Java虚拟机的主要任务是装在class文件并且执行其中的字节码。 Java虚拟机包含一个类装载器, 它可以从顺序和API中装载class文件。 字节码由执行引擎来执行。

不同的Java虚拟机中, 执行引擎可能完成得非常不同。 最复杂的执行引擎就是一次性解释字节码。 另一种执行引擎更快, 但是也更消耗内存, 在这种状况下, 第一次被执行的字节码会被编译成本地机器代码。 编译出的本地机器代码会被缓存, 当方法当前被调用的时候可以重用。 在这种方法里, 但是会监视运行中顺序的活动, 其他的代码由于运用得不是很频繁, 继续保留为字节码-由虚拟机继续解释它们。 而只需求编译10%~20%的对性能有影响的代码。 Java中有两种方法:Java方法和本中央法。 存储在class文件中的。 本中央法是由其他语言(比方c, 编译成何处置器相关的机器代码。 本中央法保存在静态链接库中, 运行中Java顺序调用本中央法时, 并调用这个方法。 本中央法是联系Java顺序和底层主机操作系统的衔接方法。

通过本中央法, Java顺序可以直接拜访底层操作系统的资源。 一个本中央法接口(JavaNativeInterface, JNI)-使得本中央法可以在特定主机系统的任何一个Java平台完成上运行。 那么可以写一个平台相关的Java顺序来调用本中央法。 假如希望保证顺序的平台有关性, 那么只能通过JavaAPI来拜访底层系统资源。 启动类装载器(这是系统中独一的)是Java虚拟机完成的一局部。 启动类装载器通常运用某种默许方式从本地磁盘中装载类, 包括JavaAPI类(启动类装载器也被称为原始类装载器、系统类装载器或许默许类装载器)。

Java运用顺序能够在运行时安装用户定义的类装载器, 这种类装载器能够运用自定义的方式来装载类。 例如, 从网络下载class文件。 尽管启动类装载器是虚拟机完成的实质局部, 能够被虚拟机装载, 还能够像其它对象一样实例化。 所以不必再编译的时候就知道运行中的Java运用顺序中最终会参与的所有的类。 用户定义的类装载器使得在运行扩展Java运用顺序成为可能。 当它运行时, 能够决定是运用一个或是更多的用户定义的类装载器来装载。 所以用任何在Java代码中可以表述的风格来进行类装载。 这些类可以通过网络下载, 可以从某些数据库中获取?踔量梢跃蔡伞?

每一个类被装载的时候, Java虚拟机都监视这个类, 看到它到底是被启动类装载器还是被用户定义类装载器装载。 当被装载的类引用了另外一个类时, 虚拟机就会运用装载第一个类的类装载器装载引用的类。 例如, 它就会运用这个类装载器装载Volcano类运用的所有类。

JAVA由于Java虚拟机采取这种方式进行类的装载,

Java运用顺序可以创建多少个(或多少种)被不同的类装载器装载的类存放在不同的命名空间中, 除非运用顺序显示地允许这么做。 当编写一个Java运用顺序的时候, 通过这种方法, 就能够运用Java类装载器的体系结构来控制任何不同源文件中装载的代码之间的相互影响,

Web阅读器是一个静态扩展的例子, 这个用户定义的类装载器通常被称为JavaApplet类装载器, 它知道如何向HTTP效劳器央求class文件。 JavaApplet可以作为静态扩展的例子, 由于Java运用顺序并不知道它什么时候会末尾从网络下载阅读器央求的class文件。

Web阅读器启动的Java运用顺序通常为每个提供class文件的网络地址分别创建不同的用户定义类装载器, 由于不同来源的Javaapplet文件放置在不同的命名空间中, 恶意的Javaapplet代码就不会直接拜访从别的中央下载的class文件。

Javaclass文件主要在平台有关性和网络移动性方面使Java更适宜网络。 它在平台有关性方面的任务是:为Java顺序提供独立于底层主机平台的二进制形式的效劳。 这种途径途径打破了C或许C++等语言所遵循的传统, 运用这些传统语言写的顺序通常首先被编译, 然后被衔接成独自的、专门支持特定硬件平台和操作系统的二进制文件。 通常状况下, 一个平台上的二进制可执行文件不能在其他平台上任务。

当编译和衔接一个C++顺序时, 所取得的可执行二进制文件只能在指定的硬件平台和操作系统上运行, 其次, 由于Java顺序是静态衔接和静态扩展的, JavaAPI是运行库的集合, 运行Java顺序时, 虚拟机装载顺序的class文件所运用的JavaAPIclass文件。

在一个平台能偶支持Java顺序以前, 为拜访主机上的本地资源, JavaAPI调用了本中央法。 由于JavaAPIclass文件调用了本中央法, 通过这种方法, JavaAPIclass文件为底层主机提供了具有平台有关性、标准接口的Java顺序。 无论平台外部如何, JavaAPI都会有异样的表现和可预测的行为。 正是由于在每个特定的主机平台上明确地完成了Java虚拟机和JavaAPI, 当JavaAPI的方法进行任何有潜在危险的操作(比方进行本地磁盘写操作)之前, 拜访控制器是一个类, 该类用来执行栈检验,

java中的技术_Java中的四个核心技术思想相关推荐

  1. Java中的四个核心技术思想

    Java中的四个核心技术思想 对Java核心概念和思想的掌握有助于提升我们对整个Java平台的理解力.这里将介绍四个Java中的核心技术思想,包括Java虚拟机.类装载器的体系结构.class文件和A ...

  2. java indexof 子字符串_Java中字符串中子串的查找共有四种方法(indexof())

    Java中字符串中子串的查找共有四种方法(indexof()) Java中字符串中子串的查找共有四种方法,如下: 1.int indexOf(String str) :返回第一次出现的指定子字符串在此 ...

  3. java -jar 工作原理_Java 中的 jar ,天天见,可是你知道它的运行机制吗?

    本文由读者 muggle 投稿,muggle 是一位极具极客精神的 90 后单身老实猿,他的博客地址是:http://muggle.javaboy.org/ 今天介绍两个大家每天都在用但是却很少去了解 ...

  4. java是什么意思_java中是什么意思?

    慕田峪7331174 Java是一种可以撰写跨平台应用程序的面向对象的程序设计语言.Java技术具有卓越的通用性.高效性.平台移植性和安全性,广泛应用于PC.数据中心.游戏控制台.科学超级计算机.移动 ...

  5. java父类转子类_java中什么是继承,和继承的接口的关系?

    继承的概念 继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类. 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父 ...

  6. java 中的流_Java中的流(IO

    Java中的流(IO流. java.io包中定义了多个流类型(类或抽象类)来实现 输入 / 输出功能,可以从不同的角度对其进行分类: 按单位可分为: 字节流         (一个字节一个字节的读取) ...

  7. java读取文件 路径_Java中的获取文件的物理绝对路径,和读取文件

    获取文件的绝对路径,读取该文件 一.文件目录打印图 下面的文件目录图,是项目中文件的位置信息:下面的例子是按照这个图来演示的. . |-- java | |-- ibard | | |-- demo1 ...

  8. java多线程 线程安全_Java中的线程安全

    java多线程 线程安全 Thread Safety in Java is a very important topic. Java provides multi-threaded environme ...

  9. java 获取当前年_java中的反射(三) - kelexin

    目录一.反射1.class类2.访问字段3.调用方法4.调用构造方法5.获取继承对象6.动态代理二.sping中的反射 本篇转自:本篇内容spring中的反射 java中的反射(一): java中的反 ...

最新文章

  1. C#创建和调用DLL
  2. 德布鲁因图和OLC组装基因组
  3. Meta首个元宇宙平台Horizon被吐槽,用户只配有半截身子!
  4. Flex学习笔记(零)
  5. hdu oj1094题解
  6. Oracle中Null与空字符串' '的区别
  7. 程序员到底该怎么给女朋友挑礼物
  8. 深入浅出单实例Singleton设计模式
  9. 数楼梯(洛谷-P1255)
  10. 如何 调系统相机_神仙理光相机,各种静物原片直出也太美了吧!!!
  11. 前 k 条最短路径算法
  12. 面向对象15:单例设计模式、main方法的使用
  13. 直观讲解--RPC调用和HTTP调用的区别
  14. fences卸载_win10系统卸载fences的操作方法
  15. 计算机出现函数不正确的是,小编教你快速修复无法访问函数不正确的方法
  16. 微信公众号运营推广方案分享
  17. TP-LINK路由器如何设置DHCP
  18. 什么是变量?变量的命名规则?变量的分类?(问号三连)
  19. 跟王佩丰学习VBA-纯代码(1-8讲)
  20. oppok3如何刷机_[oppok3刷机教程]oppok3怎么刷机

热门文章

  1. hibernate 之HQL查询实例
  2. 使用Nginx做图片服务器时候,配置之后图片访问一直是 404问题解决
  3. webpack教程——css的加载
  4. pycharm 初级使用文档
  5. wdatepicker时间段控制
  6. 计算机设计思想 —— 解耦(分离)与内聚
  7. IDEA创建Maven Web 项目
  8. C#(64位系统) 解决MySQLDriverCS未能加载文件或程序集,或它的某一个依赖项
  9. 怎样追求心仪的女孩子
  10. [RMAN]控制文件的恢复