X



Java入門・初心者質問スレ Part.7

レス数が950を超えています。1000を超えると書き込みができなくなります。
0891デフォルトの名無しさん
垢版 |
2018/06/05(火) 19:03:23.63ID:A+ReZ18p
配列がリストより速いのは事実
プリミティブ型がクラス型より速いのは事実
いずれも正しい
性能第一で考えるなら鉄則として妥当
0892デフォルトの名無しさん
垢版 |
2018/06/05(火) 19:07:15.28ID:PQ65q6pt
例えばstatic private finalを付けてインライン化ってのは当時でも間違いだな。
つけてもつけなくても条件さえ合えば実行時にインライン化される。

仮にそれらが有効だったとしても記事がかかれるより5年ぐらい前の最初期のJITコンパイラぐらいだけかと。
0893デフォルトの名無しさん
垢版 |
2018/06/05(火) 19:08:57.32ID:+rDnwov8
デバッガでインスタンスの生成なんか逐一トレースしたら、絶対途中で挫折するわな。
0894デフォルトの名無しさん
垢版 |
2018/06/05(火) 19:13:13.76ID:Tj0WxuQ3
性能を考慮するなら最初からJava使わない方が・・・
0896デフォルトの名無しさん
垢版 |
2018/06/05(火) 23:44:38.63ID:xCctA/+R
>>889
ブラウザでページ情報を出したら更新日時が 2003年8月14日 21:13:01 と出たので
内容が時代遅れなのは当然と言えば当然かもね。

約15年前。あの時は若かった。
0897888
垢版 |
2018/06/06(水) 10:06:30.29ID:1KNr01Ay
色々な意見ありがとうございます。
確かにラッパーや可変長配列が遅いのは当然のことですね。
インライン化は意識しなくてもコンパイラがやってくれるのですか!
勉強になりました、ありがとうございます。
0898デフォルトの名無しさん
垢版 |
2018/06/06(水) 12:06:03.89ID:5wCj1Z9S
C++ の本にも書いてあるけど、
vector を使うよりも、君が配列で書いた方が速いっていう事は、あり得ない

コンピューターの最適化には、人間が書いたソースコードでは、絶対に勝てない

どれだけ一生懸命書いても、書けば書くほど遅くなるw
0899デフォルトの名無しさん
垢版 |
2018/06/06(水) 12:47:03.89ID:Q9sTm81B
>>898
> C++ の本にも書いてあるけど、
> vector を使うよりも、君が配列で書いた方が速いっていう事は、あり得ない

そうとは限らないと思うが?
C++ではそうなのかも知れないが。

> コンピューターの最適化には、人間が書いたソースコードでは、絶対に勝てない

最適化のアイデアは人間が考え付いてコンパイラやJITに実装しているわけで、勝てるかどうかで考えるなら引き分けか勝つかの二通りしかないのではないか?
相手はコンピュータのように見えても実は人間だから、その人と同じになるか上回ればいいだけだよね。
0900デフォルトの名無しさん
垢版 |
2018/06/06(水) 13:37:40.44ID:+QQoctDg
禿4にはstd::vectorは配列より遅いと書いてあるが。
そしてstd::arrayは配列に劣るところはないと書いてある。
0901デフォルトの名無しさん
垢版 |
2018/06/06(水) 14:16:58.97ID:Zmn1uW70
拡張forで比較したら配列がリストより20倍以上速かったよ
あり得ないと言ってる人は性能が問題になるようなプログラミング経験がない知ったかぶりだと思った
0902デフォルトの名無しさん
垢版 |
2018/06/06(水) 14:18:02.57ID:d/sMsUvN
ここに別の言語の事情を書かれてもそうですかとしか言えない
0903デフォルトの名無しさん
垢版 |
2018/06/06(水) 14:44:04.16ID:ANE+4TYu
Javaの利点ってJVM上で動作するからプラットフォームを選ばないって言うけどさ、あれってどういうことなの
Webサーバー上でもWindowsのシェル上でも動くってことであってる?
0904デフォルトの名無しさん
垢版 |
2018/06/06(水) 14:58:22.42ID:d/sMsUvN
>>903
そう。

もちろん標準とは別のライブラリを使うのならそのライブラリがないと動かんが。(例えばAndroid用アプリとか)
0905デフォルトの名無しさん
垢版 |
2018/06/06(水) 15:08:14.02ID:ANE+4TYu
>>904
なるほとよくわかった
サンキューSEX
0906デフォルトの名無しさん
垢版 |
2018/06/06(水) 15:15:08.93ID:ANE+4TYu
ごめんまだよくわかってないわ
CだとなんでWebサーバー上で動作しないの
PHPだとなんでLinuxシェル上で動作しないのか
教えてくれ
0909デフォルトの名無しさん
垢版 |
2018/06/06(水) 16:05:16.63ID:ANE+4TYu
>>908
os気にしないって利点か
0910デフォルトの名無しさん
垢版 |
2018/06/06(水) 16:43:13.01ID:rHYoYWgd
エッヘン、コンパイル後のクラスファイルはどんなOS上でも動くんだぞ!

ボクはスクリプト言語でいいです
0911デフォルトの名無しさん
垢版 |
2018/06/06(水) 19:45:47.49ID:clz3ZKUO
急遽、Hibernate(JPA?)という物を扱う必要が出てきました。

タイプセーフなクライテリア、柔軟なネイティブSQLはなんとなくわかりますが、JPQLの利点って何でしょうか?
Javaに、@"や"""のような、複数行文字列を扱う仕組みはあるでしょうか?
切り刻まれたバラバラ死体のSQLゾンビによく効く武器はないでしょうか?
0912デフォルトの名無しさん
垢版 |
2018/06/06(水) 20:03:44.23ID:SeO4gMZ7
あーあ終わったな
hibernateの癖の強さと難解さはORM一だからな
プロジェクトにガチでhibernateのプロフェッショナルが最低でも一人はいないとお前死んだわ
0913デフォルトの名無しさん
垢版 |
2018/06/06(水) 20:29:28.21ID:c8dAN/Mm
ORMの利点ってオブジェクトの属性とカラム値の間のマッピングを勝手にやってくれることだけでしょ
それ以外は長期的にはデメリットしかない
0916デフォルトの名無しさん
垢版 |
2018/06/06(水) 22:15:29.66ID:SeO4gMZ7
今は日本語のドキュメントあるからそれ見りゃ大体使い方わかるし
こういう例みたいにパフォーマンスを極端に気にしなければ悲観する必要はないと思うけどね
ttps://www.kaitoy.xyz/2017/02/23/how-hibernate-ruined-my-career/
0917デフォルトの名無しさん
垢版 |
2018/06/06(水) 23:56:11.53ID:/kW4KxYr
初歩的な質問をさせて頂いてもよろしいでしょうか?

System.out.println(31);
と表記した場合、
System.out.println("31");
と変換されてから、31、と表示される、
という理解でよろしいでしょうか?
0919917
垢版 |
2018/06/07(木) 00:33:24.76ID:s865msbq
>>918
どこが間違っていますか?

例えば、
System.out.println("レベル" + 5);
という命令文の場合、
System.out.println("レベル" + "5");
System.out.println("レベル5");
というプロセスを経る、と本には書かれているのですが…
0920デフォルトの名無しさん
垢版 |
2018/06/07(木) 00:39:41.79ID:7RWk6oG3
質問の際に「初歩的な質問ですが」とか「初心者です」等を書くのは絶対やってはいけないことだからね
そりゃあよろしくないよね
0924デフォルトの名無しさん
垢版 |
2018/06/07(木) 06:07:00.85ID:gMBi+q90
>>922
35歳です
0925デフォルトの名無しさん
垢版 |
2018/06/07(木) 06:35:28.80ID:BNU48/le
"レベル" + 5

「文字列型 + 数値型」の場合は、数値を文字列型に型変換して、
「文字列 + 文字列」つまり、文字列を連結するのじゃないか?

"レベル" + 5 → "レベル" + "5" → "レベル5"

まあ、検索して確かめて下さい

>>911
Ruby on Rails では、Active Record。
最初に、Rails をやっていないと、MVC の作り方がわからないだろ
0928デフォルトの名無しさん
垢版 |
2018/06/07(木) 09:14:18.25ID:1CmWJACY
最終的には文字列だよね。
8を出力したら、カーソルが8個右に動いたりしない。
0929デフォルトの名無しさん
垢版 |
2018/06/07(木) 09:20:15.12ID:6qWq6S5o
>>920
初心者です。初歩的な質問ですが、なぜですか?
0930デフォルトの名無しさん
垢版 |
2018/06/07(木) 09:53:26.87ID:6qWq6S5o
>>917
java.io.PrintStream のドキュメント見ればわかると思うが、int型一つを引数とする print() と println() メソッドはあるのでそれが呼ばれる。
文字列(というか String のインスタンス)をプラス記号で連結しようとした場合は StringBuilder クラス使って append() してから toString() で取り出した String のインスタンスになると考えて良い。
ただし最適化されて違う方法で連結されたりお互いに定数だったらコンパイル時に連結した結果がコードになるかも知れない。
0931デフォルトの名無しさん
垢版 |
2018/06/07(木) 14:14:04.47ID:NUDhghzQ
>>892
ちょっと前のソースコードを見ると、
何でもfinalをしたりsuperを使ってたけども、
今は継承する必要が無ければ、特に意識しなくてもいいのかな?
0932917
垢版 |
2018/06/07(木) 15:58:01.17ID:s865msbq
>>923
入門書に載ってなかったから聞いたんですが

>>925
そうですよね。俺も同じ理解です。
だとしたらprintln()メソッドの引数にint型の31が入ってきても、
一旦String型の"31"に変換されてから、プロンプトに出力されると思うんです。

>>927
ええ、だからその様子を>>917で表現したんですが

>>928
はい。

>>930
あれ?println()メソッドって、java.lang.*パッケージに属しているんじゃ…
0933デフォルトの名無しさん
垢版 |
2018/06/07(木) 16:03:57.05ID:JQQBou2n
>>932
System.out は ProntStream クラスのインスタンス
0934デフォルトの名無しさん
垢版 |
2018/06/07(木) 16:40:54.85ID:Ws8HpRNi
猿でもわかる回答もらっておいてアホみたいに何回も質問繰り返す
ホームラン級の馬鹿に何度も触るな
ほんとこういうゴミは教えてもらうことが常識になってるから延々と調子に乗り続ける
0935デフォルトの名無しさん
垢版 |
2018/06/07(木) 16:49:58.29ID:s865msbq
答えてくれた方々ありがとうございました。

>>933
調べてみたら俺が間違っていました。失礼しました。

>>934
ちょっとその言い方は失礼じゃないですか?
ここは質問が出来るスレッドなんですよ
0936928
垢版 |
2018/06/07(木) 17:48:42.01ID:1CmWJACY
ちょっと間違えた。8を出力したら→9を出力したら
ちょっとお遊び

abc

という内容のファイル abc.txt を作って、コマンドプロンプトから

type abc,txt とすると出力は

abc

ここでバイナリエディタを使って

61 62 63

を、

09 62 07

に変更すると、
type abc.txt で

    b

と表示されてチャイムが鳴る。(半角スペース2つを全角スペースに書き換え)
0937デフォルトの名無しさん
垢版 |
2018/06/07(木) 18:29:33.82ID:60VhmJG7
究極クズ人間の35歳に関わらないように言っているのに
一部の教えたがりが餌付けしたのでキチガイが居座ってしまった例。
0940デフォルトの名無しさん
垢版 |
2018/06/07(木) 19:45:32.82ID:+IElf8hE
>>935
調べればすぐにわかることを何度も質問したら
苛立つ人もいるよ、わざとやってんのかなって思うし
巣に帰りなよ
0941デフォルトの名無しさん
垢版 |
2018/06/07(木) 20:06:47.47ID:N8MsK2gr
ちょうどスレ消費しそうだしいいね

全板ワッチョイ導入になったんだっけ?
0944デフォルトの名無しさん
垢版 |
2018/06/07(木) 20:44:25.65ID:B/DFJupQ
35歳ってどこに行っても迷惑を掛けまくりだな
その上、自分理論だけを当てはめさせようとするから酷い
コテ付けたり消したりコウモリも相変わらずだし
0945デフォルトの名無しさん
垢版 |
2018/06/07(木) 21:00:30.67ID:N8MsK2gr
文字列連結演算子使う事で暗黙の型変換が起こってるとか想像出来ないんだな
0947デフォルトの名無しさん
垢版 |
2018/06/07(木) 21:28:54.40ID:H/4JOWFc
>>942
己が怠けるために他人を検索道具として扱うお前の行動は暴言よりも人の道を外れた行為だからな?
だから大勢がお前を看過しないで叩くんだよ。
本当他人を不快にさせるだけの存在と自覚してもう二度と来ないでくれ。
部屋に引きこもって生きながら社会的に死んでろ。
0948デフォルトの名無しさん
垢版 |
2018/06/07(木) 21:31:07.47ID:60VhmJG7
>>945
すっきりJavaに載ってないんだろうな。
自分で調べる気が皆無で本に載っていないことは知らなくて当然、という
マジ基地だからこいつ。
0952デフォルトの名無しさん
垢版 |
2018/06/09(土) 16:13:48.76ID:CtJxB1NB
clone()について質問させてください

1 public class Xxx implements Comparable<Book>,Cloneable{
2 private String name;
3 private Date date;
4
5 public Book clone(){
6 Xxx x=new Xxx();
7 x.name=this.name;
8 x.date=(Date) this.date.clone();
9 }
10 }

7行目と異なり、8行目の右辺をキャストするのは何故でしょうか?
0953デフォルトの名無しさん
垢版 |
2018/06/09(土) 17:11:20.68ID:Naz/3W/N
>>952
clone()が返すのはDate型じゃないから
0955デフォルトの名無しさん
垢版 |
2018/06/09(土) 18:17:03.34ID:o81OtHiV
>>953
>>954

ありがとうございます!!
プリミティブ型にキャストが必要ないのもそういうことなのですね。
頂いた情報をもとに、色々検索して調べてみます。
本当にありがとうございました。
0957デフォルトの名無しさん
垢版 |
2018/06/09(土) 20:00:42.82ID:Naz/3W/N
>>956
キャストはプリミティブ型にもあるっしょ

ナローイング変換
long l = 10;
int i = (int)l;

ボクシング変換
Object o = 1;
int i = (int)o;

>>952のようなclone()の実装で
clone()を呼ばないなら型は同じなのでキャストは必要ない
clone()を呼ぶのはオブジェクトの状態を共有するのを避けるため
プリミティブ型のときは状態がないのでキャストは必要ない
参照型であってもString型のようにオブジェクトの状態が不変であれば
clone()を呼ばなくて良いしキャストも必要ない
0958デフォルトの名無しさん
垢版 |
2018/06/09(土) 23:36:38.10ID:OYOdDBN7
仕事でJavaを使う(開発)のに最低限必要な知識

・eclipseの使い方を覚える
・htmlとjstlとjavascriptを当たり前のように使えるようにする
・SQLを当たり前のように使えるようにする(外部結合ぐらいわからないと話にならない)
・DB接続ツールの使い方を覚える
・メジャーなDB(oracle、db2、mysqlなど)間のデータタイプ、互換性のないSQL、演算子を覚える
・バージョン管理ツール(subversion、gitなど)やTracの使い方を覚える
・シェアが高いフレームワークの作法を覚える(開発が死んだFWも含む)
・シェアが高いORMの使い方と欠点を覚える
・シェアが高いビルドツールの記述作法を覚える
・unitテストの実装方法とやり方を覚える
・デザインパターンを覚える
・言語の超基本的な知識をつける
  ・クラスやインスタンスの違い
  ・singletonとstaticの使い分け
  ・インターフェースと抽象クラスの使い分け
  ・継承とコンポジションの使い分け
  ・ジェネリクス
0960 ◆QZaw55cn4c
垢版 |
2018/06/09(土) 23:39:26.55ID:BV3WmSRm
>>958
こういう内容の本があると売れそうですね
0961デフォルトの名無しさん
垢版 |
2018/06/10(日) 04:51:57.53ID:n5chgHA2
だから皆、無料のRails チュートリアルをやる

MVC とか、開発の全工程・数十の技術を、広く浅く学べる
0962デフォルトの名無しさん
垢版 |
2018/06/10(日) 05:06:40.49ID:LYvy/hO6
「Ruby ゴミ」でググると一番上に「Rubyはゴミすぎて使い物にならない」
っていうタイトルが出てくる

「Rails ゴミ」でググると上から8番目にやっぱり「Rubyはゴミすぎて使い物にならない」
っていうタイトルが出てくる



不朽の言語であるJavaスレでゴミを勧めるなキチガイ
0963デフォルトの名無しさん
垢版 |
2018/06/10(日) 10:43:17.17ID:wBLBLv4H
>>957
ありがとうございます。
多分、理解できたと思います。
今回のケースで3日調べていましたが
一番わかりやすくて助かりました
本当にありがとうござます!
テキストにもしっかりメモさせていただきました
0964デフォルトの名無しさん
垢版 |
2018/06/10(日) 20:46:14.31ID:wBLBLv4H
基本的なことだと思うのですが、教えてください。

「インスタンスを一つだけ格納できるクラス」

public class Xxx{
privete Object o;
}

これは、Objectは全てのクラスの親クラスだから
Objectで型指定したoは、必ずインスタンスでなければならない
という意味合いと理解していいのでしょうか?

いつもすみません、よろしくお願いします。
0965デフォルトの名無しさん
垢版 |
2018/06/10(日) 21:09:40.20ID:eOmqsLdO
>>964
なに言ってるのかわからん
0966デフォルトの名無しさん
垢版 |
2018/06/10(日) 21:24:48.38ID:wBLBLv4H
すみません。
問題で、「インスタンスを一つだけ格納できるクラスを作りなさい」という問いがあり
その解答が

public class Xxx{
privete Object o;
}

というコードになっているのですが、
このコードが、どうしてインスタンスを
一つだけ格納できるクラスとなっているのか
oがインスタンスだけに限定されていて
プリミティブ型が入ることがないのはどうしてなのか
という疑問がありまして、質問させてもらいました
0967デフォルトの名無しさん
垢版 |
2018/06/10(日) 22:12:07.46ID:LYvy/hO6
おまえさぁ、わざとやってんだろうけど少しはググったら?
なんでググって3秒でわかることを毎回ダラダラとくだらない長文書いて無駄にスレ消費すんだ?
なめてんのか?
0968デフォルトの名無しさん
垢版 |
2018/06/10(日) 23:26:20.00ID:ETs1LsJh
>>967
(^ω^)ペロペロ
お尻の穴を舐めてあげるね
君、チンカス臭いよ
0969デフォルトの名無しさん
垢版 |
2018/06/11(月) 06:20:20.64ID:Zhsjc0YW
>>966
プリミティブ型とクラス型は継承関係になくて
Object型はクラス型なのでObject型にプリミティブ型が入ることはないっすよ
Object o = 1;
とした場合はオートボクシングでラッパークラスに変換される
Object o = Integer.valueOf(1);
コンパイル時にはこういうコードに変換される

オートボクシングがなかったJava 1.4以前は
手作業でObject o = Integer.valueOf(1);こう書かなくてはいけなくて
なかなか地獄だったよ
0970デフォルトの名無しさん
垢版 |
2018/06/11(月) 08:59:51.68ID:iVyrzi9q
>>969
早朝にご指導いただきましてありがとうございます。
よく理解できました。すっきりしました、ありがとうございます!
これからもよろしくお願いいます!
0971デフォルトの名無しさん
垢版 |
2018/06/11(月) 16:20:16.68ID:iVyrzi9q
いつもすみません。教えてくださると幸いです><

1 public class Row{
2 int i;
3 Type type;
4
5 this.i++;
6
7 switch(this.type){
8 case a:
9 if(count<100) return null;
10 break;
11
12 case b:
13 if(count<110) return null;
14 break;
15 }
16 this.count=0;
17 }

5行目、16行目のcountは、thisをつけていますが
9行目、13行目のcountにはthisがついていません
5,16行目のthis.countもcountも同じスタック領域を使ってて
同じ値になっていると思うのですが、なぜthisをつけたりつけなかったりするのでしょうか?
0972928
垢版 |
2018/06/11(月) 17:21:08.65ID:TVa75ogK
public class X {
  public static void main(String[] args) {
  thisVal val = new thisVal() ;
  val.showCount(1) ;
  }
}

public class thisVal {
  int count = 1 ;
  public void showCount(int count) {
    count++ ;
    System.out.println(this.count);
    System.out.println(count);
  }
}
0974デフォルトの名無しさん
垢版 |
2018/06/11(月) 17:44:25.86ID:c0ZJDUbM
>>973
そいつは35歳というスレに住み着いているキチガイで、
質問するのが目的じゃなくて、わざと叩かれるようなことをして
構ってもらうのが目的なんで、相手にしないでください。
0975デフォルトの名無しさん
垢版 |
2018/06/11(月) 18:15:38.55ID:iVyrzi9q
971です。一部間違えていました。質問するのが目的です。
自分でも考えたり調べたりしているのですが、しっかり理解できてないようで、すみません。
それと、お気に触ったり、目障りなことはお許しください。教えてくださる方によろしくお願いいたします。

1 public class Row{
2 int count=0;
3 Type type;
4
5 this.count++;
6
7 switch(this.type){
8 case a:
9 if(count<100) return null;
10 break;
11
12 case b:
13 if(count<110) return null;
14 break;
15 }
16 this.count=0;
17 }

5行目、16行目のcountは、thisをつけていますが
9行目、13行目のcountにはthisがついていません
5,16行目のthis.countもcountも同じスタック領域を使ってて
同じ値になっていると思うのですが、なぜthisをつけたりつけなかったりするのでしょうか
0979デフォルトの名無しさん
垢版 |
2018/06/11(月) 19:42:04.11ID:5dev+MCl
これが
「もう初心者は脱した」
「Javaブロンズ持ってます」
「リフレクション以外は完璧にマスター」
と豪語している大人の質問かね...?
0982 ◆BrBq2CJg6HGd
垢版 |
2018/06/11(月) 20:25:46.32ID:nFRcWW1x
>>944
ふざけんな
回答が雑なのも悪い

>>945
はあ?俺のレスに書いてあるだろうが

>>946
余計なことを書くな

>>947
別のスレに書けよ ここに書くな

>>948
ここに書くな

>>951
関係ねえよ しばらく荒れてただろうが

>>974
俺の書き込みじゃねえよ馬鹿
0983 ◆BrBq2CJg6HGd
垢版 |
2018/06/11(月) 20:30:20.10ID:nFRcWW1x
>>978
俺の書き込みじゃねえよ

>>979
俺の書き込みじゃねえよ

>>981
初心者ではないのだろうけど、スルー耐性が低い人間はいる
0986デフォルトの名無しさん
垢版 |
2018/06/11(月) 20:59:29.41ID:C5cAV0Rs
>>975
クラスの中にメソッドがないのだが、それコンパイルエラー出ない?
0987デフォルトの名無しさん
垢版 |
2018/06/11(月) 21:00:42.80ID:c0ZJDUbM
>>982
自分の思い通りにならなかった癇癪起こすのいい加減やめてくんない?
あと回答が雑とか、自分は荒らす癖に他人は余所行けとかお前何様?
Javaなんかやんないでいいから部屋に引きこもってエッチなゲームでも
ずっとやってろよ社会不適合の他人の迷惑にしかならないごみクズが。
0989デフォルトの名無しさん
垢版 |
2018/06/11(月) 23:35:56.50ID:9ttb5FBz
>>986
すみません><
十分時間がなくて急いでの投稿だったので
色々ミスが満載でした
時間のある時にもう一度質問させてください
スレ汚してしまってすみませんでした
レス数が950を超えています。1000を超えると書き込みができなくなります。

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