Google PlayストアでUnionpediaアプリを復元するために作業中です
🌟ナビゲーションを改善するためにデザインを簡素化しました!
Instagram Facebook X LinkedIn

Java Native InterfaceとJavaの性能

ショートカット: 違い類似点ジャカード類似性係数参考文献

Java Native InterfaceとJavaの性能の違い

Java Native Interface vs. Javaの性能

Java Native Interface (JNI) は、Javaプラットフォームにおいて、Javaで記述されたプログラムと、他のプログラミング言語(たとえばCやC++など)で書かれた、実際のCPU上で動作するコード(ネイティブコード)とを連携するためのインタフェース仕様である。Java言語からネイティブコードを利用するためのABIと、逆にネイティブコードからJavaバイトコードを動作させるためにバーチャルマシン (VM) を利用するためのAPIの2つから成る。 JNIを使うことで、Java言語のVMで動作させるには処理速度の面で不利とされる計算量の多いプログラムを部分的にネイティブコードに置き換えて高速化したり、標準Javaクラスライブラリからはアクセスできないオペレーティングシステムあるいはハードウェアの機能を利用するプログラムを、あたかも通常のJavaクラスのメソッドのように呼び出したりできるようになる。逆に、Javaクラスライブラリによって実装されている高水準の機能を、C/C++などで書かれた下位層から利用することもできるようになる。JNIはJava言語以外のJava VM上で動作する言語 (AltJava) からも利用可能である。 Javaの性能(ジャバのせいのう)では、Javaプラットフォームの性能について説明する。プログラミング言語としてのJavaに対する批判や、Javaプラットフォームの性能に対する批判は「Javaに対する批判」の記事を参照のこと。この記事ではJavaプラットフォームの性能について批判以外の説明をする。 プログラミング言語Javaは、その「ネットワークから送り込まれるプログラムの安全な実行」や「write once, run anywhere」というスローガンを、業界にありがちなスローガンだけのスローガンではなく可能な限り達成するべく、Javaバイトコードにコンパイルするコンパイラと、Javaバイトコードを解釈実行するインタプリタであるJava仮想マシン (Java VM, JVM)、という構成の実装を、公式の実装として伴って発表された。

Java Native InterfaceとJavaの性能間の類似点

Java Native InterfaceとJavaの性能は(ユニオンペディアに)共通で15ものを持っています: 仮想機械メソッド (計算機科学)アプリケーションプログラミングインタフェースアプリケーションソフトウェアガベージコレクションクラス (コンピュータ)スレッド (コンピュータ)C++C言語JavaJava仮想マシンJavaバイトコードJavaプラットフォームMicrosoft Windows機械語

仮想機械

仮想機械(かそうきかい、仮想マシン、バーチャルマシン、virtual machine、VM)とは、アプリの使用を最適化する方法であり、コンピュータの動作を再現するソフトウェアである。すなわち、エミュレートされた仮想のコンピュータそのものも仮想機械という。仮想機械によって、1つのコンピュータ上で複数のコンピュータやオペレーティングシステム (OS) を動作させたり、別のアーキテクチャ用のソフトウェアを動作させることができ、アプリケーションが互いに干渉するのを防げる。 仮想機械によるアプローチは、企業や個人がレガシーアプリケーションに対処し、1台のコンピュータで処理できるさまざまな種類のアプリケーションを最大化することで、ハードウェアの使用を最適化するための一般的な方法である。

Java Native Interfaceと仮想機械 · Javaの性能と仮想機械 · 続きを見る »

メソッド (計算機科学)

メソッド あるいは メンバー関数 (-かんすう) とはオブジェクト指向プログラミング言語において、あるクラスまたはオブジェクトに所属するサブルーチンを指す。

Java Native Interfaceとメソッド (計算機科学) · Javaの性能とメソッド (計算機科学) · 続きを見る »

アプリケーションプログラミングインタフェース

アプリケーションプログラミングインタフェース(、)「インターフェイス」「インターフェース」と表記されることもあるが、本記事では「インタフェース」で統一する。とは、広義ではソフトウェアコンポーネント同士が互いに情報をやりとりするのに使用するインタフェースの仕様である。 APIには、サブルーチン、データ構造、オブジェクトクラス、変数などの仕様が含まれる。APIには様々な形態があり、POSIXのような国際標準規格、マイクロソフトのWindows APIのようなベンダーによる文書、プログラミング言語の標準ライブラリ(例えば、C++のStandard Template Libraryやなど)がある。 商業的に使われる狭義では、各種システムやサービス(ハードウェア、OS、ミドルウェアおよびWebサービス等)を利用するアプリケーションソフトウェア (Application) を開発・プログラミング (Programming) するためのインタフェース (Interface) である。こちらの意味では、システムやサービスから直接提供されないもの、例えば言語の標準ライブラリは含まない。

Java Native Interfaceとアプリケーションプログラミングインタフェース · Javaの性能とアプリケーションプログラミングインタフェース · 続きを見る »

アプリケーションソフトウェア

アプリケーションソフトウェア(application software)あるいはアプリケーションソフト(最近は英語では極端に略すとapp(s)アップ)は、ある特定の機能や目的のために開発・使用されるソフトウェアIT用語辞典 e-words、「」の説明 - 2023年7月12日閲覧。で、コンピュータの操作自体のためのものではないもの。たとえば、ワープロソフト、表計算ソフト、イラスト作成(お絵かき)用ソフトウェア、写真加工用ソフトウェアなど。アプリケーションプログラム(応用プログラム)ともいい、コンピュータ・プログラムの一種である。 アプリケーションと(2番目の語を省略して)も呼ばれ。「アプリケーション」は「応用」という意味なので日本語では「応用ソフト」とも呼ぶ(が、最近は「応用ソフト」と呼ばれることは減った)。日本語ではアプリとも略される。「アプリ」という略称の用例は1980年代から存在する。

Java Native Interfaceとアプリケーションソフトウェア · Javaの性能とアプリケーションソフトウェア · 続きを見る »

ガベージコレクション

ガベージコレクション(garbage collection、GC)とは、コンピュータプログラムが動的に確保したメモリ領域のうち、不要になった領域を自動的に解放する機能である。1959年ごろ、LISPにおける問題を解決するためジョン・マッカーシーによって発明された。 メモリの断片化を解消する機能はコンパクション(memory compaction)と呼ばれ、実現方法によってはガベージコレクションと共にコンパクションも行う仕組みになっている。そのためコンパクションを含めてガベージコレクションと呼ぶ場合もあるが、厳密には区別される。 また、ガベージコレクションを行う主体はガベージコレクタ(garbage collector)と呼ばれる。ガベージコレクタはタスクやスレッドとして実装される場合が多い。

Java Native Interfaceとガベージコレクション · Javaの性能とガベージコレクション · 続きを見る »

クラス (コンピュータ)

オブジェクト指向プログラミングにおけるクラス(class)英語の class は、本来「分類」「種類」といった意味を持っている。は、オブジェクトを生成するための設計図あるいはひな形に相当するものである。抽象データ型の一つ。クラスから生成したオブジェクトの実体のことをインスタンスという。 クラスには、クラス自身またはクラスのインスタンスが保持するデータと、データに関連したオブジェクトの振る舞いを記述できる。プログラミング言語によっては、それぞれにを指定できる。統一モデリング言語 (UML) のクラス図では、データのことを「属性」、振る舞いのことを「操作」と呼ぶ。Javaなどでは、データのことを「フィールド」、振る舞いのことを「メソッド」と呼ぶ。

Java Native Interfaceとクラス (コンピュータ) · Javaの性能とクラス (コンピュータ) · 続きを見る »

スレッド (コンピュータ)

スレッド(thread)とは、コンピュータプログラムにおいて特定の処理を行うための一貫性のある命令の流れのことであり、プロセッサ利用の最小単位。プロセスは少なくとも1つ以上のスレッドを含む。一般的に各プロセスには独立した仮想アドレス空間が割り当てられるが、プロセス内のスレッド群はアドレス空間を共有する。そのためプログラムを実行するときのコンテキスト情報が最小で済み、同じプロセス内でスレッドを切り替える際はアドレス空間の切り替えが不要となるので、切り替えが高速になる。スレッドは、thread of execution(実行の脈絡)という言葉を省略したものである。複数のスレッドを生成して個々に処理を割り当てて実行させることで、並行処理による応答性の向上などを実現でき、さらにマルチコアプロセッサを複数のスレッドによって活用することで、並列処理による実行時間の短縮などを実現できる(これらの手法をマルチスレッドプログラミングと呼ぶ)。

Java Native Interfaceとスレッド (コンピュータ) · Javaの性能とスレッド (コンピュータ) · 続きを見る »

C++

C++(シープラスプラス)は、汎用プログラミング言語のひとつである。派生元であるC言語の機能や特徴を継承しつつ、表現力と効率性の向上のために、手続き型プログラミング・データ抽象・オブジェクト指向プログラミング・ジェネリックプログラミングといった複数のプログラミングパラダイムが組み合わされている。C言語のようにハードウェアを直接扱うような下位層向けの低水準言語としても、複雑なアプリケーションソフトウェアを開発するための上位層向け高水準言語としても使用可能である。アセンブリ言語以外の低水準言語を必要としないこと、使わない機能に時間的・空間的コストを必要としないことが、言語設計の重要な原則となっている。

C++とJava Native Interface · C++とJavaの性能 · 続きを見る »

C言語

C言語(シーげんご、C programming language)は、1972年にAT&Tベル研究所のデニス・リッチーが主体となって開発した汎用プログラミング言語である。英語圏では「C language」または単に「C」と呼ばれることが多い。日本でも文書や文脈によっては同様に「C」と呼ぶことがある。制御構文などに高水準言語の特徴を持ちながら、ハードウェア寄りの記述も可能な低水準言語の特徴も併せ持つ。基幹系システムや、動作環境の資源制約が厳しい、あるいは実行速度性能が要求されるソフトウェアの開発に用いられることが多い。後発のC++やJava、C#など、「C系」と呼ばれる派生言語の始祖でもある。 ANSI、ISO、またJISにより言語仕様が標準規格化されている。

C言語とJava Native Interface · C言語とJavaの性能 · 続きを見る »

Java

Java(ジャバ、ジャヴァ)は、汎用プログラミング言語とソフトウェアプラットフォームの双方を指している総称ブランドである。オラクルおよびその関連会社の登録商標である。1996年にサン・マイクロシステムズによって市場リリースされ、2010年に同社がオラクルに吸収合併された事によりJavaの版権もそちらに移行した。 プログラミング言語Javaは、C++に類似の構文、クラスベースのオブジェクト指向、マルチスレッド、ガベージコレクション、コンポーネントベース、分散コンピューティングといった特徴を持ち、平易性重視のプログラム書式による堅牢性と、仮想マシン上での実行によるセキュリティ性およびプラットフォーム非依存性が理念とされている。

JavaとJava Native Interface · JavaとJavaの性能 · 続きを見る »

Java仮想マシン

ネイティブコードに変換されて実行される。Java APIとJVMの両者でJava実行環境(JRE)を構成する。 Java仮想マシン(ジャバかそうマシン、、Java VM、JVM)は、Javaバイトコードとして定義された命令セットを実行するスタック型の仮想マシン。APIやいくつかのツールとセットでJava実行環境(JRE)としてリリースされている。この環境を移植することで、さまざまな環境でJavaのプログラムを実行することができる。

Java Native InterfaceとJava仮想マシン · Javaの性能とJava仮想マシン · 続きを見る »

Javaバイトコード

Javaバイトコードは、Java仮想マシンが実行する命令形式である。各バイトコードのオペコードは長さが1バイトであるが、引数を持つものもあるため、結果として複数バイトの命令となる。256個のオペコードの全てが使われているのではなく、51個が将来のために予約されている。その他について、Javaプラットフォームの開発元であるサン・マイクロシステムズは、3つのコードを永久に実装しないままにした。

Java Native InterfaceとJavaバイトコード · Javaの性能とJavaバイトコード · 続きを見る »

Javaプラットフォーム

Javaプラットフォーム(ジャバプラットフォーム、英: Java Platform)は、Javaで記述されたプログラムの開発および実行を行うことのできるソフトウェア群の総称である。

Java Native InterfaceとJavaプラットフォーム · Javaの性能とJavaプラットフォーム · 続きを見る »

Microsoft Windows

Microsoft Windows(マイクロソフト ウィンドウズ)は、マイクロソフトが開発・販売するオペレーティングシステム (OS) の製品群である。グラフィカルユーザインタフェース (GUI) を採用している。Windows発売以前では高価なワークステーション(ハイエンドパソコンを上回る性能のデスクトップコンピュータ)でしか実現されていなかったマルチタスクやGUIを中心とした使い勝手の良さを、一般消費者が入手しやすい標準的な規格のパソコンに順次取り込んで行き、一般向けOSのシェアのほとんどを占めるに至り、今や大きな知名度を持つ。

Java Native InterfaceとMicrosoft Windows · Javaの性能とMicrosoft Windows · 続きを見る »

機械語

機械語(きかいご、machine language、machine code 『日本大百科全書』【機械語】 (コトバンクにも転載されている)IT用語辞典 e-words【機械語】、 binary machine languageあるいはbinary machine code)は、コンピュータの中央処理装置(CPU)が直接理解し実行することができる命令からなる言語。マシン語(マシンご)とも。

Java Native Interfaceと機械語 · Javaの性能と機械語 · 続きを見る »

上記のリストは以下の質問に答えます

Java Native InterfaceとJavaの性能の間の比較

Javaの性能が93を有しているJava Native Interfaceは、52の関係を有しています。 彼らは一般的な15で持っているように、ジャカード指数は10.34%です = 15 / (52 + 93)。

参考文献

この記事では、Java Native InterfaceとJavaの性能との関係を示しています。情報が抽出された各記事にアクセスするには、次のURLをご覧ください: