Java入門・初心者質問スレ Part.4 [無断転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
2017/06/30(金) 22:14:16.54ID:W0OUnv8/
Java初心者のためのスレッドです。

※前スレ
Java入門・初心者質問スレ Part.3
http://mevius.2ch.net/test/read.cgi/tech/1491306071/
2017/08/30(水) 08:57:07.41ID:26KxM506
ユウナって1人だけドレコ4つなんやな
クラが3
他は全員2
2017/08/30(水) 09:15:08.90ID:j/drhsEx
Javaは1

smaller is better
407デフォルトの名無しさん
垢版 |
2017/08/30(水) 09:56:47.12ID:C4N26Ixh
>>403
Kotlinでもやってみなさい
2017/08/30(水) 10:02:14.08ID:jmJ2uPoL
コマンド覚えるレベルの超初級なのですが、コマンド入力したらマウスカーソルなど当てるとその意味を表示するようなソフトやウェブサイトありましたら教えてください。
2017/08/30(水) 12:03:19.87ID:2a6L+Efp
>>408
どんな環境で、何のコマンド?
まず用語からかな
410デフォルトの名無しさん
垢版 |
2017/08/30(水) 12:48:32.84ID:3eVDNogH
ググればいいような?

あ、そうだ。自分で作ればいいじゃん。
テキストファイルにコマンドと使い方書いといてそれ読んで画面にコマンド出しといてマウスカーソルが上に来たら使い方が出るみたいなやつ。
2017/08/30(水) 12:55:45.05ID:6un9/NsV
>>409
> 何のコマンド?
来いよベネット
2017/08/30(水) 14:51:36.52ID:2a6L+Efp
>>411
お前へのレスは最後にすると言ったな

あれは嘘だ
413デフォルトの名無しさん
垢版 |
2017/08/30(水) 21:03:40.59ID:vAN9hjOo
>>396
句点「。」と読点「、」だけど、逆だと思ってるひとは多い。
414デフォルトの名無しさん
垢版 |
2017/08/30(水) 21:06:32.18ID:vAN9hjOo
Javaプログラマはマルチスレッドにしなくてもいいのにマルチスレッドで作ったり、それぞれのスレッドで同じデータを参照、更新したがるから変なことになる。
415デフォルトの名無しさん
垢版 |
2017/08/30(水) 22:07:26.36ID:BAjgmjQJ
したがるかどうかは人による。
2017/08/31(木) 07:24:46.06ID:jBnRX0S+
>>404
それ真理だな
2017/08/31(木) 23:28:51.90ID:EcJJqLjf
質問です。
フィールド定数として下記のようなインスタンスを持つのはマルチスレッドプログラミング的に問題ありますか?

private static final Comparator<Date> COMPARE = new Comparator<Date>() {
@Override
public int compare(Date s, Date t) {
return s.compareTo(t);
}
};
418デフォルトの名無しさん
垢版 |
2017/09/01(金) 00:01:38.73ID:WY1jTmKi
>>417
その Date が java.util.Date ならそれ自体がスレッドセーフでないためにうまく動かない可能性がある。
Date のインスタンスを渡す側の問題だ。COMPARE.compare(s, t) のように渡すことになるだろうが、
この s, t が他のスレッドと共有されており尚且ついつ書き換えられるかわからない場合は比較している
最中に書き換えられる可能性がある。
2017/09/01(金) 00:02:44.96ID:WY1jTmKi
>>417
これも読んでみな。
http://www.atmarkit.co.jp/ait/articles/1412/16/news041.html
2017/09/01(金) 00:03:08.71ID:DL6ximvw
>>417
値が変化しないなら気にしなくておk
複数スレッドで書き換えるならvolatile付けとけ
2017/09/01(金) 00:18:20.76ID:WY1jTmKi
>>420
volatile 付けても複数のスレッドで同期取らずに書き換えるなら同じ事では?
2017/09/01(金) 00:25:43.65ID:mAYENdZK
用途としては、
class DateUtil {
private static final Comparator<Date> COMPARE = new Comparator<Date>() {
@Override
public int compare(Date s, Date t) {
return s.compareTo(t);
}
};
public static List<Date> sortDate(List<Date> dateList) {
Collections.sort(dateList, COMPARE);
return dateList;
}
}

こういうイメージです。
(sortするだけでわざわざreturnする必要ないかもしれませんが)

フィールド変数は、危ないかもしれませんが、定数COMPAREは、それ自身に、
インスタンス変数を持ちません。なので、こういう場合はスレッドセーフなのか気になりました。
2017/09/01(金) 02:21:00.03ID:WY1jTmKi
>>422
それ自身はスレッドセーフだが List も Date もスレッドセーフではないので
使う側で同期を取るか、または他のスレッドからアクセスされないように作る
必要がある。
2017/09/01(金) 04:51:05.87ID:rLv0uJJn
判定してる最中または後にt,sが示す時間が変更された場合か

スレッドセーフでないことをバグであるかのように見ている人がいるとやっかいそうだ
もうちょい誤解しにくい日本語訳ないかな
2017/09/01(金) 06:09:31.18ID:RTadbuNn
Ruby の作者の、Matz でも、マルチスレッドはやった事がない

普通、関数を書く時に、マルチスレッド対応で書く人は、いない。
誰も書いた事がないはず。
マルチスレッド対応で書くには、数十年の研究が必要

マルチスレッドどころか、コンテナでは、read 走査中に、
要素を追加しただけで、バグるように作られているものが、ほとんど

初心者がマルチスレッドをやるなど、30年は早い
2017/09/01(金) 06:55:47.73ID:s82kToZ5
マルチスレッドなんて簡単だよ
共有するデータはDBなどに集中させる
Javaでは基本的に共有しないでローカルコピーを使う
どうしてもJavaで共有したいならイミュータブルにするかスレッドセーフなライブラリを使う
2017/09/01(金) 09:53:20.19ID:Z9Fha70u
エンド - ユー子 - エージェント-JIET 公表価格 90~60 - エージェント×3 = 言い値50万以下
エンド - ユー子 - エージェント-JIET 公表価格 90~60 - エージェント×1 悪質な言い値で50万以下
エンド - ユー子 - エージェント-JIET 公表価格 90~60 - JIETに加入して公表価格で応募ができる
428デフォルトの名無しさん
垢版 |
2017/09/01(金) 10:17:49.06ID:bXCQIuYm
数十年も研究しなくても普通のプログラマなら数秒から数分で理解できると思うがなあ・・・
2017/09/01(金) 13:07:05.18ID:cnTQZK5F
普通のプログラマなら、プログラミングに関わるほとんどの概念は数分でマスターできるけど、ここ初心者スレだから、あまり簡単を強調しない方がいいかも
2017/09/01(金) 14:15:39.27ID:9fFcfHIv
数分で理解できるは
それはそれで嘘
2017/09/01(金) 18:12:54.04ID:e0+gOffZ
大企業様のオレオレフレームワークも数分でマスターできるのか
432デフォルトの名無しさん
垢版 |
2017/09/01(金) 22:28:02.34ID:fQM1CpIl
>>430
そうか?そりゃ余程へんな解説を聞いたかサンプルプログラムがサンプルと言えないほど複雑でクソだとかそういう特殊な場合ではないか?
2017/09/01(金) 22:37:22.34ID:9fFcfHIv
たとえば関数型プログラミングを
初見で数分で理解できたわーって
スラスラ書けるプログラマなんかほぼいない
2017/09/02(土) 00:06:17.15ID:wVJ/JGX4
マルチスレッドの話だろ?そんなの概念は直感でわかるだろ。
環境や言語やそのライブラリに応じて実現方法が違うだけで。
2017/09/02(土) 08:19:30.69ID:oilxAadu
直感で分かる言うひとと〜
すぐには理解できない言うひとの〜

想定してるもんがちがう〜

ちがう〜
436デフォルトの名無しさん
垢版 |
2017/09/02(土) 09:34:27.23ID:SHTItmsy
>>423
では、渡すパラメータがローカルメソッドから渡されて、かつフィールド等にセットされない変数なら
スレッドセーフが保証されるわけですか?
437デフォルトの名無しさん
垢版 |
2017/09/02(土) 13:46:02.16ID:5eH5prYD
>>436
スレッドセーフは保証されるよ
ローカル変数はスタックメモリに置かれてスタックメモリは
スレッドごとに独立してるから共有されないし
Comparatorは状態を持たないからね
438デフォルトの名無しさん
垢版 |
2017/09/02(土) 13:54:08.95ID:wVJ/JGX4
基本は他のスレッドから書き込みアクセスされる可能性があるかないかだ。
あるのならセーフではない。なければセーフ。それだけの話。
2017/09/02(土) 13:56:04.80ID:CJZVlBwp
ServletやAndroid書いてればマルチスレッド嫌でも使うだろ
2017/09/02(土) 14:14:01.88ID:LBbAGOgx
今さらdoxygenの存在知ったけど便利だなこれ
2017/09/02(土) 14:20:05.60ID:WRdQiCnk
一初心者として便利ツールの紹介は好き
442デフォルトの名無しさん
垢版 |
2017/09/02(土) 15:25:36.24ID:SHTItmsy
>>437
意味がわかりません。
そもそもなんでDateやListがスレッドセーフではない話が出てきたんですか?
443デフォルトの名無しさん
垢版 |
2017/09/02(土) 15:35:24.27ID:wVJ/JGX4
>>442
>>422で使ってるからだろ
444デフォルトの名無しさん
垢版 |
2017/09/02(土) 15:37:22.62ID:SHTItmsy
>>443
でもそれぞれフィールドに保持してないですよ。書き換わる要素はないです。
2017/09/02(土) 15:42:03.87ID:wVJ/JGX4
>>444
だからそれそのものはスレッドセーフだけど呼び出す側で他スレッドと共有されていたらダメってこと。
>>423に書いてあるじゃん。
446デフォルトの名無しさん
垢版 |
2017/09/02(土) 19:36:29.61ID:5eH5prYD
>>442
意味はわかるでしょ
2017/09/02(土) 23:20:40.52ID:9OEMTqr3
Elixir = Ruby + Rails + Erlang VM

Elixir は関数型言語で、状態を持たない

Elixir で並列に動く、小プロセスはデータを共有しない。
10万の小プロセスを、0.6秒で起動できて、すべてのCPUコアを使いつくす

これで、スレッドと状態を持つ地獄から、おさらば!

プログラミングElixir、2016
著者は「プログラミングRuby」のDave Thomas
448デフォルトの名無しさん
垢版 |
2017/09/03(日) 11:52:47.70ID:jl0cf3RS
( ´_ゝ`)フーン
449デフォルトの名無しさん
垢版 |
2017/09/05(火) 22:34:26.22ID:dK4j6KND
Q: Javaプログラマはなぜメガネかけてるの?
A: 彼らくっきり見えないんだよ。(can't see sharp(C#))

https://pbs.twimg.com/media/DIy2ilnW4AEcHJB.jpg
450デフォルトの名無しさん
垢版 |
2017/09/05(火) 23:36:08.39ID:2RdPD3ce
まあ確かに俺はC#はできない。
かといってこれから覚えようという気も起きない。
というかそもそもJavaプログラマではない。少なくともJavaを使う仕事が俺には回ってこない。
2017/09/06(水) 08:50:03.33ID:s40IHHjR
>>450
なんでこのスレでなにかを発言しようと思ったの?
2017/09/06(水) 16:07:34.90ID:d2I5RN1E
太陽が黄色かったから
2017/09/06(水) 17:29:08.76ID:xQN3sZSb
まさに異邦人
454デフォルトの名無しさん
垢版 |
2017/09/06(水) 19:06:07.94ID:4TLv3in6
異邦存在
2017/09/07(木) 07:19:13.27ID:MB/dyp5b
C#はJavaのパクリなんだからその気になればすぐ使える
というとC++のパクりだろって言われるだろうがな
2017/09/07(木) 07:19:55.34ID:MB/dyp5b
>>454
寝ないで働け
2017/09/07(木) 07:40:42.73ID:KHq0qyGq
>>455
問題なのは言語じゃなくてFrameworkだろ
まあJavaは最近c#に比べて周回遅れだが
2017/09/07(木) 08:27:53.25ID:MB/dyp5b
>>457
フレームワークなら同じ言語内でもある話だろう
phpの乱立に比べれば問題ないんじゃないか
2017/09/07(木) 10:53:40.12ID:KHq0qyGq
>>458
phpよりマシってのは同意
「すぐ使える」ってのがチュートリアルをこなせる程度って意味なら同意
2017/09/07(木) 22:29:15.27ID:d5zBqoup
spring bootがあるからJavaから抜けられない
2017/09/07(木) 23:45:33.37ID:1h1pdgP4
Javaはdotnetに比べるとめんどくさすぎるよ
未だに環境変数手動設定なクソSDK
キモい文法のビルドスクリプト
不親切でわかりにくいOSSエコシステム
何がどこに入ってるかわからんパッケージシステム
異様な量のxml設定ファイル
コンテナ・フレームワーク・基本ライブラリの粗製濫造
古くさい冗長な文法
周回遅れで導入される言語機能
アプリケーションの実装に集中する前にもうクタクタ
2017/09/07(木) 23:57:47.43ID:+0O7yqRr
質問です。
https://ideone.com/9lWtPU
上のコードで、addメソッドはString型を返すはずですが、
printlnメソッドの()内に""が無くてもよいのは何故でしょうか?
2017/09/08(金) 00:46:12.18ID:DUdklaUQ
メソッドにはダブルクオートはつけない
変数にもつけない
つけるのは直書きしたときだけ
2017/09/08(金) 07:18:41.58ID:Wk+L2KG3
>>461
アホ乙
アホには使いこなせないのがJava
2017/09/08(金) 07:50:37.46ID:WW306MqY
無駄な工数払うほうがアホだろ
ボランティアじゃねえぞ
この感覚が正しいからspring bootみたいなお手軽ブートストラッパが大流行したんだよ
2017/09/08(金) 07:52:51.24ID:Wk+L2KG3
工数に入れてる時点おまえはただの糞馬鹿
お前の言ってることなんて工数の内にも入らん
よって馬鹿には使いこなせない
2017/09/08(金) 07:54:31.54ID:WW306MqY
>>466
なんだ学生か
2017/09/08(金) 07:54:43.84ID:ulxG92DJ
spring bootはマジ神だからな
2017/09/08(金) 08:02:03.53ID:Wk+L2KG3
工数にもならない程度の作業をラッピングされただけでありがたがるような馬鹿だと
どの道問題起きたときに苦労するからJavaでの作業は向いてない
ラッピングされてるってことは単に馬鹿用に端折ってブラックボックス化させてるだけだしな
bootのデフォルトで使われてるコンテナすら理解してないレベルだろお前等は
馬鹿が内製向けのツールを作る分には楽になるだけって話だな
よって馬鹿には使いこなせない
2017/09/08(金) 08:16:52.81ID:WW306MqY
>>469
こういうバカがDRY無視したコピペコードを大量生産するんだよなぁ
基本中の基本すらわかってない本物のバカオブザバカ
2017/09/08(金) 08:18:36.31ID:vdK1eJ8T
馬鹿でも使えるほうがいい言語なんじゃないの
2017/09/08(金) 08:21:08.55ID:idaiwuG/
>>464
アホに使えてしまうのもJava
2017/09/08(金) 08:23:17.47ID:Wk+L2KG3
Javaも使いこなせない馬鹿が反論できなくなって発狂
いつもパティーンやな
お前みたいな馬鹿がグラマってるから巷に馬鹿が溢れかえるんだよ馬鹿
おまえはVBでも弄ってろアホ
2017/09/08(金) 08:28:41.76ID:qZqUAf36
>>473
>パティーン
なにそれ?
2017/09/08(金) 08:34:27.38ID:idaiwuG/
>>473
パツキングラマーはバカに決まってんだろ

おまえの行く末はおまえが決めればいいけど相手を見下すだけの方針は息苦しくなるよ
本当の天才と相対したら死んでしまう
2017/09/08(金) 08:39:54.26ID:GQrkfHCd
>>474
パトーンのことだろ、察しろよ
2017/09/08(金) 08:40:59.78ID:GQrkfHCd
>>475
お前はJavaを頑張れ
2017/09/08(金) 08:41:48.47ID:UV7+A1Tq
>>461
新しいものが出る度に乗り換えて、
客の環境も入れ替えさせるの?
趣味なら好きなの使えばいいんじゃないかな
2017/09/08(金) 08:43:06.63ID:GQrkfHCd
>>470
ドライ原則って便利ですね
2017/09/08(金) 08:43:27.56ID:LGv6EQ1D
はやく出勤しろ
2017/09/08(金) 08:46:08.95ID:GQrkfHCd
発進!
2017/09/08(金) 08:47:48.15ID:GQrkfHCd
>>478
一番新しいものが一番安全
僕らがStrutsから学んだことだぬ
483デフォルトの名無しさん
垢版 |
2017/09/08(金) 09:33:28.93ID:YQG2/F8+
>>476
それ何?
2017/09/08(金) 10:37:24.50ID:UV7+A1Tq
>>482
永遠にベータ版使ってろよ
2017/09/08(金) 12:23:28.78ID:bQ6+nW/r
>>483
パワーストーンの略だ
2017/09/08(金) 12:23:56.74ID:bQ6+nW/r
>>484
そこまで極端な話してへんわ!
2017/09/08(金) 15:22:03.99ID:UV7+A1Tq
>>486
つまり新しいことと安全なことは関係ないと
2017/09/08(金) 17:54:25.21ID:47K+oTLF
>>487
それって極端な事言って議論を破壊する詭弁じゃん
2017/09/08(金) 17:54:56.15ID:47K+oTLF
詭弁屋さん詭弁を1つくださいな
2017/09/08(金) 17:56:20.40ID:47K+oTLF
ゴジラ対ディスカッションデストロイヤー
2017/09/08(金) 18:07:02.95ID:47K+oTLF
ベータ版と比較して安全とか馬鹿だと思います
リリース版と比較すべきでしょう
ベータ版の意味知らないのかなって思いますよ
2017/09/08(金) 18:08:25.14ID:47K+oTLF
ベータ版ってつまりヤクザですよね
2017/09/08(金) 19:07:17.23ID:G9suUG3Z
初心者はいずこに
2017/09/08(金) 20:01:44.60ID:idaiwuG/
ID:47K+oTLFみたいな屁理屈さんが初心者を排除してるよ
495デフォルトの名無しさん
垢版 |
2017/09/08(金) 20:07:19.09ID:eQ2MXiWZ
>>494
お前はJavaを頑張れ
496462
垢版 |
2017/09/08(金) 20:26:50.43ID:4h/TeiTo
>>463
ありがとうございました。
2017/09/08(金) 23:42:49.77ID:1UQsqClt
現役のプログラマの人がいたら意見を聞かせて欲しい
新人が入ってくるとしてどういうことを身につけておいて欲しい?もちろん会社によって求められる技術が違うのは分かっているんだけど
今職業訓練中。こんな風に書くとお前の才能無いの人のせいにするなとか言われそうだけど、講師がひどすぎる。クラス全員置いてけぼりでみんな困ってる
だからもう自分で入門書読んだりしてなんとか文法勉強してるんだけど、そこから先も一人で進めるかは不安。どういう勉強をしていくのが今求められる人材になれる?
2017/09/08(金) 23:51:00.20ID:idaiwuG/
>>497
知ったかぶりをせず人に聞ける程度のコミュ力

極論プログラム書けなくても現場で書ける人と繋がれたらいつの間にか書けるようになってるんだから小手先のスキルは後で良い
2017/09/09(土) 00:08:04.32ID:5ixV4zFS
JUnitを覚えろ
アルゴリズム一つ作るごとにテストケースを作って動作が正しいことを検証しろ
テスト駆動開発は理解も深まるし業務でJava使うような堅い職場はJUnit使えると必ず役立つ
2017/09/09(土) 01:25:00.19ID:IT7jkcdD
>>498
「先輩、オブジェクト指向って何ですか?」
2017/09/09(土) 01:28:15.56ID:Sn7cakJv
>会社によって求められる技術が違うのは分かっている
お前のただの妄想

>講師がひどすぎる
酷すぎる理由が一切書かれてない。読み手はお前の被害妄想としか受け取れない

>入門書読んだりしてなんとか文法勉強してる
書いてる内容を3日で理解できないなら諦めてコンビニバイトでもしろ
そんな低次元の知識は仕事で必要な知識量の1/100にも満たないからな

>人に聞ける程度のコミュ力
1日に何回も聞く奴はウザがられる

>JUnitを覚えろ
時間の無駄
2017/09/09(土) 04:49:25.98ID:Si3y5SDY
生徒についてはここでは触れないが、
酷い講師がいることは事実。

ある言語の教室に、その言語を全く知らない講師が来たのは震撼した
応募してきたクズも採用した教室も絶対に許さない
503デフォルトの名無しさん
垢版 |
2017/09/09(土) 06:04:46.60ID:sPhDSaTF
>>501
>お前のただの妄想
>書いてる内容を3日で理解できないなら諦めてコンビニバイトでもしろ
>1日に何回も聞く奴はウザがられる
>時間の無駄

>酷すぎる理由が一切書かれてない。読み手はお前の被害妄想としか受け取れない
と否定する割にお前の主張に根拠がないんだが
2017/09/09(土) 06:12:48.38ID:xjITUSuv
>>488
UbuntuのリリースはDebianのベータを元にしてるな
つまり新しいかどうかでなく、品質を確保できているかどうかだ
そして新機能追加したばかりだと必ずバグはある
多くの人が使い枯れて安全となる
もちろんフィードバックがされないような状態はダメだ
ころころ変わるようなソフトは危険ということだ
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況