タグ付けされた質問 「java」

Javaは、元はSun Microsystemsによって開発された、プラットフォームに依存しない高レベルのオブジェクト指向プログラミング言語です。Javaは現在、2010年にSunを購入したOracleが所有しています。

2
C#にJavaよりも多くの機能があるのはなぜですか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 5年前に閉鎖されました。 これはJavaとC#の引数であることを意図していないことに注意してください。私は、C#の経験のないJavaプログラマーであり、好奇心だけを求めています。 私はC#でいくつかの読書をしましたが、Javaよりもはるかに多くの機能を持っているようです。いくつかの例: 型推論。 dynamic キーワード。 デリゲート。 オプションのパラメーター。 ラムダとLINQ (実際、これらが何であるかわかりません)。 プロパティ。 ただし、JavaにはC#にはない機能は何もありません。 私の質問は、なぜC#にはJavaよりもはるかに多くのネイティブ機能があるのですか?そして、なぜJavaは、プロパティや型推論など、これらの一部を長年にわたって追加しなかったのですか?Java言語の設計者は、より単純なアプローチを取っていますか?この理由は何ですか?
14 java  c#  languages 

6
フォールバック用のネストされたトライキャッチの代替
オブジェクトを取得しようとしている状況があります。ルックアップが失敗した場合、フォールバックがいくつかあり、それぞれが失敗する可能性があります。したがって、コードは次のようになります。 try { return repository.getElement(x); } catch (NotFoundException e) { try { return repository.getSimilarElement(x); } catch (NotFoundException e1) { try { return repository.getParentElement(x); } catch (NotFoundException e2) { //can't recover throw new IllegalArgumentException(e); } } } これはひどくいです。nullを返すのは嫌いですが、このような状況ではより良いですか? Element e = return repository.getElement(x); if (e == null) { e = repository.getSimilarElement(x); …

5
試しに最終的に高価です
関数を終了する前にリソースのクリーンアップを行う必要があるコードの場合、これらの2つの方法の間に大きなパフォーマンスの違いがあります。 すべてのreturnステートメントの前にリソースをクリーニングする void func() { login(); bool ret = dosomething(); if(ret == false) { logout(); return; } ret = dosomethingelse(); if(ret == false) { logout(); return; } dootherstuff(); logout(); } finallyブロックでのリソースのクリーニング void func() { login(); try { bool ret = dosomething(); if(ret == false) return; ret = dosomethingelse(); if(ret == …

7
Javaで、保護されたメンバーが同じパッケージのクラスにアクセスできるようになったのはなぜですか?
公式文書から... モディファイヤクラスパッケージサブクラスワールド パブリックYYYY 保護されたYYYN 修飾子なしYYNN プライベートYNNN 問題は、同じパッケージ内のクラスから保護されたメンバーにアクセスする必要があるユースケースを覚えていないことです。 この実装の背後にある理由は何ですか? 編集:明確にするために、同じパッケージ内のサブクラスとクラスの両方が保護されたフィールドまたはメソッドにアクセスする必要がある特定のユースケースを探しています。 package some.package; public class A { protected void protectedMethod(){ // do something } } package another.package; public class B extends A{ public void someMethod(){ // accessible because B is a subclass of A protectedMethod(); } } package some.package; public class C …

1
Javaバージョン間の違いの概要 [閉まっている]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 2年前に閉店。 この質問の答えはコミュニティの努力です。この投稿を改善するには、既存の回答を編集してください。現在、新しい回答やインタラクションを受け入れていません。 ソフトウェア開発に関して、Javaバージョン間の主な違いは何ですか?プログラミングに関連する最も重要な変更点の概要はどこにありますか? http://www.oracle.com/technetwork/java/javase/releasenotes-136954.htmlなどのリリースノートは読みにくい場合があります。 たとえば、Java 1.5には「for each」という新しいコード構造があります。
14 java  versioning 

3
Strategyパターンを使用したJavaの汎用ファイルパーサーデザイン
私は、モジュールの1つの責任がXMLファイルを解析し、データベースに必要なコンテンツをダンプすることである製品に取り組んでいます。現在の要件はXMLファイルの解析のみですが、将来、あらゆる種類のファイルをサポートできるように解析モジュールを設計したいと考えています。このアプローチの理由は、特定のクライアント向けにこの製品を構築しているが、近い将来に他のクライアントに販売する予定だからです。現在のクライアントのエコシステム内のすべてのシステムはXMLファイルを生成および消費しますが、他のクライアントの場合はそうではありません。 これまでに何を試しましたか?(現在) 戦略パターンに基づいた次の設計を念頭に置いています。私はすぐに日食でコードを書き留めてデザインを伝えたので、例外を適切に処理する方法などの他の側面が今のところ無視されるといいでしょう。 Parser:解析メソッドを公開する戦略インターフェイス。 public interface Parser<T> { public T parse(String inputFile); } *ジェネリックパラメーターを使用する理由は、すべての戻り値の型を許可し、コンパイル時に型の安全性を確保するためです。 ProductDataXmlParser製品関連情報を含むproduct.xmlファイルを解析するための具象クラス。(XMLBeanを使用) public class ProductDataXmlParser implements Parser<ProductDataTYPE> { public ProductDataTYPE parse(String inputFile) { ProductDataTYPE productDataDoc = null; File inputXMLFile = new File(inputFile); try { productDataDoc = ProductDataDocument.Factory.parse(inputXMLFile); } catch(XmlException e) { System.out.println("XmlException while parsing file : "+inputXMLFile); …
14 java  design  parsing  xml 

1
実稼働環境で実行するJavaバージョンに関する考慮事項
技術の最先端を走る人もいます-何かが更新される日を更新します。本番環境では、これは適切ではありません。 現在の(Java 7)バージョンの生産準備が整っているかどうかを調査すると、もはや正しくない可能性のある大量の古い資料が作成されます(この記事の執筆時点では、Java 7は1年半にわたって公開されていますが、かなり長いようです) 。 実稼働環境を新しいバージョンのJavaにアップグレードすることが適切かどうかを判断するには、どのような考慮事項が必要ですか?

3
インターフェイスを直接実装するか、スーパークラスに実装させる必要がありますか?
違いはありますか public class A extends AbstractB implements C {...} 対... public class A extends AbstractB {...} abstract class AbstractB implements C {...} どちらの場合でも、クラスAがインターフェースに準拠することになることを理解しています。2番目のケースでAbstractBは、のインターフェイスメソッドの実装を提供できますC。それが唯一の違いですか? のインターフェイスメソッドの実装を提供したくない場合 AbstractB、どのスタイルを使用する必要がありますか?どちらか一方を使用すると、何らかの「文書化」の目的が隠されますか?

2
なぜC ++ライブラリの使用がそれほど複雑なのですか?
まず第一に、私はC ++が大好きで、JavaよりもC ++でコーディングする方が簡単だと思う人の1人です。1つの小さなことを除いて:ライブラリ。 Javaでは、ビルドパスにjarを追加するだけで完了です。 C ++では、通常、ヘッダーファイルとライブラリ自体に複数のパスを設定する必要があります。場合によっては、特別なビルドフラグを使用する必要さえあります。私は主にVisual Studio、コードブロックを使用しましたが、IDEはまったく使用していません。外部ライブラリの使用について話すとき、3つのオプションすべてに大きな違いはありません。 なぜこれに代わるシンプルな代替手段がなかったのだろうか?IDEがビルドフラグを設定するためのすべての作業を行うことができるように、必要なものがすべて1か所にある特別な.zipファイルがあるように。これには技術的な障壁はありますか?
14 java  c++  libraries 

3
Javaの列挙型でシングルトンを実装することの欠点は何ですか?
従来、シングルトンは通常次のように実装されます public class Foo1 { private static final Foo1 INSTANCE = new Foo1(); public static Foo1 getInstance(){ return INSTANCE; } private Foo1(){} public void doo(){ ... } } Javaの列挙型を使用して、シングルトンを次のように実装できます。 public enum Foo2 { INSTANCE; public void doo(){ ... } } 2番目のバージョンと同じくらいすごいのですが、欠点はありますか? (私はそれにいくつかの考えを与え、私は自分の質問に答えます;うまくいけば、より良い答えがあります)
14 java  singleton  enum 

5
クラスの一意のインスタンスを確保する方法は?
この投稿を改善したいですか?引用や回答が正しい理由の説明など、この質問に対する詳細な回答を提供します。十分な詳細がない回答は、編集または削除できます。 特定のクラスの各インスタンスが一意に識別可能なインスタンスであることを保証するさまざまな方法を探しています。 たとえばName、フィールドを持つクラスがありますname。John Smithに初期化されたNameオブジェクトを取得したら、John Smithという名前でもname別のNameオブジェクトをインスタンス化することはできません。インスタンス化が行われる場合は、元のオブジェクトへの参照を返す必要があります。新しいオブジェクトより。 これを行う1つの方法はMap、現在のすべてのNameオブジェクトを保持する静的ファクトリーを使用することであり、ファクトリーは、John Smithを名前として持つオブジェクトが存在しないことを確認してから、Nameオブジェクト。 私の頭の外で考えることができる別の方法は、Nameクラスに静的なマップを持ち、渡された値がname別のオブジェクトで既に使用されている場合にコンストラクタを呼び出して例外をスローするときに、例外をスローすることを知っていますコンストラクターでは一般的に悪い考えです。 これを達成する他の方法はありますか?

9
大規模な密結合クラスを分割する方法は?
私は、2k行を超えるコード(および成長中)の巨大なクラスをいくつか持っており、可能であればリファクタリングして、より軽くてクリーンなデザインにしたいと考えています。 それが非常に大きい理由は、主にこれらのクラスがほとんどのメソッドがアクセスする必要があるマップのセットを処理し、メソッドが互いに非常に接続されているためです。 非常に具体的な例を挙げServerます。着信メッセージを処理するというクラスがあります。それはのようなメソッドを持っているjoinChatroom、searchUsers、sendPrivateMessage、これらの方法のなどすべてがマップする操作などusers、chatrooms、servers、... チャットルームに関するメッセージを処理するクラス、ユーザーに関するすべてを処理するクラスなどがあればいいかもしれませんが、ここでの主な問題は、ほとんどのメソッドですべてのマップを使用する必要があることです。これらがすべてServerこれらの共通マップに依存しており、メソッドが互いに非常に関連しているため、今のところそれらはすべてクラスに固執している理由です。 クラスChatroomsを作成する必要がありますが、他の各オブジェクトへの参照があります。クラスは、他のすべてのオブジェクトへの参照などを使用して再びユーザーになります。 私は何か間違ったことをしているような気がします。

5
Javaの未定義の動作
私は、SOでこの質問を読んでいて、C ++の一般的な未定義の動作について説明していましたが、Javaにも未定義の動作がありますか? その場合、Javaの未定義の動作の一般的な原因は何ですか? そうでない場合、Javaのどの機能がそのような動作から解放されますか?これらのプロパティでCおよびC ++の最新バージョンが実装されていないのはなぜですか?

2
Javaソースファイルに含まれるパブリッククラスの名前が付いているのはなぜですか?
私はJavaを学ぶ初心者です。Javaでは、すべてのソースファイルにパブリッククラスが含まれている必要があり、そのソースファイルはそのパブリッククラスと同じ名前を持つ必要があります。さらに、ソースファイルに2つのパブリッククラスを含めることはできません。この制限はなぜですか?

3
PerlとJavaの類似点は何ですか?[閉まっている]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 4年前に閉鎖されました。 私は自分の第二言語としてJavaを学んでいると心に決めています(私はPerl開発者です)。しかし、オンラインチュートリアルを少し読んだだけでは、この2つの間に類似点はまったく見当たりません。Javaを学習するとき、何を簡単に理解できますか?
14 java  perl 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.