Java入門・初心者質問スレ(ワッチョイなし) Part.8
JDKファイルの違いについて聞きたいんだけど
JDK1.8.0_172とJDK10.0.1は何が違うの? >JDK1.8.0_172とJDK10.0.1は何が違うの?
数字 巷の記事では無償版ガー有償版ガーとか騒いでるけど
Java案件のほとんどがBtoBの社内向けツールしかないんだから誰も金なんか払わん罠 >>9
社内向けとかB2Bだからこそ、簡単にJREバージョンアップ出来ないから、有償版のライセンスが活きてくると思うんだが。
社内で使うから保守切れててもいいわwみたいな思想なら知ったこっちゃないが。 バージョンアップしなくても動くのになんでわざわざ金払ってアップすんの?w
不正する意味も必要もない社内アプリで何の脅威に対して金払うの?w
頭大丈夫?ww そりゃ、サポート切れ製品を使うわけにはいかん、と言うコンプライアンス的な問題と、
実際にそれによって起きる問題を避けるって意味でしょ。
社内システムだからノーガードでOKは標的型の攻撃のあるこのご時世あんまり賢いとは思えないんだが。
バージョンアップしなくても動くから、バージョンアップせずにサポート(セキュリティパッチ)のある状態で使うために、ライセンスが要るんだが。
セキュリティパッチは無償で貰えると思ってた? で、そのサポートとやらは何のためにいるのって聞いてるんだけど?w
なんとなく怖いから?w
まぁ俺は使う側のただの木っ端だからどうでもいいけどさw サポートなんかとっくに切れてて脆弱性の塊であるIE8を使い続けてる
ゴミみたいな銀行と仕事のほとんどを銀行から貰ってる低レベルなゴミ会社すら存在するのに
何となく金払えよ的な雰囲気を醸し出しても払う奴なんているとは思えんけどね >>13
なんとなく怖いんじゃなくて、セキュリティパッチが当てられないと標的型攻撃の目標になった時にノーガードだからって言ってんじゃん。 標的型攻撃:
特定の組織内の情報を狙って行われるサイバー攻撃の一種であり、
その組織の構成員宛てにコンピュータウイルスが添付された電子メールを送ることなどによって開始される
ソーシャルハッキングに近い不始末が何でJavaのサポートが必要なことに繋がるわけ?w
メールか何かから感染したウィルスが"たまたま"Javaの脆弱性突いて
内部の人間しか使わないどうでもいい情報しか扱ってないwebサービスの情報の流出でも危惧してんの?w
そもそも外部に公開してないどうでもいいもんの心配ばっかしてホント頭大丈夫?w
ドヤ顔で「標的型攻撃の目標ガー(キリッ!!」とかこっぱずかしいこと言ってるけどさwww そもそも内部にあるもんの資源にアクセスされた時点で
Javaのサポートがどうとか以前に全部終わりだよなw
こいつオラクルの回し者か?wwww >>16
たまたまJavaの脆弱性をつくんじゃなくて、予めJavaのバージョン把握してれば、「たまたま」ではなくてそこ狙えるでしょ。
内部の人間しか使ってないどうでもいいシステムではないよ、イントラのシステムって。
んで、大体は相乗りしてる。
突破口そのものだよ。
あんまエンタープライズ環境知らないのに、想像で喋るの辞めたほうがいいよ。
Oracleの回し者がどうのとかではなくて。
こういうケースではJava使うの辞めなきゃね、ってレベルの話だよ。単に。
>>17
内部にあるものの資源にアクセスしても、資源には普通は端末なりログイン者なりの職制でアクセス制御かかってるよね。イントラなら余計に。
それがJavaで実装されてて、ランタイムに脆弱性があることがわかってる、なんて状態で運用できないでしょ。
ってかそこを付くのが標的型の特徴なんだから。
組織内の人間に単に攻撃を仕掛けるんではなくて、組織内の人間に、その組織の(システムなり、人間系なりの)脆弱性を把握して、それを攻撃するのが標的型だよ。
単にアタック対象を絞ることじゃない。 レスないからてっきり俺の言ってる事理解してどっか言ったかと思ってたのにw
そんなゴミみたいなレス考えるのに2時間もかかったの?w
>突破口そのものだよ
外部から見えない社内ツールが何で突破口になるの?wwねぇ?w
詳しく書いてみなよww書けるならw
>内部にあるものの資源にアクセスしても
内部にアクセスされた時点でJava関係なしに終わってるって言ってるの理解できる?w
ガチの池沼なのかね君・・
ちょっと怖いよw それにしても知ったかの馬鹿に限って
相手を知ったかっていう謎のチンパン負け惜しみ現象はなんなんだろうねw
馬鹿すぎて死ぬのかねこの手の馬鹿はw 2時間もかかったというか、仕事してるからな。
外部から見えない社内ツールの何が突破口になるか、ってそりゃ、標的型の攻撃でしょ。
こういう脆弱性のある社内ツールがある、って所まで把握してやるもんでしょ。
内部にアクセスされた時点では終わらないよ。
お前は本当に足りない知識で喋るの辞めたほうがいいと思うわ。
>>20に至っては完全なブーメランだろ。
馬鹿すぎて死ぬんじゃないかな。 Oracleが嫌い好きではなくて、ライセンスとコンプライアンスの問題なんだから、そのへんOracle憎しで勘違いされても困るわ。
標的型攻撃、を辞書の引用じゃなくて、ちゃんと理解してから書き込めよな。 Javaのアンチはともかくとして、Javaの信者な程今回のライセンスとリリース方法の変更は頭の痛い問題だと思うんだがな。
金なんか払わんと言ってるのは、MSDNについてるライセンスで本番サーバ運用できるじゃん、って言ってるようなもんなんだが。 0.1_も質問の答えになってないけど自分で自分の書いてることも理解できないのか?w
質問1
外 部 か ら 見 え な い のにどういう経路で攻撃するの?
ほれちゃんと書いてみw
標準型(爆w)の攻撃はなんとなくイントラのネットワークも攻撃できるかも?的な感じ?w
アホ あとレス返すのに2時間も3時間も考えるのやめてくんない?w
アホ >>24
外部から見えない所に内部からアクセスするために、内部の人間に実行させるのが「標的型攻撃」だが。
外部から見えないけれどもここにある、の情報を収集するのと、それを攻撃するのは分けて考えような。
前者の調査は調査で、ソーシャルハックなりなんなり別の方法で行うもんだろう。
あんま知らん事を語らんほうが良いと思うぞ。 >>25
仕事ぐらいするだろw
待ってる間、何してたんだ? はぁあ?www
内部の人間にやらせるならJavaも糞もないよな?wwww
小学生の屁理屈より酷いねこりゃw
ここまでアホならそりゃ金出すわwwははw
ちょっと面白かったよ
アホw まぁ、知ったかの馬鹿にはわからんのだろうな。
どういう問題か。
早めにミスって社会的に死んでくれたら世界がもう少しマシになると思うから、どうぞその理解でPGなりSEなり続けてくれ。 >>28
内部の人間に(不用意に)やらせるときに、サポート切れの環境があれば、脆弱性を突かせられるでしょ。
本来は何らかの認証認可がかかってんだから。
小学生以下の読解力おつかれさん。 内部の人間にやらせる、を、内部の人間が自発的に行うと取ってるのかな?
内部の人間が不注意で行ってしまうような攻撃なんだよ。
普段の取引先とそっくり同じfromで、自己展開アーカイブに見せかけた添付ファイルつけたメールとかでな。 あーあアホが顔真っ赤にしてファビョちゃってww
もうわかったからいいよw
ぼくちゃんの「ひょうじゅんがたこうげきなんだよッ!!(ムッキー」 はさww
がんばって見えない敵と戦うために金払えばええやんw
アホww 標的型だけど。
もうお前の底は知れたから、出直せ。 お前みたいチンパンのいる会社なんて誰も攻撃しないから安心していいぞw
アホw 今後こういうよく知らんやつに騙されてノーガード戦法取る会社がどれぐらい増えるんだろうな。 今後こういう知ったかで不安煽りまくる池沼に騙されて金払う会社がどれぐらい増えるんだろうなw >>23
OpenJDKはオラクルが自分たちの特許を侵害された、となったらいつでもオラクルの保持するJavaに関する特許で相手企業を訴える事が出来るってよ
OpenJDK使って好き勝手ソースいじってたら足元すくわれる可能性有る時点で使えんわ >>3
もうSWTも終わりだろ
スクリプト系言語に代わられつつある サーバーサイドはライセンスに関してダメージ無しって何で言えるの?
58 名前:デフォルトの名無しさん (ペラペラ SD93-Fd17 [183.72.127.214])[sage] 投稿日:2018/07/04(水) 12:43:11.63 ID:JFNnLnouD
有償化はサーバーサイドにはノーダメージなんですね
これから勉強しようと思う者としてクライアントjavaは逆にやりたく無かったので対象が絞られて助かります やさしいjavaって本で始めたのですが
コードを入力するのって
メモ帳より、便利なアプリケーションありますか? >>43
エディタでググって気に入ったものを使ってね
あとはIDEとか >>44
IDE をぐぐったら
エクリプスてのが目に止まったんですが
素人初心者が使っても大丈夫ですか? 質問お願いします。
友達がパソコン用にJavaアプリ(jar)を作ってくれたのですがそれをAndroidで動かしたいのです。
したい事はそれだけなんですがJavaをちゃんと勉強しなければ出来ないですか?
僕はプログラム知識は全くありません。
友達はAndroidには興味が無いようです。
よろしくお願いします。 ドコジャバとか言うのが使える参考書買ったんだがドコジャバが全く操作を受け付けないんだけどw javaの勉強を一からしたいのですがオススメの学習サイトや参考書教えてください
プログラム言語の経験はまったくありませんがパワーシェルやbashは実務経験あります 言語の勉強は嘘でも誇張でもなくそこらへんの書籍1冊読むだけで1週間で理解できる
仕事で使うレベルなら言語だけ覚えても全く無意味で>2に書いてる事をググれカスとしか言いようがない
全部体系的に綺麗に説明してるサイトはどこかにあるんだろうけど今のお前じゃ見ても頭パンクするだけ
というかググって自分で理解できない時点で全く向いてないからやめとけ >>51
それぐらいのスキルがあったら
案外テキトーにJava打っても
できるようになるんちゃう? >>51
おっと
大事なことを伝え忘れるところだった
Javaはオワコン 開発環境とは別に、jboss使ってvpsとかでweb環境を作りたいです。
開発環境はeclipseとか使えばできるんですが実際の環境を作れません。
どうしたらいいんでしょうか。 >>50
あれはeclipse初めから使ってやったほうがいい
どこJavaは使えんかった この2冊を読む
スッキリわかる Java入門 第2版、2014
たのしいRuby 第5版、2016 ・VPSにアプリケーション鯖入れる
・アプリケ鯖にJavaで作ったプログラム(warファイル)をデプロイする
・外部からの接続設定をごにょごにょする
終わり 過疎だからわざわざ回答してやってるのに
質問だけして礼すら言わないゴミは何なんだろうな
二度とレスつけるなゴミどもが >>51
俺はブックオフで買った「世界で一番簡単なJavaのe本」が良かった。 初心者です。よろしくお願いします
ブロンズの黒本で勉強中です
public abstract class B implements A {
// any code
}
これは
「抽象クラスとしてBをもち、BはAを継承している」
という意味で宜しいのでしょうか。 >>63
日本語の問題。他の選択肢も書いてくれないとわからない。 Eclipse以外にもIDEあるんやね
NetBeansとか
他にあるかな
VSでもできるかな プログラムを実行中に不具合が見つかって、ソースを修正してセーブしたら、プログラムを再実行しなくても修正が反映されたりしますか?
修正が反映されるときとされないときがあるような気がするんですが。 >>67
ホットスワップで検索
原理的に修正したソースコードとバイナリは異なるものだ
末端の処理なんかはそこのクラスのメモリ上への再ロードで行ける場合があるけど
大抵はリスタートが要ると考えた方がいい >>68
ありがとうございます。ググるとクラスの構成に変更があるかどうかで変わるみたいですね。
メソッドの中のコードをいじった時はうまく行くけど、新しいメソッドを追加した時はダメとか、
どういう時に再起動しなければならないかどうか感覚が分かりました。
むしろ今までちょっとプログラムを書きかえただけで必ず再起動しなければならないと思ってたので、
自分にとってはデバッグの効率アップになります。 CのソースをJavaに移植していて、大きな配列を作るところで引っかかったのですが、
何か対策はありますでしょうか?
具体的には、2^64=2147483647個の配列が作りたいです
double[] hoge = new double[2147483647];
Logcat:I/zygote64: Starting a blocking GC Alloc >>70
double型は64bitだから最低でも16GBのメモリが必要で
vmの引数に-Xmx32768?mとか指定すれば良いかと >>71
基本的なByte計算を忘れてました
確かにdoubleで2^64の配列を作るには16GBが必要ですね
作っているのがスマホアプリで16GBも無いので、別の方法を考えてみます >>2
>eclipseの使い方を覚える
仕事で使えるもっとモダンなエディタを教えてください 拡張forについて質問したいです
要素毎に処理を変えたいのですが可能ですか?また可能であればどうしたらいいかヒントでも良いので教えて欲しいです
この場合拡張for文では無い方が良いとは思うのですが今回は拡張for文で行いたいです すいません、お風呂に入ったら自己解決しました、、、
そもそも普通に分けたら良いですね、意味不明な質問しました 今後は何か分からないことがあったらまず風呂に入るように。 public static void main(String[] args) {
int SIZE = 6;
int[] array = { 3, 5, 7, 11, 13, 16 };
Scanner scanner = new Scanner(System.in);
int num = scanner.nextInt();
int i = 0;
while (i < SIZE && array[i] != num) {
i++;
}
if (i < SIZE) {
System.out.println(i);
} else {
System.out.println("その値は見つかりません");
}
} staticって便利ですね
たくさんのclassの共通変数として使える
逆カプセルみたいなもんですな
いやー便利便利
癖になりそう propertiesファイルである項目を指定する時に別の項目を参照したいんですが可能でしょうか?
シェルスクリプトで言うと↓のような設定をpropertiesファイルでやりたいです
MY_APP_STAGE=dev
MY_APP_HOME=/usr/bin/myapp/${MY_APP_STAGE}/ >>85
それダメなやつ
staticにする必要がない変数までstaticにするとバグの原因になる 共通変数として使えるって言ってるんだから正しい使い方なのでは? 初心者だったころ(今でもか?)Cのstaticと同じと思っていたわ。
クラスを複数newしてリストで使っていて、変な動きする?と気付き理解したわ。 そうじゃなくてどういう意味か分かった上で使えってのw >>86
propertiesにその機能はないので独自に作るなり
Apache Commons Configurationを使うなりでできそう プリミティブ型の配列オブジェクトに適用されるインスタンスメソッドの実装を見たいのですがどこにあるでしょうか
たとえば int[] に対して equals(int[]) を呼ぶと Object.equals(Object) と同じようなふるまいに見えるのですが確証がないので Javaのクラスはないけど言語仕様には
https://docs.oracle.com/javase/specs/jls/se19/html/jls-10.html
> All methods of class Object may be invoked on an array.
> Objectクラスのすべてのメソッドは、配列に対して呼び出すことができます。
とある ありがとうございます
配列変数に対して getClass().getSuperclass() とやると java.lang.Object が返ってきて
getClass().getMethods() を見たらオーバーライドしているメソッドはなさそうです
直接の親であるObjectクラスのメソッドが採用されるのですね
int[] a と int[] b の要素数と中身が同一の場合に a.equals(b) が真になってくれるとありがたい処理があるのですが
配列だとダメそうなので ArrayList にしようかと思います Arrays.equals(a, b)で比較できるよ >>96
アドバイスありがとうございます
equals(Object) メソッドが使いたかったのです
具体的に言いますと (厳密にはちょっと違いますが) int[] の配列オブジェクトが複数あってそれを Set<int[]> に入れます
値が同じで別な配列オブジェクト {1, 2, 3} が重複して入らずさらに Set.contains({1, 2, 3}) が正しく真を返してくれると都合がいいのですが配列だとダメそうです Android studioでMainActivityに以下の様に内部クラスを定義すると
public class Test {
public String str;
}
Test部分がハイライトで表示されて、カーソルを合わせると
Inner class ‘Test’ may be ‘static’
と表示されます。
どういう意味でしょうか?
Testは複数インスタンスを作るのでstrはstaticにはしません。
特にエラーにはなりませんが気持ち悪いのでハイライトを消したいです。 外部クラスにアクセスしてないので
内部クラス(=非staticなメンバクラス)である必要がない
staticなメンバクラスにすれば? って話でしょ >>99
インナークラスのTestはたぶんstaticです、なので
static class Test {
にすればおk 一番わかりやすいjavaの本か動画Udemyなどないかな >>102
入門書
『新・明解Java入門 第2版 (新・明解シリーズ)』
データ構造
『新・明解Javaで学ぶアルゴリズムとデータ構造 第2版 (新・明解シリーズ)』
実践的プログラミング
『プロになるJava―仕事で必要なプログラミングの知識がゼロから身につく最高の指南書』
がおすすめ
僕は望洋先生のアルゴリズムとデータ構造をボロボロになるまで読んだなあ 最強のJava入門書はどれか?(2016年秋)
Java入門書、ベストな選び方の、その先へ
https://ascii.jp/elem/000/001/238/1238080/
矢澤久雄「プログラムはなぜ動くのか」、高橋征義「たのしいRuby」など、
ベストセラーの著者や業界人が、
「スッキリわかるJava入門」が、なぜ売れたのかを分析している
元祖スッキリシリーズの本。
この本から、多くの言語・技術に広がっていった >>101
ありがとうございます。
staticを付けてワーニングは消えました。
メンバー変数に付けるstaticは共用になるけどclassは特に影響ないのですね。 >>105
classにstaticをつけると
class Outer {
int outerValue;
class Inner {
int getValue() {
return outerValue;
}
}
}
こういう外側のインスタンスメンバにアクセスするのができなくなる
あとはインスタンス化するとき
// 非static classはこう
var inner = new Outer().new Inner();
// static classはこう
var inner = new Outer.Inner();
違いはそれくらい >>103
>>104
ありがとう新明解国語辞典見てみるわ 多言語・多技術の2大著者が、掌田津耶乃・山田祥寛
それに続くのが、柴田望洋・スッキリ・やさしい・猫でも・クジラ飛行机など あるwebサイトで動いている.jsのサイトがあって、
(そこでは.jsと.cssがgithubで配布されてる)
それを自分のブラウザで実行してみたいのだが、
つまり上にあるwebサイトにいかず、自分のデスクトップにある.htmlファイルなんかをクリックすることでブラウザで開いてい実行したいのだが、
どのようにしたらいいのか
.jsと.cssだけではなく、動いているwebサイトの中のソースも必要なのだろうか
具体的にどう記述してやればいいのか 0円で売ってるHTMLの入門書の0ページに書かれてるようなことすらわからないチンパンは
5chで質問する前に本読むなりググったりしろゴミ >>111
コミュ障だからってウザ絡みでしか対人関係を築くスキルが無い人は面倒なのと、
そういう煽りは時代遅れなんでいいです。
なので引き続き再掲
あるwebサイトで動いている.jsのサイトがあって、
(そこでは.jsと.cssがgithubで配布されてる)
それを自分のブラウザで実行してみたいのだが、
つまり上にあるwebサイトにいかず、自分のデスクトップにある.htmlファイルなんかをクリックすることでブラウザで開いてい実行したいのだが、
どのようにしたらいいのか
.jsと.cssだけではなく、動いているwebサイトの中のソースも必要なのだろうか
具体的にどう記述してやればいいのか 内容による。
ていうかそれ以前の問題として、スレチだ。
ここは Java のスレであって JavaScript のスレではない。 急募
自分のバカさが1ミリも理解できてないバカに現実を見せる方法 あるwebサイトで動いている.jsのサイトがあって、
(そこでは.jsと.cssがgithubで配布されてる)
それを自分のブラウザで実行してみたいのだが、
つまり上にあるwebサイトにいかず、自分のデスクトップにある.htmlファイルなんかをクリックすることでブラウザで開いてい実行したいのだが、
どのようにしたらいいのか
.jsと.cssだけではなく、動いているwebサイトの中のソースも必要なのだろうか
具体的にどう記述してやればいいのか
分かるならすっと即答してくれりゃ解決するのになぁ、勿体ぶるってことは知らないってことなんだろうなぁ、でも口をはさみたいという? 準知的障害者の怖いところってこういう自覚0なところなんだよな
学生のときに全教科オール1取ってる奴がいたんだけどそいつは普通に会話もできるし家庭教師もつけてたんだわ
でも毎期全教科オール1
大人になってから偶然あったときはいろいろと残念なことになってたのは言わずもがな
この無自覚のバカもたぶん同じタイプの池沼で小学生でもHTMLの本渡せば1分でわかることを延々と他人に聞く
自決能力が皆無の思考能力0バカ人間
お前がプログラムを学んでも周りに迷惑をかけるだけなのでとっとと諦めて消えろゴミ こういうやつ某QAサイトにもいるわ
質問に答えてないことを指摘したら顔真っ赤にしてキレ出すやつw
答える気ないならスルーしろよw お前のは質問とすら言えないほど幼稚な内容だからただの荒らしなんだわ
答えたら100%居つくからこうやって撃退するしかないんだよね
わかったらとっとと消えろゴミ あるwebサイトで動いている.jsのサイトがあって、
(そこでは.jsと.cssがgithubで配布されてる)
それを自分のブラウザで実行してみたいのだが、
つまり上にあるwebサイトにいかず、自分のデスクトップにある.htmlファイルなんかをクリックすることでブラウザで開いてい実行したいのだが、
どのようにしたらいいのか
.jsと.cssだけではなく、動いているwebサイトの中のソースも必要なのだろうか
具体的にどう記述してやればいいのか
教えてくださいよ、勿体ぶらずに .jsってのはね
JavaScriptのソースにつける拡張子だから
JavaScriptスレで聞くか
https://mevius.5ch.net/test/read.cgi/tech/1659855460/l50
それか
Web制作板
https://mevius.5ch.net/hp/
で聞いたほうが効果的だよ
ここはJava言語のスレであって.js .css .htmlをケアするスレじゃないよ >>122
そこはワッチョイもあるしIPも表示するカスなので無理です
あと末尾Mですね
>>123
親切にありがとう
でもせっかくだから四半世紀くらい居座らせてもらおうかなってこれも何かの縁でしょうし 217 今、天王星のwiki見てきたら軌道傾斜角(i) が0.774°だった (ワッチョイ 897b-UuoP) 2022/10/23(日) 11:41:24.81 ID:EvlJxUOY0
今のワイ
・ほぼほぼgitの扱いが分かるかもしれないになってきた
・pythonもなんとなく分かるかかもしれないになってきた
・webuiの機能についてもなんとなく頭に入った、web版とローカル版のプロンプトの違いもなんとなく
・wikiのプロンプト変換便利じゃねと気づく
・ギフハブみて.cssと.jsを得て、オンラインで動かしてみてえなぁと思う
(オフラインで自分のブラウザで実行してみたい、wikiとかの項目がない感じで)ブラウザにこの画面だけ出る感じで
https://i.imgur.com/OPzQsQb.png
早速プログラム板いって聞いてみるも速攻で煽れたので暴れ返し中
Java入門・初心者質問スレ(ワッチョイなし) Part.8
https://mevius.5ch.net/test/read.cgi/tech/1528554781/110 これがワイ >>125
なんJNVA部★71
https://fate.5ch.net/test/read.cgi/liveuranus/1666476917/217
転載はしっかり転載元をはらんといかんで
ワイ発達障害障害基礎年金2級精神障害者福祉手帳2級+生活保護ナマポ+非課税世帯給付金5万楽しみニキ >>121
ブラウザで普通に保存したらいんじゃないかな 普通に保存じゃ満足いかんでな
せっかくやから学んでみよう思ったんやで >>127
> あるwebサイトで動いている.jsのサイトがあって、
あるサイトとはどこのサイトなの?
> wikiのプロンプト変換便利じゃねと気づく
何のwikiなの?
プロンプト変換って何?
> ギフハブみて.cssと.jsを得て、オンラインで動かしてみてえなぁと思う
ギフハブの何を見たの? 何をやろうとしてて何に困ってるのかわからないので
もっと詳しく具体的に教えて あるwikiでギフハブの.cssと.jsを参照しているファイルがある
これをオフラインでブラウザで表示しようとしている
適当にフォルダを作りその中にindex.htmlを作り
stylesフォルダ(ここにcss入れる)、scriptsフォルダ(ここに.js入れる)も作る
https://i.imgur.com/oeV13yw.png
indexはこんな感じや。うごかない。 自力で何とかいけた
クソやりたくもないのにhtmlやのjavaやのcssやの
もう気づいたら夕方やんけ
htmlの基礎からcssの基礎からjavaスクリプトの基礎から何時間かかったよ
くたびれた
せっかくやからパイソンも勉強するためにこのスレにいることにするで >>111
このあたりのやり取りからファイトメラメラになったからここを巣にするで
もちろんパイソンも行き来するが
案外楽しいものやなプログラミング
あとリアルスティックにするとラブドールぽくなるから注意や
あ、これはなんUに書くべきか
まあええで JavaScript(JS)の質問は、web制作管理板の方へ書き込んでください!
ここは、Java のスレです。
JSとは異なる言語です! >>135
JavaとJavaScriptは違うものだよ ファイトメラメラという言葉のセンスがたまらないw
昭和の小学生(現在無職おじ)って感じなん? Web制作板で聞いたらみんないっぱい答えてくれると思うけどw
ここだとおそらく今後は単に無視されるよ
Java言語っていうプログラミング言語のスレでしかないもんここは ファイトwメラメラwwwなんだからしょうがないじゃないかーw
ムッシュムラムラみたいなもんだよw 来月からJavaのプロジェクトに入るのですが
未経験で独自フレーム扱ってる企業で経験積んだ場合、springとか使ってる企業に転職するとき不利になったりしますか? >>143
springの即戦力を探していて、同じくらいのレベルのspring経験者が競合だったら
不利になるかもしれないね。
あとは宗教的理由でspring使っていなかった人でなし扱いされるとか。
ぶっちゃけ、派遣契約じゃあるまいし、転職でそんな末節の部分の経験が
クローズアップされて重要視されて採用の可否を左右するような会社だったら
そいつは間違いなく自転車操業でその場当たりの仕事をしてるだけのブラック
だから、やめたほうがいいよ。 独自フレームワークはキツイね
当たり前だけど、ググっても使い方が出てこない
独自フレームワーク使ってるような現場は学習コストを理解できない奴が多いから即戦力を求められたりもする
避けたほうがいいよ >>144
なるほど
詳しく教えていただきありがとうございます
同レベルの競合以外だとそんなに気にする要素ではないんですね
他の部分で差をつけれるよう頑張りたいと思います >>145
現場入り前に勉強しておきたいと色々調べましたが全く情報出てこなかったですね
仰るとおり当然なのですが >>146
すみません
僕自身が勝手にそう呼んでいるだけです
誤解招かないように今後は省略せず言った方がいいですね マルチコア/マルチスレッドの恩恵を受けるには自分でスレッド生成しないといけないのですか
コンパイラーやランタイムが依存関係のないコードを見つけて勝手に複数スレッドに割り当ててくれるとかはない? mainメソッドでどこも引数はstring型の配列で書かれていますが、配列じゃないstring型では駄目な理由ってなんでしょうか?(String argsとしている例文が無いので気になりました) コマンドライン引数は複数渡されるから
配列が嫌なら可変長引数でもいいよ
String args... mainメソッドの引数の型はjavaコマンドの仕様で決まってるから、変えたらjavaコマンドからmainメソッドが呼ばれない
https://docs.oracle.com/en/java/javase/19/docs/specs/man/java.html
java コマンドは、Java アプリケーションを起動します。これは、Java仮想マシン(JVM)を起動し、
指定されたクラスをロードし、そのクラスのmain()メソッドを呼び出すことによって行われます。
このメソッドは、publicかつstaticに宣言され、いかなる値も返してはならず、
パラメータとしてString配列を受け入れなければなりません。
メソッド宣言は次のような形式です。
public static void main(String[] args) vscodeとdockerでj2ee開発がしたいです >>151
レス遅れてごめんなさい
ありがとうございます
やはり何がしかのコーディングでの細工がいるということですね
勉強してみます Set の中のオブジェクトへの参照を順次検索なしに直接取り出すことはできますか?
a と b は同じクラスの等価で異なるオブジェクトです (a!=b かつ a.equals(b) が真)
オブジェクト a への参照だけが既知で set.contains(a) が真の場合に set の中にあるオブジェクト b への参照を取り出すことはできないでしょうか
Set のサイズが大きいのでできれば順次検索は避けたいです
現在はとりあえず Set の代わりに Map を使って key と value に同じオブジェクトにする (map.put(b,b) のようにして要素を入れる) ことにして map.containsKey(a) が真のときに map.get(a) で b への参照を取得していますが他にいい方法がありましたら java.util.Set だと a.equals(b) が真のとき、 set.contains(a) と set.contains(b) は排他のはずだが……
java.util.Map も同一キーで複数の値は持てないはず
commons とかのサードパーティライブラリに MultiMap とか MultiValuedMap とかあるからそっち使うか
適当なクラスを自作するしかないんじゃね? >>160
レスありがとうございます
説明が悪くすみません Set / Map に重複要素/重複キーが許されないのは承知しています
java.util.Set の中に入っているのはオブジェクト b だけで、a.equals(b) (すなわち Set.cotains(a) が真) を満たすオブジェクト a を釣り餌?にして b への参照を取り出したいというのが希望です その用途だとMapが良いと思うよ
比較のkeyと取得したいvalueが異なるんでしょ
JavaのHashSetは内部でHashMapを使ってるからコストは同じだよ Setが内部に保持してるオブジェクトを取得するのは無理 自作するとしたら配列に入れて二分探索しとくかなー自分なら >>162-164
なるほど HashSet のドキュメントとソースを見ると HashMap を使って実装していました (細かいところは理解できませんでしたが)
Mapを使うと要素追加が map.put(b, b) となるところになんか違和感を感じていたのですが 気持ちの問題だけでやりたいことはできているのでこのまま行くことにします
ありがとうございます なんかCSVファイルをレコードの3番目の項目をキーにソートしたいんですが
文字列が入ってるからint型とかにするのは無理
なんでこんなに複雑になるんだろう
何か良い方法ありますか?
Arrays.sort
これってint型しか入れられないような
駄目
Comparableインターフェースを自作してなんちゃらって
大掛かり過ぎて書くのもテストするのも偉い大変そうでパス
なんか結局キーにしたい項目一番左に持って行って全部入れ替えながら
もう一回カンマ区切りのレコード編集し直してそれを配列でなくリストに入れてって
リストをソートして
ソート後のリストからレコード並びを元の並びに直しながら取り出して
FileWriterしてみたいな超見辛くてダラダラ長ったらしくなった
IOどっちもテキストファイルだし外部ソートにしてなんか適当なツールにやらせた方が早かった気もするけど
外に飛んでる間に何起きるかわかんないし処理内容から非同期処理に出来ないし 特定のコードを入れると処理時間が増えてしまう現象があり原因を調べたいと考えています
(問題となるコードの実行は1msecもかからないがパスが変わらないはずの後続の処理時間が数10%増加する)
メソッドごとの経過時間や通過回数をレポートできるようなツールはないでしょうか
仕事ではなくお遊びのプログラムなのでフリーのものが希望です 俺だったらLinqのJava移植を探して使うかな(良いのがあるか知らんけど)
良いライブラリ見つけたら教えてくれや Eclipse Collectionsが良いよ
メソッド名が独特だけど機能的にはLINQと同等 >>171
なかなかいいね
メソッド呼び出しのたびにコレクションを生成してるっぽいのが気になるけど そだね、lazyにするといんだけど暗黙にlazyなLINQよりそこは面倒だね RustのようにIteratorをリッチにする方が個人的には気に入ってるから自分は自作のもの使ってる >>166
Collections.sortにComparator付きで渡せばいいんじゃないの?
大掛かりにもならんと思うけど > キーにしたい項目一番左に持って行って
この時点で行から目的のカラムが取り出せてるのだよね
行がStringからあと一息で
Comparator<String>.compare(String, String)
が作れるはず
その他のメソッドは実装不要
それを
Arrays.sort(String[], Comparator)
に食わせる File fileA = new File("D:\\imgCom\\imgA.png");
File fileB = new File("D:\\imgCom\\imgB.png");
imgA = ImageIO.read(fileA);
imgB = ImageIO.read(fileB);
対象ファイルはあるのに何故ファイルの読み込みエラーが出るのでしょうか? 学生だと思うけど質問する奴にこういう小中学生レベルの頭の弱い奴しかいない現象に名前をつけろ!!! >>180
javax.imageio.IIOException: Can't read input file!
at java.desktop/javax.imageio.ImageIO.read(ImageIO.java:1308)
at testCase.Test.main(Test.java:19)
になります ・ファイルが存在しない
・ファイルに排他ロックが掛けられている
・ファイルの読み取り権限がない
・ファイルがpngじゃない
あたりじゃないかな ありがとうございます。
対象ファイルの「プロパティ」->「セキュリティー」タブ->Object nameから絶対パスをコピーしてるので、間違いは無いかなと思います。
また、アクセスコントロールにあってもFull controlはAllowです。
ファイルに排他ロックが掛けられているか調査方法を調べて確認してみます。 パスが正しいかもチェックしてみたら?
fileA.exists();
fileB.exists();
https://docs.oracle.com/javase/jp/8/docs/api/java/io/File.html#exists--
この抽象パス名が示すファイルまたはディレクトリが存在するかどうかを判定します。
戻り値:
この抽象パス名が示すファイルまたはディレクトリが存在する場合はtrue、そうでない場合はfalse さらに読み取れるかどうかも。
https://docs.oracle.com/javase/jp/8/docs/api/java/io/File.html#canRead--
public boolean canRead()
この抽象パス名が示すファイルをアプリケーションが読み込めるかどうかを判定します。一部のプラットフォームでは、読取り不可としてマークされたファイルの読取りを許可する特別な権限を使用してJava仮想マシンを起動できる場合があります。その結果、このメソッドはファイルに読取り権がない場合でもtrueを返す可能性があります。
戻り値:
この抽象パス名が示すファイルが存在し、さらにアプリケーションがそれを読み込める場合だけtrue、そうでない場合はfalse 便利な関数ありがとうございます!
上記の関数を使用し、パスと読み取りを確認したところ、
どちらもfalseでした。
そのため、まずはパスを確認してみます。 ファイルパスをコピペしてFile.exists()がfalseって、ファイル名に多バイト文字使ってたりしない?
もし多バイト文字使ってて、Windows, Linux, Macが混在してるなら、MacのNFDモドキが悪さしてる可能性もある
(ソースコードかファイル名のどちらかがNFDモドキで、文字列の見た目は同じだけどbyte列は異なってる状態) window10の環境下において、
ペイントから新規作成した画像ファイルに半角英字でファイル名を付けて保存したので、多バイト文字ではないと思っているのですが。
また、ソースコードの文字エンコードをMS932、US-ASCII、UTF-8などに変更して実行しましたが結果は上記と同じくfalseのままでした。 ああ、多分分かった
その、ファイルプロパティダイアログからコピペすると余計な制御コードがパスの文字列の先頭についてるみたい(Windows10)
"D:\\.." の "D" の前に余計な(見えない)キャラクタコードが含まれてるはず
"D" からダブルクオートの前まで削除して手打ちしなおすと動作したりしない? 手打ちでも動作はされませんでした。
パスの書き方がおかしいのか調べてみます。 連投すみません。解決いたしました。
原因はパスの書き方で、
File fileA = new File("D:/imgCom/imgA.png");
だとパスが通りました。
いろいろと教えていただき、ありがとうございました。 Ruby では、"〜"内では、\ に特殊効果があるけど、
'〜'内では、単なる普通の文字
'C:\Users\Owner\Documents\a.txt'
"C:\\Users\\Owner\\Documents\\a.txt"
または、
'C:/Users/Owner/Documents/a.txt'
"C:/Users/Owner/Documents/a.txt" Unicodeの問題だったのかな?
Shift_JISでは円記号とバックスラッシュの文字コードは同じだったけど、Unicodeでは区別される
円記号を2つ並べても意味がない >>191
それなら new File(”D:\\imgCom\\imgA.png”) でも動作するよ
>>178で駄目だったときはエクスプローラのダイアログからコピペしてから \ を2重化したんじゃない?
その場合、>>189で書いたように " と D の間に U+202A (LEFT-TO-RIGHT EMBEDDING) キャラクタ(見えない)が含まれてしまうので、
Java (というかWindows) は [U+202A]D:\imgCom\imgA.png というファイルを開こうとして失敗する
189できちんと2重にしてたから理解していると思って雑に"コピペして"とか書いたけど、
Javaでは " で囲まれたStringリテラル中の \ はメタキャラクタだから \ 自体は常に2重にしないといけない
コピペしてもそこは修正するという前提だった(すまんです すまん
File("...")
のところのダブルクオートが1byteじゃなくなってるけど、そこはただの 0x22 ね >>195
確かにバックスラッシュ2個でも実行できました。
LEFT-TO-RIGHT EMBEDDING) キャラクタが含まれていたから失敗していたわけですね。
大変勉強になりました。ありがとうございます! 対象ディレクトリの中にファイル(001.et,002.et,003.et, .. xxx.et)が複数あり、
001.etと002.etを比較し、その後に002.etと003.etを比較、さらに003.etと004.et
を比較し、最後のファイルを比較したら完了するプログラムを作りたいのですが、
書き方としてはdo whileかwhileどちらが一般的でしょうか?
条件:ディレクトリには2つ以上のファイルが存在するものとする Ruby では、each_cons を使う
p ary = %w(35 11 3) # 文字列配列
#=> ["35", "11", "3"]
ary.sort!
p ary #=> ["11", "3", "35"]
p result = ary.each_cons( 2 ).map{ |a, b| a + b }
#=> ["113", "335"]
"11" + "3"
"3" + "35" >>198
> 条件:ディレクトリには2つ以上のファイルが存在するものとする
とはいえ二個未満のときに対応できないのは嫌だから
do whileかwhileかでいうとwhileでやるかな?
あと自分でやるならforでやっちゃうかな?
https://ideone.com/EmiFYo
File[] files = {
new File("A"), new File("B"), new File("C"), new File("D")
};
for (int i = 0; i < files.length - 1; i++) {
System.out.println(files[i]+", "+files[i + 1]); // ここで比較
} public static void main(String[] args) {
var dir = Path.of(".");
try (var files = Files.list(dir)) {
var it = files.iterator();
var p = (Path) null;
while (it.hasNext()) {
var c = it.next();
if (p != null) {
System.out.println(p + ", " + c);
}
p = c;
}
} catch (IOException e) {
throw new RuntimeException(e);
}
} >>202
わかりやすい
while の前でitに要素があればpに代入してしまうのもありかも ファイルパスエラーとかっていう超絶頭の悪い問答を何日も続ける低次元っぷりに絶望するゴミスレ クラスAとクラスBがあって、
クラスBの実行にはクラスAの中のaと言う値が必要な時、
クラスAからクラスBにaを渡すのと、
クラスBからクラスAのaを取得するのはどっちがいいんでしょうか クラスBがクラスAを参照するほうが依存関係が少なくなるから良い ttps://ideone.com/L14rLK
こんな感じ?
クラスBからクラスAのaを取得する方がいいかも? >>206
一般解はないよ
時と場合により適切な方を選ばなければならない
コーディングパターンで依存関係を決めるべきではない
依存関係をってのはアーキテクチャやドメインの問題だから "2.3億"という文字列から、230000000という整数値を得たいんですがどうしたらいいですか?
double d = 2.3;
System.out.println((int) (d * 100000000));
229999999 文字列から小数点と「億」を取り除いて整数にしてからかけ算する
乗数は小数点の位置と取り除いた漢字できまるはず 小数点以下の数字の個数を数えて
1個なら 億*0.1 をかける
2個なら 億*0.01をかける
これでいいのかな。すごく助かりました。ありがとうございました。 こんにちは。
質問失礼します。
Javaでトランプのブラックジャックを作っています。
プレイヤーの手札をリストで管理しておりcpuの数を自分で入力して決めるののですが、cpuの手札のリストを繰り返し処理で増やすことは可能でしょうか >>210
一度文字列にしてしまうという方法もある。
double n = 2.3;
int i = Integer.parseInt(String.format("%.0f", n * 100000000));
>>213
君の言いたいことがいまいちわからない。 >>206
クラスCがクラスAからaを取得してクラスBに渡すのがいい JButton imageButton = new JButton("選択");
imageButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JFileChooser jc = null;
jc = new JFileChooser(ifp);
jc.setFileSelectionMode(JFileChooser.FILES_ONLY);
if (jc.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) {
ifp = jc.getSelectedFile().getAbsolutePath();
imageTextField.setText(ifp);
displayImage(ifp);
} else {
return;
}
}
});
から private void displayImage(String filePath) {
System.out.println("oooooooooo");
@SuppressWarnings("serial")
JPanel imagePanel = new JPanel() {
public void paintComponent(Graphics g) {
Graphics2D g2 = (Graphics2D) g;
BufferedImage readImage = null;
try {
readImage = ImageIO.read(new File(filePath));
} catch (Exception e) {
e.printStackTrace();
}
if (readImage != null) {
g2.drawImage(readImage, 0, 0, 100, 100, this);
}
}
};
imagePanel.setPreferredSize(new Dimension(100, 100));
getContentPane().add(imagePanel, BorderLayout.CENTER);
basePanel.repaint();
}
を読んでもボタン押下した後に選択した画像が表示されません。
imagePanelのpaintComponent()を呼ぶ必要があるのでしょうか? Color [ ] a = Color [2] ; //色の配列の要素が2個
a[0]=new Midori() ; //緑
a[1]=new Ao() ; //青
これを1行で書きたいです、うまく行かなかったのでお願いします。 Color[] a = new Color[] { new Midori(), new Ao() }; >>222
ありがとうございます!
{}の中の()には;いらんのですね。 読み込んだファイルの最初の2バイトがFFD8で、最後の2バイトがFFD9だと画像であると判断できるのですが、どのようにすれはFFD8やFFD9であるとチェックできるのでしょうか?
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file))
byte[] arr = new byte[4];
ByteBuffer extention = null;
bis.read(arr, 0, 2);//最初の2バイト読み込み
extention = ByteBuffer.wrap(Arrays.copyOfRange(arr, 0, 3)); //拡張子
if (extentionがFFD8 && extentionがFFD9) {} // ここの条件の書き方が不明 RandomAccessFileクラスを使ってファイルの長さ - 2までseekしてからreadすればファイル末尾の2バイトを読める 2バイトの比較が、という話なら
static final byte[] MAGIC_HEAD = { (byte) 0xFF, (byte) 0xD8 };
とかして置いて、
byte[] arr = new byte[4];
bis.read(arr, 0, 2);//最初の2バイト読み込み
if (java.util.Arrays.equals(MAGIC_HEAD, 0, MAGIC_HEAD.length - 1, arr, 0, MAGIC_HEAD.length - 1)) {
// OK
} else {
// NG
}
が素直じゃね >>225, 226
ありがとうございます!教えていただいた方法を試してみます。 227です。何度もすみません。
壊れている画像(最後の2バイトがFF09で終わってないもの)を読み込み、そのファイルの最後から2バイトを読み込みしようとすると例外java.lang.IndexOutOfBoundsExceptionが発生します。
int length = bis.available() - 2のようにしたら最後から2バイトが取得でき、bis.read(tmpTails, length, 2);で最後の2バイトが読み込めると思ったのですが、間違っているでしょうか?
以下が上記処理をしている部分になります。
try (BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file.getAbsolutePath()))) {
byte[] tmpHeads = new byte[4];
byte[] tmpTails = new byte[4];
byte[] headBytes = { (byte) 0xFF, (byte) 0xD8 };
byte[] tailBytes = { (byte) 0xFF, (byte) 0xD9 };
int headLast = headBytes.length - 1;
int tailLast = tailBytes.length - 1;
bis.read(tmpHeads, 0, 2); //bisの先頭から2バイト読んで、tmpHeadsに格納する
int length = bis.available() - 2; // bisの最後の2バイトを読むための位置情報
//bisの最後の2バイト前から2バイト読んで、tmpTailsに格納する
bis.read(tmpTails, length, 2); // ここで例外発生する
boolean hasSameHeads = Arrays.equals(headBytes, 0, headLast, tmpHeads, 0, headLast);
boolean hasSmaeTails = Arrays.equals(tailBytes, 0, tailLast, tmpTails, 0, tailLast);
if (hasSameHeads && !hasSmaeTails) {
System.out.println(fileName); // 最後の2バイトがFFD9でなければ画像は壊れている
}
} catch (Exception e) {
e.printStackTrace();
} >>228
それ、よく間違われる所だけど、InputStream.read(byte[] buff, int offset, int len) の offset はデータを格納する byte配列 buff のオフセット
要するに
is.read(buf, 10, 2)
とすると、buf[10], buf[11] に値を書き込む(現在のInputStreamの位置から2バイト分)
ただ、そもそも FileInputStream.available() はファイルオープン直後にファイルサイズ全体を返す保証は無いので、ここで is.available() を利用するのは(潜在的な)バグです
なので>>225のように RandomAccessFile を使うべし あと2バイトぐらいの比較なら、個人的には
if ((buf[0] == (byte) 0xFF) && (buf[1] == (byte) 0xD8)) { // 先頭2バイトが 0xFFD8
とかでも良いかな
もちろん比較するサイズが大きくなると、比較対象を配列等にしておく方が読みやすい保守しやすいのは確か >>229
承知いたしました。RandomAccessFileも試してみます。ありがとうございます。
>>230,231
なるほど。readのオフセットはそういう意味だったのですか。ありがとうございます。
RandomAccessFileを試してみます。
今回はファイルサイズも小さく、最初と最後の2バイトを比較できたらいいかと考えておりますので、保守性なども考慮して実装したいと思います。 例えば、Ruby でバイナリ操作なら、
# バイナリファイルを読み込む
File.open( "input_data.dat", "rb" ) do |io|
p io.read( 2 ) # ファイル先頭から、2バイト。"\xFF\xD8"
io.seek( -2, IO::SEEK_END ) # ファイル末尾から、2バイト
p io.read( nil ) #=> "\xFF\xD9"
end 例えば、Javaで保守性を大事にするなら
enum CheckStatus {
OK, FAILED
}
static CheckStatus checkBytes(Path file) {
if (matchHead(file, new byte[] { (byte) 0xFF, (byte) 0xD8 })
&& matchTail(file, new byte[] { (byte) 0xFF, (byte) 0xD9 })) {
return CheckStatus.OK;
}
return CheckStatus.FAILED;
}
static boolean matchHead(Path file, byte[] expected) {
try (var in = Files.newInputStream(file)) {
return Arrays.equals(expected, in.readNBytes(expected.length));
} catch (IOException e) {
return false;
}
}
static boolean matchTail(Path file, byte[] expected) {
try (var in = Files.newInputStream(file)) {
in.skipNBytes(Files.size(file) - expected.length);
return Arrays.equals(expected, in.readNBytes(expected.length));
} catch (IOException e) {
return false;
}
} IOExceptionを握りつぶす仕様がまた初心者スレっぽいね。
Exceptionを握りつぶしたいとしたとしたら、
enum CheckStatusは2値(OK,FAILED)じゃなくて成否以外の
チェックできていない結果を示す3値以上にならないと。
ファイルなくても変なファイル読ませてもFAILEDになる
拾えるはずの異常を握りつぶしちゃうような保守性のかけらもない
コード晒して保守性語られてもねぇ。 >>236
君wそれはないぞ素人かよw
例外のハンドリングを君は何もわかってない
君のコードが見てみたいものだねw
どうせ出せないだろうけど まあ、失敗する可能性がどれぐらいあるか、失敗したときどういう対応するかで変わるかな そうね、ケースバイケース
そのような意見を述べるまともな人と5chで久しぶりに出会った気がする
2値を3値に増やして保守性が上がった経験は俺にはないしそして>>236にもないはずだw
現実に起こる確率の低い事象は無視するべきなんだよ
もちろんシンドラーのエレベータのように処理の未定義が人命にかかわるようなら違うけど
求められてないところで完璧主義を発揮するのはプログラムを無駄に複雑化するだけなんよ try-with-resources構文でこの例外握り潰しは適切だよ
なんの問題もない
俺が気になったのは命名規則
matchじゃなくてisMatch、もしくはvalidate、isValid、verify などが適切だと思う
matchだとマッチさせるという動作だと勘違いしてしまう
あと checkBytes も分かりにくいな
このケースなら isJpegFile(Path file) として Status ではなく boolean 返すほうがいい JPEGのチェックだったのね、なるほどね
JPEGドメインなら
isValidStartOfImage
isValidEndOfImage
にしてbyte値をハードコードで良いかもね
お仕事のコードでcheck(...)のメソッドがチェックをパスしたときにfalseを返す仕様になってて
混乱することを何度か経験したいまの俺だから言えることなんだけど
true/falseの感覚は人によって結構曖昧
validateやverifyだと
・valid/invalid
・ok/failed
などのenumを定義した方が良くて定義しないいけない面倒くささがある ゴミコード書く奴ほどなぜが自分のゴミコードの正当性を主張する
保守とかほざきながらnewInputStreamが吐き出す例外全部握りつぶすようなゴミコードが適切なわけないだろう
こんなゴミコードなら例外そのままスローしたほうが100倍マシだし保守性高い
まぁあほの学生だろうけど こういうアフォ仕様な関数作る低能がいるから
呼び出す前にexistチェックなんかが必要になって
余計な工数食うんだよな >>242
この例外握り潰しの何が問題なのか具体的に教えて?
InputStreamはちゃんとcloseされるし、
ファイルが存在しないとか別の理由で読み取りができないのは Jpeg として扱えないのだから false 返すだけでよくないですか? 個人で使うものじゃないならエラー見るのは作った奴じゃないし作った奴が見るとしてもゴミだね
よーし、ぼくちんファイル読み込んじゃうぞー!
プログラム「フォルスッ!(プギャw!」
は?なんやねんフォルスって・・・あほかこの糞プログラム まあ、いきなり保守性とか言い出したのはイキってるように見えなくもない まぁ実際はfalse見て読み込み失敗みたいなもん出力するんだろうけど
例外の中身見てないんだからこのエラーを見たときに全ての奴が原因の推測をすることから始めることになる
そもそも例外吐くメソッドのソースコード見てどういうときにIOException吐くか全部理解してないのに握りつぶしてるのがレベル低い
ファイルのパーミッションなくても例外吐いてるから権限のこと全く理解してないユーザーとかいたら調査させられるな
原因の中身握りつぶしてるからソースコード見ても結局ここでどん詰まり
ライブラリの中身で例外吐いてるところ全部調査することになる チェック関数なんだからある程度は割り切って良いんだよ
いくら事前チェックしたって画像デコードしようとしたときにはファイルが削除されているかもしれない
ほんとに厳密な処理が必要ならチェック関数ではなく実際にデコードを試みるしかないの
>>244
exist?なにそれ?事前にファイルの存在をチェックしても 1ミリ秒後にはファイル消えてる可能性ありますよ?
重いデコーダーに回す前の簡易チェックとしてはマジックナンバーが一致したら true、それ以外は例外だろうとなんだろうと false で十分
事前に exist とか言ってるほうが設計センスないです 他人の使い方は設計センスなし!
俺様の使い方はセンスあふれるからtrue/falseだけで十分!
君の言うとおりの使い方をしている時だけ問題なし、ってのは
果たして保守性を考慮されてるんですかねぇ だから何が問題なのか教えて?
自分ではコード断片すら提示せずに、他の人が提示してくれたコードを素人だなんだとこき下ろすだけの批評家どもめ >>245
横からだけど、それで良い場合もあるしダメな場合もある
集合に対してフィルタを適用して部分集合を取り出す場合、フィルタがエラーで処理を行えなかったという事実は重要
得られた部分集合が本来得られたはずの部分集合である確信が持てないから
具体的なシナリオで書くと、
例えばクラウド上のサーバのディレクトリ中のファイルを(sshfs, nfs 等で)なめてJPEGファイルのリストを作りますよという処理中に、
ルータが再起動するとか掃除のおばちゃんがハブの電源を間違えて引っこ抜くとかでネットワークが一時的に落ちた場合、
出来上がったリストが信頼できるか
ネットワークの切断があったという事実を知らなければ、それを疑わなければならないことすら分からない >>251
センスとか言ってごめんね
そんな主観的な話じゃなかった
事前ファイルチェックとか典型的な同期設計の誤りの可能性が高いです undefinedな状態があるのにenumを2値で設計した時点で
設計センスないんです。おわかり? そのundefinedな状態だとデコーダーに回しても画像は得られないので
次工程のデコーダーに渡す価値があるか?という事前の簡易チェックとしては例外発生時に false を返しても問題ないと言ってます >>253
そのシナリオならそれはそう
だってその処理はJPEG処理よりもファイルリストを作成することが主になってるでしょ
リスティングに影響が出る例外はちゃんと処理しないといけないですよ 屁理屈低能学生
腫れ物扱いされて人間不信なんやろなぁ どこまで行っても俺の使い方から離れられない人
保守性とやらを謳うなら少しは汎用性も考えなさいよ 結局、批評家さんたちはコード断片すら出すことができないのね
うちの会社にもそういう口だけ達者な人います 心が中学生のまま就職しちゃったんだね
レビューで保守性だ可読性だ叩かれまくって
陰鬱な日々でここならマウント取れると思ったのに
残念、初心者スレも似たような人の集まりでした
というお話 断片も糞も握りつぶさないでエラーの詳細わかるように汎用性のあるビジネス例外投げろで終わりだから
こんな低レベルなことわざわざ書く必要すらないんだけど低能学生は大変だな
何書いても「この程度のチェックはこれでいいんだよッ!(ムッキー!」しか言わないしw
仕事で例外の中でfalse返す糞コード見たことねーけどw 例外を投げるのは分かったから
呼び出し側がその例外をどのようにハンドリングするのか提示して?
もしかして、無責任なライブラリアンなのかな? キャッチして画面に出すだけ
これもわざわざ書く必要はない
書かないとわからなければ脳障害者だからもうこの業界諦めろ あ、やっぱり無責任なライブラリアンだった
うちの会社にもそういう人います
責務境界の明確化だとかなんだとかいって例外ハンドリングを放棄したコードしか書けない人
ライブラリではなくアプリケーションを書くようになると例外ハンドリングについてもう少し分かるようになると思うよ >例外ハンドリングを放棄したコード
例外の中でfalse書くお前のことか?w
屁理屈どころか会話のキャッチボールもできてないし文章も酷いしw
バカなんだから無理しないで病院行ってきなよ >>266
アプリ側を書く人が例外返しても放棄しかしないのは自明なんだから
ライブラリで例外放棄しておいてあげますかって
なかなかに攻めた思想ですね
アプリが適切に例外をハンドリングしないのはアプリの問題なので
それこそレビューで仕返しとばかりに叩いてあげてください アプリケーション全体で見たら最後には誰かが例外をキャッチしないといけないのよ
局所的なコードを見て例外をキャッチするな!そのままスローして上位に委ねろ!
これを言うのは簡単
じゃあ、上位はその例外をどのようにハンドリングしたら保守性・可読性が高くなるのか?
そこまで考えられる人あまりいないのよね
そこまで考えると、アプリケーションとしての用途など限定的な条件を踏まえて
例外にする必要なくね? 下位で例外処理してしまってよいのでは?
となることも多い
今回のユーティリティ関数なんてまさにそのケースだと思う
ここまで考えられない人=無責任なライブラリアン ひょっとしてこの低能学生は例外キャッチしたあとの整形方法をずっと聞いてたのかwww
バカって主語なさすぎて何を聞きたいのか全く分からんのよな
エラー出力仕様とか一切わからん状態で
「ぼくちんがわかるようなコード提示しろッ!!!」とかガチ脳障害者やんw
他人はエスパーじゃないぞ低能ガイジ君
はよ病院行って来い そして別の人が、フォルダの中のJPEGでないファイルを消す簡単なプログラムに転用して、ちょうどストレージのアクセス不調が起きて、必要なファイルが全部消されて泣くとw >>268
いやアプリケーション側が例外ハンドリングを放棄するだけとは言ってないよ
下位が例外をスローするならアプリケーション側でちゃんとハンドリングしてもらう
でもそれやろうとするとアプリケーション側のコードが煩雑になっていくよね?
アプリケーション側が複雑になってしまったらユーティリティ関数を用意した意味が半減すると思うの 自分の考えた通りにしか使われないってこんなに過度に思い込んで自分の考えた通りの使い方だけに固執してしまって自閉症気味なんじゃないでしょうか、病院にいったら? 脳障害者のコードは例外処理にすらなってないんだよな
でも脳障害者だから一生わからんのだろうなw >>270
えっと、聞きたいのはそういうことじゃないです
ログ出力してプロセス落とすだけなら誰でもできます
アプリケーションを継続させたいケースもあるでしょ?
そのあたり、保守性・可読性を維持してどんなコードを書くのかお手本を見せて欲しいの まずプロセス落とすなんて一切書いてないけど
妄想でレスするのやめてもらっていい?
妄想なおすところから始めてもらっていい? >>273
世界中の人が使うライブラリ書いてる人なんて少数だと思うけど?
職業プログラマーの多くはアプリケーション側の要求があって、簡易的に扱えるレイヤーを書いてるんじゃない?
世界中の人に使ってもらう前提の汎用JPEG判定ライブラリなの? >>276
ごめんね
プロセスは落とさずアプリケーションを正常系に戻すコード例を提示して? 例外になったファイルを対象外にするかリトライするか対象にするかなんてアプリ次第じゃん、何で勝手な妄想でアプリでハンドリングすればいいものをJPEGではないと扱いましょうって勝手に決めつけるの、アフォなのかな? 書く必要のない低レベルコードすらコード提示しろって喚くんだから
エラー仕様提示してもらわないと脳障害者君が100%納得するコードなんて提示できないよ?
エラー出力仕様は提示できるかい?脳障害者君 こんだけ自分本位なプログラムしかかけないようだと会社で叩かれまくりでしょ、書けもしない人に叩かれているんじゃなくて、書けな人でもはっきりわかるお前の低能っぷりが叩かれていて、指摘してやっても嫌な顔して納得しないで同じミス繰り返し続けて、いい加減先輩からも上司からも嫌われていて解雇寸前くらいの漢字なんじゃないの?だいじょうぶ?本当頭にトラブルを抱えているようにしかみえないよ?障害者雇用の人? ほらね、無責任なライブラリアンのいつもの決め台詞が出てきた
「それはアプリ側の仕様次第です」 まあ、わからんでもないが、初心者スレでイキってたらイタイだけだよ
ここでは保守性とかどうでもよくて、とりあえず動けばいいからね 決め台詞も糞もエラー仕様次第なのは事実だし
お前のコードはゴミだからね
さっさと病院!さっさと病院!しばくぞ! というかどこに保守性があるのかな?それだけはぜひ語って言ってほしいところ。こいつの語る保守性に納得できるなら例外握りつぶしもみんな納得することでしょう。ほれ語ってみ。 >>283
そのどうでもいいやって態度が逆にイキりに見えてきたw
イキりって深いよねw 俺が視ている景色を視せてやりたい
登ってこい、俺のステージまで 自演擁護失敗して逆に炎上させてしまって逃亡しても
IDを戻したら誰も追撃しないやさしさが初心者スレ えっと、コードを提示してくれた人と俺は別人です
別人を装って擁護してたとかじゃないからね
強いて言えば設計センスのないノータリンな批評家どもを養護してあげてた感じ? ID:rzF42M9Pの人は別人だよ
この人には俺のコードを理解できる深い知性と経験がある
俺と同じか俺の上のステージにいるね
その正体が大学の教授だったとしても驚かない 待ってると思ってました
ちゃんと思惑通りに釣れましたね 結局>>235のソースの何が保守性が何なのかわからなかったね。 >>235
ワイならこうするわ
static byte[] head(Path file, int nbytes) { // ファイルの先頭からNバイトって使い勝手良さそうだから
try (var in = Files.newInputStream(file)) {
return in.readNBytes(nbytes);
} catch (Exception e) {}
return null;
}
static byte[] tail(Path file, int nbytes) { // 同上
try (var in = Files.newInputStream(file)) {
in.skipNBytes(Files.size(file) - nbytes);
return in.readNBytes(nbytes);
} catch (IOException e) {}
return null;
}
static boolean headeq(Path file, byte[] bytes) { // 必要ないかも
return Arrays.equals(head(file, bytes.length), bytes);
}
static boolean taileq(Path file, byte[] bytes) { // 同上
return Arrays.equals(tail(file, bytes.length), bytes);
}
static boolean head_eq_FFD8(Path file) { // おそらく不要。チェック対象が増えなくてかつ呼ばれる頻度高いならアリ?
return headeq(file, new byte[]{(byte)0xFF, (byte)0xD8});
}
static boolean tail_eq_FFD9(Path file) { // 同上
return taileq(file, new byte[]{(byte)0xFF, (byte)0xD9});
} head_eq_FFD8_and_tail_eq_FFD9も欲しい head と tail に分けるのは非効率じゃない?
ファイルを2回オープンすることになるよね Streamのtailを見ようという発想が頭おかしいよな
mkfifoで作られたファイル指定されたりしたらどうするつもりだよ
ファイルの末尾とストリームの末尾の違いも理解できないバカ揃い 普通はこういうフォーマットならtailはペイロードを読み込んだあとに
ちょん切れてないことをチェックするために使うよね
事前のチェックならheadだけでいい気がする >>297
そこは && で
head_eq_FFD8_and_tail_eq_FFD9(file)
head_eq_FFD8(file) && tail_eq_FFD9(file) // ↑+5文字
>>298
たしかにそれは気になるけど
そこがネックになってから置き換えたらいいかな?
>>300
そうそれ
自分で書くならtailのほう書かないかも 素直に RandomAccessFile 使えって >>302
static byte[] head(Path path, int nbytes) {
byte[] bs = null;
try (var r = new RandomAccessFile(path.toFile(), "r")) {
r.read(bs = new byte[nbytes]);
} catch (Exception e) {}
return bs;
}
static byte[] tail(Path path, int nbytes) {
byte[] bs = null;
try (var r = new RandomAccessFile(path.toFile(), "r")) {
r.seek(Files.size(path) - nbytes);
r.read(bs = new byte[nbytes]);
} catch (Exception e) {}
return bs;
} >>303
RandomAccessFile クラスならファイルの長さは length() メソッドで取得できる。
というか、head(), tail() で別々に取得するのは効率悪いのでは? 一度だけ開いて両方取得すれば良いと思うが。
Java はクラスの中にしかメソッド作れないんだから前後読むためのクラス作ってコンストラクタでファイルの前後
読んでprivateのインスタンス変数に入れといて後で getHead() や getTail() でそれ返すようにすれば良いんじゃないか? > RandomAccessFile クラスならファイルの長さは length() メソッドで取得できる。
勉強になりました
> head(), tail() で別々に取得するのは効率悪いのでは?
たしかにそれは気になるけど
そこがネックになってから置き換えたらいいかな?
> 前後読むためのクラス作って
どうだろうねえ
ワイの感覚だとそんなクラスは作らずに済ませたいかな そうね、コンストラクタうんぬんは面倒だと思う
ユーティリティ関数(static メソッド)で十分 ファイル数が少なくファイルの読み出しが高速なら良いが、低速で沢山のファイルを読まねばならない場合はやはりファイルを開くのは1回にした方が良いと思う。 >>307
> 沢山のファイルを読まねばならない場合はやはりファイルを開くのは1回にした方が良い
個人的には元の>>235と同じようにhead/tail分けたほうが使い勝手いいんじゃね?派だけど
ファイル複数回開くの気になる人が3人目登場(過去に>>298 >>304)なんで対応してみた
「headとtail両方見るのを前提、一個の条件に対してファイル多数を前提、
byte[]を下手に返すよりもチェックそのものに専念」とした場合
class HeadTail {
private final byte[] head, tail;
private byte[] headbuff, tailbuff;
public HeadTail(byte[] head, byte[] tail) {
this.head = head;
this.tail = tail;
this.headbuff = new byte[head.length];
this.tailbuff = new byte[tail.length];
}
public boolean equals(Path path) {
try (var r = new RandomAccessFile(path.toFile(), "r")) {
r.read(headbuff);
if (!Arrays.equals(head, headbuff)) return false;
r.seek(r.length() - tailbuff.length);
r.read(tailbuff);
return Arrays.equals(tail, tailbuff);
} catch (Exception e) {}
return false;
}
} 使う時は
var ht = new HeadTail(
new byte[]{(byte)0xFF, (byte)0xD8}, new byte[]{(byte)0xFF, (byte)0xD9}
);
Path p = null;
ht.equals(p); // たくさんのファイルを次々渡す 2バイトなら1回で読めるとは思うけど、厳密な仕様では read は指定バッファサイズを埋めることは保証されていない
new byte[2] をread に渡しても 1バイトだけ読んで復帰する可能性もあるのよ
任意のヘッダ長・フッタ長を指定できるようにするならそこもちゃんと実装しないと潜在的なバグになるよ
あとヘッダ長・フッタ長がファイルより長いとおかしくなるね > 指定バッファサイズを埋めることは保証されていない
あーそれ絶対のちのちバグらされるやつやな
ここは2ちゃんのお遊びスレなんで勘弁してもらって
仕事でするやつはみんな頑張ってケアしてくれたまへ
> あとヘッダ長・フッタ長がファイルより長いと
これは単に
return false if r.length() < head.length + tail.length
みたいにファイル開いた直後に書いときゃ十分そうやな 1回の読み込みで byte[] 全部に読みたいなら readFully() のあるクラス(DataInputインターフェースが実装されたクラス)を使えば良い。
一部しか読めなかった時にループさせて続きを読むみたいな処理を自作しなくて済む。 そう言えば JPEG ファイルの最後の EOI (FF D9) の後は何が入っていても無視するという決まりになっているので
必ずしもファイルの最後に EOI があるとは限らないし、破損ファイルだとない事もあり得るんだけど、その辺は考慮
しなくて良いのかな? EOI は無視して先頭の SOI (FF D8) だけ見て JPEG と判定しちゃっても良いような気がするが。 すみません、昔サンマイクロの資格を取ったのですが、すっかり忘れてしまっていて、あらためて勉強しようとしています。
できるなら新しいバージョンを勉強したいのですが、なにかおすすめの書籍はありませんか。 サン時代に資格取ったってことはもうおじいちゃんでしょ?
いまさら資格取って何するの?
作りたいものがあるなら資格なんて気にせず作ればいいのに、、、 ボラクルに引き継がれたのって2010年くらいだっけ? >>314
本だったら、昔から翔泳社かインプレスだろ。
合格するのが目的であれば、バージョンは古くてもかまわないを >>316
そういう誤解がいまでも直らない理由が知りたい >>319
オラクル社はサン・マイクロシステムズを買収したら、Javaが付いてきただけ。 サン・マイクロシステムズは商売が下手だったから、関係ない組織がJavaをこねくり回して、問題ばかりを起こし、お金の請求がサン・マイクロシステムズに来るのをオラクル社がちゃんと対処して正常に戻した。 普通はサンマイクロの資格 = SJC-* (Sun Certified Java *) を連想するんじゃない
それが2010年くらいまであったってことでしょ
商売が下手とかどうでもいいんだけど 2010年にJavaはオラクルに引き継がれたってことで間違ってないじゃん >>322
だから、Javaはサン・マイクロシステムズが作ったもので、それをオラクル社が引き継いでいることを知らない人間が、Javaの資格を保有しているなら、その人間は知識が古いまま、現在のことを知らないということになる。
昔の知識でやっている開業医と同じ。それいつの時代の医療行為なんですかと思う医師がいるだろ。
オラクル社は他の試験でもそうだが、歴史的経緯を試験範囲にしてくる。Javaの歴史を資格の合格条件に入れているんだから、あとから同等の資格に合格した人間からすると不思議な人たちということになる。 if文でAとBの論理積は&&ですが、論理演算子の&だけでも成り立つと思うのですが、どうなんでしょうか? >>325
成り立つ場合もあればそうでない場合もある
成り立たない例
String value = null;
if (value != null && value.equals("value")) {
System.out.println(value);
}
&&を&にすると例外が投げられる >>327
ありがとうございます。
条件文は全部実行されると思ってました。
valueがnullかもしれない場合はifのネストにしていましたが、左から実行して確定時点で止まるショートサーキットを知り勉強になりました。 String s = null;
try {
System.out.println(s.equals("foo"));
} catch (Exception e) {
System.out.println(e); // java.lang.NullPointerException
}
System.out.println(s != null && s.equals("foo")); // false
System.out.println("foo".equals(s)); // false Javaって
「あーこんなアプリほしいなぁ」
て時にさっと作れるからいいよね わかる
GUI部分も素で入ってるのがラク
ソースとjavacだけで書き終わるのラク classpathとかlibrary pathとかsource pathとか他の言語じゃ意識する必要ほとんどないけどJavaだけクソめんどくさい
ソースの中身の記述ととディレクトリ名/ファイル名を一致させなきゃいけないのもJavaだけ
コンパイルエラーのメッセージの不親切さも際立ってる
コードだけ見ればそこそこ初心者向けにいいように見えるが特別な理由のある人以外はJavaから始めるのは絶対におすすめしない Android studio でjaveを初めて使って二年経つけどやり易い環境だと思うな。
UIも簡単だし、グラフはMPAndoidChartで楽勝だ。もう、PCでアプリやりたくないと思ったが、C#の仕事が舞い込んで来た。(´Д`) Kotlinのわかりやすい入門書あるん?
無かったら無理だよ >>336
とりあえずここでも見て参考にしたら?
Kotlinが学べる本・参考書おすすめ9選!初心者向けの入門書も紹介
https://freelance-mikata.com/columns/7049/
Kotlin の場合、どうなってると何が分かり易いかは人によってちょっと違う。
これまで Java をやってきて Java は分かるという人に対して分かり易いのか、それともプログラミングなんか一切やった事がない人にとって分かり易いのか、更に Android のプログラムを作る人に対して分かり易いのか、など、色々と人によって違うのでこれなら誰に取っても分かり易いみたいな入門書はないと思う。 recycleって何の効果もない気がするんですが…
recycleしてもメモリーオーバーするし… >>332
何をやらかすかわからないバカが使うことを想定した言語だから縛りがきつくなるのはしょうがないよ 逆に言うと縛りがきついって感じる奴は馬鹿なことしようとしてる馬鹿なんだよね 違う
チームで仕事を進めるためにはどうしてもスキルの低いメンバーのレベルに合わせざるを得ない
優秀な生徒ばかりの進学校の校則は緩いがバカが集まった底辺学校の校則は厳しい
大規模なプロジェクトではどうしてもバカが混じってしまう
優秀なプログラマーには不自由を我慢してもらってでもバカには足枷をかけなければいけない 自覚のない馬鹿が
他人事のように
馬鹿を語る時
黒い雲が
わっと広がってくる
つめたく
悲しい雨がしとしと
彼とその同僚を濡らす スキルの低い奴に合わせるプロジェクトなんて一つも見たいことないから一発で仕事したことないバカ学生ってわかるな
経験豊富でスキルの高い奴が新卒レベルのゴミに合わせてゴミみたいなコード書くのか?w書くわけねーよなぁw
開発の現場でスキル低い奴はプロパーなら移動、派遣ならクビ切り
これが現実だよ阿呆学生君 バカに合わせたゴミコードを書くなんて一言も言ってない
バカでも使えるプログラミング言語を使うって言ってるんだよ
文字の読めないクビ切られまくりのバカ派遣さん 客観的に見てそう捉えられないようなアホ文章書いておいて言語を合わせるとか屁理屈ほざきだしてワロタw
さすがバカ学生だなw
じゃあスキルの高い奴が使って開発してる言語とそれでリリースされたプロダクト言ってみ
javaのスレにいるんだからもちろんコンシューマー向けのwebアプリだぞ
間違ってもクライアントソフトとか書くんじゃないぞ?w
言えるか?wバカ学生だから言えない?w
あほ それにしても言語を合わせるってwww
ホントバカすぎてワロタわw
ドアホ javaの登場で職業プログラマーが爆発的に増えました
あなたのように文字も読めないバカでもそれなりにプログラミングが可能になったのです
これは束縛がきついと言われるjavaの優れた言語仕様のおかけです
自分でメモリ管理せねばならないCや、型やスコープが曖昧だと敬遠されるLL言語をバカに使わせるのは危険なのです
バカに使わせるにはjavaはまさにうってつけなのです
しかしバカはバカ、IT土方と呼ばれるバカプログラマーを量産する結果となってしまい業界の質の低下を招きました
コンシューマー向けのwebアプリですか?java案件の中でも最底辺の仕事ですねw
プログラミング言語なんてただの道具ですから何だって使いますよ
バカはjavaだけ使っていなさい 30分調べて書こうと思った文章がそれ?wまともな文章書けないなら黙って消えりゃいいのにw
絶対書くと思ったけど今更メモリ管理に言及して言語の優位性説くとか君偏差値20ぐらいの超絶バカ学生?w
そのバカ向けの言語のjavaで開発されたwebサービスにAmazonとかNetflixとかあるけど
腐るほど金ある企業がなんでバカ向けの言語使ってんの?w
まぁバカ学生相手に真面目に詰めてもこっちが恥ずかしいからこれぐらいで許してやるけどさw
あ っ ほ w どうせ>332みたいなレベルの糞バカ学生君が学校の課題やるのに
環境すら作れなくて文句言ってるだけの池沼なんだろうけどw
消えろゴミ学生 >>腐るほど金ある企業がなんでバカ向けの言語使ってんの?
優秀なプログラマーより圧倒的にバカの方が多いからですよ
残念ながらこの世の中はバカに合わせないと上手く回っていかないんですよ
バカの渦中にいるバカに理解できなのはしようがない事ですね
>>消えろゴミ学生
もうちょっと遊んでくださいよ~、センパイ センパイはCは使えるんですか?
javascriptとかpythonなんて朝飯前なんでしょうね >優秀なプログラマーより圧倒的にバカの方が多いからですよ
全く答えになってないけど?w
金あるんだから優秀な奴だけ雇えるのになんでバカ向けの言語使ってるって聞いてるんだけど
読解力0なの君?wこんな文章も理解できない糞バカなのになんで他人にバカって言えんの君?ww
javaが選ばれてる理由をメモリ管理以外に書けるかい?w ん?どうだ?いけそうか?w
がんばって調べて書いてみようか?w
あほ 当然使えるけど?ww
javascriptなんてwebサービスとセットだからみんな使えるけど?wwww
君そんなゴミカスレベルでなんで人様をバカにできるの?wwねぇwww池沼バカ学生君w
あほ >>javaが選ばれてる理由
バカがやらかすことを最小限に抑えられるから
センパイは自力でメモリ管理できますか? >>355
ですよね
プログラミング言語なんて単なる道具ですもんね
バカはjavaだけやってればいいですよね >バカがやらかすことを最小限に抑えられるから
だから答えになってないんだってwww小学生?
やらかさない奴だけを雇えるのに何でバカ向けの言語使うかって聞いてるの!wwwwwwwww
何回同じ事いわせんだよ糞バカ君wwww
メモリ管理もできるってwwwwwwwバカがそれ聞いてどうすんだよバカwww
糞まぬけが まんま何も知らんバカ学生なんだから課題だけやっていいやん
どのみちここまで馬鹿だと肉体労働しかできないんだから
どうせパイソンしか使ったことないんだろw
ほんとバカが透けて見えるわw >>やらかさない奴だけを雇える
無理ですよ
あなた社会で働いたことありますか?
>>何でバカ向けの言語使うかって聞いてるの
リスクを極力抑えるためですよ
そんなこともわからないんですか?
やっぱりあなたバカですね
>>馬鹿だと肉体労働しかできないんだから
IT土方のバカプログラマーに言われるとは… 海外だとスキル高い=年収の等式がまんま成り立つの
糞バカ君が言うメモリ管理wwwごときなんて金出せば何万人と雇えるのwwww
屁理屈すらなってないことしか書けないしバカ糞バカなんだからさっさと消えたらどうだ?
バカってなぜかバカの中でjavascriptの敷居高くなってんのも笑えるしw
なんもしらんバカだからFWとごっちゃにしてんだろうけどw
わざわざ聞いてくるぐらいだからこっちのほうが難しいと思ってるのもバカすぎて滑稽すぎる
どんだけ井の中の蛙演じてんだよバカ学生君w
あほ 言うことがメモリ管理とスコープってwww
脳内でもう一人糞バカ君の分身でも作ってお話しててくれよw
課題がんばれよ糞バカ池沼学生君
糞あほw メモリ管理できる人が何万人も雇えるって…やっぱりバカだ だってメモリ管理とスコープを理解できない人たちでもjavaなら使えるんだもん スコープでドヤる新種の池沼とか腹痛いwww
手取り5万の奴でもメモリ管理できるねw
糞バカ君はバカ学生だからできないみたいだけどw
あほ そもそも糞バカ君のいうC言語やLL言語じゃメモリ管理あろうがなかろうが
まともなwebサービスなんて何一つ作れないんだけどなwww
そのことに気づかせてやろうとして誘導してやってるのに
メモリ管理とスコープを延々と書き続ける真性の糞バカ学生君ww
なんも知らん糞バカだからC言語でAmazon作れると思ってんだよな?www
あ~腹いてぇw
あほ しかもメモリ管理しないことはバカどうこう以前として圧倒的利点なのに
それをバカ向けとか言ってる時点で煽りでもなんでもなくて頭弱すぎてヤバイ
この糞バカ君理論で言うと全ての利点がバカ向けになるねw
バカには辛い世の中だろうけどがんばって生きろよ~糞バカ君w
あほ 入門書の最初の5ページ目ぐらいのところに書いてるようなくっそ低レベルなことでがんばり続ける糞バカ君w
糞バカ君から超糞バカ君になる才能あるよ君w
がんばって糞バカ道を極めてくれw
糞バカ >>入門書の最初の5ページ目ぐらいのところに書いてるようなくっそ低レベルなことでがんばり続ける糞バカ君w
鏡、鏡www メモリ管理のことにしてもどうせ何もわからんくせに書いてるのバレバレだしw
なんも知らんくせにホントここまでイキがれるバカが怖い
あほ 随分メモリ管理にこだわりますね
javaではさんざんぬるぽで苦労したんでしょうね >>ここまでイキがれるバカが怖い
>>ここまでイキがれるバカが怖い
>>ここまでイキがれるバカが怖いwwwww ほらね、案の定ここで言うメモリ管理とヌルポは論点が全然違うっていうのも理解してない糞バカ君w
なんも知らん糞バカなんだからもうレスやめたら?w
よくバカの上塗り続けられるねwバカだから上塗りしても気にしないのかw
あほ まぁバカなりにマウント取ろうとして調べたらヌルポっていうワードが出てきたから書いたんだろうけどw
バカが丸見えだけど精神のほう大丈夫か糞バカ君?w
バカの浅はかな知識じゃ通用しないぞ?w
あほ >>ここで言うメモリ管理
具体的なこと何も言ってないじゃん
やっぱりバカだ メモリ管理しないとどうなるか知ってるならわざわざ言わなくてもわかるんだけどww
わかってないからヌルポがーって書いたんだろ糞バカ君w
小学生が大学の教授レベルの奴にバカバカ言ってるようなもんだが恥ずかしくないのかねw
キミを見てるとこっちが恥ずかしくてかなわんのだけどw
あほ わざわざ言わなくてもわかるんだけど
だってw
逃げた、逃げたwww これだけ本物だとメモリ管理どころかjavaでまともにコーディングもしたことなさそうだなw
本物だからここまでしつこくバカ晒せるんだろうなw
池沼にここまで時間使ったのはさすがにきついw
がんばって生きろ~池沼w
あほ センパイはjavaでまともにコーディングもしたことあるんすか? あ、これからはセンパイじゃなくて大学教授って呼んだ方がいいですか? センパ~イ、どうしたんすか?
もう寝ちゃったの?
もっと相手してくださいよ~
ボクと一緒にアンドロイドアプリ作りましょうよ 皆さん、お分かりいただけたでしょうか
自分勝手な妄想を膨らませて独り善がりの世界にはまり込んでしまったバカプログラマーの姿を
このようなバカプログラマーには縛りのキツイjavaの鉢巻が必要なのです
javaは暴走する孫悟空を抑止する金輪の役目を果たすのです
しかしここまで拗らせてしまうとjavaの束縛をもってしても手遅れかもしれません
それにしてもjavaは偉大な言語です
これからも我々javaプログラマーは力をあわせてプログラミング業界を盛り上げていこうではありませんか!!! A-B+C
と
A-(B+C)
では
演算結果が全く違うことに気づきました
これ結構プログラミングで原因不明のバグの原因だったりするんです
本当にJAVAって複雑ですよね JAVAって複雑だよねー
JAVAって本当に奥の深いプログラミング言語だわ
JAVAの素晴らしさがわからない阿呆がかわいそうだよね >>393
JAVAの素晴らしさを理解できないサル脳 なんだこの馬鹿w必死に俺を煽ってたのかw
気づいてもらえないからまたレスつけたんだろうなw
さすが算数もできないバカw バカが自分のバカさに気づいたから恥ずかしすぎて釣りってことにして逃げたんだろうなぁ(哀れみw
コイツこの前のチンパン学生だろうなw
ホント馬鹿の思考って死ぬほどわかりやすすぎてビックリするわ このチンパンガチで小中学生ぐらいじゃねーか?w
小中学生が5ch見るとは思えんねーんけど
さすがにこのレベルの精神年齢幼児は見たことねーわ
延々とブーメラン投げ続ける幼さはどう見ても厨房以下だし
これで大学生以上とかだったら親が悲惨すぎるだろw >>401
第三者として言わせてもらうとお前も同じだぞ つまんねーことばっか書いてんじゃねえよカスw
理論的に書けねーんならだまってろカスw
でも悔しいから書いちゃうんよね?ね?
すっごい顔真っ赤にして書いちゃうんよねバーカ
よく読んでからレスしろひとまずは馬鹿者 +=a と =+a を間違えてしまうのですがどうすればいいですか?
また
-=a と =-a も間違いやすくて困ります
間違うと結構致命的な欠陥が起きるので
間違わない方法を教えて下さい 間違えない方法を考えるよりも
たとえ間違ったとしても致命的な問題にはならないようにする方法を考えたほうがいいよ
これはあらゆる安全対策に共通する考え方 = +a と見ればaにプラスの記号がついているだけだなとわかる
= -a も同様
こういう風に覚えれば混乱することはない なるほど+-でもなかなか深いですね
やっぱり基本は算数だということは痛感します oauthとサーブレットって同じものですか?どう違いますか? OAuthは認証の仕組みJavaとは関係ない
サーブレットはWebサーバで動作するJavaのプログラム >>413
Javaのセッションスコープに入ってるログイン情報を使って他のページに遷移するのとは違うんですね。㌧ 初歩の初歩的な質問で恐縮なのですが
test/Hoge.java内でpackage test;と書くと
The declared package "test" does not match the expected package(宣言されたパッケージ "test "が期待されたパッケージと一致しません。)となり。
test/test/Hoge.java内でpackage test;と書くと普通に実行できるのですが何が違うんでしょうか? なにかIDE的なものを使ってない?
それで、例えばパッケージ名がmypkgの時に、
PROJECT_HOME/src/mypkg/Hoge.java
PROJECT_HOME/test/mypkg/HogeTest.java (単体テスト用)
の様にファイルを配置するルールになってるんじゃない? VSCODEを使用しています(最初に書いておくべきでしたm(__)m)。
PROJECT(VSCODEで開いてる)/
Main.java
pkg/
Sub.java
という構成で練習していて
Sub.javaで package pkg; と書くのは問題ないのですが、
Main.javaで package PROJECT; と書くと前述のエラーになります。
まだjavaプロジェクトのフォルダ構成の知識がないので、ご指摘のようにVSCodeで何かのルールを設定しているというより、私が変な勘違いをしているのが原因だと思います。
改めてお聞きしたいのですが
1.packageはプロジェクトホームの直下に作ったパッケージ用ディレクトリ内のjavaファイルで宣言するものなのでしょうか?
2.packageにプロジェクトディレクトリを宣言するのは根本的におかしいことなのでしょうか? すみませんスペースが消えて見にくいので再投稿します;;
PROJECT(VSCODEで開いてる)/
├---Main.java
└---pkg/Sub.java なんとなく状況は分かりました
まず"2."に対しては、プロジェクト的なディレクトリ(VSCodeだとworkspace folder)の名前をpackage名には普通用いません
次に、Javaのpackageをもう少し理解しましょう
Javaのpackageはsource pathのルート(起点)からの相対で表現されます
例えばMain.javaのpackageが
package jp.example.hoge.myapp;
である場合、
MyAppProj/src/jp/example/hoge/myapp/Main.java
のように配置します(srcディレクトリを作るかは流儀によりますが、ここでは含めるスタイルで書きます)
この例の場合MyAppProjがC:\Users\hoge\Documents\MyAppProjにあるとすると、source pathはC:\Users\hoge\Documents\MyAppProj\srcです
ここで
MyAppProj/src/Hoge.java
のように配置した場合、Hoge.javaにはpackageは指定しません(指定できません)
これをdefault packageと呼びpackage名を持たない特別な名前空間です
(なおdefault packageは通常、簡単なテストや短い書捨てプログラムにのみ用い、実用的なプログラム開発では使用しません)
あなたの場合、PROJECT/pkg/Sub.javaに
package pkg;
と記述するのは正しいですが、
PROJECT/Main.javaは配置場所からdefault packageに属するのでpackage指定は必要ありません(出来ません) 書き足し
あなたの場合、"SOME_WHERE/PROJECT"がsource pathとして扱われているので、PROJECT/pkg/Sub.javaに
package pkg;
と記述するのは正しいですが、
PROJECT/Main.javaは配置場所からdefault packageに属するのでpackage指定は必要ありません(指定出来ません) ありがとうございます。やはりパッケージ関連の知識と認識がずれていました。
使用していた教材のパッケージに関する説明が浅すぎて誤解を重ねていたようです。
ご指摘を受けて改めて調べたところVSCodeのsetting.jsonで"java.project.sourcePaths"などを設定できることがわかりました(というかプロジェクトのひな形を作れた)。
また、学習を始めたばかりでディレクトリ構成に対する意識がまったくなかったので新しい課題も見つかってうれしいです。
次はもう少し専門的な質問が出来るように励みますm(__)mありがとうございました!! プログラム書いてるうちに一つのファイルで4000行メソッド数150くらいになったんだけどこれってデカすぎ? >>424
1メソッド平均27行ならそんなにおかしくはないんじゃないの
役割を整理してもう少しクラス(ファイル)を分けたほうがいい気もするけど
内容によっては1クラスに150メソッドになることもあるだろうから何とも言えん デカすぎるよ
デカすぎる不便をジワジワ感じ取ってほしい
デカすぎないようにいつどうしたらよかったか
それを将来考えることになると思う
ただし、クラスなんてサイズを理由に分割するもんじゃないし
クラス名とクラスの役割の輪郭がハッキリするように
再利用性の高いクラスをつくっていけるように
そんなふうに努力した結果、サイズもちっちゃく収まってくるもんだと思ってる publicなメソッド数やオーバーロードの数なんかによるな
一般的なアプリケーションプログラムのクラスなら分割考える Java はフォルダ構成とか、クソほど難しい
Ruby なんか簡単に動く。
Ruby on Rails でも、フレームワークでプロジェクトのフォルダ構成は決まっているし、
全員が同じ構成を使うから、分かりやすい >>424
なんでそんなにでかくなった?なんか設計おかしくないか? java.util.Collectionsが
コメント入れて約5600行
コメント抜きで約3500行
インナークラスが約50個
メソッド数が約400(インナークラスのメソッド・コンストラクタも含む、300以上は1行のみ、Unsupported例外を投げるやつも含む)
こういう広く使われるライブラリで
管理上どうしても1ファイルに収めておきたい特殊な事情がある場合のみ
辛うじて許容されるレベルだと思う jQuery の非圧縮版は1万行で、30KB もある 自クラス内なら aMethod(); で済むところ
var otherClass = new OtherClass();
otherClass.aMethod();
めんどくさい。 OutputStreamで謎の文字化けが突然始まり悩んでいたら
UTF-16にしてみたら解決した
何やねんUTF-16ってUTF-8ってもう使えんのか
時代の流れについていけへんわ 超古いSDKを使っているせいなのでしょうか?
誤作動します
どうすればいいですか? Javascriptを学びたいと思います。オンラインで学べますか。どれくらい時間がかかりますか。 >>441
ありがとうございます。他で尋ねてみます。