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

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


3
Head Firstシリーズのように教えるアルゴリズムの本はありますか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は議論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善し、場合によっては再開できると思われる場合は、ヘルプセンターをご覧ください。 7年前に閉鎖されました。 Javaプログラマーとして、アルゴリズムを学習する必要があります(プログラミングの課題)。私はいくつかのヘッドファーストシリーズ(私が所有するJAVA)を読みましたが、それらは非常に頭に優しいものです。それで、私は理解するのが簡単で、各アルゴリズムの核心にもなるアルゴリズムの本があるのだろうかと思っていました。
12 java  books  algorithms 


2
EJB 3の代わりにSpring + Hibernateが優先されますか?
私の考えでは、新しいJEEプロジェクトが開始されると(これらの技術が適用される場合)、人々はEJB 3ではなくSpring + Hibernateの組み合わせを使用することを好みます。 若手プログラマーにもアドバイスされているようです、EJBの代わりにそのために行くことているようです。 これは個人的な好みですか、それとも適切な理由がありますか?(たとえば、EJBまたは技術の肥大化に対するパフォーマンスの理由または学習曲線に対する不信を引き起こした以前のEJBバージョンによって作成された個人的な傷跡)?

8
チーム内で競合するJavaスタイル
私は6週間の期限があるJava開発チームの一員です。そのため、大量のコードを非常に迅速に作成する必要があります。ただし、開発チームにはさまざまなスタイルのコーディングがあります。名前の規則から抽象化の方法まで、すべてがチームによって異なります。Javaの「標準」を規定するドキュメントを知っている人はいますか? 明確にするために、たとえば変数や関数の適切な命名規則を規定する組織があるかどうか疑問に思っていました。このような短い期限では、お互いのコードを理解しようとする時間を費やすことができないため、これは最重要事項です。

10
Javaで開発中としてクラスにフラグを付ける方法
私はインターンシッププロジェクトに取り組んでいますが、すべてを終える前に辞めなければなりません。 実稼働で使用するには十分に安定していないクラスが1つあります。このクラスをマーク/フラグ付けして、他の人が実稼働で誤って使用しないようにします。私はすでにJavadocに通知を出しましたが、それでは十分ではないようです。コンパイラーのエラーまたは警告の方が良いでしょう。 コードは次のように構成されています。 [Package] | company.foo.bar.myproject |-- Class1.java |-- Class2.java |-- Class3.java <--(not stable) パブリックメソッドでこれらのクラスを呼び出す単一のファクトリクラスがある場合、メソッドをclass3asに設定できますprivate。ただし、APIはそのようには公開されません。ユーザーはこれらのクラスを直接使用します。たとえばnew Class1();、トップレベルのクラスをプライベートにすることはできません。この状況に対処するためのベストプラクティスは何ですか?
12 java 

8
オブジェクト指向クラスの設計
オブジェクト指向の優れたクラス設計について疑問に思っていました。特に、これらのオプションを決定するのに苦労しています。 静的対インスタンスメソッド パラメータまたは戻り値のないメソッド vs パラメータおよび戻り値のあるメソッド オーバーラップする対の異なる方法で機能 民間対公共方法 例1: この実装では、戻り値やパラメーターを持たず、機能が重複しないインスタンスメソッドを使用します。すべてのメソッドはpublic XmlReader reader = new XmlReader(url); reader.openUrl(); reader.readXml(); Document result = reader.getDocument(); 例2: この実装では、戻り値とパラメータを備えた静的メソッドを使用し、重複する機能とプライベートメソッドを使用します。 Document result = XmlReader.readXml(url); 例1では、すべてのメソッドがパブリックインスタンスであるため、ユニットテストが簡単になります。すべてのメソッドは異なりますが、readXml()はopenUrl()に依存しているため、openUrl()を最初に呼び出す必要があります。すべてのデータはインスタンスフィールドで宣言されるため、コンストラクターとアクセサーを除き、どのメソッドにも戻り値やパラメーターはありません。 例2では、​​1つのメソッドのみがパブリックであり、残りはプライベートスタティックであるため、ユニットテストが困難です。readXml()がopenUrl()を呼び出すという点で、メソッドは重複しています。フィールドはありません。すべてのデータはメソッドのパラメーターとして渡され、結果はすぐに返されます。 適切なオブジェクト指向プログラミングを行うには、どの原則に従うべきですか?

3
Joshua BlochのBuilderデザインパターンの改善?
2007年に、Joshua Blochsが「ビルダーパターン」を採用し、コンストラクターとセッターの過剰使用を改善するためにどのように変更できるかについての記事を読みました。このデザインパターンの簡単な概要は、こちらで説明されています。 私はこのアイデアが好きで、それ以来ずっと使っています。それに伴う問題は、クライアントの観点からは非常にクリーンで使いやすいものですが、それを実装するのは苦痛になる可能性があります!オブジェクトには単一のプロパティが参照される非常に多くの異なる場所があるため、オブジェクトを作成し、新しいプロパティを追加するには時間がかかります。 だから...私は考えていました。まず、Joshua Blochスタイルのオブジェクトの例: ジョシュブロッホスタイル: public class OptionsJoshBlochStyle { private final String option1; private final int option2; // ...other options here <<<< public String getOption1() { return option1; } public int getOption2() { return option2; } public static class Builder { private String option1; private int option2; // other …

5
なぜWindows Forms / Swingフレームワークは、コンポジションよりも継承を好むのですか?
今日、私の教授は、SWTの哲学は作曲によって独自のコントロールを作成することの1つであるが、Swingは継承を支持しているようだと奇妙に感じたとコメントしました。 私は両方のフレームワークとはほとんど接触していませんが、C#のWindowsフォームで覚えていることから、通常はSwingと同様にコントロールを拡張しています。 一般に、人々は継承よりも合成を好む傾向があるため、Swing / Windows Formsの人々はなぜ継承ではなく合成を好まなかったのですか?
12 c#  java  swing  forms 

4
新しいJava永続化ツールについてどう思いますか。それは実際にはORMではありませんか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は議論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善し、場合によっては再開できると思われる場合は、ヘルプセンターをご覧ください。 7年前に閉鎖されました。 Javaでの永続性 過去数年にわたって、EJB 2.0、Hibernate、JPA、および自家製の概念などを使用して、Javaの永続性抽象化の分野での経験を集めてきました。彼らは、急な学習曲線と多くの複雑さを持っているように思えました。さらに、SQLの大ファンとして、多くの抽象化モデルがSQLを抽象化しすぎて、SQLではなく非常に優れた概念である「基準」、「述語」、「制限」などの概念を作成すると考えました。 Javaでの永続性抽象化の一般的な考え方は、RDBMSがオブジェクト指向の世界と何らかの形で一致するオブジェクトリレーショナルモデルに基づいているようです。ORM討論は常に感情的なものでした。すべての人に適した単一の解決策は存在しないようです。そのような解決策が存在する可能性があるとしてもです。 jOOQ ORM関連の問題を回避する方法の個人的な好みは、リレーショナルの世界に固執することです。データモデルのパラダイムの選択は、個人的な好みであるため、または具体的な問題に最適なデータモデルの問題であるため、議論のトピックではありません。私が始めたいと思う議論は、jOOQと呼ばれる私自身の永続化ツールに関するものです。私はjOOQを設計して、最新の永続化ツールが持つ利点のほとんどを提供します。 SQLに基づくドメイン固有言語 基礎となるデータベーススキーマをJavaにマッピングするソースコード生成 多くのRDBMSのサポート いくつかの最新の永続化ツールにあるいくつかの機能を追加します(間違っている場合は修正してください): 複雑なSQLのサポート-ユニオン、ネストされた選択、自己結合、エイリアス、ケース節、算術式 非標準SQLのサポート-ストアドプロシージャ、UDT、ENUMS、ネイティブ関数、分析関数 詳細については、ドキュメントページhttp://www.jooq.org/learn.phpをご覧ください。LinqはSQL専用に設計されているわけではありませんが、Linq for C#に非常によく似たアプローチが実装されていることがわかります。 質問 さて、私はSQLの大ファンだと言って、他の開発者がjOOQ(またはLinq)に対する私の熱意を共有するかどうか疑問に思います。永続性抽象化へのこの種のアプローチは実行可能なものですか?あなたが見るかもしれない利点/欠点は何ですか?どうすればjOOQを改善できますか?また、あなたの意見には何が欠けていますか?概念的または実際的にどこで間違ったのですか? 批判的だが建設的な答えを高く評価 議論は感情的なものであることを理解しています。すでに同様のことを行う多くの素晴らしいツールがあります。私が興味を持っているのは重要ですが、あなた自身の経験や読んだ記事に基づいた建設的なフィードバックです。
12 java  orm  database  linq 

6
EclipseのJavaのトップ開発者生産性ツール/プラグインとは何ですか?
ロックされています。この質問とその回答はロックされています。なぜなら、質問はトピックから外れていますが、歴史的に重要だからです。現在、新しい回答やインタラクションを受け付けていません。 私は個人的にVisual Studio 2010でCodeRushを使用して、リファクタリングを行い、テンプレートを使用してコードをより速く記述し、通常、ストックVSよりも10倍速くコードをナビゲートします。最近、私は別のAndroidアプリに取り組んでいて、考え始めました... Eclipseの最高の生産性プラグインは何ですか? できれば無料。PHPやRails、Eclipseがサポートする他の言語ではなく、Javaでの記述に役立つプラグインを探しています。

2
Java Spring for Beginnerを使用したRESTfulサービスの構造
私はJava Web開発スキルの点で比較的新しいです。APIについて私が少ししか理解していないことから、RESTfulサービスの良い候補になると思うプロジェクトがあります。私はこれがどのように構成されているのかを詳しく説明しようとしていますが、Google検索やすでに持っている資料を読むという点では実際にはどこにも行きません。この投稿が、このトピックに関する私の知識と仮定の観点から、いくつかの検証やリダイレクトをもたらすことを望んでいます。 私の現在の仮定は、RESTfulサービスが次の構造を持つことです。 データベースデータ(SQL)。 ORM(私はCPOと呼ばれる比較的人気のないORMを使用していますが、ほとんどの人はこれをHibernateに置き換えるだけです)。 ORMと通信してデータを取得するメソッドを持つJavaマネージャークラス クラス/クラスはハンドルがマッピングおよび使用を要求することをAのJavaコントローラ@ResponseBodyに指示する/ HTTP動詞を介してデータの処理方法のURLとアクションを処理(http://mysite.com/computers/dellがあるかもしれないGET単語「デル」とのリクエストURLは、Dellコンピューターに関する情報のJSON配列を返すパラメーターです)。 このサービスは、Spring Bootで作成するか、何らかの形で独立して他のアプリケーションから独立させる必要があります。 上記が正しいと仮定すると、(非常に基本的なレベルで)データを消費および使用するために任意のアプリケーションが使用できるRESTfulサービスがあります。 そこで、Webアプリケーションを作成するとします。コンピューターハードウェア情報に関するWebアプリを作成しており、Springを使用してこのWebアプリを作成しているとします。私の仮定は次のとおりです。 私は、JSPとしてHTML、CSS、およびJavaScriptインクルードを持つJSPとして多数のビューを持っています。JavaScriptは、必要に応じてこのアプリケーションのコントローラーへのAJAX呼び出しを処理します(以下)。 このWebアプリには、アプリのURLリクエストとルーティングを処理する独自のコントローラーもあり、コントローラーは、たとえば、ModelAndViewオブジェクトまたはそれらの行に沿ったものを使用して、RESTfulサービスのコントローラーと「通信」し、渡されるデータを取得します、表示するためにそのデータをビュー(Javascript、JSPなど)に戻します。 私は正しい道にいますか?RESTfulサービスには認証の側面もあることは理解していますが、概念的にはまだありません(そして、私のプロジェクトはプライベートネットワークで使用されるため、現時点ではセキュリティは優先されません)。 洞察、批判、知識、フィードバック、または明確化は大歓迎です。

2
サブクラスまたは抽象親クラスを単体テストする必要がありますか?
Effective JavaのItem 18にあるように、スケルトン実装を持っています(詳細な議論はこちら)。これは抽象クラスであり、2つのパブリックメソッドmethodA()およびmethodB()を提供し、サブクラスメソッドを呼び出して、抽象化された方法では定義できない「ギャップを埋める」。 最初に具体的なクラスを作成し、そのための単体テストを作成して開発しました。2番目のクラスが来たとき、共通の動作を抽出し、2番目のクラスに「欠落したギャップ」を実装することができました(もちろん、2番目のサブクラスに対して単体テストが作成されました)。 時間が経ち、今では4つのサブクラスがあり、それぞれが具体的な実装に非常に固有の3つの短いプロテクトメソッドを実装していますが、骨格実装はすべての一般的な作業を行います。 私の問題は、新しい実装を作成するときに、もう一度テストを書くことです。 サブクラスは特定の必須メソッドを呼び出しますか? 特定のメソッドに特定の注釈がありますか? メソッドAから期待される結果が得られますか? メソッドBから期待される結果が得られますか? このアプローチの利点を見ながら: テストを通じてサブクラスの要件を文書化します 問題のあるリファクタリングの場合、高速で失敗する可能性があります サブクラス全体とパブリックAPIを使用してテストします(「methodA()は機能しますか?」ではなく、「このprotectedメソッドは機能しますか?」) 私が持っている問題は、新しいサブクラスのテストは基本的に簡単です:-テストはすべてのサブクラスですべて同じであり、メソッドの戻り値の型を変更するだけです(スケルトン実装はジェネリックです)。テストのアサート部分を確認してください。-通常、サブクラスにはそれらに固有のテストはありません テストがサブクラス自体の結果に焦点を当て、リファクタリングから保護する方法が好きですが、テストの実装が単なる「手動作業」になったという事実は、私が何か間違ったことをしていると思うようにします。 クラス階層をテストするときにこの問題は一般的ですか?どうすればそれを回避できますか? ps:スケルトンクラスのテストについて考えましたが、抽象クラスのモックを作成してテストできるようにするのも奇妙に思えます。そして、サブクラスが予期していない動作を変更する抽象クラスのリファクタリングは、それほど速くは気付かれないと思います。私の勇気は、サブクラスを「全体として」テストすることがここで好ましいアプローチであることを教えてくれますが、間違っていると教えてください:) ps2:私はグーグルで調べて、このテーマに関する多くの質問を見つけました。そのうちの一つがこれ一つであり偉大な答えナイジェルソーンからの、私の場合は彼の「ナンバー1」になります それは素晴らしいことですが、この時点ではリファクタリングできないので、この問題に耐えなければなりません。リファクタリングできれば、各サブクラスを戦略として使用できます。それは問題ありませんが、「メインクラス」と戦略をテストしますが、メインクラスと戦略の統合を壊すリファクタリングは見当たりません。 ps3:抽象クラスをテストすることは「受け入れられる」という回答をいくつか見つけました。これは受け入れられることに同意しますが、この場合にどちらが好ましいアプローチであるかを知りたいと思います(私はまだ単体テストから始めています)

1
Java 8:遅延操作のAPIでストリームを渡すことをお勧めしますか?
GuavaなどのJava 8より前のラムダヘビーライブラリでは、出力は共通のJava Collection Frameworkインターフェイスを使用するため、外部/内部APIに簡単に渡すことができ、ライブラリメソッドがそれを実行する場合(レイジーfilter()およびtransform())でも遅延計算を利用できます。 ただし、Java 8 Streamsでは、Collection/ を取得する呼び出しMapはターミナル(つまり、熱心)であり、結果を保持するために新しいデータ構造も割り当てます。 中間に複数のステージと戦略パターンがある複雑な計算では、中間結果のために多くの不必要な割り当てが発生します。 だから、人々は内部API(すなわち戦略パターン戦略)がStreams を取得して返すのが良い習慣だと思うのですか、それとも単に怠け者にフォールバックする必要がありますか? 編集: 私の主な関心事Streamは、それが一度だけ消費され、Supplier<Stream<X>>非常に面倒に見えるようなものを渡すことができるということです。それはほとんどあなただけ渡すためにプッシュしCollection、その後、再stream()それを(その時点での先行評価のコストを支払います)。
12 java  lambda 

2
Javaで初期化されていないオブジェクト変数とnullに初期化されたオブジェクト変数の違いは何ですか
次の2つのオブジェクト変数があります Date a; Date b=null; 確かに、「a」と「b」の両方がオブジェクトを参照していません。 次のステートメントを呼び出すと System.out.println(a.toString()); コンパイル時エラーが発生しますが、次のステートメントを呼び出すと System.out.println(b.toString()); コンパイル時エラーは発生しませんが、実行時エラーは発生します。この理由と、null値を表すために「b」に実際に格納される値は何ですか?
12 java 

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