• ベストアンサー

Stringクラスの変数の格納アドレスを知りたい

いつもお世話になります。 Javaの文字列クラスのStringは参照型ですが、この変数の値が格納されたアドレスを知るためにはどうすればよいのでしょうか。eclipse上で、文字列の変数に対してtoString()を試してみたところ、格納されている文字列が出力されました。 ※自作したクラス、たとえばtest.MyClassだとすれば、toString()を用いれば「test.MyClass@01234」というような表記で出力されますが、このような情報を取得するにはどうすればよいでしょうか。 宜しくお願いします。

  • Java
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • salsberry
  • ベストアンサー率69% (495/711)
回答No.1

「test.MyClass@01234」の@以降の部分は変数の格納アドレスを表していませんし、そもそもStringの格納アドレスを知って何をしたいのでしょうか。 本当にアドレスを知りたいのであれば、一番簡単なのはJNIを使うことだと思います。

kamakuragengorou
質問者

お礼

> 「test.MyClass@01234」の@以降の部分は変数の格納アドレスを表していませんし ハッシュコードでしたね。toString()とhashCode()で取得される値が異なっていたのでどういうことなのかというところで質問しました。@以降は16進数、hashCodeで取得される値は10進数というだけのことでした。

関連するQ&A

  • String str = (String)url

    classファイルでのアプレットで、自分のパスを編集しようと思っています。 自分のパスをgetCodeBase()で得て、文字列として認識させたいのだけど それができていません。 String str; str = getCodeBase().toString; コンパイルエラー シンボル: 変数 toString 位置 : java.net.URL の クラス strBuf = getCodeBase().toString; getCodeBase()はStringでなく、URL型を返すみたいです。 これを文字列のように編集したいからSrting型にしたいんだけど どうすればいいんですか?

    • ベストアンサー
    • Java
  • string型よりVariant型 変数に格納

    VBAで string型よりVariant型の方が、 変数に格納できる文字数は多いですか?

  • String型の変数を使った問題

    すごく簡単なプログラムのはずで、初歩的な質問で申し訳ありませんが、教えていただければと思います。 問題: 以下の場合の処理を行うプログラムを作成せよ。 (1)String型の変数を作成し、苗字を格納する。(値は直接書き込む) (2)String型の変数を作成し、名前を格納する。(値は直接書き込む) (3)(1)で作成した苗字を持つ変数と、(2)で作成した名前を持つ変数を結合して出力。 (4)「苗字は'((1)で作成した変数の値)'です。名前は'((2)で作成した変数の値)'です。」と出力。 出力結果: C:\>java Name いわたてつお 苗字は'いわた'です。名前は'てつお'です。 C:\> 上記のプログラムを作成しようとしたのですが・・・ import java.io.*; class Name { public static void main(String[] args)throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str1 = br.readLine(); String name1 = str1; String str2 = br.readLine(); String name2 = str2; System.out.println(name1 + name2); System.out.println("苗字は\'" + name1 + "\'です。名前は\'" + name2 + "\'です。"); } } ↑これではいくら変数を2つ作成しても、書き込んだ文字が全て 苗字の変数に格納されてしまってちゃんと出力出来ないという事は 分かるのですが、どうやったらちゃんと苗字と名前に分かれて 出力されるのか分からないので、教えてください。 なんとなく文法的にも間違っている気が・・・ ホント初歩的な質問ですみません!

    • ベストアンサー
    • Java
  • Stringとは一体何だ?

    Stringは型なのでしょうか?それともクラスなのでしょうか? Stringは参照型の型で、クラスを表す、つまり文字列を表す参照型の型であり文字列を表すクラスでしょうか?説明が悪くてごめんなさい。Java歴二週間です。

    • ベストアンサー
    • Java
  • 【C++】ヘッダ内でstringを格納する変数の宣

    【C++】ヘッダ内でstringを格納する変数の宣言ができない 下記クラスのように、string型の変数nameを宣言したいのですができません。 どのようにしてstring型データを格納する変数を宣言すればよいのでしょうか? //--------------- //Neko.h #pragma once #include <string> ref class Neko { private: string name; public: Neko(); }; //--------------- //Neko.cpp #include "StdAfx.h" #include "Neko.h" #include <string> using namespace std; Neko::Neko(){ name = "neko"; }

  • パッケージ化されたクラスより変数を読む

    パッケージ宣言されたクラスから配列変数を読み出す場合、どのように記述すればいいのでしょうか。 ファイル名 Pack.java パッケージ名 package firstPack; クラス定義 public class Pack {   String [] test = {"あ","い","う","え","お"} } ↑これを、TestPack.java から test の内容を 呼び出す場合。よろしくお願いします。

    • ベストアンサー
    • Java
  • Java Stringに関して

       お世話になります。  SJC-Pの学習をしているのですが、Stringに関して、とある教科書に  以下のように記述されていましたが意味がわかりません。  わかりやすく教えていただけたらと思います。  教科書の文章(以下)   同じリテラル文字列に再び出会った場合、コンパイラは既にプール内  に格納されている文字列を使います。(3つ以上の参照変数が同じ  文字列を参照する可能性があるため、この処理はスレッドセーフ  ではない。)  上記文章の( ) で囲まれた部分の意味がまったくわかりません。  よろしくお願いします。

  • JavaのStringクラスに「外字」という概念はある?

     今、客先のデータをJavaで処理しようとしているのですが、そのデータ(Shift-JISの文字列データ)には、今まで使われてきた「外字」が含まれています。  私の知っている範囲では、Shift-JISの文字列でも、Javaで読み込んだら内部的にUnicodeに変換されるのではないかと思っているのですが(←間違っているかもしれません)、そのUnicode変換の際に外字の部分はどうなってしまうのでしょうか。また、Unicodeに変換された文字列を、出力の際にまたShift-JISに戻すことになると思うのですが、そのときにはちゃんと以前の外字コードに戻ってくれることが保証されているのでしょうか。  JavaのリファレンスでStringクラスのページで「外字」という文字列で検索してみたのですが、まったくひっかからなかったので不安になっています。  よろしくお願い致します。

    • ベストアンサー
    • Java
  • java-別クラスの変数の使い方を教えてください

    javaで、別クラスの変数を使うにはどうしたらできますか?! あるクラスで public String hour =""; のhourという変数を別のクラスで使いたいです。 どなたかよろしくおねがいします><

  • クラス変数について質問

    Javaのオブジェクト指向を解説した参考書で現在勉強しているのですが、その参考書のある問題の答えの解説として「クラス変数は参照変数なので参照以外を代入できません」と書いてありました。 でも、例えば、static int n=0と書けば、0をnに代入できます。 因みに、「クラス型の変数」は参照しか代入できないのはわかっています。 よって「クラス変数」は誤植で、正しくは「クラス型変数」なのでしょうか?

    • ベストアンサー
    • Java

専門家に質問してみよう