プログラミング言語Javaに関する質問スレです。
JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作管理 http://pc11.2ch.net/hp/
Webプログラミング http://pc11.2ch.net/php/
をご利用下さい。
よくある質問
・「コマンドまたはファイル名が違います」
「'javac' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
「Exception in thread "main" java.lang.NoClassDefFoundError: 」
(p)ttp://www.wikiroom.com/java/?path,classpath
・「\12288 は不正な文字です。」
文字リテラル以外で全角スペースは使えません。半角スペースに。
・その他の質問→「APIのjavadoc見ろ」
・String に == は使うな。equals() を使え。※
質問時の心得
・コンパイルエラーか実行時エラーか、エラーではないが意図しない動作なのかはっきりしろ。あとエラーメッセージちゃんと読め。
・前提条件としてOS、開発環境、バージョン、使用フレームワーク等を明記。
前スレ
★★Java質問・相談スレッド179★★
http://echo.2ch.net/test/read.cgi/tech/1476706523/
探検
★★Java質問・相談スレッド180★★ [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
2017/04/21(金) 22:13:17.42ID:Sf0TFsly
268デフォルトの名無しさん
2017/06/23(金) 18:44:01.63ID:tdHTYauf そのファイルから見て、相対パスで書けば?
269デフォルトの名無しさん
2017/06/23(金) 19:33:14.78ID:iwaGXP+/270デフォルトの名無しさん
2017/06/23(金) 20:03:19.22ID:ENfHmfJb なぜ/WEB-INF下に置こうとするのか
271デフォルトの名無しさん
2017/06/23(金) 20:49:23.81ID:N2TfUGFS サーバー側でjavascriptを実行しようとする発想
272デフォルトの名無しさん
2017/06/23(金) 21:46:12.40ID:LJ/gyu22 >>271
いかんのか?
いかんのか?
273デフォルトの名無しさん
2017/06/24(土) 00:03:05.30ID:EAyBYnWy Node.jsの立場が
274デフォルトの名無しさん
2017/06/24(土) 06:40:08.63ID:W4HWrwdy スレチなので、jspでjQueryが使いたい場合はどうすればいいのか?御案内をお願いします。
275デフォルトの名無しさん
2017/06/24(土) 07:52:08.07ID:AiSsJYjg >>274
JSPかどうかは関係ないだろ。
JSPかどうかは関係ないだろ。
276デフォルトの名無しさん
2017/06/24(土) 10:21:09.15ID:yLCVgQ/G >>260
node.jsならできるそうだ
node.jsならできるそうだ
277デフォルトの名無しさん
2017/06/24(土) 15:04:58.13ID:9yfN1z7w WebProg板等見ても他に適当なスレが無いのでこちらで失礼します
【開発環境、IDE】Java SE 8、Eclipse Pleiades、Tomcat 8、MySQL 5.6.30
【Java歴】大学で2年
【質問事項】
Javaでプログラムを書いたことはあるものの、MVCとか意識するようなのは書いたことがありません
今回Servlet・JSPを初めて触っていて、MVCについて2つ質問があります
1.MVCに則る場合、例えばログイン処理を考えると、CがDAOにIDを問い合わせてpassを受け取り照合を行うのではなく、
照合はDAOに任せ、CはIDとpassをDAOに投げてbooleanで判定を受け取るだけにするのが良いのでしょうか
間違っている場合、「処理をCにやらせずMに分離する」簡単な実例を教えていただけるとありがたいです
2.http://at-grandpa.hatenablog.jp/entry/2013/11/01/072636
WebプログラミングにおいてはVとMCの間に壁があり、しかもユーザーが直接扱うのはVだけです
よって、この「本当の姿」は通常のアプリケーションの話で、
Webの場合はM←→C←→V←→ユーザーという考え方でよいのでしょうか
【開発環境、IDE】Java SE 8、Eclipse Pleiades、Tomcat 8、MySQL 5.6.30
【Java歴】大学で2年
【質問事項】
Javaでプログラムを書いたことはあるものの、MVCとか意識するようなのは書いたことがありません
今回Servlet・JSPを初めて触っていて、MVCについて2つ質問があります
1.MVCに則る場合、例えばログイン処理を考えると、CがDAOにIDを問い合わせてpassを受け取り照合を行うのではなく、
照合はDAOに任せ、CはIDとpassをDAOに投げてbooleanで判定を受け取るだけにするのが良いのでしょうか
間違っている場合、「処理をCにやらせずMに分離する」簡単な実例を教えていただけるとありがたいです
2.http://at-grandpa.hatenablog.jp/entry/2013/11/01/072636
WebプログラミングにおいてはVとMCの間に壁があり、しかもユーザーが直接扱うのはVだけです
よって、この「本当の姿」は通常のアプリケーションの話で、
Webの場合はM←→C←→V←→ユーザーという考え方でよいのでしょうか
278デフォルトの名無しさん
2017/06/24(土) 15:59:37.13ID:9flukMKd >>277
以下、WebのMVCであることを前提
MVCはプレゼンテーション、ビジネスロジック、データアクセスの3層で言うと、プレゼンテーションとビジネスロジックの分離に関するパターン
DAOはデータアクセスの話なのでMVCとは関係ない
まず、コントローラがリクエストを受け付け、誰がこのリクエストを処理するか判断する
で、その処理担当のモデルに処理を受け渡す
モデルから処理結果が帰ってきたら、それを受けてコントローラがビューを呼び出す
2について
VとMCの間の壁とか考えなくていいよ
ユーザーからのリクエストがネットを経てようがそうでなかろうが、コントローラの役割は同じだから
以下、WebのMVCであることを前提
MVCはプレゼンテーション、ビジネスロジック、データアクセスの3層で言うと、プレゼンテーションとビジネスロジックの分離に関するパターン
DAOはデータアクセスの話なのでMVCとは関係ない
まず、コントローラがリクエストを受け付け、誰がこのリクエストを処理するか判断する
で、その処理担当のモデルに処理を受け渡す
モデルから処理結果が帰ってきたら、それを受けてコントローラがビューを呼び出す
2について
VとMCの間の壁とか考えなくていいよ
ユーザーからのリクエストがネットを経てようがそうでなかろうが、コントローラの役割は同じだから
279デフォルトの名無しさん
2017/06/24(土) 16:23:13.08ID:fM3P/Xze >>277
こっちだけど
【Enterprise】Java EEスレ part1【開発】(c)2ch.net
http://mevius.2ch.net/test/read.cgi/tech/1420712874/
こっちだけど
【Enterprise】Java EEスレ part1【開発】(c)2ch.net
http://mevius.2ch.net/test/read.cgi/tech/1420712874/
280デフォルトの名無しさん
2017/06/24(土) 16:49:44.74ID:iOfeax4r281277
2017/06/25(日) 00:54:45.42ID:iQAhLXiu ありがとうございます
>>278>>280
DAOがMだと思っていてその認識は違ったようですが、ログイン可否判定をMに任せるという考え自体は間違っていないのですね
JSP(と言うかブラウザの表示)=V、Servlet=Cという認識だったので、
ユーザーはVとしかやり取りをしない、また、Vはクライアント側でMCがサーバー側と思っていましたが、
ユーザーがブラウザを介して処理を要求するのは直接Cを扱っていると考えてよい、
また、どちら側とかいう区別は特に考えなくて良いのですね
言われてみれば、JSPも結局はServletですし、(やろうと思えば)ロジックを書くこともできるので、JSP⊃V(、C)という感じですかね
>>279
Java SEにTomcatとかを追加するとJava EEと呼ばれるのですね
>>278>>280
DAOがMだと思っていてその認識は違ったようですが、ログイン可否判定をMに任せるという考え自体は間違っていないのですね
JSP(と言うかブラウザの表示)=V、Servlet=Cという認識だったので、
ユーザーはVとしかやり取りをしない、また、Vはクライアント側でMCがサーバー側と思っていましたが、
ユーザーがブラウザを介して処理を要求するのは直接Cを扱っていると考えてよい、
また、どちら側とかいう区別は特に考えなくて良いのですね
言われてみれば、JSPも結局はServletですし、(やろうと思えば)ロジックを書くこともできるので、JSP⊃V(、C)という感じですかね
>>279
Java SEにTomcatとかを追加するとJava EEと呼ばれるのですね
282デフォルトの名無しさん
2017/06/25(日) 01:40:11.52ID:C4oa8Teh Viewはアプリケーションとその他の境界という考え方も
283デフォルトの名無しさん
2017/06/25(日) 06:12:43.08ID:wnVI7vr5 >>281
Cがどこを指すかは定義がない。考え方によってはCが小さくなる。あなたのサーブレットをCとしてしまうと、MとVが小さくなりすぎて、Cの中がからんでいないかが気になる。
Cがどこを指すかは定義がない。考え方によってはCが小さくなる。あなたのサーブレットをCとしてしまうと、MとVが小さくなりすぎて、Cの中がからんでいないかが気になる。
284デフォルトの名無しさん
2017/06/25(日) 06:14:35.40ID:wnVI7vr5 >>281
Java EEにJava SEが含まれる。Java EEは言語というよりはWebアプリの環境の総称。
Java EEにJava SEが含まれる。Java EEは言語というよりはWebアプリの環境の総称。
285デフォルトの名無しさん
2017/06/25(日) 11:02:48.00ID:kWxB3/G/ >>281
すごい理解だな
すごい理解だな
286デフォルトの名無しさん
2017/06/25(日) 11:08:48.10ID:wnVI7vr5 よくよくみてみるとJSPがVとは言ってることが変すぎるな。
287デフォルトの名無しさん
2017/06/25(日) 11:12:04.00ID:wnVI7vr5 彼の解釈だと、VはWebブラウザ、Mはデータベース、Cはアプリケーションサーバとなってしまい、プログラムの話になってない。
288デフォルトの名無しさん
2017/06/25(日) 11:20:04.24ID:T3UbVkML >>287
落ち着いて読み返した方がいんじゃ・・・
落ち着いて読み返した方がいんじゃ・・・
289デフォルトの名無しさん
2017/06/25(日) 19:55:43.30ID:PbhQLBTm そもそもMVCで考えること自体が現状に合っていないのでは?
290277
2017/06/25(日) 20:39:07.70ID:iQAhLXiu >>282-289
入門として簡単な例で雰囲気を掴んでおきたかったので質問させていただきました
Mはデータと言うかデータ処理部ですよね
役割分担をさせる、という理念と概念はわかるのですが、
プログラムの実例が無いと結局どこからどこまでを分けるのかの理解は難しいですね
書籍を当たろうと思います
JSP=V、Servlet=Cという決まりはないということ、ログイン判定をCから分離する考えは間違ってないこと
がわかったのでよかったです
ありがとうございます
入門として簡単な例で雰囲気を掴んでおきたかったので質問させていただきました
Mはデータと言うかデータ処理部ですよね
役割分担をさせる、という理念と概念はわかるのですが、
プログラムの実例が無いと結局どこからどこまでを分けるのかの理解は難しいですね
書籍を当たろうと思います
JSP=V、Servlet=Cという決まりはないということ、ログイン判定をCから分離する考えは間違ってないこと
がわかったのでよかったです
ありがとうございます
291デフォルトの名無しさん
2017/06/25(日) 20:45:14.21ID:S4DzkUth スレチだ、二度とくるな
292デフォルトの名無しさん
2017/06/26(月) 08:28:48.43ID:FY9LvRUa >>291
どうしてそんなに怒るのお?
どうしてそんなに怒るのお?
293デフォルトの名無しさん
2017/06/26(月) 08:29:03.91ID:FY9LvRUa 怪しいなあ
294デフォルトの名無しさん
2017/06/26(月) 09:22:04.64ID:FhVYbn6w いや、全然怒って真顔で冷静に書いてるだけとか、あるいはどのような反応になるかを学習しようとしているAIかも知れない。
295デフォルトの名無しさん
2017/06/26(月) 09:22:22.63ID:FhVYbn6w 怒ってなくて、だ。
296デフォルトの名無しさん
2017/06/26(月) 12:18:58.08297デフォルトの名無しさん
2017/06/26(月) 12:22:50.67ID:FY9LvRUa WebContents/jsとか
298デフォルトの名無しさん
2017/06/26(月) 14:09:49.10ID:Y5uqF0pH >>296
それってJSP/Servletの範疇じゃないし
それってJSP/Servletの範疇じゃないし
299デフォルトの名無しさん
2017/06/26(月) 14:31:02.39ID:jQ90euYN >>296
いいかげうせろ
いいかげうせろ
300デフォルトの名無しさん
2017/06/29(木) 15:13:58.76ID:Eh5ILrb8 コンテキストルートの下にそれっぽいフォルダ作って置けばいい
301デフォルトの名無しさん
2017/07/01(土) 11:18:07.28ID:N+ZXroXE >>299
あなたが去るという選択肢も対等に存在しているよ
あなたが去るという選択肢も対等に存在しているよ
302デフォルトの名無しさん
2017/07/01(土) 17:00:11.84ID:nCS0LL3r >>301
お前からどうぞ
お前からどうぞ
303デフォルトの名無しさん
2017/07/01(土) 17:08:31.02ID:nCS0LL3r Java EE 8はいつからだっけ
304デフォルトの名無しさん
2017/07/01(土) 17:24:42.16ID:JnV2l3hP 私は猿
305デフォルトの名無しさん
2017/07/01(土) 17:26:47.96ID:nCS0LL3r はやくwildflyが対応しないかな
306デフォルトの名無しさん
2017/07/08(土) 21:22:00.68ID:I2jsR2Mo 今日はデザインパターンの勉強したんだけど面白いね
仕事であんまり使う機会ないんだけど
いつかドヤ顔するために勉強してるw
仕事であんまり使う機会ないんだけど
いつかドヤ顔するために勉強してるw
307デフォルトの名無しさん
2017/07/08(土) 21:38:48.33ID:zpqt2Pi7 GoFはラムダが入った今となっては不要になったものも多いから気をつけないと逆に老害だぞ
308デフォルトの名無しさん
2017/07/08(土) 22:11:14.34ID:KDemZAcB309デフォルトの名無しさん
2017/07/09(日) 00:20:09.66ID:fQPI5Ock310デフォルトの名無しさん
2017/07/09(日) 18:48:41.39ID:4xlnJ5p3 そういやソートも昔は自分で書いたなあ
311デフォルトの名無しさん
2017/07/09(日) 18:53:41.25ID:SZg5iNd3 >>309
Template MethodとIterator
プッシュ型の代表とプル型の代表としてこれだけはしっかり押さえとくべき
あとはだいたいそれらの変形や応用
間違ってもシングルトン厨にはなるなよ
Template MethodとIterator
プッシュ型の代表とプル型の代表としてこれだけはしっかり押さえとくべき
あとはだいたいそれらの変形や応用
間違ってもシングルトン厨にはなるなよ
312デフォルトの名無しさん
2017/07/09(日) 19:10:46.51ID:2yEd4A6I オブザーバの意義がわかりません
普通にあるインスタンスの状態が変わったら、一緒に状態変えたいインスタンスを並べてupdateすればいいんじゃないでしょうか?
普通にあるインスタンスの状態が変わったら、一緒に状態変えたいインスタンスを並べてupdateすればいいんじゃないでしょうか?
313デフォルトの名無しさん
2017/07/09(日) 20:48:45.82ID:SZg5iNd3 >>312
基本的にはその通りで、呼び出し元が呼び出し先を知っている(依存している)場合はそれでいい。
でもそれだと都合が悪い場合もあって、例えば出来合いのボタンクラスはお前が勝手に作ったウィンドウクラスのことなど当然知らないから
ボタンクラスは自分がクリックされたとき何を呼び出していいかわからない。
そこでインターフェイスを介してメソッドを呼ぶことで、ボタンクラスがお前のウィンドウクラスを知らずともメソッドを呼び出せるという仕掛け。
これは見方を変えるとボタンクラスに呼び出してほしいメソッドを渡していると見做すこともできて、そういうやり方を一般に「移譲」と呼ぶ。
その移譲を使ってボタンクリックのようなイベントを実装したのがObserverであり、
移譲を使ってインスタンスの生成を一般化したのがAbstract Factoryだ。
GoFは個別のパターンの前に移譲の概念を確実に理解することを強くお勧めする。
基本的にはその通りで、呼び出し元が呼び出し先を知っている(依存している)場合はそれでいい。
でもそれだと都合が悪い場合もあって、例えば出来合いのボタンクラスはお前が勝手に作ったウィンドウクラスのことなど当然知らないから
ボタンクラスは自分がクリックされたとき何を呼び出していいかわからない。
そこでインターフェイスを介してメソッドを呼ぶことで、ボタンクラスがお前のウィンドウクラスを知らずともメソッドを呼び出せるという仕掛け。
これは見方を変えるとボタンクラスに呼び出してほしいメソッドを渡していると見做すこともできて、そういうやり方を一般に「移譲」と呼ぶ。
その移譲を使ってボタンクリックのようなイベントを実装したのがObserverであり、
移譲を使ってインスタンスの生成を一般化したのがAbstract Factoryだ。
GoFは個別のパターンの前に移譲の概念を確実に理解することを強くお勧めする。
314デフォルトの名無しさん
2017/07/09(日) 21:46:09.06ID:sX6v1jPj メディエイター(仲介者・管制塔)
A - M - B
A, B は、互いに依存しない。
疎結合
Aを修正しても、Bを修正しなくても良い。
逆もしかり
オブザーバー・メディエイターは、モジュール同士を疎結合にする。
部品の疎結合が、最も重要
A - M - B
A, B は、互いに依存しない。
疎結合
Aを修正しても、Bを修正しなくても良い。
逆もしかり
オブザーバー・メディエイターは、モジュール同士を疎結合にする。
部品の疎結合が、最も重要
315デフォルトの名無しさん
2017/07/14(金) 13:03:36.96ID:TfMBM9Tu 初歩的な質問ですみません
privateメンバをもったクラスを継承してサブクラスで更新したいのですが、
サブクラスからだと更新できません。
この場合、getsetを親に持たせるのがやはり一般的なのでしょうか?
メンバをprotectにして直接更新するのはあまり良くないのでしょうか
privateメンバをもったクラスを継承してサブクラスで更新したいのですが、
サブクラスからだと更新できません。
この場合、getsetを親に持たせるのがやはり一般的なのでしょうか?
メンバをprotectにして直接更新するのはあまり良くないのでしょうか
316デフォルトの名無しさん
2017/07/14(金) 14:21:01.57ID:uw/hPlzp 好きにしなさい
317デフォルトの名無しさん
2017/07/14(金) 18:46:33.01ID:WEwIJVh1 >>315
変更すべきならprivateにしてる設計が間違えてる
privateが正しいなら変更しようとしてるのが間違えてる
こーしたらこーなるからでプログラムしたいなら制約を科すオブジェクト指向言語を使うのが間違えてる
変更すべきならprivateにしてる設計が間違えてる
privateが正しいなら変更しようとしてるのが間違えてる
こーしたらこーなるからでプログラムしたいなら制約を科すオブジェクト指向言語を使うのが間違えてる
318デフォルトの名無しさん
2017/07/14(金) 19:37:34.47ID:TfMBM9Tu なるほど
では継承した子クラスから親の変数を変更しようとすること自体がおかしいということでしょうか
親に共通的に属性持たせて振る舞いだけ拡張していくのはよくあるやり方なのかと思っていましたがそうではないのですね
では継承した子クラスから親の変数を変更しようとすること自体がおかしいということでしょうか
親に共通的に属性持たせて振る舞いだけ拡張していくのはよくあるやり方なのかと思っていましたがそうではないのですね
319デフォルトの名無しさん
2017/07/14(金) 19:43:12.40ID:nYuZK0KO どう作るかは正直どうでも良い
仕様が重要
目安としてそれぞれ別パッケージならsetter経由にしとけ
仕様が重要
目安としてそれぞれ別パッケージならsetter経由にしとけ
320デフォルトの名無しさん
2017/07/14(金) 21:30:05.14ID:BgkaGQy5 >>315
getter, setter でやるのはそのクラスがその変数の変更タイミングを知る必要があるからだ。例えば書き換え直後に何か画面に描画するとかね。
変数の書き換えタイミングを知る必要がないならばその変数は public にして外部から直接書き換えられるようにしてしまえば良い。
外部から書き換える必要がないなら protected , 更に継承させたくないなら private。
getter, setter でやるのはそのクラスがその変数の変更タイミングを知る必要があるからだ。例えば書き換え直後に何か画面に描画するとかね。
変数の書き換えタイミングを知る必要がないならばその変数は public にして外部から直接書き換えられるようにしてしまえば良い。
外部から書き換える必要がないなら protected , 更に継承させたくないなら private。
321デフォルトの名無しさん
2017/07/15(土) 04:36:59.12ID:oxvwpB//322デフォルトの名無しさん
2017/07/15(土) 12:53:29.78ID:fEa/UTC5323デフォルトの名無しさん
2017/07/15(土) 17:28:25.64ID:oxvwpB// >>322
オブジェクト指向開発が早いってことだよ
オブジェクト指向開発が早いってことだよ
324デフォルトの名無しさん
2017/07/15(土) 17:29:57.08ID:oxvwpB// にしても実装から覚えるのかヤバイな
設計の教育しろ
設計の教育しろ
325デフォルトの名無しさん
2017/07/15(土) 18:10:31.86ID:+h55DWxy 目的がプログラムになってるヤツの多さは仕事においてもヤバい設計の教育はホント大事
326デフォルトの名無しさん
2017/07/17(月) 02:36:58.37ID:7xO5Cpw7 昔のjava 1.5ぐらいで書かれたプログラムをNeon3でコンパイル通したいんだが、
javax.xml.ws とorg.apache.xmlrpcで検証が必要で、
それぞれ
「制約がありません。インポートパッケージjavax.xml.bindなんたらとか
エラーメッセージが出て、失敗してる。
コンソールで赤文字は
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [bundleresource://1080.fwk14070205:1/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [bundleresource://1080.fwk14070205:2/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [ch.qos.logback.classic.util.ContextSelectorStaticBinder]
と出てる。
パスかクラスか足り無そうなんだが、教えてください。
javax.xml.ws とorg.apache.xmlrpcで検証が必要で、
それぞれ
「制約がありません。インポートパッケージjavax.xml.bindなんたらとか
エラーメッセージが出て、失敗してる。
コンソールで赤文字は
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [bundleresource://1080.fwk14070205:1/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [bundleresource://1080.fwk14070205:2/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [ch.qos.logback.classic.util.ContextSelectorStaticBinder]
と出てる。
パスかクラスか足り無そうなんだが、教えてください。
327デフォルトの名無しさん
2017/07/17(月) 02:52:34.78ID:VDITljEv328デフォルトの名無しさん
2017/07/17(月) 03:37:01.80ID:7xO5Cpw7 パス重複だったらしい。 自己解決。
329デフォルトの名無しさん
2017/07/17(月) 03:37:50.02ID:7xO5Cpw7 >327 すいません。浅はかでした。ありがとうございました。
330デフォルトの名無しさん
2017/07/17(月) 12:40:31.01ID:BFuzhRNb うおおデコレータわかんなすぎワロス
331デフォルトの名無しさん
2017/07/17(月) 19:32:37.41ID:wLjexICy スポンジの生地を生クリームでデコレートするか、チョコクリームでデコレートするかみたいなもんだよ。
実装的には、連想配列のプロパティにでも、生クリーム、イチゴ、板チョコみたいに持たす感じか?
インタフェースを加えていくいう実装もあるけど。
実装的には、連想配列のプロパティにでも、生クリーム、イチゴ、板チョコみたいに持たす感じか?
インタフェースを加えていくいう実装もあるけど。
332デフォルトの名無しさん
2017/07/17(月) 21:30:04.53ID:/QULOYxM333デフォルトの名無しさん
2017/07/18(火) 03:05:16.09ID:tId1dkJr ↑
ひっでえサンプル
世の中にこんな実装するやついんのかよ
ひっでえサンプル
世の中にこんな実装するやついんのかよ
334デフォルトの名無しさん
2017/07/18(火) 07:27:40.82ID:nV7oRxMW >>333
すげえサンプル出せやハゲ
すげえサンプル出せやハゲ
335デフォルトの名無しさん
2017/07/18(火) 12:47:37.23ID:RUWZouC6 ま、デコレータは付加する部分を変えたクラスを作りやすくするパターンだからこんなもんでは?
たた、あまり必要ないような感じはするなあ。
付加する部分をパラメータで持たせてそれに応じて振る舞いを変えるようにするのがよくある作り方ではないか?
そうすると実行時に変更可能なようにも作れるしな。newした後で変えさせたくないならStringクラスみたいに変えられないように作ってしまえばいい。
たた、あまり必要ないような感じはするなあ。
付加する部分をパラメータで持たせてそれに応じて振る舞いを変えるようにするのがよくある作り方ではないか?
そうすると実行時に変更可能なようにも作れるしな。newした後で変えさせたくないならStringクラスみたいに変えられないように作ってしまえばいい。
336デフォルトの名無しさん
2017/07/20(木) 09:43:44.11ID:5w/wCnPB 以前VMの勉強してたときにJVMを作ったことがあります。簡単なやつで全機能を作ったら訳じゃないですが。ガーベッジコレクタの実装を検討してて、今の公式のJVMの実装に疑問を持ちました。
ガーベッジコレクタは、定期的にインスタンスの参照カウントが0のものを掃除していく作りになってると思います。定期的にではなく、即時に最後の参照がなくなった時点で解放すればいいんじゃないの?っ思いました。
ガーベッジコレクタの解放のたいみんぐが分からなくてfull GCが急に動いてシステムが不安定になったとかよく聞く話なんですが、今のハードなら都度解放でも問題ないくらい性能出せると思うんです。
何か問題あるんですね?
ガーベッジコレクタは、定期的にインスタンスの参照カウントが0のものを掃除していく作りになってると思います。定期的にではなく、即時に最後の参照がなくなった時点で解放すればいいんじゃないの?っ思いました。
ガーベッジコレクタの解放のたいみんぐが分からなくてfull GCが急に動いてシステムが不安定になったとかよく聞く話なんですが、今のハードなら都度解放でも問題ないくらい性能出せると思うんです。
何か問題あるんですね?
337デフォルトの名無しさん
2017/07/20(木) 10:28:21.35ID:lg4aQxIp 実際は、DecoratorとChain of Responsibilityはセットで使われることが多いような気がする。
どっちも委譲の典型的な使い方でしかない。
どっちも委譲の典型的な使い方でしかない。
338デフォルトの名無しさん
2017/07/20(木) 12:30:05.04ID:wo2Y+gw5 >>336
とりあえずOracle JVMのParallel GCについて話をすると、いちいち個々のオブジェクトの参照数カウントなんてやってない
New領域がいっぱいになったタイミングで初めてその時点の参照有無をチェックしてまとめてGCしてる
また、そのチェックするタイミングと実際に削除するタイミングで全スレッドを停止しなくちゃならん(Stop The World)
個々のオブジェクトに参照カウントをもたせて管理するような実装もできるだろうけど、
1つのオブジェクトのGCのたびに全スレッド止めてたらJVMの性能が落ちそうだし、
増える方はともかく参照切れを正しく全部拾えると思えないな
とりあえずOracle JVMのParallel GCについて話をすると、いちいち個々のオブジェクトの参照数カウントなんてやってない
New領域がいっぱいになったタイミングで初めてその時点の参照有無をチェックしてまとめてGCしてる
また、そのチェックするタイミングと実際に削除するタイミングで全スレッドを停止しなくちゃならん(Stop The World)
個々のオブジェクトに参照カウントをもたせて管理するような実装もできるだろうけど、
1つのオブジェクトのGCのたびに全スレッド止めてたらJVMの性能が落ちそうだし、
増える方はともかく参照切れを正しく全部拾えると思えないな
339デフォルトの名無しさん
2017/07/20(木) 14:37:16.68ID:WTimusIq 参照切れを正しく拾えないって、どんな時にそうなるんだ?
確か参照カウント使って参照されなくなったらメモリ解放する方式は Delphi でやられていたと思うが、特に問題なくできてたと思うぞ。
(これの場合はコンパイラがバグってなければ大丈夫だよな?メモリ破壊するようなのを自分で書いてしまった場合は別かも知れんが)。
確か参照カウント使って参照されなくなったらメモリ解放する方式は Delphi でやられていたと思うが、特に問題なくできてたと思うぞ。
(これの場合はコンパイラがバグってなければ大丈夫だよな?メモリ破壊するようなのを自分で書いてしまった場合は別かも知れんが)。
340デフォルトの名無しさん
2017/07/20(木) 15:41:49.66ID:Pts20rgO シングルスレッドだけなら参照カウントは比較的楽にできるかもしれんが
マルチスレッドの場合は参照カウントの読み書きは結構面倒くさい事になる。
マルチスレッドの場合は参照カウントの読み書きは結構面倒くさい事になる。
341デフォルトの名無しさん
2017/07/20(木) 16:01:16.55ID:wo2Y+gw5 >>339
あーごめんよ、自分が出来る気がしないだけ
変数がスコープを抜けた時に消すのはできそうなんだけど、null代入で参照切れるのをどうやって検出するのかなーと
JVMがやってる、とある時点のルートオブジェクトを起点として、参照を辿れないやつを参照切れとしてGCってのはわかりやすく感じる
あーごめんよ、自分が出来る気がしないだけ
変数がスコープを抜けた時に消すのはできそうなんだけど、null代入で参照切れるのをどうやって検出するのかなーと
JVMがやってる、とある時点のルートオブジェクトを起点として、参照を辿れないやつを参照切れとしてGCってのはわかりやすく感じる
342デフォルトの名無しさん
2017/07/20(木) 20:46:36.89ID:oF4/pY7+ >>341
> null代入で参照切れるのをどうやって検出するのかなーと
代入直前に参照先の参照カウントをひとつ減らす(で0になったら解放する)だけ
ちなみにnullならなにもしなくていいけど他のオブジェクトへのポインタが代入されたらそのオブジェクトの参照カウントをひとつ増やしておく処理も必要
なのでそこそこオーバーヘッドがある
とりあえずWikipediaでも読んでおくれ
https://ja.m.wikipedia.org/wiki/%E5%8F%82%E7%85%A7%E3%82%AB%E3%82%A6%E3%83%B3%E3%83%88
> null代入で参照切れるのをどうやって検出するのかなーと
代入直前に参照先の参照カウントをひとつ減らす(で0になったら解放する)だけ
ちなみにnullならなにもしなくていいけど他のオブジェクトへのポインタが代入されたらそのオブジェクトの参照カウントをひとつ増やしておく処理も必要
なのでそこそこオーバーヘッドがある
とりあえずWikipediaでも読んでおくれ
https://ja.m.wikipedia.org/wiki/%E5%8F%82%E7%85%A7%E3%82%AB%E3%82%A6%E3%83%B3%E3%83%88
343336
2017/07/20(木) 21:13:22.75ID:tg7itWDQ ありがとうございます。
参照切れのことを書いてくれてる人が多いですが、即時にでも後でGCが回収する場合でも、(被)参照カウントを減らすのは関数が終わっときか、例外が出たとき、代入したとき、など同じになるはずで、解放するタイミングが違うだけだと思うんですよね。
参照がなくなる契機となるニーモニックは沢山なかったとおもう。
(被)参照カウントを持たずに、GCが毎回全インスタンスがどのインスタンスを参照してるか見るってのは非効率な気がする。
オブジェクトの型を見てメンバー毎に参照先のリストを作る必要があるので。
参照切れのことを書いてくれてる人が多いですが、即時にでも後でGCが回収する場合でも、(被)参照カウントを減らすのは関数が終わっときか、例外が出たとき、代入したとき、など同じになるはずで、解放するタイミングが違うだけだと思うんですよね。
参照がなくなる契機となるニーモニックは沢山なかったとおもう。
(被)参照カウントを持たずに、GCが毎回全インスタンスがどのインスタンスを参照してるか見るってのは非効率な気がする。
オブジェクトの型を見てメンバー毎に参照先のリストを作る必要があるので。
344デフォルトの名無しさん
2017/07/21(金) 01:29:17.52ID:/4pPKaPJ FuiiGCで困ったことがない
345デフォルトの名無しさん
2017/07/21(金) 06:01:58.22ID:qElIELIq347デフォルトの名無しさん
2017/07/22(土) 21:36:50.77ID:ei2z0rG8 質問です
classを2つつくり、メインの方に身長、体重のデータを置いて、サブの方にbmi計算式(体重/(身長*身長))を置き、メインの方で結果を表示させるにはどうすればいいのでしょうか?
classを2つつくり、メインの方に身長、体重のデータを置いて、サブの方にbmi計算式(体重/(身長*身長))を置き、メインの方で結果を表示させるにはどうすればいいのでしょうか?
348デフォルトの名無しさん
2017/07/22(土) 22:57:54.04ID:ZFWxmOeg まずは入門書を一冊終えてきたほうが早いよ
そのレベルじゃ教えようにも言葉が通じない
そのレベルじゃ教えようにも言葉が通じない
349デフォルトの名無しさん
2017/07/22(土) 23:05:20.55ID:8Y5yDecp >>347
public abstract class Main {
public static void main(String[] args) {
Main main = new Sub();
main.height = 1.70;
main.weight = 70.0;
System.out.printf("%.2f%n", main.calc());
}
double weight;
double height;
abstract double calc();
}
class Sub extends Main {
@Override
double calc() {
return (double) weight / (height * height);
}
}
public abstract class Main {
public static void main(String[] args) {
Main main = new Sub();
main.height = 1.70;
main.weight = 70.0;
System.out.printf("%.2f%n", main.calc());
}
double weight;
double height;
abstract double calc();
}
class Sub extends Main {
@Override
double calc() {
return (double) weight / (height * height);
}
}
350デフォルトの名無しさん
2017/07/22(土) 23:28:37.15ID:ei2z0rG8351デフォルトの名無しさん
2017/07/23(日) 01:49:32.45ID:fe6G8h1C 質問というか学校の課題だな
352デフォルトの名無しさん
2017/07/26(水) 22:48:30.57ID:8fmFneIn Java 7環境(ラムダもストリームもない)でコレクションの操作を快適に行うにはどうすればいいですか?
例えばオブジェクトのコレクションからプロパティのコレクションを作るといったような操作のたびに似たようなループ構造を持ったメソッドを書いていますがノイローゼになりそうです
例えばオブジェクトのコレクションからプロパティのコレクションを作るといったような操作のたびに似たようなループ構造を持ったメソッドを書いていますがノイローゼになりそうです
353デフォルトの名無しさん
2017/07/26(水) 22:56:28.28ID:3xAC3WuT 仕事なら諦めて猿のようにループを垂れ流せばいい
どうせ労働時間で給料貰ってるんだろ?
当然そのループ生産作業も見積工数のうちなんだから、お前は堂々と工数をドブに捨てていればよい
どうせ労働時間で給料貰ってるんだろ?
当然そのループ生産作業も見積工数のうちなんだから、お前は堂々と工数をドブに捨てていればよい
354デフォルトの名無しさん
2017/07/26(水) 23:56:35.83ID:2f3a/WyT >>353
お前ループ書くのにどんだけ時間かかんのよw
お前ループ書くのにどんだけ時間かかんのよw
355デフォルトの名無しさん
2017/07/27(木) 09:50:32.28ID:omAmBQx1 Java8にするか会社を辞める
356デフォルトの名無しさん
2017/07/27(木) 09:55:00.85ID:Spup3DD1 ランタイムが7でないといけないだけならKotlinを使う手もある
357デフォルトの名無しさん
2017/07/27(木) 10:18:25.34ID:AWN4w2cc358デフォルトの名無しさん
2017/07/28(金) 18:32:16.77ID:eEp80kEw 似たような作業が続いていると感じた時はツールを作成する機会。
今後も延々とループを書き続ける予感がするなら、
ループ構造をもったメソッドを自動生成するものを作れ。
ツール作成の手間と延々手作業を繰り返す手間との比較結果次第で。
今後も延々とループを書き続ける予感がするなら、
ループ構造をもったメソッドを自動生成するものを作れ。
ツール作成の手間と延々手作業を繰り返す手間との比較結果次第で。
359デフォルトの名無しさん
2017/07/28(金) 18:48:58.94ID:8I0v3TDK ソース自動生成は最後の手段であり極力避けるべき
自動生成されたコードは次第に独り歩きを始め、あっという間にメンテ不能な巨大なクソの山の出来上がり
自動生成されたコードは次第に独り歩きを始め、あっという間にメンテ不能な巨大なクソの山の出来上がり
360デフォルトの名無しさん
2017/07/28(金) 19:22:14.69ID:eEp80kEw たしかに節操なしに無計画にやるのは駄目だね。
まあノイローゼになるような作業のアウトプット自体がクソのような気もするが。
自身の精神のメンテも忘れず仕事がんばれ>352
まあノイローゼになるような作業のアウトプット自体がクソのような気もするが。
自身の精神のメンテも忘れず仕事がんばれ>352
361デフォルトの名無しさん
2017/07/30(日) 16:55:36.37ID:0Cb6dJF4 asp.net coreやnode.jsのようにwebサーバー製品をインストールしないでhttpサービスを起動したいです
Javaでやるとしたらどんな選択肢がありますか?
Javaでやるとしたらどんな選択肢がありますか?
362デフォルトの名無しさん
2017/07/30(日) 17:05:18.76ID:9HwmeiiR Spring Boot
363デフォルトの名無しさん
2017/07/30(日) 17:19:15.12ID:R8a7M54F Tomcatをまずインストールします
364デフォルトの名無しさん
2017/07/31(月) 10:33:23.33ID:JAkcdpof ・ソケットとストリームを使って自作する
・com.sun.net.httpserver.HttpServerを使う
・com.sun.net.httpserver.HttpServerを使う
365デフォルトの名無しさん
2017/07/31(月) 14:24:42.85ID:mMpKpjgf 「ソケットとストリーム」の部分を見た瞬間なぜか「ソフトクリーム」の映像が思い浮かんだ。
やはり暑さは人を狂わせるな。
やはり暑さは人を狂わせるな。
366デフォルトの名無しさん
2017/08/02(水) 17:27:52.73ID:0dS/UshV ユースクリーム、アイスクリーム 郁恵
367デフォルトの名無しさん
2017/08/02(水) 18:12:52.74ID:ffXPJfae いまさら翼といわれても
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 ★10 [ぐれ★]
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 ★9 [ぐれ★]
- トランプ氏「台湾侵攻すれば北京爆撃」“過激予告発言”報道がXで再燃「高市氏の1億倍やばい」 [七波羅探題★]
- 「母の部屋に安倍氏が表紙の機関誌が」「(安倍氏が被害者なのは)不思議に思いませんでした」山上被告の妹が証言 ★2 [おっさん友の会★]
- 【ペルソナ・ノン・グラータ】中国総領事の早期国外退去を首相に要請へ 自民・保守系グループ「日本の尊厳と国益を護(まも)る会」 [ぐれ★]
- 【Jリーグ】モンテディオ山形 新スタジアム会員、募集停止 資金計画を再調整、年明け再開予定 [鉄チーズ烏★]
- 安倍晋三「円が300円になったらトヨタ車が3分の1で売れる。日本への旅費も3分の1になる。そうすればあっという間に経済は回復していく」 [177178129]
- 中国報道、高市首相を「毒苗」と中傷😡 [399259198]
- 【高市悲報】🇨🇳中国「日本への報復措置? 他にいくらでも方法はある。 まだまだやめないよ」 😨😱 [485983549]
- 【悲報】日本、パンダ0にwwwwwwwwwwww高市さんありがとう🐼 [271912485]
- 高市早苗、約1ヶ月でドル円・10円円安を達成 [256556981]
- 無水カレー作るんやが、何入れたら美味しい?
