Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
TM
Uploaded by
Taku Miyakawa
2,318 views
Java オブジェクトの内部構造
Internal structures of Java objects (oops)
Technology
◦
Read more
1
Save
Share
Embed
Embed presentation
Download
Download to read offline
1
/ 8
2
/ 8
3
/ 8
4
/ 8
5
/ 8
6
/ 8
7
/ 8
8
/ 8
More Related Content
PPTX
C# 8
by
m ishizaki
PDF
C++コンパイラ GCCとClangからのメッセージをお読みください
by
digitalghost
PPTX
.NET Core 3.0 で使える C# 8
by
m ishizaki
PDF
20120422i phonedeveloperworkshoppublished
by
Yoichiro Sakurai
PPTX
大人のお型付け
by
Nobuhisa Koizumi
PDF
C++入門?
by
tsudaa
PDF
競技プログラミングにおけるコードの書き方とその利便性
by
Hibiki Yamashiro
PPTX
競技プログラミングのためのC++入門
by
natrium11321
C# 8
by
m ishizaki
C++コンパイラ GCCとClangからのメッセージをお読みください
by
digitalghost
.NET Core 3.0 で使える C# 8
by
m ishizaki
20120422i phonedeveloperworkshoppublished
by
Yoichiro Sakurai
大人のお型付け
by
Nobuhisa Koizumi
C++入門?
by
tsudaa
競技プログラミングにおけるコードの書き方とその利便性
by
Hibiki Yamashiro
競技プログラミングのためのC++入門
by
natrium11321
What's hot
PPTX
ナウなヤングにバカうけのイカしたタグ付き共用体
by
digitalghost
PDF
Processing
by
Akifumi Nambu
PDF
C++ ポインタ ブートキャンプ
by
Kohsuke Yuasa
PPTX
HDCLT
by
Daigaku Ando
PDF
Define and expansion of cpp macro
by
digitalghost
PDF
君はまだ,本当のプリプロセスを知らない
by
digitalghost
PDF
Boost.勉強会#19東京 Effective Modern C++とC++ Core Guidelines
by
Shintarou Okada
PDF
任意粒度機能モデルコードクローン検出手法のリファクタリング理解への適用の試み
by
Kamiya Toshihiro
PDF
実行トレース間のデータの差異に基づくデータフロー解析手法の提案
by
Kamiya Toshihiro
PDF
ROS JAPAN Users Group Meetup 01
by
Daiki Maekawa
PDF
Linq To Fun
by
deflis
PDF
templateとautoの型推論
by
MITSUNARI Shigeo
PDF
JavaScript 勉強会 ― 変数・演算子・文
by
Appresso Engineering Team
PDF
TypeScript & 関数型講座 第2回 TypeScript という言語
by
gypsygypsy
PDF
Cookpad Summer Intern 2015 - Programming Paradigm
by
Minero Aoki
PPTX
C# 9 のおすすめ新機能
by
m ishizaki
PDF
Lt8 JavaScriptで配列をコピーする
by
Shingo Inoue
PDF
Rubyの御先祖CLUのお話(原本)
by
洋史 東平
PDF
Effective Modern C++ 勉強会#1 Item3,4
by
Takashi Hoshino
ナウなヤングにバカうけのイカしたタグ付き共用体
by
digitalghost
Processing
by
Akifumi Nambu
C++ ポインタ ブートキャンプ
by
Kohsuke Yuasa
HDCLT
by
Daigaku Ando
Define and expansion of cpp macro
by
digitalghost
君はまだ,本当のプリプロセスを知らない
by
digitalghost
Boost.勉強会#19東京 Effective Modern C++とC++ Core Guidelines
by
Shintarou Okada
任意粒度機能モデルコードクローン検出手法のリファクタリング理解への適用の試み
by
Kamiya Toshihiro
実行トレース間のデータの差異に基づくデータフロー解析手法の提案
by
Kamiya Toshihiro
ROS JAPAN Users Group Meetup 01
by
Daiki Maekawa
Linq To Fun
by
deflis
templateとautoの型推論
by
MITSUNARI Shigeo
JavaScript 勉強会 ― 変数・演算子・文
by
Appresso Engineering Team
TypeScript & 関数型講座 第2回 TypeScript という言語
by
gypsygypsy
Cookpad Summer Intern 2015 - Programming Paradigm
by
Minero Aoki
C# 9 のおすすめ新機能
by
m ishizaki
Lt8 JavaScriptで配列をコピーする
by
Shingo Inoue
Rubyの御先祖CLUのお話(原本)
by
洋史 東平
Effective Modern C++ 勉強会#1 Item3,4
by
Takashi Hoshino
Viewers also liked
PDF
深層学習フレームワーク Chainer の開発と今後の展開
by
Seiya Tokui
PDF
Quasar: Actor Model and Light Weight Threads on Java
by
Taku Miyakawa
PDF
金勘定のためのBigDecimalそしてMoney and Currency API
by
Taku Miyakawa
PDF
Javaのログ出力: 道具と考え方
by
Taku Miyakawa
PDF
Graph Algorithms Part 1
by
Taku Miyakawa
PDF
Introduction to DEEPstation the GUI Deep learning environment for chainer
by
Ryo Shimizu
PDF
CuPy解説
by
Ryosuke Okuta
PDF
Java SE 9の紹介: モジュール・システムを中心に
by
Taku Miyakawa
深層学習フレームワーク Chainer の開発と今後の展開
by
Seiya Tokui
Quasar: Actor Model and Light Weight Threads on Java
by
Taku Miyakawa
金勘定のためのBigDecimalそしてMoney and Currency API
by
Taku Miyakawa
Javaのログ出力: 道具と考え方
by
Taku Miyakawa
Graph Algorithms Part 1
by
Taku Miyakawa
Introduction to DEEPstation the GUI Deep learning environment for chainer
by
Ryo Shimizu
CuPy解説
by
Ryosuke Okuta
Java SE 9の紹介: モジュール・システムを中心に
by
Taku Miyakawa
Similar to Java オブジェクトの内部構造
PDF
詳解Dexファイルフォーマット
by
Takuya Matsunaga
PDF
Javaセキュアコーディングセミナー東京第1回 講義
by
JPCERT Coordination Center
PDF
boost tour 1.48.0 all
by
Akira Takahashi
PDF
インメモリーで超高速処理を実現する場合のカギ
by
Masaki Yamakawa
PPT
Rpscala2011 0601
by
Hajime Yanagawa
PDF
Boost Tour 1.50.0 All
by
Akira Takahashi
PDF
[豆ナイト]Java small object programming
by
Yuichi Hasegawa
PDF
Boost tour 1_40_0
by
Akira Takahashi
PDF
JavaWorld Day 2009 Scala
by
Tomoharu ASAMI
KEY
関ジャバ JavaOne Tokyo 2012報告会
by
Koichi Sakata
PDF
静かに変わってきたクラスファイルを詳細に調べて楽しむ(JJUG CCC 2024 Fall講演資料)
by
NTT DATA Technology & Innovation
PDF
Alluren of prototype-based OOP
by
azuma satoshi
PDF
Javaにおけるデータシリアライズと圧縮
by
moai kids
PPTX
Xtend の紹介
by
Oda Shinsuke
PDF
メディア・アートII 第3回 openFrameworks基礎 OOoF : オブジェクト指向 oF
by
Atsushi Tadokoro
ODP
Rubyのソースコードを読んでみよう(入門編)
by
baban ba-n
PDF
Haxe
by
Kazuhiro Eguchi
PDF
Var handles jjug_ccc_spring_2018
by
David Buck
PDF
【Unity道場スペシャル 2018京都】プロなら当然!プログラミング技能解説
by
Unity Technologies Japan K.K.
PPT
JVM-Reading-ParalleGC
by
Minoru Nakamura
詳解Dexファイルフォーマット
by
Takuya Matsunaga
Javaセキュアコーディングセミナー東京第1回 講義
by
JPCERT Coordination Center
boost tour 1.48.0 all
by
Akira Takahashi
インメモリーで超高速処理を実現する場合のカギ
by
Masaki Yamakawa
Rpscala2011 0601
by
Hajime Yanagawa
Boost Tour 1.50.0 All
by
Akira Takahashi
[豆ナイト]Java small object programming
by
Yuichi Hasegawa
Boost tour 1_40_0
by
Akira Takahashi
JavaWorld Day 2009 Scala
by
Tomoharu ASAMI
関ジャバ JavaOne Tokyo 2012報告会
by
Koichi Sakata
静かに変わってきたクラスファイルを詳細に調べて楽しむ(JJUG CCC 2024 Fall講演資料)
by
NTT DATA Technology & Innovation
Alluren of prototype-based OOP
by
azuma satoshi
Javaにおけるデータシリアライズと圧縮
by
moai kids
Xtend の紹介
by
Oda Shinsuke
メディア・アートII 第3回 openFrameworks基礎 OOoF : オブジェクト指向 oF
by
Atsushi Tadokoro
Rubyのソースコードを読んでみよう(入門編)
by
baban ba-n
Haxe
by
Kazuhiro Eguchi
Var handles jjug_ccc_spring_2018
by
David Buck
【Unity道場スペシャル 2018京都】プロなら当然!プログラミング技能解説
by
Unity Technologies Japan K.K.
JVM-Reading-ParalleGC
by
Minoru Nakamura
More from Taku Miyakawa
PDF
Matrix Multiplication in Strassen Algorithm
by
Taku Miyakawa
PDF
擬似乱数生成器の評価
by
Taku Miyakawa
PDF
コルーチンの実装について
by
Taku Miyakawa
PDF
言語設計者が意味論を書くときに考えていたこと
by
Taku Miyakawa
PDF
Kink の宣伝
by
Taku Miyakawa
PDF
ラムダと invokedynamic の蜜月
by
Taku Miyakawa
PDF
Java Quine Golf
by
Taku Miyakawa
PDF
Summary of "Hacking", 0x351-0x354
by
Taku Miyakawa
PDF
Processing LTSV by Apache Pig
by
Taku Miyakawa
PDF
Kink: プロトタイプベースの俺々 JVM 言語
by
Taku Miyakawa
PDF
Kink: invokedynamic on a prototype-based language
by
Taku Miyakawa
PDF
Java 7 invokedynamic の概要
by
Taku Miyakawa
PDF
Hadoop jobbuilder
by
Taku Miyakawa
PDF
Kink: developing a programming language on the JVM
by
Taku Miyakawa
Matrix Multiplication in Strassen Algorithm
by
Taku Miyakawa
擬似乱数生成器の評価
by
Taku Miyakawa
コルーチンの実装について
by
Taku Miyakawa
言語設計者が意味論を書くときに考えていたこと
by
Taku Miyakawa
Kink の宣伝
by
Taku Miyakawa
ラムダと invokedynamic の蜜月
by
Taku Miyakawa
Java Quine Golf
by
Taku Miyakawa
Summary of "Hacking", 0x351-0x354
by
Taku Miyakawa
Processing LTSV by Apache Pig
by
Taku Miyakawa
Kink: プロトタイプベースの俺々 JVM 言語
by
Taku Miyakawa
Kink: invokedynamic on a prototype-based language
by
Taku Miyakawa
Java 7 invokedynamic の概要
by
Taku Miyakawa
Hadoop jobbuilder
by
Taku Miyakawa
Kink: developing a programming language on the JVM
by
Taku Miyakawa
Java オブジェクトの内部構造
1.
Java オブジェクトの内部構造
2011-08-20 宮川 拓 (@miyakawa_taku)
2.
自己紹介
名前 宮川 拓 Twitter @miyakawa_taku 職業 SI屋 仕事 Hadooper Java 歴 4年 JVM 上で動くオレオレ言語を作っています http://code.google.com/p/kink-lang/
3.
問題設定 • Java オブジェクトが
JVM 上でどの様な実体 として表現されているのかが知りたい 1. Java オブジェクトを表現する構造体 2. Java オブジェクトに対する参照の持ち方 (フィー ルド、一時変数、配列の要素) 3. Java オブジェクトの作成・破棄の動作
4.
今日読む主なソースコード • interpreter/bytecodeInterpreter.cpp
– オブジェクトがどのような構造体として扱われてい るかを見る • oop/oop.hpp • oop/instanceOop.hpp – オブジェクトのメモリイメージを見る • oop/oop.inline.hpp – フィールドへのアクセス方法を見る
5.
oop 実装クラスの階層 oop
ヒープ上に確保される構造体の総称 instanceOop ふつうのクラスのインスタンス methodOop メソッド constMethodOop ? methodDataOop メソッドのプロファイリングデータ arrayOop 配列のインスタンス objArrayOop 参照型の配列のインスタンス typeArrayOop プリミティブ型の配列のインスタンス constantPoolOop メソッドのコンスタントプール constantPoolCacheOop メソッド実行時情報 (フィールドオフセット等) symbolOop メソッド名、クラス名等の intern 表現 klassOop クラス markOop 他の oop のメタ情報の一部。GC対象外 compiledICHolderOop ?
6.
oop のメモリイメージ
oopDesc _mark: markOop /* GCのためのメタ情報 */ _klass: klassOop /* oop の型 */ xxxOopDesc oop 実装クラスごとのメンバ変数 後続領域 oop 実装クラスごとの追加情報 /* こんなイメージ */ typedef struct { int x; int y; char buf[0]; } bitmap; bitmap *b = malloc(sizeof(bitmap) + x * y); b->x = x; b->y = y; memcpy(b->buf, buf, x * y);
7.
instanceOop のメモリイメージ
oopDesc _mark: markOop /* GCのためのメタ情報 */ _klass: klassOop /* oop の型 */ instanceOopDesc /* 特有のメンバ変数は無し */ 後続領域 フィールド群 jint num = 42 oop title ⇒ “VOXXX!”: java.lang.String oop info = null フィールドの種類と数は _klass によって決まる
8.
触れなかった || 分からなかった所 •
narrowOop と UseCompressedOops – Compressed oops 機能関連 • constMethodOop って何? – これはあまり深くなさそう • compiledICHolderOop って何? – JIT コンパイルに絡んでいそう • JIT コンパイルによるメソッド実体の差し変え はどのクラスの担当?
Download