JAVAってこんなことも出来ないの?

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2007/05/19(土) 22:13:03
mainメソッドから値を返す。
2011/07/05(火) 01:39:52.76
>>396
俺、>>395だが、
このこと(参照渡しもでそもそもポインタがないことを自慢してた)
には触れてはいけなかったかな?
それとも、2chのお決まりに従って「ガッ 」してくれたのかな?
でも、俺と同じように疑問に思う人はいないのかな?
2011/07/05(火) 01:55:33.14
>>397
普通に考えりゃ脊椎反射だw
2011/07/05(火) 07:53:49.23
>>397
名前欄嫁
2011/07/06(水) 20:02:31.08
>>398
>>399

>>397です。不注意でしら。すみません。

でも、俺、普段から思ってるんだけど、JAVAってポインタに類するものは
危険だからって、参照渡しまで禁止しておいて、NullPointerExceptionが
発生するような言語のどこが、主義に一貫性があって、言語に整合性が
取れてて美しい言語なのか・・・・理解できない。
それに、値型でも参照型でもいいけど、引数の参照渡しが危険で、
参照型の値渡しが安全っていうのも理解できない。
(引数渡しの中で一番危険なのが、参照型の値渡しだと思うが・・・。)
誰か、JAVAのどこに一貫性があって、整合性が取れてて、美しい言語なのか
説明してください。
結論は、JAVAでできないこと=JAVA(言語)の設計思想の一貫性について
納得のいくような説明をすること。
長文ですみません。
2011/07/06(水) 20:04:08.63
JAVAでできないこと。
ボタンなどのイベントハンドラを柔軟に簡潔に記述すること。
(匿名インナークラスでべた書きなどは論外)
2011/07/06(水) 22:17:42.28
>>400
「(C++の)ポインタを使った配列アクセス」が危険だから廃止
 →これは実際に効果あったんじゃない。パフォーマンスの若干の低下と引き換えにバッファオーバランはなくなった

「参照渡しと値渡しと値のポインタ渡し」が低能にはわかりにくいから一つに統一
 →参照渡しはなくてもよかったが値渡しとポインタ渡しは選べるようにしてほしかった
 →実際プリミティブ型とそれ以外では動作が違うわけだから、この点に関しては一貫性はないな

刃物みたいなC++を安全カミソリにしようとしたのがJavaであって、それは成功したといえると思う
2011/07/06(水) 22:57:30.53
そしてjavaで「これ、削り過ぎで不便」って所を入れてC#になる訳ね
2011/07/06(水) 23:02:57.38
>>402
あなたが言わんとしていることはなんとなくわかるが、でもJAVAの設計思想
はやっぱりおかしいと思う。
たとえば、あえてVB.NETを例に出すけど、参照渡し、値渡しはサポートし、
ポインタを使った配列アクセスは禁止してる。
で、(あくまでこの部分だけを取り上げると)JAVAとVB.NETを比べたとき、
どちらが(プログラム的に)安全で将来性があるかと考えると、
安全性ではほぼイコールで、将来性では、VB.NETに軍配があがると思う。
(たとえば、JAVAのGENERICとVB.NETのGENERICの実装を比較するとよくわかる
と思う。)
こんな不利があるのを承知の上でセールストークのためだけに引数の参照渡し
を禁止しておいて、NullPointerExceptionなんてエラーが発生する矛盾を作っ
てる言語の設計思想が理解できないわけで・・・。
ちなみに、VB.NETよりもやっぱりC丼のほうが言語仕様的には優れてると思う。
(参照渡しの場合、呼び出す側にも呼び出される側にも参照渡しを示すキーワード
が必要だというのは、いいと思う。)
まあ、ヘジとゴスの器の差というところだと思うけど。

後、自分の恥をさらすけど、
参照渡しと値のポインタ渡しの違いが理解できないんで、教えてもらえると
ありがたい。
個人的には、引数の種類と渡し方の違いで、
・値の値渡し
・値の参照渡し
・参照の値渡し
・参照の参照渡し
の4種類があると思ってるんだけど。
で、一番危険なのは、参照の値渡しだと思ってる。(動きが中途半端だから)
このなかでJAVAのように(安全な言語仕様にするために)2つ禁止するなら、
1.参照の値渡し
2.値の参照渡し
の順だと思うけど。
2011/07/06(水) 23:04:44.53
>>404です。
いまさらながら、長文すみません。
2011/07/06(水) 23:14:13.70
どちらかというと、危険なのは>>404だな。
2011/07/06(水) 23:35:31.62
>>404
>1.参照の値渡し
これを禁止されたらかなり痛いな。機能的には参照の参照渡しだけで問題ないが
2011/07/06(水) 23:45:12.42
痛いのは>>404だな。
2011/07/06(水) 23:45:17.60
>>406
すみません。以後、長文気をつけます。
>>407
俺、>>404だけど、禁止するべきとは思ってないです。
どうしても2つ禁止するならってことで・・・。
でも、参照の値渡しって、呼び出し先での参照の属性の変更は
呼び出し元に反映されて、参照そのものに対する変更は
呼び出し元に反映されないってのは中途半端な気はしませんか?
2011/07/06(水) 23:52:31.67
なんでメソッド一般に手持ちの変数を書き換える権利を与える必要があるんだよ
性悪説のPGが発狂しちゃうぞ
2011/07/06(水) 23:58:31.47
>>404
VB.NETやC#とJavaを比べたらだめでしょ。JavaはC++の時代に設計されたんだから

>参照渡しと値のポインタ渡しの違い
ポインタ渡しというはポインタの「値」渡しなので言語仕様的には値渡しになる

>・参照の参照渡し
値渡しと参照渡しは呼び出し時の引数をコピーするかしないかを意味しているのであって
変数が値型か参照型かというのはとは関係ない
参照型を参照渡ししたら呼び出し元のインスタンス
を変更できることになるが、
通常はインスタンスの中身を変更してもらいたいだけだろう
2011/07/07(木) 00:07:24.64
>>411
設計した時期が確かに5年ぐらいJavaが先だからC#とかはまねできる分有利
だね。でも、それが参照渡しを廃止してしまった言い訳には・・・。

>ポインタ渡しというはポインタの「値」渡しなので言語仕様的には値渡しになる
勉強になりました。ありがとう。
2011/07/07(木) 00:15:36.21
>それが参照渡しを廃止してしまった言い訳には・・・。
いや、値渡しと参照渡しが混在していたC++からきっぱりと値渡しだけにしたのは
安全カミソリ化として正当だと思う

でも使っているうちに「やっぱりout引数欲しいよね」ってことでC#では復活した
わけで、Javaは今となっては使えない言語だというのは同意するが、Javaの設計に
無理があったとは思わない
2011/07/07(木) 00:27:24.22
>>413
>Javaの設計に無理があったとは思わない
なるほど。そういう考え方もできるんだね。
俺は、1996年にJavaの本を読んでその仕様を知ったときから、セールス
トークのためだけの(間違った)言語設計だと思ってたので、
そういう考え方はできなかった。頭が固いのかもしれん。
2011/07/07(木) 01:26:41.45
参照の値渡しを禁止されたら、
実引数にnewが書けないね
2011/07/07(木) 01:42:24.12
>>415
なんで?
できると思うけど
2011/07/07(木) 01:44:24.85
>>415
>>416です。ごめん。よく考えたらできないね。
2011/07/07(木) 08:36:57.21
Javaにできないこと。
Windowsで動作する、大半の人が違和感を感じない
普通のWindowsアプリケーションを開発すること
2011/07/07(木) 09:44:19.19
見た目の問題ならSWT使えばいいんじゃね?
2011/07/07(木) 16:45:56.24
>>413
.NET上で動くVB後継製品出してC#と連携させようとすると必然的に参照渡し必要にならん?
2011/07/09(土) 13:50:38.97
>>419
見た目の問題ならC#使えば良い。敢えて劣ったJAVAを使う必要は無い。
クラスプラットフォームの要件があるところだけJAVAががんばれば良い。
2011/07/09(土) 16:28:30.99
Winというプラットフォームの存在を考えれば圧倒的にC#の方が優位そうにみえるが
実際に書かれたアプリの数はどんぐりの背比べ程度という
2011/07/15(金) 19:45:28.85
>>418
それC#.NETでもできないよね
2011/07/15(金) 19:54:19.44
C# .NETはもうサポート切れてるだろ
2011/07/20(水) 16:09:58.07
え?C#のマイクロソフト独自拡張をC#.NETっていうんじゃないの?
2011/07/20(水) 20:04:03.54
Microsoft Visual C# .NET
Microsoft Visual C# .NET 2003
Microsoft Visual C# 2005
Microsoft Visual C# 2008
Microsoft Visual C# 2010
2011/07/20(水) 21:16:31.57
.NET(Mono含む)以外で動くC#ってあったっけか?
2011/07/21(木) 22:38:35.08
>>426
え?それIDEの話でしょ?
2011/07/21(木) 23:43:23.86
>>428
>>426に言ってどうする。>>423に言え。
430デフォルトの名無しさん
垢版 |
2011/07/28(木) 01:04:44.91
>>1
返せます。
int main() { return 1; }
2011/07/28(木) 07:25:42.98
さむっ
2011/08/13(土) 10:54:25.15
35歳、童貞です。
JAVAで若い女の子とセックスできますか?
右手だけは自信あります
2011/08/13(土) 14:13:18.38
>>432
すっかりjavaしか出来ない人は低脳と言う空気が出来上がってるし、母体もOracleになってjavaの勢い無くなってるので、無理
2011/08/13(土) 15:33:47.23
>>432
Javaで彼女を作れ。
435432
垢版 |
2011/08/13(土) 18:47:44.92
>>433
先月もOracleが7をだしたとおもうのですが、
やっぱりJAVAは将来が危ういのかな・・・
2011/08/13(土) 19:27:13.60
>>435
しょっぱなループまわりにエラーがあるって話は聞いてる

ただでさえ、機能でC#に追い越されてるのに、基本的な所も安定して無いってどうよ
過去の資産のために古いバージョンで運用しつつ、新規は別の言語に移るだろうな

じゃあ、何処に移るっていう決定打も無いんだが。。。。

今はjavaは様子見した方が良い
2011/08/13(土) 19:42:53.58
Javaはサーバから出てこないでほしい。
携帯電話とかクライアントPCで使いたくない。
2011/08/14(日) 00:13:14.64
>>436
基本が安定していないのはOracleならでは。
普通にテーブル作って読み書きするだけのDB基本が11gになってもバグだらけ。
439デフォルトの名無しさん
垢版 |
2011/08/16(火) 17:44:31.20
ダブクリで「確実に起動できる」一本ファイルのインストーラを作れない。
440デフォルトの名無しさん
垢版 |
2011/08/16(火) 23:01:27.07
Javaは、他のプログラム言語に比べていろいろできる筈。
VB,VCは、Windows限定だがJavaは、できる。

Javaは、唯一全てのハードで使用できるプログラム言語の筈
441デフォルトの名無しさん
垢版 |
2011/08/16(火) 23:21:53.45
いつからJavaはC言語になったんだ?
442デフォルトの名無しさん
垢版 |
2011/08/17(水) 12:51:56.88
>>441
Javaは、いろいろできるぞ
Linuxでも動くし携帯ゲームも作成できるし
電子レンジみたいな家電も作られたって聞いている

C言語を元にOAKを作られているから大丈夫
(OAK+インターネット技術=JAVA)
2011/08/17(水) 23:51:18.17
>>440
普通に考えたら「いろいろできる」のはVCだろ。
Javaはプラットフォーム非依存のメリットと引き替えに
機能性・ユーザーエクスペリエンスを捨てた
2011/08/18(木) 00:20:56.89
>>443
突っ込むのがめんどくさいから、
馬鹿じゃね?とだけ言っておく
2011/08/18(木) 00:22:57.43
>>443
ばーか

>>444
ばーか、ばーか
2011/08/18(木) 00:36:18.82
(´・ω・`)
447デフォルトの名無しさん
垢版 |
2011/08/18(木) 00:55:37.28
VCってどんな言語?
2011/08/18(木) 02:48:28.26
ビタミンCの事だよ
2011/08/18(木) 09:31:13.58
バーチャルコンソール
2011/08/18(木) 11:17:28.04
バーチャルコール
2011/08/18(木) 11:24:50.43
塩化ビニルのことだと
2011/08/19(金) 12:34:24.43
ヴァカ
2011/08/20(土) 00:59:52.69
ヴァギナこーまんのry
454デフォルトの名無しさん
垢版 |
2011/08/25(木) 12:50:00.56
 
2011/10/30(日) 10:28:52.14
オートボクシングうぜぇ〜〜

for (Integer i = 1000; i < 2000; i++)
{
array[i] = "うんこ"+ i;
}

こんなクソなコードを平気で書くやつがいる。
なぜダメなのか、説明するのに一苦労する。
2011/10/30(日) 10:42:10.66
Integer i = Integer.parseInt(string);
if (i != null)
{
hoge(i);
}

とか
2011/10/30(日) 10:51:52.40
型変数と型変数クラスの違いが分かってないから、オートボクシングによる型キャストのコストがあるってこと?
Integer i=0;
i++; ←ここがいかんのけ?
2011/10/30(日) 14:35:36.14
Integer i = 1;
synchronized (i)
{
++i;
}
とか
2011/11/30(水) 01:14:26.46
あ゛あ゛あ゛あ゛あ゛あ゛あ゛あ゛あ゛
あ゛あ゛あ゛あ゛あ゛あ゛あ゛あ゛あ゛あ゛あ゛
あ゛あ゛あ゛あ゛あ゛あ゛あ゛あ゛あ゛あ゛あ゛あ゛あ゛あ゛あ゛
あ゛あ゛あ゛あ゛あ゛あ゛あ゛あ゛
あ゛あ゛あ゛あ゛あ゛
あ゛あ゛あ゛あ゛あ゛あ゛あ゛
あ゛あ゛あ゛あ゛
あ゛〜〜〜〜もうイライラする!
なんで byte が符号つきなんだよ!
いちいち & 255 せにゃいかん。
プログラムが & 255 だらけだょ〜〜〜
うっとおしぃ〜〜〜〜〜
2011/12/06(火) 13:39:08.00
まさか手動インライン展開してる奴がいるとは思わなくて・・
2011/12/26(月) 15:38:01.17
jar hell
2012/04/09(月) 22:14:08.64
結局一長一短だろ
2012/04/13(金) 18:48:14.31
VC#から越してきたが、デリゲートとイベント機能が欲しい
イチイチIf実装するの面倒
2012/04/13(金) 22:27:22.33
ついでにインデクサがほしい。
2012/04/15(日) 00:05:14.67
SunはOracleに食われたのでもはやJavaに未来はありません
OracleよりはMSのほうがなんぼかマシですし、monoプロジェクトのおかげで
.NETはいまや立派なクロスプラットフォームです
JavaからC#への移行はもはや必然でしょう
466デフォルトの名無しさん
垢版 |
2012/10/07(日) 21:32:21.04
467デフォルトの名無しさん
垢版 |
2012/10/16(火) 06:57:30.79
linux で.NET 使えたりするの?
そしたらもうjava いらないかも

2012/10/16(火) 07:33:42.72
>>467
.NET互換のMonoが使えるよ

AndroidをC#で作ったら超速かったってニュースがこの前あった。

XobotOS: Javaの代わりにC#で構築されたAndroid
http://www.infoq.com/jp/news/2012/05/XobotOS
2012/10/24(水) 02:08:24.75
>>274
インタプリタといってもとっくの昔にJIT実装しているんですけど
2012/10/24(水) 02:08:57.30
>>277
そのかたの扱いがいい加減な言語にはC#も若干入らないでもない
ほんのちょっとだけいい加減な扱いができるからな
2012/10/24(水) 02:09:55.45
>>283
Smalltalkは?
2012/10/24(水) 09:43:17.30
>>471
どこまでを処理系とみるかにもよるけれど、個人的な印象としてはかなりの弱型。

通常のコール。(以下、Squeak Smalltalk の場合)
1 isInteger "Integer>>#isInteger がコールされて、=> true "
1.0 isInteger "Object>>#isInteger がコールされて、=> false "

同じメソッドを静的にコールしてももちろんそれぞれの返値は同じ。
Integer >> #isInteger valueWithReceiver: 1 arguments: #() "=> true "
Object >> #isInteger valueWithReceiver: 1.0 arguments: #() "=> false "

ところが、整数以外で Integer>>#isInteger を呼ぶと…というか普通に呼べちゃうので弱型
Integer >> #isInteger valueWithReceiver: 1.0 arguments: #() " => true "
Integer >> #isInteger valueWithReceiver: 'str' arguments: #() "=> true "
Integer >> #isInteger valueWithReceiver: #(1 2 3) arguments: #() "=> true "
Integer >> #isInteger valueWithReceiver: Object new arguments: #() "=> true "
2012/10/28(日) 05:39:36.54
こんな糞スレがいまだに存在することがしんじられないのだが 
2012/11/28(水) 15:22:26.51
総称型配列が作れません!
総称型配列が作れません!
総称型配列が作れません!
総称型配列が作れません!
総称型配列が作れません!
総称型配列が作れません!
2013/02/11(月) 11:03:35.87
既存の配列の仕様が変わるから、そりゃ下手に作るわけに行かないだろう

ってか作ってしまうと、とんでもないことをする奴がいるし
Javaの配列なんて特定の用途以外では使うべきじゃない代物なんだよ
基本はListを使うべき
2013/02/11(月) 23:39:43.19
だけど裏技はあるんだよな
2013/02/16(土) 21:44:18.47
Perlで無理やり擬似的なオブジェクト指向するような技は使いたくない
バグの原因になりやすいものは共同作業では控えるべき
478デフォルトの名無しさん
垢版 |
2013/03/20(水) 13:25:11.19
しっかしこんなアンチスレがまだ残ってたとはね
2013/03/20(水) 21:37:33.01
Javaを延命してしまったのはGoogleの大罪
480デフォルトの名無しさん
垢版 |
2013/03/20(水) 23:37:12.49
なにいってんだ
2013/03/21(木) 04:07:50.73
>>475
>基本はListを使うべき
その通りだな
C/C++プログラマはすぐに配列にしてオブジェクト指向なんて考えない設計にしちゃう
2013/03/21(木) 06:34:20.85
たしかにListは便利だな
ポインタが使えないjavaでは配列は使いづらいし、
添字を使ってるとbasicやってるみたいでバカに見えるし
2013/03/21(木) 07:19:46.56
使えないわけじゃないけどな
2013/03/21(木) 07:20:52.43
C#やC++プログラマから見たJavaに対する不満といえば
Java Generics関連か
とくにC++プログラマにとってはGenericsがTemplateのようにやすやすと扱えるものじゃないことに苛立ちを覚えるか
すぐにエラーがでるし例外がでるしコンパイルできないことに苛立つか
2013/03/21(木) 07:41:31.08
ポインタが使えない ※参照はポインタではない
構造体が無い ※クラスは構造体にはならない
メモリの初期化がド面倒 ※構造体、配列 newは場所を選ぶ
変数のアドレス渡しが出来ない
インクルードファイルが使えない
Myライブラリが使えない ※libにしてリンクで結合させる事が出来ない
ソースが丸見え

Cの基本的な部分が無いから初めはイラつく

ec.のエディタだけが良い点、それ以外にjavaを使う利点はない
2013/03/21(木) 19:11:25.81
発想がただのネチネチしたネガティブ厨じゃねえか

まるで駄々っ子みたいだ
2013/03/21(木) 19:11:29.96
>>485
ほかはさておき

>ソースが丸見え

はホント厄介だよね。顧客にJava納品したらJarファイル、
デコンパイルされて別会社と組んでソースコード解析してやがった

あるときから運用費にしろ機能追加依頼にしろ、なんか強気だなと思ってたら
いうこと聞かないなら開発会社変えるよとか言い出した

「やれるもんならやってみろ!」と一瞬、言いたい衝動に駆られたが、
うちも経営厳しいもんで、泣く泣く折れたことがある
2013/03/21(木) 20:33:02.97
サーバサイド用途にするか難読化ツール使えばいいだろ
2013/03/21(木) 21:13:05.15
>487
バレバレな嘘つくなよw
2013/03/21(木) 21:54:52.50
>>488
高額なモノを使わないとダメなんだよね〜

難読化(笑)
C++なら気にしなくてもよい事でかなり余計な手間がかかるんだよな〜ジャバは

30年も前のbasicじゃぁあるまいし、ソース位見えないようにしろよ って以前に
ちゃんとコンパイルしろよ ばいとこ〜どじゃなくてね
2013/03/21(木) 23:09:51.30
なんで難読化に手間が掛かるの?
ツール一つかますだけじゃん。
2013/03/21(木) 23:27:52.74
>>491
その程度の認識では 不具合が出る ってのも知らないんだな
2013/03/21(木) 23:39:01.53
>>492
不具合が出るとはまた新しいこと言い出したなw
不具合が出る難読化ツールを
探しだしてみろよw
2013/03/22(金) 06:35:48.76
>>493
バカにはムリ
495デフォルトの名無しさん
垢版 |
2013/03/22(金) 09:10:09.33
>>494
バカじゃないが
2013/03/22(金) 09:31:27.49
>>495
現状で気がついていない(不具合が出ていない)のなら別にいいじゃん

どっちにしてもプロテクトなどキモの部分を抜くのは難読化しても気休め程度
個別のファイルにしてファイル検索ソフトを使うだけで簡単ではないが抜ける
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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