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

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

1
複数のディスパッチと関数のオーバーロード
私は2つの違いを(もしあれば)理解しようとしています。 Multiple DispatchのWikipediaページによると、これはFunction Overloadingと同義ですが、その後、次のように言います: Javaなどの単一ディスパッチのみの言語[…] Javaは関数のオーバーロードをサポートしているため、これは矛盾のように見えます。 それでどちらですか?マルチディスパッチは関数のオーバーロードとは異なりますか、それともJavaがマルチブルディスパッチをサポートしていないと主張するのは間違っていますか?

5
AntはJavaビルドの「メインストリーム」のままですか?
開発者IDEでコンパイルされたクラスを単純化するバッチコマンドファイル(windows .bat)を、より包括的なAntビルド(つまり、CVSから取得、コンパイル、jar、アーカイブ、電子メールなど)でゆっくりと置き換えています。 Antで多くの時間を学習(および問題のデバッグ)に費やしてきたので、これらのタスクに使用するのが最も快適です。しかし、Antは、私が最初に学習を始めたときと同じように広く使用されているのか、それとも「世界は新しいものに(そしておそらくよりスマートに)変わったのか」と疑問に思います。(たとえば、Mavenビルドマテリアルが配布されるようになりましたが、これは使用したことがありません。) この質問の実際の重要な点は、新しい開発者にAntを学ぶように勧めるかどうか、またはビルドのために他の何かを学ぶべきかどうかです。 私は決してトレンドを熟知しているわけではないので、他のJava開発者から彼らが最高のビルドツールだと思うこと、そして新しい開発者が学ばなければならないと思うことを聞くのは素晴らしいことです。
14 java  training  maven  builds  ant 

3
Javaのパッケージ命名規則のポイントは何ですか?
Javaが(おそらく仮定の)ドメイン名の逆をパッケージの名前として使用する理由を理解していませんが、一部の人々が使用するドメイン名と所有している製品との間にはほとんど関係がありません。多くの開発者はドメインさえ持っていません。 この命名規則がある場合、その理由は何ですか?
14 java  packages 

5
業界で「最終」キーワードがほとんど使用されないのはなぜですか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 6年前に閉鎖されました。 final数年前にJavaでキーワードのパワーを発見したので、読み取り専用の変数を簡単に確認できるため、コードをより読みやすくするのに役立ちました。また、JITを少し強化することもありますが、これは非常に限定的なものですが、特にAndroidプラットフォームなどの組み込みデバイスを対象とする場合は害はありません。 しかし、何よりも、変更に対する設計の堅牢性を高め、コードベースを変更する必要がある場合に他のコミッターを導くことに貢献します。 ただし、JDKソースコードの一部を参照しているときに、クラス、メソッド、または変数のいずれについても、このキーワードにつまずくことはありませんでした。私がレビューしなければならなかったさまざまなシステムにも同じことが当てはまります。 理由はありますか?内部からすべてを可変にするのは一般的な設計パラダイムですか?
14 java  final 

2
デコレータパターンはJava IOクラスに存在しますか?
割り当てのために、私は4デザインパターンのギャングのどのクラスを見つけるために持っているjava.io.Readerとそのサブクラスをjava.io.PushbackReader、java.io.BufferedReaderとjava.io.FilterReaderして建設されました。 この投稿によると、デザインパターンはデコレータパターンになります。これは場合にのみ、私には理にかなってPushbackReader、BufferedReaderそしてFilterReader効果的に作成し、同時に使用されるように装飾することができますBufferedPushbackFilterReader。それはアイデアですか?

6
FlashはJavaアプレットよりも本当に優れていますか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は議論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善し、場合によっては再開できると思われる場合は、ヘルプセンターをご覧ください。 7年前に閉鎖されました。 私はまだ学生で、プログラミングの実生活経験があまりありません。〜5k行以上のコードを書いたことはありません。私はFlashとJavaの両方でコードを書きましたが、なぜJavaアプレットとしてではなく、Flashでビデオプレイヤー(YouTubeなど)のようなWebアプリケーションを書いているのか理解できません。そのため、実践的な経験をお持ちのプログラマーに、このテーマに関する賢明な言葉をお聞きしたいと思います。 アプレットに対するFlashの本当の利点はありませんが、少なくとも私にとっては、バグのように思えます。Flashで何かを作成する方が速いことは理解していますし、高速プロトタイピングに適している理由はわかりますが、一般的には価値がありますか?YouTubeが凶暴になるたびに、Flashでそれを書くために開発者を呪います。LinuxをOperaで使用している場合、これは常に発生します。 だから、基本的に、なぜ人々はアプレットではなくフラッシュを使用しているのですか?

10
Java 1.4.2以降に見逃していたものに追いつくのを手伝ってください[終了]
現在のところ、この質問はQ&A形式には適していません。回答は事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は議論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善し、おそらく再開できると思われる場合は、ヘルプセンターをご覧くださいを。 7年前に閉鎖されました。 私はソフトウェア開発者としての最初のプロとしてのキャリアを開始しようとしています。そして、私は多くのJavaコードを書くことになるでしょう。私が具体的に何を書いているかについてはあまり知りませんが、さらに、とにかくコードに関してはかなり幅広い興味を持っています。 議論するに値しない理由のために、私の最後のインターンシップでは、Java 1.3および1.4 SDKのみをコーディングしました。また、私の大学教育は、言語の機能やライブラリではなく、主にアルゴリズム、データ構造、その他の理論に焦点を当てています。 したがって、上記を念頭に置いて、現在のバージョンのJavaのどの機能、クラスなど(とにかく、現在どのくらいの数になっていますか?)プログラマーとしてのあなたの人生を楽にする1.4.2以来、私が見落としていたことは何ですか? 特定のパッケージなどを見つけて使用する方法の例とストーリーも素晴らしいでしょう。

8
Javaでは、チェック例外は何に適していますか?[閉まっている]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 5年前に閉鎖されました。 Javaのチェックされた例外は、長年にわたっていくつかの悪い報道を受けています。わかりやすい兆候は、それが文字通り世界で唯一の言語であることです(GroovyやScalaのような他のJVM言語でさえも)。SpringやHibernateなどの著名なJavaライブラリもそれらを使用しません。 私は個人的に(レイヤー間のビジネスロジックで)それらの1つの用途を見つけましたが、そうでなければ私はかなりアンチチェックされた例外です。 私が気付いていない他の用途はありますか?

4
JavaからLinuxへの.NETはWindowsに対するものですか?[閉まっている]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 4年前に閉鎖されました。 Javaは、.NETがWindowsアプリケーション開発の標準であるのと同じように、Linuxアプリケーション開発の事実上の標準になっていますか?そうでない場合はなぜですか?
14 java  .net  comparison 

2
MartinのClean Codeで言及されている出力引数とは何ですか?
Robert C. Martin's Clean Code:A Handbook of Agile Software Craftsmanshipの45ページで、Martinは出力引数を避けるべきであると書いています。「出力引数」の意味と、それらを避けるべき理由を理解するのに苦労しています。 出力引数のMartinの例appendFooter(s);は、関数を呼び出しますpublic void appendFooter(StringBuffer report)。彼のコードの改善はreport.appendFooter(); コードコンテキストが不足していることが原因の可能性がありますが、出力引数の使用がコーディングの悪さと見なされる方法はわかりません。誰かが概念を説明したり、これを理解するためのコードの追加例を与えることができますか? 上記の原則により、次の関数も汚れたコードの例と見なされますか? int[] numberArray = {3, 5, 7, 1}; sortArray(numberArray); 上記が出力引数を使用しないというマーティンの原則に違反する場合、フィールドとして配列を持つオブジェクトと、配列をソートするために呼び出すことができる関数を持つ方が良いでしょうか? ObjectWithArrayField numberArray = new ObjectWithArrayField(3, 5, 7, 1); numberArray.sort();
14 java  clean-code 

3
MVCでは、DAOはコントローラーまたはモデルから呼び出す必要があります
Controllerクラスから直接呼び出されるDAOに対するさまざまな引数と、ModelクラスからのDAOに対するさまざまな引数を見てきました。実際、MVCパターンに従っている場合、コントローラーはDAOと結合するべきではなく、Modelクラス内部からDAOを呼び出し、コントローラーがモデルクラスを呼び出す必要があるのは、なぜWebアプリケーションからモデルクラスを切り離し、RESTサービスがモデルクラスを使用するなどのさまざまな方法で機能を公開できるからです。 コントローラでDAO呼び出しを記述する場合、RESTサービスが機能を再利用することはできません。両方のアプローチを以下にまとめました。 アプローチ#1 public class CustomerController extends HttpServlet { proctected void doPost(....) { Customer customer = new Customer("xxxxx","23",1); new CustomerDAO().save(customer); } } アプローチ#2 public class CustomerController extends HttpServlet { proctected void doPost(....) { Customer customer = new Customer("xxxxx","23",1); customer.save(customer); } } public class Customer { ........... private void save(Customer customer){ …

3
DAOはシングルトンである必要がありますか?
RESTful APIを開発しており、リソースにDAOを使用すると便利だと思います。メモリを使用してそれらを格納するだけですが、使用することに決めた場合はライブラリを使用しているユーザーのドアを閉めたくないためです。 DAOのデータベース実装。 私の質問は、DAOがシングルトンであるかどうかです。そうでない場合、サービスにはDAOのインスタンスがあり、おおよそ次のようになります。 @Path("eventscheduler") public class EventSchedulerService { private IEventSchedulerDao dao = new EventSchedulerDao(); // in case a different implementation is to be used public void setEventSchedulerDao(IEventSchedulerDao dao) { this.dao = dao; } @Path("{uniqueName}") @GET @Produces(MediaType.APPLICATION_JSON) public Tournament getTournament(@PathParam("name") String uniqueName) { return dao.get(uniqueName); } @Path("create") @POST @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) …

3
クリーンアーキテクチャ-ユースケースクラスが多すぎる
私はクリーンアーキテクチャに入り、AndroidレベルをMVCからMVPに上げ、Dagger 2でのDI、RxJava 2での反応性、そしてもちろんJava 8を紹介します。 でMVPクリーンなアーキテクチャが存在し、エンティティ間の層(データストア内)とプレゼンターそれらにアクセスする必要があります。このレイヤーが「ユースケース」です。使用例は、理想的には1つのエンティティに1つの操作を実装するインターフェースです。 また、Clear Architectureは「悲鳴を上げている」ことも知っています。そのプロジェクトの意味では、クラスの数が多いため、非常に読みやすくなっています。 今、私のプロジェクトでは、6つの異なるエンティティのようなものがあり、もちろん、各エンティティリポジトリには、それらにアクセスするための少なくとも4つのメソッド(通常はget、add、delete、update)があります。つまり、6 * 4 = 24です。 Clean Architectureのこれまでに理解できたとしたら、24のUseCaseがあります。 MVCの6つのコントローラーと比較すると、これは多くのクラスです。 本当に24のユースケースを作らなければならないのですか? 私はすでにそれを成功裏に使っている誰かによる説明を本当に感謝します。 ありがとう、ジャック
14 java  android  use-case  mvp 

5
enumの文字列表現をより単純にするために、すべて大文字のネーミングに反対してもかまいませんか?
たとえば、列挙型定数にタイトルケースまたはすべて小文字のネーミングを使用する人を見たことがあります。次に例を示します。 enum Color { red, yellow, green; } これによりthrow new IllegalStateException("Light should not be " + color + ".")、たとえば、必要に応じて、文字列形式での作業が簡単になります。 列挙型がの場合、これはより受け入れられるようですがprivate、それでも私はそれが好きではありません。次のように、Stringフィールドを使用してenumコンストラクタを作成し、toStringをオーバーライドしてその名前を返すことができることを知っています。 enum Color { RED("red"), YELLOW("yellow"), GREEN("green"); private final String name; private Color(String name) { this.name = name } @Override public String toString() { return name; } } しかし、それがどれほど長いか見てください。シンプルにしたい小さな列挙型がたくさんある場合、これを続けるのは面倒です。ここでは、型破りなケースフォーマットを使用しても大丈夫ですか?
14 java  conventions  enum 

5
voidメソッドの単体テスト
アプリケーションのバグを修正するために、postLoginという名前の既存のメソッドに呼び出しを追加することにより、という名前のメソッドを変更しましたgetShoppingCart。 コード protected void postLogin() { getShoppingCart(); } ただし、単体テストを作成する最適な方法が何であるかはわかりませんpostLogin。 アプローチ1 Mockitoのverifyを使用して、メソッドが呼び出されたことを確認します。 verify(mock).getShoppingCart(); アプローチ2 ユーザーのショッピングカートの値を取得して、メソッド呼び出しの副作用をテストします。 AssertNotNull(user.getShoppingCart()); 1つのアプローチは他のアプローチよりも優れていますか?

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