X



Java入門・初心者質問スレ Part.8
■ このスレッドは過去ログ倉庫に格納されています
0004デフォルトの名無しさん (アウアウカー Sa67-22KU [182.251.240.36])
垢版 |
2018/06/08(金) 09:44:53.28ID:1PlqYTvda
ここが待望のワッチョイスレか
0005デフォルトの名無しさん (アウアウカー Sa67-22KU [182.251.240.36])
垢版 |
2018/06/08(金) 09:46:28.22ID:1PlqYTvda
おお。IPアドレスも表示。

俺は今はスマホだから多分繋ぐたびに変わるけどな。
0010デフォルトの名無しさん (ササクッテロラ Sp7f-Fjtv [126.152.199.60])
垢版 |
2018/06/08(金) 22:42:03.47ID:OMx/tZhjp
いいですね
0011デフォルトの名無しさん (ワッチョイ 8ee9-iS62 [119.229.116.149])
垢版 |
2018/06/08(金) 23:56:54.65ID:BdQZoOwp0
http://copiezzare.info/
0012デフォルトの名無しさん (ワッチョイ 0fb8-X4KX [180.12.241.93])
垢版 |
2018/06/12(火) 01:12:20.17ID:huTBZyg/0
分かる方説明お願いします。。。
<問>以下の実行結果になるように選択しから選びなさい。
【実行結果】
A
B

public class SuperClass{
public SuperClass(){
System.out.println("A");
}
public SuperClass(String val){
System.out.println(String val);
}}
public class SubClass extends SuperClass{
public SubClass(){
//ここにコードを追加
}
public SubClass(String val){
System.out.println(String val);
} }
public class Main(){
public static void main(String[] args){
new SubClass();
}}
A: SubClass("B");
B: this("B");
C: super("B");
D: SuperClass("B")
正解:B
ここで疑問なのですが、this("B")は自クラスだけのコンストラクトしか呼び出せない認識です。
親クラスのコンストラクタはどこで呼んでいるのでしょうか。
0014デフォルトの名無しさん (ワッチョイ 4eb6-qo/L [111.90.12.245])
垢版 |
2018/06/12(火) 06:11:33.73ID:AQnxwR2X0
>>12
https://docs.oracle.com/javase/specs/jls/se10/html/jls-8.html#jls-8.8.7

If a constructor body does not begin with an explicit constructor invocation and
the constructor being declared is not part of the primordial class Object,
then the constructor body implicitly begins with a superclass constructor
invocation "super();", an invocation of the constructor of its direct superclass
that takes no arguments.

コンストラクタの呼び出しが明示されてなければ
super()が暗黙的に呼ばれますよと

public SubClass(String val) {
  // ここでsuper()が呼ばれる
  System.out.println(val);
}

Javaの資格試験の勉強してるなら紫本とか黒本とか
読んだ方がいんじゃないかな
毎回言語仕様調べるの大変でしょ

コンストラクタについても丁寧に解説されてるよ
0015デフォルトの名無しさん (ワッチョイ 8bdb-Bw3Y [118.237.66.144])
垢版 |
2018/06/18(月) 07:10:35.79ID:k3fj9Dk90
インスタンスなのか変数なのか教えてください

Soket so=new Soket("so.jp",80);
InputStream is=so,getInputStream();
int i=is.read();

isはgetInputStream()メソッドのストリュームを受ける変数ですか?
それともNewはしてないけれど、インスタンスなのでしょうか?
isは2行目では変数に思えますし、3行目はインスタンスに思えますし、どっちなのでしょうか?
0016デフォルトの名無しさん (ワッチョイ 4bb6-F5p6 [220.208.85.34])
垢版 |
2018/06/18(月) 07:25:27.94ID:e7+TZKMW0
>isはgetInputStream()メソッドのストリュームを受ける変数ですか?
isはInputStream型の変数です

>それともNewはしてないけれど、インスタンスなのでしょうか?
InputStreamのインスタンスはisにセットされてます

isは変数です
0017デフォルトの名無しさん (ワッチョイ 8bdb-Bw3Y [118.237.66.144])
垢版 |
2018/06/18(月) 07:36:49.66ID:k3fj9Dk90
>>16
さっそくありがとうございます。
InputStream isでインプット型の変数になって
ここでInputStreamのインスタンスがセットされて、
is.read()と記載してinputstreamクラスのread()メソッドが使えるということなのですね
ありがとうございました!
0019デフォルトの名無しさん (ワッチョイ 1fab-Bw3Y [115.65.220.64])
垢版 |
2018/06/18(月) 09:44:07.35ID:p1/T0zQW0
すみません、疑問が深まってしまいました

1 Soket so=new Soket("so.jp",80);
2 InputStream is=so.getInputStream();
3 int i=is.read();

1で、スタック領域に、インスタンスsoを表すヒープ領域の参照アドレスを格納し
2で、InputStream型の変数isに割り当てられたヒープ領域に、インスタンスsoのgetInputStream()メソッドの結果であるストリュームを格納し
3で、変数iのヒープ領域に、read()メソッドの結果を格納する(どうして変数isがread()を呼びさせるのか疑問でした)
と考えていたのですが

[InputStream is」の記載で、InputStreamのインスタンス変数isを生成したということでしょうか?
newしなくてもインスタンスを生成してインスタンス変数に格納できるのでしょうか?
0020デフォルトの名無しさん (アウアウカー Sacf-ZPsI [182.251.240.37])
垢版 |
2018/06/18(月) 14:51:42.26ID:m8q+CXCOa
>>19
呼び出した先のどこかでnewしてる所があって、それが返されてるだけ。

それとstreamはストリームと読むのが元の発音に近いと思う。
0025デフォルトの名無しさん (ワッチョイ 8bdb-Bw3Y [118.237.66.144])
垢版 |
2018/06/19(火) 07:47:36.02ID:3OsqsN0x0
>>24
ありがとうございます。
疑問を持ってからリファレンスでgetInputStream()も何度か読んでみたのですが
ストリームを返すということで、プリミティブ型の値を返すのかと考えていました。
ストリームはインスタンスではないとしますと、
>>19の3行目で、is.read();とできるのは、他の場所でインスタンスが生成されているか
InputStream型の宣言時に、isにセットされているか、どちらかということなのでしょうか?
0026デフォルトの名無しさん (ワッチョイ 8bdb-Bw3Y [118.237.66.144])
垢版 |
2018/06/19(火) 07:57:40.90ID:3OsqsN0x0
>>22
>>24

InputStreamを返すということは、InputStreamインスタンスを戻り値としてるということで
インスタンスを受けたInputStream型の変数isからInputStreamクラスのメソッドを呼び出せた、ということでしょうか?
いろいろ教えてくださってありがとうございます。感謝しています。
0027デフォルトの名無しさん (アウアウカー Sacf-ZPsI [182.251.240.33])
垢版 |
2018/06/19(火) 11:28:03.91ID:2wtNhSg7a
>>25
APIドキュメントの java.net.Socket の getInputStream() メソッドでしょ?
それならちゃんと InputStream が戻り値の型として書いてあるよ。
0028デフォルトの名無しさん (ワッチョイ 4bb6-F5p6 [220.208.85.34])
垢版 |
2018/06/19(火) 12:16:37.29ID:hvNPYZEt0
質問を装った釣りなんじゃないの?
かまって欲しいんだよ
0029デフォルトの名無しさん (ワッチョイ 2b65-Bw3Y [222.15.235.177])
垢版 |
2018/06/19(火) 17:39:32.24ID:0i3qw3JM0
Socket.class のここまではたどり着いたけど、ここで挫折。
https://docs.oracle.com/javase/jp/8/docs/api/java/security/AccessController.html

public InputStream getInputStream() throws IOException {
if (isClosed())
throw new SocketException("Socket is closed");
if (!isConnected())
throw new SocketException("Socket is not connected");
if (isInputShutdown())
throw new SocketException("Socket input is shutdown");
final Socket s = this;
InputStream is = null;
try {
is = AccessController.doPrivileged(
new PrivilegedExceptionAction<InputStream>() {
public InputStream run() throws IOException {
return impl.getInputStream();
}
});
} catch (java.security.PrivilegedActionException e) {
throw (IOException) e.getException();
}
return is;
}
0030デフォルトの名無しさん (ワッチョイ 1fab-Bw3Y [115.65.220.64])
垢版 |
2018/06/19(火) 17:42:40.75ID:6Uq4XWZz0
>>27
ちゃんと読めていなかったです、すみません。
ストリームというのはバイトや文字を一文字ずつ扱うということで
プリミティブ値を返すものだと勘違いしていました。
次からはAPIドキュメントをしっかり読みます。ありがとうございました。
0031デフォルトの名無しさん (アウアウカー Sacf-ZPsI [182.251.240.45])
垢版 |
2018/06/19(火) 17:44:46.66ID:tOq/Fa4ea
>>29
ソース解析しなくてもとにかく InputStream のインスタンスを返すようになってる事はわかるよな。
てかそのメソッドはそれを返すか例外投げるかしかしない。
0032デフォルトの名無しさん (ワッチョイ 9b9e-vprl [114.161.0.240])
垢版 |
2018/06/19(火) 23:33:46.40ID:0nk/xPMo0
「java socket getinputstream」で検索すると、
Socket クラスの、getInputStream() メソッドを発見する

戻り値の型が、InputStream だから、次に、InputStream の文章を読む

プログラミングとは、こういうサイクルの繰り返し。
プログラムを書くと言うよりは、調べものに追われる、writer に近い
0034デフォルトの名無しさん (ワッチョイ 3b8a-BmB+ [58.89.65.172])
垢版 |
2018/06/20(水) 02:39:16.91ID:yFV+32Cp0
Windows7環境です。
コマンドプロンプトでソースファイルをコンパイルしてクラスを実行しようとすると
Error: opening registry key ‘Software\JavaSoft\Java Runtime Enviroment’
Error: could not find java.dll
Error: Could not find Java SE Runtime Enviroment.
と表示されてしまいます。
Windows\System32とWindows\SysWOW64にもjava.exe、java.javaw.exe、javaws.exeが無い状態です。
どのようにしたら実行できるようになりますでしょうか?
0035デフォルトの名無しさん (アウアウカー Saa1-ndvs [182.251.240.45])
垢版 |
2018/06/21(木) 09:21:12.68ID:tJaRpIWva
>>34
コンパイルはできてるの?変だな。コンパイル時にも同じJavaVMが裏で動いていると思うんだが。
0037デフォルトの名無しさん (アウアウカー Saa1-ndvs [182.251.240.47])
垢版 |
2018/06/21(木) 13:03:56.67ID:MEOBL//ma
>>36
java -help は同じエラー?
javac -help はエラーにならずヘルプ出る?

javaコマンドをフルパス指定して実行してもエラー?
0039デフォルトの名無しさん (ワッチョイ e3ab-GwbS [115.65.220.64])
垢版 |
2018/06/21(木) 16:50:09.21ID:IIt/ttew0
下記の3タイプの違いが分かりません。教えてください。
Aのclsは@で生成したインスタンス
BのFqcnは@のFQCNのクラス型
としています。

@ Class<?> cls=Class.forname(FQCN);
A cls.newInstance();
B Fqcn cls=new Fqcn();

@〜Bは、どれもインスタンスを取得するコードということですが
用法の違いというか、使いどころの違いがあったりするのでしょうか?
 
0042デフォルトの名無しさん (ワッチョイ dda1-i5XL [220.156.25.147])
垢版 |
2018/06/29(金) 01:09:59.72ID:tmxeEzNH0
>>41
なにか勘違いをしているようですが

・OpenJDKとOracleJDKの統一
・五月雨アップデートから半年毎に定期アップデートへ切り替え
・長期パッチ対応有償サポートの開始

なので自分でJDKのバージョン管理すれば変わらず使えますよ
要すに使用感はUbuntuとかと同じ感じになります
0044デフォルトの名無しさん (アウアウカー Sa49-Ox/R [182.251.240.7])
垢版 |
2018/07/02(月) 09:39:38.93ID:/q8FZihla
では君に目標を与えよう。

俺の心を満足させるエロゲを作りなさい。
0050デフォルトの名無しさん (ワッチョイ f59e-lVus [114.161.0.240])
垢版 |
2018/07/03(火) 00:00:28.67ID:LtnxPY8P0
UTF-8N(BOMなし)だけを使う。
shift-jis は使わない

パス・ファイル名には、半角英数字だけを使う。
半角空白も使わない
0051デフォルトの名無しさん (ワッチョイ bd9f-qY4E [118.152.82.239])
垢版 |
2018/07/03(火) 00:02:32.78ID:Dmx6jLMV0
大丈夫。上司じゃないから。
0055デフォルトの名無しさん (ブーイモ MM03-/RMY [49.239.68.139])
垢版 |
2018/07/04(水) 09:19:38.78ID:sK+g9tr5M
サーバーはともかくクライアントをアップデートしないまま放置はヤバすぎる
だからこそセキュリティパッチ未適用のJREが蔓延しても大災害にならないようにアプレットとWebStartは削除しといたよテヘペロってことなんだろうけど、
世界トップクラスの企業のやることたしてはあまりにもやり方が杜撰&無責任&悪質すぎる
正真正銘、史上最大規模のランサムウェアだよ
0060デフォルトの名無しさん (ブーイモ MM03-/RMY [49.239.68.139])
垢版 |
2018/07/04(水) 13:17:21.72ID:sK+g9tr5M
>>59
54のリンク先に書いてるよ
> Enterprise wide, term based, Java SE Subscription model which includes cloud deployment, server, and desktop licensing and support.
> Server and Cloud deployments Price $25 per processor per month, Desktop Price $2.50 per user per month, or lower with tiered volume discounts available.
古いバージョンを使い続けたいならデスクトップは$2.5/月・人
0063デフォルトの名無しさん (ワッチョイ e37f-7be3 [61.194.149.247])
垢版 |
2018/07/04(水) 16:46:54.94ID:n4h9hTEh0
このゲーム見て
https://goo.gl/k4ehdm
0064デフォルトの名無しさん (アウアウカー Sa49-Ox/R [182.251.240.5])
垢版 |
2018/07/04(水) 17:38:01.44ID:7MpiYGhDa
見ない
0065デフォルトの名無しさん (アウーイモ MMa1-+pJM [106.139.13.114])
垢版 |
2018/07/04(水) 17:46:18.46ID:Yw0BxmVZM
>>62
コミュニティが許さないといくら言ったところで、
過去に多様な状況が起こされた場合では、確実にコミュニティ側が公開停止して
数年かけて知財侵害コードの除去作業をして再公開みたいな流れになってるよね
ものによってはそのまま収束したり。
そうならない保証はないというリスクくらいは認識すべきだな。
0066デフォルトの名無しさん (ワッチョイ 2db3-HrKv [126.243.108.53])
垢版 |
2018/07/04(水) 18:05:05.29ID:bt+HkB4A0
Blackdown porting projectの悲劇。
涙なしには語れない。
0071デフォルトの名無しさん (ワッチョイ f5fa-2e90 [114.149.223.252])
垢版 |
2018/07/04(水) 21:45:33.24ID:gFgZc5FG0
GHP
0072デフォルトの名無しさん (ワッチョイ e3d2-ZkQx [27.139.3.34])
垢版 |
2018/07/04(水) 22:04:52.74ID:mSXLTbXk0
OpenJDKのサイトもうちょっとやる気出してくれないかね
0080デフォルトの名無しさん (ワッチョイ 1d9e-l9EE [114.161.0.240])
垢版 |
2018/07/07(土) 09:25:43.13ID:WQWh8zSt0
スッキリシリーズと、

実践Javaコーディング作法、2014

Java 最強リファレンス、2014

EFFECTIVE 何々 第2版、2014

Kotlin の太郎本、2016

(広告規制で書き込めない)
0082デフォルトの名無しさん (ワッチョイ 859f-UVFs [118.152.82.239])
垢版 |
2018/07/08(日) 22:32:09.28ID:xxHhxfq10
広告規制?じゃあこれが書けたらもう規制されていないってことになるな。

スッキリわかるJava入門 第2版 (スッキリシリーズ)
http://amzn.asia/9g0zliW

スッキリわかる Java入門 実践編 第2版 (スッキリシリーズ)
http://amzn.asia/alqE1va

実践Javaコーディング作法 プロが知るべき、112の規約と21の心得
http://amzn.asia/23rpAka

Java最強リファレンス
http://amzn.asia/3aurJOH

EFFECTIVE JAVA 第2版 (The Java Series)
http://amzn.asia/4YFRoaX

Kotlinスタートブック -新しいAndroidプログラミング
http://amzn.asia/7IfUpj4

Kotlin Webアプリケーション 新しいサーバサイドプログラミング
http://amzn.asia/bD9xF5D
0083デフォルトの名無しさん (ワッチョイ 23d2-KMj/ [27.139.213.198])
垢版 |
2018/07/09(月) 11:54:18.64ID:7rJHuXne0
入門的な質問ですいません
スッキリ分かるjava入門のサンプルコードなんですが
外側の繰り返しと書いてあるんですが外側の繰り返し(?)というのはjのことであってますか?どっちが外か入門書に書いてないんですけど…
それと6行目と8行目はどういう原理で5行目に空白と改行を与えてるのかわかりません教えて下さい;

public class Main{
public static void main(String[]args){
for(int i=1;i<10;i++){
for(int j=1;j<10;j++){
System.out.print(i*j);
System.out.print(" ");
}
System.out.println(" ");
}
}
}
0084デフォルトの名無しさん (アウーイモ MMe9-WPlw [106.139.7.243])
垢版 |
2018/07/09(月) 12:07:08.78ID:hqnBC/A3M
iが外側ですが、これが入門書に説明がなくて理解できない、という状況が
理解できないので、すいませんがこれ以上は詳しく解説できません。

jが外側と判断したその理由を聞けば、なにをどう勘違いしたらそうなって
しまったのかを説明できるかもしれませんが、Javaというより簡単な
日本語の領分かと思います。
0085デフォルトの名無しさん (ワッチョイ 23d2-KMj/ [27.139.213.198])
垢版 |
2018/07/09(月) 12:23:22.88ID:7rJHuXne0
え、プログラミング始めたてのときでもどっちが外か内か飲み込めました?
どっちの値が先に繰り返しされてるかなんて実行結果見ても分からないですし
どちらが外か内か分からなかったです。疑問に持つ所がおかしいんですかね・・・・・・・
教えてくれてありがとうございます
0086デフォルトの名無しさん (アウアウカー Saf1-tqMh [182.251.240.36])
垢版 |
2018/07/09(月) 12:57:41.59ID:Xj/c9OYda
>>83
6行目は改行なしで空白のみ出力。
8行目は空白と改行を出力。

まあしかし8行目は System.out.println();だけでも良い筈なんだけどね。
008780 (ワッチョイ 1d9e-l9EE [114.161.0.240])
垢版 |
2018/07/09(月) 13:20:22.89ID:RPo/jFjY0
>>82
少し文章を変えると、Rock54 規制に掛からない

漏れは「書籍名、著者名、出版年」を書いていたら、書き込めなかった。
2, 3文字の短い文字列を、偶然に使っても、規制されることもあるし、たまたまなんだろう

MANGO 板で、何回もテストすれば、どの文字列がダメなのか、わかるのだろうが
0089デフォルトの名無しさん (ワッチョイ 8d23-qopO [58.80.78.151])
垢版 |
2018/07/10(火) 11:50:14.94ID:noOOH4cI0
>>83
家の中、家の外。鬼は外、福は内。室内、室外。車内、車外。箱の内側、箱の外側。

箱の中の箱、ループの中のループ。

日本語では、先・後 ≠ 内・外 です。

どちらが先に繰り返しされるかではなく、iループのブロックの内側に(中に)
jループのブロックがあるというイメージ。

よってjのループが内側の繰り返し、iのループが外側の繰り返し。
このような構造のループを入れ子になったループ構造、二重構造のループなどという。

6行目はjループの中、8行目はjループの外で実行される。
0090デフォルトの名無しさん (ワッチョイ 8d23-qopO [58.80.78.151])
垢版 |
2018/07/10(火) 12:01:40.11ID:noOOH4cI0
>>83
追加。
合計、平均値、ソート、探索など簡単なやつでいいのでアルゴリズムも並行して学習
したほうがいいですよ。
0094デフォルトの名無しさん (アウーイモ MM9d-mvJ5 [106.139.10.8])
垢版 |
2018/07/15(日) 09:11:45.54ID:OyfnAnImM
>>93
宣言文でプリミティブか参照型か決まるから、
関係はあるんじゃないかな。
参照型で宣言してスタックに参照があって実体がヒープに
インスタンスを持つのがGC対象なのでこれはブロックの終了と
必ずしも連動しない。
0095デフォルトの名無しさん (ワッチョイ 13d2-qJjT [27.139.213.198])
垢版 |
2018/07/15(日) 17:50:22.07ID:GJzpRcdJ0
>>94
すいません全然分からないです。難しすぎて…。
聞きたかったのはブロック内で宣言した変数はブロックが終わったと同時に消滅しますが
newで確保された要素はブロックが終わっても消滅しないみたいなことが入門書に書いてあるので
配列変数の宣言文でnewを使った方がいいのか?って思って質問しました。
0096デフォルトの名無しさん (ワッチョイ fbb6-A8mW [111.90.1.2])
垢版 |
2018/07/15(日) 18:10:43.63ID:GQF9Hy3Z0
>>95
int[] s = new int[]{1,2,3};
int[] s = {1,2,3};

これはどっちも同じだよ
コンパイルしたら↓こうなる

int[] s = new int[3];
s[0] = 1;
s[1] = 2;
s[2] = 3;
0098s (ワッチョイ 13d2-qJjT [27.139.213.198])
垢版 |
2018/07/16(月) 06:29:43.68ID:x0QANHoK0
>>97
ありがとうございます
それのことです。配列の宣言の仕方によってはブロックから抜け出しても変数の値は消滅しないのかなと思ってしまったんですが
関係なかったですか
0099デフォルトの名無しさん (スップ Sd73-KVpr [1.75.228.129])
垢版 |
2018/07/16(月) 06:41:59.82ID:Yej864Pfd
>>98
宣言の仕方は関係ない
配列に入れた値は配列自体が参照し続けるので開放されないってことをその本説明したいのだと思う

この辺はJavaのデータがメモリへ値をどう確保するかってのとGCの対象になる値がどういう物か理解する必要がある
0100デフォルトの名無しさん (ワッチョイ c19e-dYrz [114.161.0.240])
垢版 |
2018/07/16(月) 11:52:53.77ID:80hpbb9v0
もし、配列が格納している要素が、primitive じゃないオブジェクトだったら、
配列のスコープを出た所で、配列は消滅するけど、

中に入っていたオブジェクトは消滅しないし、
それらにアクセスする参照だけが無くなっている

つまり、メモリリークか?

それとも、どこからも参照できないから、その後、
各オブジェクトのGC が呼ばれるのか?
■ このスレッドは過去ログ倉庫に格納されています

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