javaの気に食わないとこがあるんだが・・・ [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
配列宣言で2回も型名書く意味が分からん
例えば↓
int[] a; //配列変数宣言
a = new int[5]; //要素数5
intって2回もいう必要なくね?
c言語からやったから,気持ち悪く感じるんだが
int a[5]; //c言語 Javaはよく知らんけど、宣言した型とは違う型の配列をnewしたいときあるからじゃね? >>2
どういうことだ
int[] a;
a = new double[5];
ってことができるのか?あとから宣言したものが優先される的なこと? >>4
その宣言も同じ意味やけど,結局intって2回言ってるやん >>5
一方は変数の宣言、一方はオブジェクトの生成
宣言と生成をわけることができるんやねん
C言語やとでけへんやろうでんがな 俺も最初は違和感あったけど、林晴比古の本読んだらなんとなく2回記述するのに納得したんだけど、今では何で納得したのか忘れてしまった。 >>6
分けるメリットを教えてくれると助かる
マジでわからん >>10
必要なときのみメモリ確保するんで
比較的大きいデータを使うとき効率が良いよ
あとポリモーフィズムができる
C言語では動的メモリ確保に当たるかと
int *ptr = (int *)malloc(sizeof(int) *1024);
C言語でも2回書くよね
3回書いてるけど javaは参照型変数なんで、cのnewと同じ
つまり、cで全ての変数でポインタ使ってるのと同じ >>11
>>12
なるほど
ポインタって考えればいいのか,納得しました.
ありがとう >>10
特に無いから型推論とか出てきたんじゃないの?
初期の構文解析上の都合とか。 >>14
なんかそういうものとして覚えて進めていきます.
ありがとう >>3
親クラスで宣言しておいた変数に小クラスのインスタンスを入れることってできないの? 親クラスにprivateで宣言した小クラスの型変数に、setter使って小クラスの型変数に格納した値を入れるのはよく使うんじゃない? 理由なんて無い
それがJAVAだ
気に食わないなら触るな いや、CやC++から入ると確かに違和感ある。
二度手間のような気がしてしまう。
上のレスを見るとちゃんと理由があるみたいだけど。 .NETなら省略できるよね
C#
var a = new int[4];
VB.NET
Dim a(4) As Integer
Javaが前時代的としか サイズの決まった配列なんて、ここ数年使った事ないや・・・ まあ、Javaは大きなプロジェクトになって始めて効果があるって言うからな >>16
int[]とdouble[]は継承関係? 文法もそうだけど
Javaの配列周りの仕様はごちゃごちゃしすぎで初心者に教えるのが大変
Listとかのが仕様単純じゃねーの >>25
他の言語の配列まわりの仕様よりJavaがごちゃごちゃしてるところって例えば? >>27
25じゃないけど個人的にはプリミティブ型の配列をnewで生成しますっていうのが既に酷い
後>>1と同じで型宣言うっとおしい。ハッシュマップとか初期化だけでどこまで伸びるんだよと >>28
> プリミティブ型の配列をnewで生成しますっていうのが既に酷い
格納する型がプリミティブでも配列自体はオブジェクトなんだから別におかしくないと思うけど。
参照型の配列はnewしてプリミティブ型の配列はnewしないって仕様の方が好ましいわけ?
> 型宣言うっとおしい
それは配列の問題じゃないよね? >>31
配列がオブジェクトなのがどうなのって話でしょ var intもint intも宣言2回してるのには変わらんよな。 というか、配列使わなくね?
なんか便利なコレクションクラス使うでしょ
速度求めるならJavaなんて使わんし >>37
書くときは楽だが他人のコードを後から追いかけるときに面倒なんだよIDEの支援受けてても
C#って後から他人が読むこと意識してないなってコード多い
ラムダ式もやたらめったらに使ってたりとか >>38
データを扱う場合は、配列なんてまず使わないね
リストの代わりに配列使ってる奴が書いたコードは全てがおかしい
arr[arr.length - 1] なんちゃらとか正気の沙汰ではないね 速度はそんなに求めはしないが
ほんのちょっと画像データを扱いたい場合も結構ある。
FAXを受信して、ちょっとノイズだけ消したい場合とか
商品画像の背景色を透過させたいとか
ちょっとクリップ処理したいとかリサイズしたいとか。
gmagick入れる程じゃないけど、みたいなのがちょくちょくある。
配列とかガンガン触るよ。 型推論var入れろ
ジェネリクスの共変反変サポートしろ
プロパティつけろ (コンソール)出力は一行なのに、入力がクソ面倒くさいとこ。 >>51
まさか入力を受け取るコードをいちいちコーディングしてんの?
自分のライブラリを持つという発想がないなんてプログラマ失格じゃん System.out.printlnごときで自前のライブラリ使われてたら発狂する >>53
それ出力じゃ
入力って文字受けとる方じゃないの >>52
そんなに言うなら独自の入力メソッドのプロトタイプと書式をうp メソッドのプロトタイプと書式ってなんだ!?
ボクちゃん初めて聞きました! プロトタイプはまだわかるけど書式ってなんだよマジでw
俺々用語をそうだと知らずに人前で使っちゃうなんて、ほんとド素人なんだね >>58
書式は雛形やフォーマットのことだよ
一般的だと思うけど
自分が知らないからって批判しない方がいいと思う
だってお前がバカなだけじゃん
脳ミソ詰めてくれなったお母さんを恨むべきだと思うよ
なんでお前の母親はお前を産んだの?キチガイババアなの? >>57
知らないこと偉そうに言わないでもらえるかな
聞いてるこっちが恥ずかしいよ
お前のような愚鈍な生き物が淘汰されずに
生き残る人間界に限界を感じるわ もう止めてくれ…
俺を叩くのも、それをまた叩くのも(敵の敵は味方だが)
俺がテキトーに言葉を使ったのがいけなかったんや…
じゃあもっと簡単に、>>52が言う、(本来の)コンソール入力に代わる独自の入力メソッドのアルゴリズム(もしくはSPD)を教えて下さい。おなしゃす。 C言語専用の用語が、万能だと思ってる漢の人って・・・ イケメンプログラマ「入力ライブラリのAPI仕様を教えていただけますか?」
屑プログラマ「入力ライブラリのメソッドのフォーマxtト、しょシィ気!!」 あらま、無駄に荒れてるわね。
私は20年以上Javaをやっていますが、由緒正しいJavaプログラマは、プロトタイプ(宣言)という用語は決して使わないと思うのです。
ここはJavaスレですよ、皆さん。 >>65
API仕様wwwwイケメンでも残念すぎるわ API仕様ってなんすか?オレオレ用語で言われてもわかんねっす Serial Presence Detect
Structured Programming Diagram
Supply Processing Distribution >>66
だからそれはハンセーしたってば。Javaならではの言い回しがあるんでしょ?
>>71
フローチャートみたいなやつ。 >>73
ちょっとぐぐってみたんだけど、NECがなんとかってやつ?
だとしたら、そんなローカル記法なんて知らねえよ
共通語彙で話せっていう意味がほんと理解できないんだな >>75
SPDはローカル記法じゃないでしょ?
わかりやすいJavaという本に載ってたぞ。 Javaの世界に、他の言語から流れ着いたおかしな輩が流れこんでいるのが、このスレを見てよく分かった
5年前に脱出して本当に良かったです COBOL、VB、Java、Rubyっていうのが事務系ITの流れ
ネットや書籍じゃ情報が出てこない上に
米国などと流儀が違うので英語厨も沸かず
ローカルルールが発生しやすい >>80
主にNode.jsとRuby on Railsですよ
SIerでは、JavaでWebばかりやってたので、自然の成り行きです
開発はLinux上なので、周りの技術者とも意気があって大満足です
SIerやMS系に近い技術とは距離を置くようにしてます >>81
今やNodeやRoRよりASP.NET MVCのほうが生産性高いよw >>82
Windowsサーバでしか動かないんじゃ・・・ >>81
エディタとかどうしてる?Vim?
カスタマイズしまくらないとVSの足元にも及ばないと思うけど、どうやって生産性上げてる?w >>85
仮想マシンはあってもサーバがないんじゃ・・・ 生産性は有史以来ずっとMSのほうが高いでしょ
Linuxは金がないやつが使うおもちゃだよ MSから距離置いてるってことは、TSも使ってないんだろうなー
もったいないと思うけど、まぁJSで大規模な開発しない人ならvanillaで十分か >>87
bash on windowsもあるし
MSはLinuxにも投資してるんだよね
.NET製のWebサーバが増えるのを期待したい >>90
そんなこと言ったらマツタケのスレでおちんぽの話しちゃいけないのかってことになるよね?(迫真 >>89
Azureへの投資であって
Linuxに投資してるわけじゃないけどな GitHubを知らない人、聞いた事はあるが何か分からない人がSIer(笑)には沢山いるぞ 大手だと自社製のバージョン管理ツールぐらい持ってるからな >>98
ダサいダサくないに素人も玄人もあるかよ。 出版社のHPからサンプルDLしてみた
ダサいと思う
なんか臭ってくるコード >>100
ド素人は意見しちゃいかんのか?
>>101
臭うとはどういうこと? 新人研修に使うのにいいテキストないかと思って入門書を物色してたんだが、
わかりやすいJavaのコードは本当にダサかった 初心者にも分かりやすくしてるから仕方ない
それをエレガントに書き直すのもいい練習じやないかな? ダサいがわかりやすい文か、カッコいいが難解な文か。 問題なのは本に書いてあるからといってそれを社内標準とか言い出す
万年初心者みたいな会社 本に書いてある原理原則と
社内にのさばっている悪しき習慣と
誰も反論できない新人の主張
おまえらまともな仕事しないよな >>108
カレー味のカレー、じゃないが、その2つは両立しないのでは? 変数名がローマ字読みで、しかも綴り微妙だと最高に格好悪い >>113
変数名は全部英語で書かないといかんのか? >>114
こだわりがない人はなんでもいいよ
お好きにどうぞ var hensuu1 = 0;
print "halou waldo" 変数を英語で書くと悲惨なことになるからやめとけ
プログラマなんてロクに英語ができないんだから
英語縛りにするとWebで和英辞書を調べた程度の適当な単語ばかりになる
専門用語は使い分けが難しいんだから、間違うぐらいなら日本語を使ってくれ 残念ながらTOEICは専門用語ほとんどカバーしてない >>117
職場にそういうバカが居て困ってる
知りもしないのにググって出てきた訳を盲目的に使うから
たいてい間違ってる 対象の業務の専門書をAmazon.comで数冊買って目を通しておけば、ネーミングで困ることはそんなにないよ 本じゃないけどcodic.jpとかは?
あとは「○ 英語 用語集」で検索かければまとめサイトが見つかる あ、○の所は会計だとか製造だとかの業務に関する言葉ね 最近、2バイト文字の変数もありかなと思ってる
下手な英語よりは日本語(全角)の変数のほうがわかりやすい
実際やってみるとコメントの量も減るし良い事しかない
新規コーディングは打鍵数的な意味でちょっと面倒だけど、保守だとあまり関係ない >>126
俺もときどき日本語使ってるよ
似たような業務用語があって細かい違いを英語で
表現できなさそうなときは日本語にした方が保守しやすいよね 業務用語は英訳せずに日本語(ローマ字)が多いかな
例えば架空の用語「特盛」って用語があった場合、
is_tokumoriって変数名にする
敢えて is_extra_large とかにはしないかな
そういうの以外は基本的に平易で(正しい)英単語を使う あ、データベース上のカラム名で既に extra_large が使用されている場合は
プログラムでもその単語使うけどね javaだってDB使うだろ…
まあ良くできたORM使ってれば意識しないかも知れないけど 良くできたORマッパーってツチノコみたいなもんというイメージ 風俗にいくとよく「ツチノコみたい」って言われるけど
ORマッパーみたいだと思われてるのか! 結局、equalsの使い方ってどちらが正しい?現場で今もめてるんだが
定数.equals(変数)
変数.equals(定数) >>139
それはどちらが基準の処理なのかで変わる。
変数と言ってるものが、メソッドの引数なら普通は後者。 >>139
どっちが基準の処理とかそんなのあまり関係ないね
変数がnullの可能性が十分にあるのなら、前者も有りってくらい
通常は後者でいい(前者は可読性よくない)
ただ、前者を使うくらいなら、メソッド冒頭でnulを弾く方がずっと親切
ちなみに、変数がnullの可能性を考えすぎて、常に前者で書こうとする人いるけど、それもおかしい
そこまでnull怖い・・・になると、通常のobject.method操作も危険!という事になって
全ての所に(object != null)とかつけはじめる病気 「メソッド冒頭でnullを弾くって」のは間違えた
「変数に対してequalsする前にnullをif文で明示的に弾く」って言いたかった >>1じゃないがJavaって配列の宣言面倒くさ過ぎ。
ルールが細かいんだよなあ。 languageと言語が重複しているのを言うべきか言わざるべきか・・・ >>141
定数が定義されてるなら前者でいいだろ
このレベルの書き方の違いで可読性なんてそんな変わらん >>141
> ちなみに、変数がnullの可能性を考えすぎて、常に前者で書こうとする人いるけど、
ノシ
ゴメン マ板では化石みたいな古いネットスラングが横行しているのを知らんのか ネットスラングも一般化しすぎて何が古いのかよくわからんなw >>141
null怖いっていうか弾けば済むだけの話でnull例外なんぞ発生されても面倒くさいだけだろ
特に文字列はオブジェクトよりも変数よりの使われ方をしてるし >>155
そこらじゅうに付けるバカがいるんだよ
多すぎて本来の処理が見えなくなるくらいに >>156
(object != null)はともかく定数.equals(変数)にケチつける理由にはなってないぞ こんなレベルの処理にcatch処理いちいち入れることこそあり得ないわw
どんだけソース汚くしたいんだよ可読性どこ行ったw >>159
だから仕様でありうるのか、ありえないのかだろ。
どういうレベルなんだよw 関数全部をtry catchで囲むのがプロのたしなみ Javaでポインタから解放されたと思ったら、しっかりアドレスの概念が存在しました(クラス型・配列型・インタフェース型)。 >>163
C/C++のポインタは実アドレスで、さらにそのアドレスをたどる実装があだとなっていた。
ポインタそのものは難しい概念ではない。 i * i
int*
*i
/*
全部意味が違います
文法がややこしすぎる 言語使用なんぞどうでもいいが、ランタイムに広告乗っけるようになってからもう駄目だと思ったわ。
セキュリティスッカスカ >>172
「ランタイムに広告」って何?
java実行中に広告でも出すなら凶悪だな・・・ JREのインストール中のアレかな?
ランチタイムの広告って見えてしまった
俺が駄目だわ 確かサードパーティでjavaでもvarが使える奴があったはず
使ったことないけど List a = new ArrayList();
みたいなのと一貫性取れてていいだろう なんかセキュリティが駄目じゃないとCIAとかが普及させてくれないっぽい
しっかりしたとこほど率先してつぶされる LL言語っていうのか、俺はパー系言語って呼んでる。 Cはメモリをスタックに確保するかヒープに確保するか識別する必要があるからそう書くだけ C 無法地帯
C# 温泉宿
Java ドイツ帝国
C++ 誰も理解してない スクリプト言語だと
Rubyサーカス
Perlポストアポカリプス
Python宗教法人
Scheme遺跡
みたいなあたりになりそうだな >>139
そんな時はstringutils.equalsを使えば安心 誰でも簡単にパソコン1台で稼げる方法など
参考までに、
⇒ 『宮本のゴウリエセレレ』 というブログで見ることができるらしいです。
グーグル検索⇒『宮本のゴウリエセレレ』
FE1M0PSS2X ☆ 私たち日本の、改憲を行いましょう。現在、衆議員と
参議院の両院で、改憲議員が3分の2を超えております。
『憲法改正国民投票法』、でググってみてください。国会の発議は
すでに可能です。平和は勝ち取るものです。お願い致します。☆☆ とても簡単な自宅で稼げる方法
参考までに書いておきます
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
6RBZW JavaerがOpenJDKに移行すりゃええ、と嘘ぶく弊害 ■ このスレッドは過去ログ倉庫に格納されています