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

■ このスレッドは過去ログ倉庫に格納されています
2018/06/07(木) 20:17:08.87ID:N8MsK2gr0
Java初心者のためのスレッドです。

※前スレ
Java入門・初心者質問スレ Part.7
http://mevius.5ch.net/test/read.cgi/tech/1515549964/
VIPQ2_EXTDAT: checked:vvvvvv:1000:512:----: EXT was configured
2018/06/07(木) 20:21:29.46ID:4tykd4x10
Javaはもうオワコン
2018/06/07(木) 22:06:40.07ID:N8MsK2gr0
Oracleに買われた時点でね
4デフォルトの名無しさん (アウアウカー Sa67-22KU [182.251.240.36])
垢版 |
2018/06/08(金) 09:44:53.28ID:1PlqYTvda
ここが待望のワッチョイスレか
5デフォルトの名無しさん (アウアウカー Sa67-22KU [182.251.240.36])
垢版 |
2018/06/08(金) 09:46:28.22ID:1PlqYTvda
おお。IPアドレスも表示。

俺は今はスマホだから多分繋ぐたびに変わるけどな。
2018/06/08(金) 10:42:48.48ID:dJjT3Hn5a
IP変わったかテスト
2018/06/08(金) 10:44:04.21ID:dJjT3Hn5a
あ、テザリングで違う端末使ってるからワッチョイも変わったな。
2018/06/08(金) 10:52:38.46ID:7J3vOXKpM
テスト
2018/06/08(金) 20:15:34.57ID:AbIGmYxO0
てすと
10デフォルトの名無しさん (ササクッテロラ Sp7f-Fjtv [126.152.199.60])
垢版 |
2018/06/08(金) 22:42:03.47ID:OMx/tZhjp
いいですね
11デフォルトの名無しさん (ワッチョイ 8ee9-iS62 [119.229.116.149])
垢版 |
2018/06/08(金) 23:56:54.65ID:BdQZoOwp0
http://copiezzare.info/
12デフォルトの名無しさん (ワッチョイ 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")は自クラスだけのコンストラクトしか呼び出せない認識です。
親クラスのコンストラクタはどこで呼んでいるのでしょうか。
2018/06/12(火) 05:52:26.38ID:ixitVWbc0
ググってみた。これとか。
ttps://qiita.com/katolisa/items/438a8d720ea5a60b55c4
14デフォルトの名無しさん (ワッチョイ 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の資格試験の勉強してるなら紫本とか黒本とか
読んだ方がいんじゃないかな
毎回言語仕様調べるの大変でしょ

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

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

isは変数です
2018/06/18(月) 07:36:49.66ID:k3fj9Dk90
>>16
さっそくありがとうございます。
InputStream isでインプット型の変数になって
ここでInputStreamのインスタンスがセットされて、
is.read()と記載してinputstreamクラスのread()メソッドが使えるということなのですね
ありがとうございました!
2018/06/18(月) 08:00:29.23ID:k3fj9Dk90
クラス型変数を宣言すると、元クラスのstaticメソッドが使えるということなのでしょうか?
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しなくてもインスタンスを生成してインスタンス変数に格納できるのでしょうか?
20デフォルトの名無しさん (アウアウカー Sacf-ZPsI [182.251.240.37])
垢版 |
2018/06/18(月) 14:51:42.26ID:m8q+CXCOa
>>19
呼び出した先のどこかでnewしてる所があって、それが返されてるだけ。

それとstreamはストリームと読むのが元の発音に近いと思う。
2018/06/18(月) 15:44:31.99ID:p1/T0zQW0
>>20
ありがとうございました。
教えてくださったことを意識してコードを読み直してみます。
発音も指摘くださって感謝です。
2018/06/18(月) 19:51:30.10ID:NEyGx0zg0
>InputStream is=so.getInputStream();

so.getInputStream()の中で、
InputStream 型のインスタンスを、作って返しているのだろう

そのメソッドの文書を見れば?
2018/06/18(月) 21:13:05.16ID:k3fj9Dk90
>>22
ありがとうございます。
インスタンスを戻り値にしてるか調べているのですが
まだ解答が得られてません
また調べてみます。ありがとうございます。
2018/06/19(火) 02:08:24.67ID:0nk/xPMo0
「java socket getinputstream」で検索すれば?
文書に書いてある

Socket クラス
getInputStream() メソッド
このソケットの入力ストリームを返します

InputStream 戻り値の型
2018/06/19(火) 07:47:36.02ID:3OsqsN0x0
>>24
ありがとうございます。
疑問を持ってからリファレンスでgetInputStream()も何度か読んでみたのですが
ストリームを返すということで、プリミティブ型の値を返すのかと考えていました。
ストリームはインスタンスではないとしますと、
>>19の3行目で、is.read();とできるのは、他の場所でインスタンスが生成されているか
InputStream型の宣言時に、isにセットされているか、どちらかということなのでしょうか?
2018/06/19(火) 07:57:40.90ID:3OsqsN0x0
>>22
>>24

InputStreamを返すということは、InputStreamインスタンスを戻り値としてるということで
インスタンスを受けたInputStream型の変数isからInputStreamクラスのメソッドを呼び出せた、ということでしょうか?
いろいろ教えてくださってありがとうございます。感謝しています。
27デフォルトの名無しさん (アウアウカー Sacf-ZPsI [182.251.240.33])
垢版 |
2018/06/19(火) 11:28:03.91ID:2wtNhSg7a
>>25
APIドキュメントの java.net.Socket の getInputStream() メソッドでしょ?
それならちゃんと InputStream が戻り値の型として書いてあるよ。
28デフォルトの名無しさん (ワッチョイ 4bb6-F5p6 [220.208.85.34])
垢版 |
2018/06/19(火) 12:16:37.29ID:hvNPYZEt0
質問を装った釣りなんじゃないの?
かまって欲しいんだよ
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;
}
2018/06/19(火) 17:42:40.75ID:6Uq4XWZz0
>>27
ちゃんと読めていなかったです、すみません。
ストリームというのはバイトや文字を一文字ずつ扱うということで
プリミティブ値を返すものだと勘違いしていました。
次からはAPIドキュメントをしっかり読みます。ありがとうございました。
31デフォルトの名無しさん (アウアウカー Sacf-ZPsI [182.251.240.45])
垢版 |
2018/06/19(火) 17:44:46.66ID:tOq/Fa4ea
>>29
ソース解析しなくてもとにかく InputStream のインスタンスを返すようになってる事はわかるよな。
てかそのメソッドはそれを返すか例外投げるかしかしない。
2018/06/19(火) 23:33:46.40ID:0nk/xPMo0
「java socket getinputstream」で検索すると、
Socket クラスの、getInputStream() メソッドを発見する

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

プログラミングとは、こういうサイクルの繰り返し。
プログラムを書くと言うよりは、調べものに追われる、writer に近い
2018/06/20(水) 00:50:54.54ID:gUX5UUiyM
釣り質問に説教回答か
地獄のようなスレだな
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が無い状態です。
どのようにしたら実行できるようになりますでしょうか?
35デフォルトの名無しさん (アウアウカー Saa1-ndvs [182.251.240.45])
垢版 |
2018/06/21(木) 09:21:12.68ID:tJaRpIWva
>>34
コンパイルはできてるの?変だな。コンパイル時にも同じJavaVMが裏で動いていると思うんだが。
2018/06/21(木) 12:56:19.57ID:IijGwaLXd
>>35
コンパイルまではできているんです
googleで色々調べてやってみたり、再インスコもしてみたのですがダメでした。
37デフォルトの名無しさん (アウアウカー Saa1-ndvs [182.251.240.47])
垢版 |
2018/06/21(木) 13:03:56.67ID:MEOBL//ma
>>36
java -help は同じエラー?
javac -help はエラーにならずヘルプ出る?

javaコマンドをフルパス指定して実行してもエラー?
2018/06/21(木) 15:02:08.73ID:7cRK4el20
>>37
それは試していませんでした
今出先なので帰宅したら試してみます
ありがとうございます
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は、どれもインスタンスを取得するコードということですが
用法の違いというか、使いどころの違いがあったりするのでしょうか?
 
2018/06/23(土) 00:17:31.84ID:qN1Ga+Y40
>>37
遅くなりましたがやはりダメでした
復元とかした方がいいのかもしれませんね
2018/06/28(木) 22:46:56.90ID:Ns9pbdA70
有償化したjavaをこっそり使う事は出来ますか

今さら有償は痛いです
2018/06/29(金) 01:09:59.72ID:tmxeEzNH0
>>41
なにか勘違いをしているようですが

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

なので自分でJDKのバージョン管理すれば変わらず使えますよ
要すに使用感はUbuntuとかと同じ感じになります
2018/07/01(日) 21:11:19.56ID:ZPDyInp/0
作るものが思いつかず、数ヶ月おきに何か作ってはまたしばらく何も作らないみたいなのの繰り返しで、上達してる気が全くしない
みんな何作ってるの?
44デフォルトの名無しさん (アウアウカー Sa49-Ox/R [182.251.240.7])
垢版 |
2018/07/02(月) 09:39:38.93ID:/q8FZihla
では君に目標を与えよう。

俺の心を満足させるエロゲを作りなさい。
2018/07/02(月) 12:13:00.04ID:RbqSnnBKa
関連するファイル(.java .txt)をUTF-8(BOMなし)というのに統一しようと思うのだけど何かおもだった弊害はあるでしょうか
2018/07/02(月) 12:23:49.66ID:WWDE7n/3a
>>45
全ファイル修正?全部試験し直して検証報告書もお前が書くんだよな?
みたいなことを言い出す存在どころか生きている価値すらないクズPLやゴミ上司。
2018/07/02(月) 16:10:56.06ID:RbqSnnBKa
いえ個人でしかやらないのでそう言うのは一切問題はないです
2018/07/02(月) 20:27:25.99ID:RVh14aQ/a
>>47
じゃあ君次第だ。君が変換後の状態を気に入るかどうか。ただそれだけ。
2018/07/02(月) 21:10:14.80ID:Ryyxhhpma
>>46 とか >>48 みたいなのが上司だったらやだなあ
50デフォルトの名無しさん (ワッチョイ f59e-lVus [114.161.0.240])
垢版 |
2018/07/03(火) 00:00:28.67ID:LtnxPY8P0
UTF-8N(BOMなし)だけを使う。
shift-jis は使わない

パス・ファイル名には、半角英数字だけを使う。
半角空白も使わない
51デフォルトの名無しさん (ワッチョイ bd9f-qY4E [118.152.82.239])
垢版 |
2018/07/03(火) 00:02:32.78ID:Dmx6jLMV0
大丈夫。上司じゃないから。
2018/07/04(水) 07:18:57.01ID:LfiQBfi6M
oracleによる有償化でもjavaは現状維持すると思いますか
廃れると思いますか
2018/07/04(水) 07:58:01.78ID:l23EDKy/d
有償化という言葉だけに惑わされすぎじゃねぇの
今までよりやりやすくなると思うけど
2018/07/04(水) 08:39:02.71ID:BEAMjZqua
実行環境も有償だから、ただでさえ絶滅危惧種のクライアントJavaはさすがに絶滅するだろうな
http://www.oracle.com/technetwork/java/javaseproducts/javasesubscription-data-sheet-4891969.pdf
こんなん完全にランサムウェアですわ
2018/07/04(水) 09:19:38.78ID:sK+g9tr5M
サーバーはともかくクライアントをアップデートしないまま放置はヤバすぎる
だからこそセキュリティパッチ未適用のJREが蔓延しても大災害にならないようにアプレットとWebStartは削除しといたよテヘペロってことなんだろうけど、
世界トップクラスの企業のやることたしてはあまりにもやり方が杜撰&無責任&悪質すぎる
正真正銘、史上最大規模のランサムウェアだよ
2018/07/04(水) 09:57:37.22ID:DStPNFqFM
>>54
お前のような情弱が居なくなって嬉しいwww
2018/07/04(水) 09:58:38.25ID:DStPNFqFM
>>55
アプレットいらんやろ
2018/07/04(水) 12:43:11.63ID:JFNnLnouD
有償化はサーバーサイドにはノーダメージなんですね

これから勉強しようと思う者としてクライアントjavaは逆にやりたく無かったので対象が絞られて助かります
2018/07/04(水) 13:05:03.77ID:l23EDKy/d
jreの有償化ってどこ情報よ?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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