栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Java本机方法源代码

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java本机方法源代码

您可以在此处下载OpenJdk源代码。

在该文件夹中,

jdksrcshare
您可以获取源代码。

jdksrcsharenative
是使用c和c ++编写的natice方法。

  1. jdksrclinux
    Linux的源代码。
  2. jdksrcwindows
    Windows的源。
  3. jdksrcsolaris
    索拉里斯的来源。
  4. jdsrcshare
    共同来源。

例如:System.arrayCopy();

int文件

hotspotsrcsharevmoopsobjArrayKlass.cpp
行168:

void objArrayKlass::copy_array(arrayOop s, int src_pos, arrayOop d,     int dst_pos, int length, TRAPS) {assert(s->is_objArray(), "must be obj array");if (!d->is_objArray()) {  THROW(vmSymbols::java_lang_ArrayStoreException());}// Check is all offsets and lengths are non negativeif (src_pos < 0 || dst_pos < 0 || length < 0) {  THROW(vmSymbols::java_lang_ArrayIndexOutOfBoundsException());}// Check if the ranges are validif  ( (((unsigned int) length + (unsigned int) src_pos) > (unsigned int) s->length())   || (((unsigned int) length + (unsigned int) dst_pos) > (unsigned int) d->length()) )   {  THROW(vmSymbols::java_lang_ArrayIndexOutOfBoundsException());}// Special case. Boundary cases must be checked first// This allows the following call: copy_array(s, s.length(), d.length(), 0).// This is correct, since the position is supposed to be an 'in between point', i.e., s.length(),// points to the right of the last element.if (length==0) {  return;}if (UseCompressedOops) {  narrowOop* const src = objArrayOop(s)->obj_at_addr<narrowOop>(src_pos);  narrowOop* const dst = objArrayOop(d)->obj_at_addr<narrowOop>(dst_pos);  do_copy<narrowOop>(s, src, d, dst, length, CHECK);} else {  oop* const src = objArrayOop(s)->obj_at_addr<oop>(src_pos);  oop* const dst = objArrayOop(d)->obj_at_addr<oop>(dst_pos);  do_copy<oop> (s, src, d, dst, length, CHECK);  }}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/449431.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号