Java入門・初心者質問スレ Part.7
レス数が1000を超えています。これ以上書き込みはできません。
荒らし防止にワッチョイスレにしとけば良かったのに。 建てたければ建てればいい
ワッチョイの有無は別スレ扱いで
伸びた方が本スレってスタンスだし あっちはひたすら自演で荒らしてるだけだから触るなよ javaやる人が.netもやる事になって言語も選択出来るとしたらvbとc♯のどちらを選ぶでしょうか Javaやる人はVBが大好きなのでC#を選ぶでしょう 仕事でJavaを使う(開発)のに最低限必要な知識
・eclipseの使い方を覚える
・htmlとjstlとjavascriptを当たり前のように使えるようにする
・SQLを当たり前のように使えるようにする(外部結合ぐらいわからないと話にならない)
・DB接続ツールの使い方を覚える
・メジャーなDB(oracle、db2、mysqlなど)間のデータタイプ、互換性のないSQL、演算子を覚える
・バージョン管理ツール(subversion、gitなど)やTracの使い方を覚える
・シェアが高いフレームワークの作法を覚える(開発が死んだFWも含む)
・シェアが高いORMの使い方と欠点を覚える
・シェアが高いビルドツールの記述作法を覚える
・unitテストの実装方法とやり方を覚える
・デザインパターンを覚える
・言語の超基本的な知識を覚える
・クラスやインスタンスの違い
・singletonとstaticの使い分け
・インターフェースと抽象クラスの使い分け
・継承とコンポジションの使い分け
・ジェネリクス
全部ググれば余裕で覚えられることなのでこれら最低限の知識がないと全く使い物にならない
誇張は一切含まれないので言語の本に書いてあることも理解できない奴は諦めろ >>8
>eclipseの使い方を覚える
intelliJ じゃだめですか?
>・メジャーなDB(oracle、db2、mysqlなど)間のデータタイプ、互換性のないSQL、演算子を覚える
postgreSQL じゃだめですか?
>・シェアが高いビルドツールの記述作法を覚える
make じゃだめですか?
>・ジェネリクス
C++ template の知識じゃだめですか? >>8
その程度の経験じゃバイトで時給700円だわ
派遣で月収20万稼ごうと思ったら当然主要デザパタは全てマスターしてないとダメだしクラスとエンティティのモデリングも出来ないとダメ
システム企画から外部設計テスト計画まで書いてredhat系のLinuxでフルスタックでシステム組めてまあ2年は置いてやるかってレベル
ただし正社員は外注丸投げのための発注書書ければ上記のスキルは全て不要 まともな知識があれば何の責任もなく好きな時に現場を自分の意思で変えられて
適当に作業するだけで定時に帰ってそこそこの金を貰える派遣が一番楽なことを
ろくな知識もない故に簡単なバグも自分で直せずシステムの根幹を
永遠に理解できない責任ある立場の無能は知らない https://jankotek.gitbooks.io/mapdb/btreemap/
>For array based keys (tuples, Strings, or arrays) MapDB provides prefix submap. It uses intervals, so prefix submap is lazy, it does not load all keys.
これどういう意味ですか?条件に合致するレコードが含まれない可能性があるんですか? 初心者スレならww 聴いて良いハズwww
ボタン押したら、画面の文字を更新で躓いてるんだけどww
何処が悪いの?
http://fast-uploader.com/file/7073058290871/ コード貼った方が早かった
エラがー出ないけど、ボタン押すと落ちる
package com.example.ああああ.myapplication
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import kotlinx.android.synthetic.main.activity_main.*
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
fun aiueo(){
message.text="Hello"
}
}
} 例外でてるはず
エラー出力みたりデバッガ使ったりしてる? android-studio 昨日から使ってる。
項目を画面内から探して見ます。
ありり androidだしjavaですらねぇww
例外の内容張り付けた方がレスもらえそう やめとけ、やめとけ。ゲスに与えてやる良心は一円足りとも要らねえ・・ww NPOここからねっと ひきこもり支援と謳った詐欺集団http://cocokaranet.org/ ☆ 日本の、改憲を行いましょう。現在、衆議員と参議院の
両院で、改憲議員が3分の2を超えております。
『憲法改正国民投票法』、でググってみてください。国会の発議は
すでに可能です。平和は勝ち取るものです。お願い致します。☆☆ >>24
アメリカから「お前イランに出兵しろ!」といわれたときに
今までなら「アメリカ製憲法9条のせいで出られません」
と断る理由があったのに、それがなくなるのは危険 嫌だと言えばいいだろうが
侵略するための戦力じゃないと >>27
大量破壊兵器があるらしい、という不確実な理由を根拠にイラクに攻め込み一つの社会を潰してしまっても何とも思わない国を相手に、
国内の理由だけで嫌だといえますでしょうか?そのような実力があるのでしょうか?
どこぞの国のように原爆を落とすぞ、落とすぞ、と威嚇をかけつつ交渉するほうが言い分が通りやすいのではないでしょうか? 全ての国は防衛のために軍隊を持つが、それが使用される時はだいたいはやり過ぎになって侵略になる。 憲法改正して発達障害者の人権を停止あるいははく奪できるようにすべき。
人権を有する条件に一定の社会性を含めるべきだ。 恐らく、注文する段階で躓く。[流暢に喋れないな]
>>32
なんで、こんな所までソ連が攻めて来てんだよw >>35
え?ドトールで?
なんだかわからんが、じゃあ自分ちでドリップして飲め。 >>28
憲法9条があるから日本人は弱気になってしまうんだ
9条がなくなればアメリカとも対等に交渉できる >>37
逆でしょ
9条があるから、アメリカ製9条があるから、アメリカ様のご機嫌を損ねるまでには至らない
9条を撤廃すればどこぞの国のように原爆を持たないと真の意味で対等とはならない
9条を撤廃するだけでは足りない >>25
馬鹿か?
イラン派兵が『日本の自衛目的』になるケースがあるんか?
馬鹿は死ねよwww >>39
イラク戦争のときには「日本は金だけ出して兵を出さない」と散々の非難だった
日本の自衛目的とはいうが、集団的自衛とは日本近海に展開するだけではなく、
アメリカ軍を援助するためなら、どこへでも出兵しなければならない、という建前だ
日本に攻めてきた!→アメリカ軍もそれに援助しよう
アメリカに攻めてきた!→日本軍もそれに援助しよう
それを相互に同時に行うのが軍事同盟というものではないだろうか? >>40
非難されたからといって気にする必要はない
イラク戦争は完全にアメリカが悪い
自国の利益のために戦争を仕掛けて
アメリカの経済は良くなったかもしれないが
その影には多くの不幸がある
アメカスの口車に乗って戦争に参加することが同盟と言うならば同盟なんて要らないだろ、つまり9条も要らないだろ >>40
>>アメリカ軍を援助するためなら、どこへでも出兵しなければならない、という建前だ
そんな建前ねえよ、うすら馬鹿 >>43
あるよ、「存立危機事態」の定義は
「日本と密接な関係にある他国に対する武力攻撃が発生し、これにより日本の存立が脅かされ、国民の生命、自由および幸福追求の権利が根底から覆される明白な危険がある」状態
つまり、他国に対する武力攻撃に対して応戦することが認められているのだ マルチにレスしちゃいけない法律でもあんのかよ
自衛隊にぶち殺されてえのか 35歳にもなったら自身が将来性無いので言語の将来性とか無用 俺その35歳って人じゃないんだけど
返答する気ないなら出てってもらえます?邪魔だから Oracleが有償サポートに切り替えたので正直微妙だね Javaを1年以上勉強してるはずなのに未だに入門書を理解できない35歳はやる気も適性もなし 入門書だけ読んでるだけだとよく理解できないよたぶん
入門書なんてただの紹介みたいなもん >>52
もうJava死亡だよ
新規案件は確実に減る 答えてくれた方、ありがとうございました
>>52
そうなんですか?それはショックですね
>>53
ネットの検索件数とかだと上位に来るからです
>>56
自分で作ってみるってことが大事なんですね…
>>57
次に来るのはPythonとかですか? >>58
Javaスレを荒らしている35歳についてどう思いますか? 自分がされて嫌なことを他人にしない
道徳の基本です そういうのをするのが35歳なんだよ
あいつは自分だけが尊い、だから >>65
Javaスレなのに
>>971
マジ死ねや
>>972
新しいスレに禍根を持ち越したくなかったんですよ。
>>975
放送禁止用語を使うなハゲ
>>976
死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね
死ね死ね死ね
ハイもうおしまい
こんな事を書き込まれて嫌な気待ちになりました
35歳に道徳はありません
常に禍根を作る35歳に道徳を説いていただけませんか? >>58
>自分で作ってみるってことが大事なんですね…
あなた、偽者ですね。
35歳がこんな真摯に向き合う事なんてない。 Javaが終わったと界隈で噂になっていますが
いったいどうなっていくんですか?
どれが近い?
・特定分野での使用ができなくなる
・ただの有償化
・一般企業(ECや業務系)は今までと変わりなく使える
・企業は無理だけど、個人は今まで通り
・結局何も変わらない @Propertiesクラスを使ってプロパティファイルを書換え。終わったら一旦システム終了。
ALimyプロパティエディタ等で開いてプロパティファイルの中身が変わっていることを確認。
BResourceBundleクラスで書き換えたプロパティを読み取る。
@→A→Bの順番で確認するとBで@で書換えた値が読み取れるのですが、
@→Bで確認すると、@で書き換える前の値のままです。
ResourceBundleクラスでも、Controllerクラスを実装して、キャッシュを貯めない設定しているので、理屈上は、新たに読み取るはずですし、そもそも
処理が@が終わった時点でシステムが終了して、BでまたJavaを実行してるわけですから、キャッシュなんて残ってないと思うのですが、
何が原因でしょうか。 追記です
@→Bで確認すると、@で書き換える前の値が読み取れませんが、
そのあとAファイルを開いて→B読み取りをすると、@で書き換えた値が読み取れます。
一旦ファイルを直接開くというアクションを挟まないと、Java上では値が変わらないのでしょうか おーーーい。 日が暮れるぞ。
はやく、帰ろーよ。 与作さーーーん。 >>69
企業が導入してるJava資産には確実に保守費用が加算される
つまりシステム維持費用がアップする
(メガ銀行や自治体)
体力無い銀行や小さい自治体はJavaやオラクルでないシステム構築に切り替え起こる
(仕事が増える)
保守費用払える所は払ってしのぐ >>58
Python、Rubyなんてマイナー
PHP or Perl >>72
どのようにして解決したのかを書いてくれ。 >>74
むしろ有料サポートを歓迎する企業が多いけどな。 有料サポートは前からあったでしょ。問題は無償利用がダメになったことでしょ。 無償にしたいならフリーにしろってことでは?
無保証になるけど。 OpenJDK8→OpenJDK11LTSでしのげばいいだけの話じゃないの >>75
java屋がPHPerのコード読んだら吐き気するぞ
perlなんてもっと凄い >>81
PerlとCを仕事で使いJavaとKotlinを趣味で使ってる俺って・・・ 「Java EE」、「Jakarta EE」に名称変更
https://pc.watch.impress.co.jp/docs/news/1109741.html
これって使う側からすると、何か変わるの?
拡張子がjavaからjakataになるとか? >>84
呼び名変わるだけだろ
実体は何も変わらん >>82
セキュリティ無視すればな
OpenJDKに逃げる手も有るが、JRE部分は古いままでは使えないしな >>88
知ったか君はやっと理解した? www
過去バージョンのまま使いたいしセキュリティアップデートも欲しい -> 商用ライセンス必須
常に現行バージョン使う -> 無償でも可
過去バージョン使い続けるけど金払ってまでセキュリティアップデート必要ない -> 無償でも可
OracleのJDKは上の3択
他のところのやつは別 Javaの並列処理でinvokeAllとかawaitTerminationがタイムアウトしたらスレッド中断という
機能を持ってるけど、この中断でリストへの格納処理が中途半端になることはある?
例えば各スレッドが共通のリストに結果を随時格納しているような場合。
その可能性を考えるとどうやれば安全にマルチスレッドの処理結果を集められるのか? 各スレッドで終了判断してメインスレッドは十分な時間sleepで解決した。 >>89
現実問題としてセキュリティ無視して使い続ける訳にはいかないから、無償では使えないのが現実だな
結果的にJavaは死んだも同然だな
ライセンス料金必要ならマイクロソフトに御布施してC#使う道も有るからな 似たような状態のLinuxが死んでないので何とかなるんじゃないかな。
Androidのベース部分になったのが一番効いてるが。
そういやAndroidアプリはJavaで開発するんだからJavaも死なんだろう。 >>95
>>Linux
Linuxは元々ライセンスフリーだからJavaの経緯とは違うと思う
>>Androidアプリ
JavaからSwiftに変わる可能性有る
https://itpropartners.com/blog/4392/ >>97
よく見たらその記事が書かれたのが2016年4月じゃない。Kotlinについて一言も触れてないのはそれでか。
Googleは2017年5月にKotlinサボートするって言ってるからその上更にSwiftまでやるということはまずないと思うよ。
やるとするとKotlinのようにJavaVM用のバイトコード作るようになってくれないとダメだしな。
ネイティブコードだけだとAndroid端末全てでは動かせなくなって特定のCPU向けアプリに限定されてしまう。 Javaがあの状況だとKotlinを捨てる可能性もあるんじゃないか? まぁKotlinを実装したけど、
普及しなかったら捨てるかもしれんな
Microsoftとかも似た様な物だし Androidアプリ作成が無償で出来なくなるなら将来、Androidは衰退するかもね
iPhoneが息ふきかえすかも知れん
(今の値段では無理だろうけど)
Linux普及も元々ライセンスフリーが根っこに有るから、わざわざライセンス料払って有料ディストリビューター買う神経が理解出来ない AndroidアプリはGoogle製のDart言語でも作れるようになる >>100
捨てるとしてもGoogleはサボートしなくなるだけだから問題なかろう。Kotlin作ってるのはJetBrainsだし。
まあしかしAndroidのJavaVMで動かす方式はそう簡単には捨てないと思うよ。捨てたらこれまでのアプリがほぼ全滅しちゃうから。
スマホのような多くの初心者や素人がいじるような機械で一切の互換性を放棄することは余程の事がない限りやらんだろう。
やるとしたら新しい実行形式を独自に作って追加して移行を促して時間を掛けてやるんじゃなあかな。 他のオープンソースパクって名前変えるとかgoogleの尻の軽さはApple並だったからな。
googleは切捨てもApple並だということがよくわかった。kotlinも普及した頃には捨てられると思う。 >>90
スレッド中断ってのはinterruptのシグナルが送られるだけ
そのシグナルにきちんと反応するかどうかやどういう方法で中断するかはコードを書く人に委ねられてる
トランザクションマネージャーとは違うのでロールバックしてくれたりはしない 例えばデータベースが普及していくとともに
OracleDBが使えない層でもPostgreSQLが使われるようになった
Javaにお金が払えない層はそれでもJavaを使うのか
もしくはCOBOLに戻るのか 皆、Node.js へ移行するかも
すでに掌田津耶乃だけが、Node.js の本も書いてるw WEBに詳しい人ってエロサイトで鍛えてるイメージ。 >>110
ポスグレはいいのにOpenJDKじゃダメなん? ちょっと思ったのですが、Java8で追加された機能であるdefaultによる
インタフェースへの処理のデフォルト実装って、
せっかく多重継承を避けた設計にしたのにそれに逆行してませんか? 異世界の理の輸入だからね。
多重継承万歳の異世界が存在するから世界の融和のためには仕方がない。 >>118
ありがとうございます
Javaも他の言語の影響を受けるということですね よくインターネット上の広告で半年でエンジニアに!みたいなのあるけど、インターネット不得手、プログラム未経験者が真剣に半年頑張れば本当にそんなこと可能なんですか?
可能ならその理由はなんでしょう?人材が足りていないというのは存じ上げていますが そんな広告見たことないけど何かの教材なら金ドブ
会社で勉強しながらって話なら3か月もあれば余裕 嘘広告かどうかより
先ずは自己を客観的に見つめることをお薦めする
どう考えても向いてない >>120
本当に真剣に頑張れるような人なら誰かから教育して貰う必要はあまりなく、今使ってる目の前のPCでググって調べたり本見たりしながら自分で学習すればなんとかなると思う。
期間がどのぐらい掛かるかは個人差があるのでなんとも言えない。 こんなとこに書く前に、まずネットを開いて調べながらプログラミングしてみればいいよ。
このスレに書いたってことはJavaの勉強しようとしてるんだよね。
入門サイトの解説読みながら、テキストエディタとjdk用意して、プログラムする。
調べることやツールを導入すること、実際に書くこと、このいずれかが苦痛なら正直向いてないと思う。 >>125
違う。
ツールを導入するのは、初心者には割と大変な作業ではあると思う。
コマンドプロンプトを操作しないといけないから。 >>127
ttp://hissi.org/read.php/tech/20180311/YnNWTzhXWjA.html >>128
何も考えられないから
選択式じゃないと何もできないのでしょう スッキリわかる Java入門 第2版、2014
たのしいRuby 第5版、2016
この2冊がプログラミングの基本だから、
これらを3回読んでもわからないなら、プログラミングは無理 学生のときにまともに勉強したことなんてほぼ皆無だったからかもしれんけど
学校の勉強覚えることに比べたら今のプログラムなんてクッソ簡単だと思うけどな >>128
環境変数の設定?が難しいのかと。
俺はサイトの通りに入力しただけだから何をしていたのか理解してないけど。
>>130
失礼かつ現状把握が出来ていない。
環境構築でつまずくのは初心者あるある。関連するスレッドも立ってる。 ユーザー環境変数PATH の意味が、分かっていない
こういう知識は、プログラミングじゃない。
OS の知識だから
PowerShell・コマンドプロンプトで、
ruby, node などの、パス・拡張子もないコマンドが、なぜ起動できるのか?
コマンドの探索順序を分かっていない
その単語が、コマンドとして認識される条件。
コマンドから、実行ファイルを探す手順
こういうコマンドは、Linux などで主要コマンドを勉強していないと、わからない 落とした部品(パッケージ)自体を書き換えようとすると、
エラーになるんだけど。
どうしたら、良い? >>137
なんだその漠然とした質問
答えてもらう気あんのか? >>136
ざっくりした質問で申し訳ないんですが、そういうOSというかパソコン内部の仕組み的なものに関する本でおすすめはありますかね
とりあえず検索すべきワードなどでも結構です
Windowsのみで、linuxなどは使ったことがないです。
Powershellやコマンドプロンプトを使ってサイト等に載っている環境設定をするのはほぼストレスなくできてるんですが、どのような知識が基礎的なもので、最低限知っておくべきなのかよくわかっていないので OSのすべての機能を学びたいなら、ムック本の、
Linuxエンジニア養成読本、第3版、2016
Linux 資格の、LPIC レベル1
これは、新資格の「Linux技術者認定試験 LinuC(リナック)」に移行するらしいけど
プログラマーは、OS を知らなくて、
プログラミング言語しか知らないから、環境構築できない Linux使ってれば自然と身につく
情報も多いから自分にあったもの読めばいい >>134
環境変数はコマンドプロンプトからでなくても設定できるだろ
そっちだとそのシェルでしか継承されないし
基礎がまったくないから選択とコピペしかできないんだよ
考える教育を受けてない >>140
ありがとうございます調べてみます
>>141
linuxをwindowsと併用するには仮想マシンが良さそうなんですが、これはvagrantやcyberduckを使ったローカル開発環境とは別物なんでしょうか。
ドットインストールを見ていれたもので、PuTTyを使ってJavaのコンパイルなんかに使ってます。 vagrant, chef なら、この本も読む。
たのしいRuby 第5版、2016
Windows10 なら、MSストアの、WSL・Ubuntu も使える。
ただし、GUI は無いけど
Ruby なら、Selenium WebDriver で遊んだりできるし、
シェルスクリプト・PowerShell の代わりにも使える windows10だとwslもあるよ。
LinuxではないがwindowsがLinuxカーネルの振りをして動いてくれるのでその上でそれ用のUbuntu等が動く。
利点は無駄が少なくなることだが、欠点は本物のLinux環境ではないので全てが動かない事だ。
しかしだいたいのLinuxで動くコンパイラは動いてコンパイルできると思う。GUIについては多分まだダメ。 >>144
>>145
>>146
色々ありがとうございます。
ただやはりアドバイスをいただいても理解できるだけの知識がないので、まずは用語(カーネルなど)を調べるところからやってきます。
linux乗り換えはまだちょっと躊躇するので、ひとまず併用という形で始めてみますね 昔、Javaは、沢山のプラットフォームでも動く事を売りにしてたと思うんだけど、
もしかして、iOSでは簡単に動かせなくなってる?
Appleの正式アプリ(ストア?)として登録は難しい?? 連投スマンが、頼みの綱だったRoboVMも終了になったらしいが、だとすると
せっかくJavaで作っても iOSでは動かしにくい??? Nativeでくて良いなら、
JVMをインストールすれば動くのかもしれないが、公式アプリとしては登録出来ない??
AppleがXcodeを使わす作戦か・・・。 仮想マシンだから、多くのプラットフォームでも動かせて、しかも何十年後も動くのでは
ないかと期待してJavaで開発してきた人は、梯子をはずされた感じでは。
Oracleもサポートしなくなるの?? Javaが今よりも確実に廃れるだろうなと個人的には思ってるよ 過去の例からすると、Appleも廃れたりして。NEC PC-9801 vs PC/AT機を思い出す。
iOS vs Android。結局、後者が勝つのでは。だとすると、Javaも意外としぶとく残ったりして。
それに、言語人気的にはJavaはTOPらしいし。 結論から言うと、小規模プロジェクトなら Apple製品を無視した方がトータルで幸せになるかも。
QtもwxWidgetもXamarinもどれを使っても苦労しそうだし。MS帝国から離れたいだけだったの
に、そこに宇宙からApple星人がやってきて二重苦になった。 for文で100万回繰り返すと数分かかるのに
テキストファイルから100万行読み込むのは一瞬で終わります。
for文だとなぜこんなに遅くなるのでしょうか? >>155
for文の中では何をやってるの?
コードを上げておくれ javaで自作のソフト(exe)を作る場合、javaの文法に加えて必要な知識は何があるでしょうか。
GUIというのは聞いたことがあります。
また、もしそれをフリーソフトとして配布したいというときに更に必要な知識はなんでしょうか。
今はスッキリわかるの入門編を改めて読み込んでいる段階です。実践編は最初のほうのみ目を通してます。 それと>>157は35歳臭がするんだが気のせいか? >>162
そうだとして、なぜ相手するのか?お前、35 歳が好きなのか? ググれば3秒でわかることをここで聞く意味ってなんなんだろうか >>163
除外したいだけ。
ゴキブリと一緒ですよ。 >>165
排除したいのなら、黙って構わなければよい、構うからつけあがる
そんなことも分からない馬鹿なのか? >>166
そうやって煽って頂けるとありがたいです。 >>166
ゴキブリは放置すると増殖します
見つけた時点で何らかの手を打つ必要があるのです
無視は何も手を打たないのと同然です >>164
アスペ連中には5chの書き込みフォームは高機能な自由構文検索フォームにしか見えてないからな。 >>170
悲しいのでお願いします。
35歳の迫害にご協力ください。 >>155
そのテキストの100万行を読む時にバッファリングしてるから速いとか?
まあでも同じだけforループして何の処理もしてない方が速いならなんか変だね。
100万行読まない方の処理はどうなってんの?本当に何もやってないの? >>169
お前のようなアンチしか増殖しない
煩わしいから消えてくれ >>175
あなたが50代であることはよくわかった。 今までSJISだったのをUTF-8にしてからコンパイルしたら、日本語の部分が
この文字はエンコ―ディングMS932にマップできません・・・でコンパイル通らないのですがどうすればいいでしょうか。 >>177
たしか -encoding utf8 とかやってエンコーディング指定すればよかったんじゃないかな。ちょっとやってみて。 >>177
>>178も言ってるけど、Windowsの場合、デフォルトでjavacはソースがMS932であるものとしてコンパイルする
ソースのエンコーディングを変えたら、コンパイル時のオプションでそれを教えてあげないとだめ JDKフォルダは「jdk-9.0.4」
JREフォルダは「jre1.8.0_161」
なんですが、コマンドプロンプトでは
java -version →java version "1.8.0_161"
javac -version →javac 9.0.4
となります。数字が逆のような気がするんですが、この挙動は正しいでしょうか。
コンパイルと実行はちゃんとできてます。 >>180
Linux/macOSならwhichコマンドで、Windowsならwhereコマンドで
そのjavaやjavacがどこの実行ファイルを指してるか確認したら?
Windowsの場合はJDK/JREのCurrentバージョンはレジストリで管理されてる >>181
色々いじくった結果、どっちも9.0.4になりました。
whereの結果も同じディレクトリになりました。
ありがとうございます http://kitako.tokyo/lib/JavaExercise.aspx?id=4
基礎固めでここの問題サクサク解いてたけど入力数字の素数判定で頭沸騰した
問題解く以外にプログラム作る上で素数扱うこととかあるのかな >>183
まあ、あまりないかな?
パズルとか解く時に必要になる場合がある程度か?
まあでも素数判定のプログラムが全く作れないというのはプログラマとしてどうなのかという感じはする。
それが出来ないというのは技術力や知識が全般的に足りない感じがして、他の肝心なこともできないんじゃ
ないかと思わせるに十分な感じ。 >>185
>>184
なるほど、やっぱりインプットはしておかないといけない感じですね GUIに手を出そうと思ってるんですがおすすめの本とかありますかね
ざっと調べた感じ、ゲームを作ってみる系が取っ付きやすそうな気がしてます
あと、Swingというのを使っていったら良いのでしょうか 趣味でjavaでクライアントのGUIアプリ作りたいなら勝手にしろって感じだけど
そうでないなら何の糧にもならんし時間の無駄だからやめとけ そうなんですか
CUIのみでやってるとイマイチこの先何ができるかが見えないので、GUIだと形として見えて良いかなと思ったんですが… C#は入門的なところを最近やったんですがjavaに似てる印象があっていいですね
とりあえずGUIはC#で触ってみようかと思います 仕事で使うことを目的に学んでるならクライアント型アプリとか
Javaの仕事はほぼWeb系しかないからクライアント型のような
イベントドリブンの処理方式を覚えてもまず役に立たない
落ち目のC#とかPHPとかの余計な言語の知識も入れるべきではない YouTube に、T Umezawa の、2014年の動画ある
【Java】ゲームプログラミング超入門 Part01
https://www.youtube.com/watch?v=FsRHdL_r0pE&list=PLJ86MSrhnFKVQPf-E8y0FZKv7uzR4L4Dt YouTube に、T Umezawa の、2015年の動画もある
Windows8.1とJava8の組み合わせによる最新版
【Java】ゲームプログラミング超入門 2015 Part01
https://www.youtube.com/watch?v=Wp34YbKfWag >>193
>イベントドリブンの処理方式を覚えてもまず役に立たない
いやいやいや ちょっと横から失礼するけど、Androidは、Andorid自身でAndroidアプリ(Java)を作ることが
出来るんだね。逆にiPhoneではできないらしい(?)。しかも、Androidの場合、他の競争相手
がPCでクロス開発する場合も原則Javaで書いているから、Android自身で開発しても
競争条件が不利にならない。不利にならないのはとっても重要。そして世界の流れでは
iPhoneはどんどんシェアを減らし、19%程度になってる。そして今後、ブラウザ上で動く
Javaアプレットは使えなくなっても、Javaアプリケーションは使えるようだし。
もうひとつの選択肢はオープンソースのXamarinで.Netを使うことだけど、MSは嫌われてるし、
Androidアプリは基本Javaだから、.Netアプリは一般人に使って貰えるか微妙で、果たして
どうなることか。Javaアプリに慣れたら、.Netアプリが(起動や環境設定などが)煩わしく
なるかも知れない。Xamarinの場合は、もしかしたらiPhoneでも使えるかもしれないけど、
それもAppleが嫌がらせをしてきたら終わるだろう・・・。 HTML4や、wasm(WebAssembly)も台頭してくるかも知れないけど、Googleの
出方次第でどうなるか分からない。AndroidアプリがJavaベースだったから、
もし、Google自身が損すると思えば、wasmに嫌がらせをしてくると思う。
FlashPlayerも色々もっともらしい理由を付けられて嫌がらせを受けて、今後
使われなくされてまった。訳が分からん業界だ。 誤字訂正: HTML4 ---> HTML5
Oracle(Java)とGoogle(Android)が喧嘩してるのも話をややこしくしてる。なら、
最終的に残るのはHTML5やWebAssemblyなんだろうか。特にWebAssemblyなら
C++で書いたものがブラウザで動くから、あらゆるプラットフォームで動かせる
可能性が高まる。Appleが嫌がらせをしてきた場合、iPhoneやiPadが終わるだろう。 質問です
spring4.3でコンポーネントスキャンすると指定パッケージ配下のクラスとインターフェースが全てbeanに登録されてしまいます
@Serviceや@Componentをつけていないクラスが全てが登録されてしまってるのでインジェクションで使うとしてもxxxService(インターフェース)とxxxServiceImpl(実装クラス)のどちらも該当しちゃうので@Qualifierで明示的にImplクラスを宣言して回避している状況です
Spring3だとこんなことなかったんですが4だと全部登録されるようになったんですかね?
include-filterとか使わないといけないんでしょうか?
↓これだけだとダメ??
<context:component-scan base-package=“org.2ch.domain”> >>90
ちなみにマルチスレッドは並行処理、マルチプロセスが並列処理と日本オラクルは読んでいる。 >>204
それはOracleがサポートするいわゆる正式版についてだけだろ。
フリーのやつは相変わらずあってそれテストして有料サポート付けて正式版として出すってだけなんだから問題なかろう。 javaの練習をしてるんですけど、やっぱりeclipseに慣れたほうがいいんでしょうか
もうインストールしてプラグインも色々入れてるんですが機能が多すぎる感じがするのでシンプルなVScodeを使ってます。
何か移行したくなるようなメリットありますかね 趣味なら好きなIDE勝手に使ってろって感じだけど
そうでないならeclipse以外を使うのは時間の無駄 >>206
基礎から理解したいならテキストエディタ >>207
IntelliJ が素敵なんですけれども javaのconfigファイルがxml形式で書かれているらしいのですが、
新しく定義を追加するたびに既存のものと新しいものとをWindiffを
使って違いを見つけてマージしています。
こういう操作が簡単にできるツールは無いでしょうか。
もしくはこうすれば簡単になるよというアドバイスお願いします。 eclipseで同じコードをもう一度実行しようとすると一回目は
main型が含まれていません
と出るんですが、他にもう一度実行する方法ありますか? >>215
君が何をしようとしているのかがよくわからない。 >>216
一回実行して終了したあとに、もう一度同じプログラムを実行したいです。 main型が含まれていないとは?
ていうかソース公開したら? メニューから「実行」->「JUnitテスト」
見当違いだったらごめん。 for文を何重にもしてそのトータルで例えば10万回ループさせてる時と、
for文一つで10万回ループさせた場合、
同じ数だけループさせてても前者の方が圧倒的に処理に時間かかるのだけど何故でしょうか >>220
一つ一つのループにはそのループを抜けるための条件があるわけで・・・
しかし物凄く掛かる時間が違うというのならちょっとそのソースここで晒してみな。 >>213
そういうのをバッチか何かで人の目に頼らずにする方法ありませんか? >>225
変更があってコンフリクトするなら人の目で判断しなきゃいけないだろう
XMLの構造は同じなのに改行や順番とかでコンフリクトするということなら
正規化してからコミットしたら
スペースを無視するdiff、VCSはある >>225
なんで既存のconfigに新しい定義を追加しないの?
そうすればマージ作業自体が不要だよ
できない理由があるんだろうけど
それ次第で解決方法が違う >>227-228
複数の開発者がアプリをリリースするときには自分に関係のあるconfigだけをリリースします。
それを重複のないようにマージして全アプリに共通のconfigを作るのが私の役目です。
単純に後ろに追加だと重複してしまいます。 追記
開発者がconfigをリリースするときは新しい定義部分だけでなく
既存のものもそのアプリ動作上必要なものは合わせてリリースされます。
リリースされるconfigには新しい部分と元のものから変わっていない部分とが
混在状態となっています。 リリースってのは本番環境へデプロイする意味ではない?
最終的なアプリはマージしたconfigを必要としてるんだよね? ファイル自体を分割管理したいなら
分割したconfigのままでアプリを動くようにすべきだし
最終的に一つのconfigにすべきと考えてるなら
各開発者もその一つのconfigを編集すべきじゃないの? >>231
ここで言っているリリースというのはconfigのマージ許可が出たということです。
マージした後本番環境にデプロイします。 >>232
一つのconfigでとの方針となっています。
いろんな会社の人が関わっているのでどこかでconfigのまとめ役が必要となり、
それが私となっています。 config内でもセクションを分けておいて
差分確認しなくてもその”リリース”された会社単位の該当セクションを
丸っと入れ替えれば済むようにしておけば自動化は可能
最終的なconfig
<共通>…</共通>
<A社担当>…</A社担当>
<B社担当>…</B社担当>
<C社担当>…</C社担当>
A社分のconfig
<共通>…</共通>
<A社担当>…</A社担当>
この各社担当部分の中身を入れ替えればいい
共通部分は君のところで管理して各社が常に最新版にアクセス出来る必要がある
ただ共通部分の最新版を常にアクセス可能にできるなら
同じ要領でconfig全体の最新版を常にアクセス可能にできる気もする。。。 依存ライブラリを、他のプロジェクトと、マージする事は不可能
Node.js のnmp, Ruby のgem とか、各プロジェクトごとのインストール。
全体にインストールする場合は、install global とか
つまり、各プロジェクトごとか、全体か、の2択しかない
たいていのアプリは、古い・新しい依存ライブラリで動かないから、
1.5 〜 1.7 とか、依存ライブラリを範囲指定しているから >>229
重複かどうかはアプリケーションレベルの判断だからテキストのdiffじゃダメでしょ
最早java全く関係ないからxmlとかのスレじゃないの strutsconfig臭がすんげーしてくる
言ってる意味もわからんし >>235
そのA社がどこからどこまでかすら分からない状況です
>>237
他のファイルの拡張子をみたらjavaらしいからこちら
で聞いてみたのですがXMLスレで聞いてみます
みなさんありがとうございました >>239
>そのA社がどこからどこまでかすら分からない状況です
それを分かるようにするのが君の仕事でしょ
configのまとめ役がやらなくて誰がやるの? JavaでXML処理するプログラム作っちゃえばいいのにな ドット演算子は
クラス.メンバ変数
インスタンス.メンバ変数
クラス.メソッド
インスタンス.メソッド
などの形がありますが、たまに
A.B.C.D といった風に、2つも3つもドット演算子を付けているコードを見かけますが
それですとどんな形の場合があるのでしょうか? >>242
new java.io.FileWriter("hoge") みたいな?
これの場合は import での省略をしないで直接クラス指定して new しているということね。
プログラムの最初の方で import java.io.*; 等とやっておけば new FileWriter("hoge") と書いても良い。
要するにクラス指定の時に import 指定してあるとパッケージ部分を省略して書くことができるけど
省略しないで書くこともできるということ。 ドット演算子は基本的に左側の要素の中にある右側の要素へアクセスするもの
要素はJavaで指定できる識別子(パッケージ、クラス、インターフェース、変数/定数、メソッド)
メソッド呼び出しの場合は括弧が必須
X インスタンス.メソッド
O インスタンス.メソッド()
メソッド().メソッド()みたいなメソッドチェーンの場合は
左側のメソッドの実行結果の要素の中にある右側のメソッドを実行 >>242
4+1+3=5+3だろ
System.out.printlnだってSystem.outが示すものがオブジェクトでそのprintlnだ 例として
文字列を数字にしてそれに1足した数字51をだしたいのですが
String a = "50";
int b = Integer.parseInt(a);
System.out.print(a + 1);
を実行すると501になってしまうのですが51にするにはどうすればいいですか? これはちょっと悩んだ
System.out.println("abc" + i + 1) ;
System.out.println("abc"+ (i + 1)) ; 初心者向けクイズとしてはいいかもな
System.out.println(1 + 2 + "a" + 3 + 4) ; 元々無かったんだよ。演算子のオーバーロードは糞という理由でねw また馬鹿が自演始めたのかw
ほんとこいつ業務全然やったことないんだな
そらこんなレベルじゃ使えなさ過ぎて切られるわ シフト以外の用途ということですか。それは謎ですね。 >>258
オーバーロードできなくても他の演算子と同様に固定で何か作っとけばよかったって事では? せめてjavaにもhere documentがあれば… xpathのcontainsで<br>を含む文字列を比較し条件に合った要素を抽出したいと思います
<\n>で試してみましたが出来ませんでした、td[contains(.,,'ABC')][contains(.,'def')]とすれば
出来ますがcontains一個で済ます方法は無いでしょうか
<td>
ABC
<br>
def 初心者なのでよくわかりません、どこからどこまでがJAVAなのですか
と言って細かな分類を記されても理解できるとは思えませんが
それゆえに初心者なわけで >>272
それは HTML に埋め込んだりしてクライアント側のブラウザ上で動くものでコンパイルの必要のないものか?
ならばそれは Java ではなく JavaScript だ。 こんにちは
大変恐縮ですが
スマホだけで取っ掛かりだけでもプログラミングの勉強ってできますか? swingまで学んだけど次何学べばいい?
ウェブ関係の奴じゃなくて、パソコン上のソフト開発をしたいんだけど >>276
JSR-295 beans bindingとか。
ウチではbetterbeansbinding 1.3.0
使ってる。Java10でもきちんと動くよ。 たまにこういう奴沸くけど
なんでJavaでデスクトップアプリ作りたいと思うのかがわからん むしろweb系以外でJavaって何に使われることが多いの?
swingなんて論外で、JavaFXですらまともに使われてなくない?
大人しくC#かelectronでやればいいんじゃないの? >>284
Web系以外ならAndroidだろう。嘘のように使われまくってるぞ。 LocalDate.parse("yyyy年MM月dd日")でエラーとなりますが年月日はダメですか LocalDate.parse("9999年12年31日", DateTimeFormatter.ofPattern("yyyy年MM年dd日")) 入力読み込みで
Scanner sc = new Scanner(System.in);
iInputStreamReader isr = new InputStreamReader(System.in);
BuffereReader br = new BufferedReader(isr);
があるんだけどどっちがいいの?どっちも読み込んでる作業は同じ? java.util.logging.SimpleFormatterで
%1$tbがJanとかFebのような英略称3文字にならないで1や2のように
数字になるんですが、どうすれば英略字3文字でログに出ますか? >>290
Scannerは読み込む前に数値か判定したり
数値に変換して読み込んだりできる
単語単位で読み込むときはScanner
行単位で読み込むときはBufferedReaderって感じかな俺は ロケールに依存してるからロケールを指定する方法があれば良いのか 組込Javaはどうなったんだ
AndroidじゃなくてEmbeddedの方の >>290
普通は、Buffering で、バッファにためる。
面倒だから、1文字ずつ処理したりしない
ゲームなどで、キー入力したら、
即座に処理したい場合には、別のやり方を考えればよい Androidの世界から普通のJavaの世界に来たらLooperがいないんですけど、
普通のJavaの世界はwhile(true)でBlockedQueueでメッセージ受信ループを
作るみたいな実装は一般的ですか? CDI+サーブレットでWebアプリを実装したのですが、(コンテナはTomcat9)
実際DIできているのですが、いつの時点でどのような形でオブジェクトを注入してるのかわかりません。
web.xmlでもfilter等呼び出しは一切してないので、素直に疑問です。
使っているjarはjbossのweld-servletぐらいです。
下記のような順番で処理されているのでしょうか。
リクエスト→Tomcat→クラスローダ→DI→Servlet→レスポンス ググったらタイミング書いてるブログとか出てくるけどな
検索能力低すぎなんちゃう?
アノテーションの種類によっても注入タイミング違うみたいだし
filterみたいなめんどくさい記述無くすためにアノテーションがあるんだから
そんなもん書いてあるわけないじゃん頭大丈夫か? 胴元のオラクルが特許ゴロっぽいですがjavaに未来はありますか
googleの件といい、いよいよ回収段階に入りそうでなんか怖いです >>303
Javaの未来は僕たちの未来だよ
JavaはSUNが潰れてから目覚ましい発展を遂げてる
ラムダ式やvarの導入など
Oracleを信じようよ、絶対正義だよ でもjavaの方が好きだな
スクリプト言語?は読みづらい
型もはっきりしないし、なんか戸惑う… varの利点がわからん
業務ではまず使われることはないだろうがこんなもん宣言できるようにしたが
オラクルなら早く潰れて欲しい 変数を呼ぶ時、毎回$を書かなきゃいけないのが面倒
エディタにもよるのかな 私が初心者だからかもだが、
変数の型を追えないし、受け渡しもよくわからん。
内部でうまい事やってくれるから問題ないのかな 最初が数値からの文字列だったらvarだとエラーが起きるからあんまり使わないな入力が決められてるなら問題はないが >>309
それでもプログラムが書けるってのが、いいことなのか悪いことなのか、議論が分かれそう。 >>302
COBOLに未来はないが遺産と仕事はあるだろ JavaスレでちょくちょくJavaアンチの池沼が沸くのはなんなんだろうね ちょくちょく沸くってわかっててそれに反応するバカもなんなんだろうね ブログみたけどどこがわかりやすいんだ・・・
あまりに説明が下手すぎて逆に初心者が混乱するレベル
アップキャストして処理の汎用性高めるだけの説明に無駄な記述が多すぎるね 全くプログラミングしたことないからプログラミングの教科書的なの欲しいんだけどどれ読みながらすればいい? >>319
矢沢久雄のなぜシリーズあたり読んでおけば? 町の図書館で借りられる入門書を片っ端から試せばいいと思う
それでいい感じの本を見つけたら買う Javaerならフォローしとけって人とか見とけってwebサイトとかありますか? もう、言いつくされてるけど、
まずこの本で、オブジェクト指向を学ぶのが、プログラミングの基礎
スッキリわかる Java入門 第2版、2014 Java8 以降のstream などは、Java8 の本で勉強すればよい。
長澤 太郎の、Kotlin 本でも良いし
オブジェクト指向の基本は「スッキリわかる Java入門」 319です
ご教示ありがとうございます。今、visual studio使ってサイトを見ながらやっている
のですが矢沢久雄のなぜシリーズは対応してますか? IDEとして開発支援が受けられるかは知らんけど、単なるテキストエディタとしては書けるんじゃね? サブクラスでオーバーライドしたメソッドでスーパークラスのメソッドを実行することを強制するにはどうしたらいいですか? いつっていうと、そのサブクラスのメソッドを実行した最初にです
そういうことではない? サブクラスのインスタンスを作成したときにって言いたいのか?
それともインスタンス作って何かサブクラスのメソッド実行したあと1回だけ
親クラスのメソッドを実行したいのかそれとも
サブクラスのメソッド実行するたびに親クラスのメソッドを実行したいのか
ちゃんと書かないとさぁ >>340
説明不足ですまん
その3つ目のサブクラスのメソッドを実行するたびに親クラスのメソッドを実行したいです 単純にメソッド呼ぶ前に親クラスのメソッド呼べばいいだけやん・・
君は目的の具体性がなさすぎなんだよね それか抽象クラス作ってテンプレメソッドパティーンみたいな感じにするかだな
必ず実行したい親クラスの具象メソッド内にサブクラス用の
抽象メソッドを呼び出しておいて、この具象メソッドだけを実行するようにすれば
必然的にお前のやりたいことと同じになるだろう フォルダを階層構造にするのが複雑なので、統合開発環境を使わず
コマンドプロンプトでパッケージ化する手法はマスターしなくても
いいでしょうか? すみません、長くなるので2つに分けます
public class CopiedMethod {
static int a = 10;
static int b = 20;
public static void main (String[] args) {
printOneValue();
printThreeValues();
}
private static void printOneValue() {
int maximum = a;
if (b > a) {
maximum = b;
}
System.out.println(" 最大値;" + maximum);
}
private static void printThreeValues() {
int maximum = a;
if (b > a) {
maximum = b;
}
int minimum = a;
if (b < a) {
minimum = b;
}
int average = (a + b) / 2;
System.out.println("最大値:" + maximum);
System.out.println("[最小値:" + minimum);
System.out.println("[平均値:" + average);
}
}
というコードについてなのですが、 すみません、>>346は長いコードになってしまったので、こちらのコードでお願いします;
public class OneMethod {
static int a = 10;
static int b = 20;
public static void main (String[] args) {
printThreeValues(); /////A
}
private static void printThreeValues() { /////B
int maximum = a;
if (b > a) {//[22]
maximum = b;
}
int minimum = a;
if (b < a) {//[25]
minimum = b;
}
int average = (a + b) / 2;
System.out.println("[28] 最大値:" + maximum); /////C
System.out.println("[29] 最小値:" + minimum); /////D
System.out.println("[30] 平均値:" + average); /////E
}
}
実行結果↓
[27] 最大値:20
[28] 最小値:10
[29] 平均値:15
こちらについてなのですが・・・ 1
実行結果は、A(/////A)の部分から出力されているのでしょうか?
もしそうなら、C、D、Eの部分も続けて読み込まれて、実行結果は、
[27] 最大値:20
[28] 最小値:10
[29] 平均値:15
[27] 最大値:20
[28] 最小値:10
[29] 平均値:15
と2回同じのが繰り返される実行結果表示にならないのは何故でしょうか?
mainメソッドの中にBのprintThreeValuesメソッドがあるのならわかるのですが、
コードを見た感じ2つは平等(?)な立場の位置に見えまして・・・
2
こちらのコードを上から順番に読みますと、
最初にAの部分が目に入り、ここだけですとこのメソッドが何なのかわからず、
続けてBからEまで読んで初めて理解できると思うのですが、
先にB-Eまでを表記して、その後にmainメソッドを書いた方が読みやすい気がするのですが、
それではなぜ駄目なのでしょうか?
質問が伝わらなかったらすみません
宜しくお願いします >>348
1行ずつ命令を実行していくという考えが間違え
このプログラムはOneMethodというものを定義しているだけ
ただし指定したクラスのmainメソッドが呼ばれるという特例ルールがあるだけ >>349
そんな説明でなにかが伝わるとは思えないんだけど
どんだけ説明ヘタクソなんだよ まぁ言いたいことはわかるけど ID:q6pXgTbr レベルの奴に返す回答ではないね
基本的このスレは俺を除いて質問者も回答者もほぼ全員が誇張なしに馬鹿だと思う >>348
コンピュータは人間が文章を読む時と同じように上から下にプログラムを読んで実行して行くが、
その文章の途中に「○○を読め」と書いてあり、それが出てきたら馬鹿正直にそちらを読んで実行し、
それが終わったら元に戻って続きを読む。
そんな感じで実行していくので文章の見た目の上下とは無関係に上に行ったり下に行ったりする。
同然文章の終わりが一番下になっているとは限らず、真ん中で終わることもある。
見た目に惑わされてはならない。 >>349
>>353
ありがとうございます
そういう仕組みなのですね
どこを見れば
「ここのメソッドはあちらの方で処理されるからここでは処理されない」
といった判断ができるのでしょうか?
処理されるのはMain関数の中身だけ、といった訳ではないのですよね >>354
関数が実行される順序は
最初はmainで後の法則は>>353
ファイルの先頭からではなくmainの先頭から
mainのAでprintThreeValuesに入ってBへ
そこから1行ずつ進みC, D, Eの順に通り
printThreeValuesの}に到達したらAの次の行へ
mainの}に到達したので終わり お前らって断片的な回答ばっかで質問者が求めてる根本的な回答を全くできないよね >>355
>>356
実行されるのはmainのみなのですね;
知りませんでした・・・
今回のコードはmain以外のメソッドが1つしかありませんが
これが数百、数千のコードになっても
結局はmain関数の{から}までしか実行されないということでしょうか? >>358
そう。しかし普通はmainの中から他のメソッドを使うように書いてあるのでそこでそちらに処理が移って終わったら帰ってくるという形式になる。 こうやってひとつの関数に全部書いた方がわかりやすいって奴が育っていくんだな >>358
mainは書かずにJUnitのようなテストランナーで実行した方がいい
その方がクラスをコンポーネントとして捉える感覚が身に付く
mainを基準にすると処理を連続した手続きとして捉える考え方が染みついてしまう
仕事でプログラミングする場合もmainを書くことは殆どない お前らのアドバイスって段階がおかしいんだよね
初心者に対してそういうのってアドバイスになってないどころか悪手中の悪手なんだわ
物事には学習する順序ってもんがある
総じてレベルが低い ID:AEcEsWpP先生が、レベルの高い返事の見本を書いてくれればいいよ
そしたらテンプレにするから + +
∧_∧ +
(0゜・∀・) ワクワクテカテカ
(0゜∪ ∪ +
と__)__) + >>358
main も printThreeValues も単に定義してるだけでしょ?
定義してるだけなので、呼び出されない限り実行されない。
だが main は呼び出される。これが main の特殊性。
main が呼び出されたので、その記述に従って printThreeValues が呼び出される。
main の中身がカラなら printThreeValues は呼ばれない。 継承とかでもここ呼んだらsuper通ってこっち行って…とか言ってるやついるよな
定義に従って完成されたものがメモリ上にロードされてるイメージだろ
んーちょうどいい言葉ではないな よろしければ、俺の質問にも答えてもらえると嬉しいです
>>345です 言ってることが意味不明すぎて1_も理解できないのでスルー すいませんでした
JDKでpackageを使う方法は、出来なくても仕事とかで問題無いでしょうか? >>371
パッケージ使わないと名前が衝突することがあるので無理
仕事なら一人でやるわけでないし尚更
場合によっては知らない人が作ったパッケージをいじることも
CLASSPATHが理解できないのか >>372
レスありがとうございます
フォルダを階層構造にするのが煩雑で嫌なんです
(一般に、)統合開発環境を用いたpackage化が出来る、というだけでは駄目ですか? >>373
ファイルが1000個とか煩雑過ぎるだろ >>373
packageの構成も含めて設計だから、できるようにならないとね Kotlin は同じディレクトリに全ソースぶち込んでパッケージ違ってても問題ないんだよね。
やっぱ不便だから改良したってことなんだろうな。 JavaアンチもそうだけどJavaスレでいつもkotlinガーkotlinガーって言ってる奴って何なんだろうね >>376の方をはじめ、答えて頂いた方ありがとうございました
理解を深めたいと思います スーパクラスのメソッドをオーバライドする時に
アクセス修飾子の公開範囲を狭めることができないのは何で? スーパークラスにキャストしたらメソッド使えちゃうガバガバ仕様になる。
もしくはほぼ全てのメソッド呼び出しで継承先で公開範囲が狭められたインスタンス使ってる可能性があるので
コンパイル時(Javaの場合はクラスロード時)でなくメソッド呼び出し実行時に毎回アクセス範囲チェックが必要になる。
当然実行速度は遅くなる。
どっちにしろアホすぎるので普通はやらない >>383
2つは外から見た時に同じものであるべきだから
違うなら継承しないか別のメソッドであるべき >>383
is-a関係の基本
スーパークラスのメソッドをサブクラスに対しても同じように呼び出せなきゃポリモーフィズムできないじゃん
例えば、Objectクラスのサブクラスは必ずtoStringメソッドを持つはずなのに、いざ呼び出したらprivateになってて
呼び出せませんでしたってことが起こってしまう getPrice()をオーバーライドするなら、ちゃんとthrowsも付けろよ、って書いてあるまんまじゃね? >>387
Javaはチェック例外のハンドリングコードがないと構文違反という仕様だから。 質問です
インターフェースはObjectクラスを継承しておらず、何らかのクラスに実装した時に
Objectクラスを継承する、という理解で合ってるんですよね? >>390
どんなクラス作っても必ずObjectは継承されている。interfaceは無関係。 https://www.wareko.jp/blog/post-13612
非同期処理+Promiseで非同期処理が終わってから次の非同期処理が始まるけど、
それって同期処理と何が違うのですか? 同期処理だとUIスレッドまで止めるのかな?
処理の終了を待ちたいけど出来るだけ軽くしたいのならPromiseを使うのが良さそうね、ありがとう。 https://pastebin.com/hm55QbiV
上のコードの4行目で、throws IOExceptionという記述が無いと
コンパイルエラーになるのですが、
それはException系の例外が発生する可能性がある命令を呼ぶ場合、
例外処理をすることが課せられるからですか? 例外処理しなかったら投げた例外はどこいくんだよ
宇宙の果てにでも飛んでくのか? 人気グループ「TOKIO」の山口達也メンバーが、自宅マンションの部屋で女子高校生に無理やりキスをするなどの行為をしたとして、警視庁は強制わいせつの疑いで書類送検しました。
全文は以下
https://www3.nhk.or.jp/news/html/20180425/k10011417181000.html >>398
そう。そしてブラックホールに飲み込まれる。 >>397
そう。どこかで例外を処理する必要がある。
そのメソッドの中でやる必要がなく、呼び出した側に任せたい場合はメソッドにthrows付けてその例外を並べておく。 >>398
>>402
分かりました ありがとうございました 内容が陳腐で今まで読んでなかったスッキリ入門実践編を
この前ウンコしながら読んでたんだけど
listのremoveって内部でobjectのequal読んでるって初めて知ったわ
仕事でremove使ってるときに何かうまく削除できねーなぁって言うのが
何回かあったような気がしたから納得したわ
こんな本でも役に立つとは思わんかった int[] dt=new int[100];
これはやはり空白入れて
int[] dt = new int[100];
と書くのが一般的なんですかね? >>414
なにそのアホみたいな質問
どっちが一般的か、本当にわからなくて聞いてる?
前者の方が一般的もしくは半々ぐらいである可能性もあると思って聞いてんの? >>414
ワシは後者で書く
それで話は終わり
>>416
まあまあ
こんなカス掲示板で
マジにならんでもよろしい
ワシも多少はそう思ってる 数値リテラルとかビット〜みたいな細かい数字の話が基礎知識として出てきてとりあえず読み飛ばしてるんですが、やはり理解するのは必須なんでしょうか 必須だと思うよ。
そういう基礎的部分がわからないままではプログラム作れないだろう。 Javaの基礎的な部分で混乱しそうな所は文字列定数かな。特にCやC++に慣れた人がダブルクォーテーションで括られてるだけでそれがStringのインスタンスであることを理解せずに String s = new String(”abc”); みたいな無駄な書き方をしてしまったりする。 >>425
そんなところで混乱する奴なんていないよ 未だにequalsと==のバグ見かける
C#といったりきたりしてるとうっかりやるから
そろそろ言語仕様変えてほしい https://pastebin.com/Ls4mpSCv
本に載っていた上のコードの11行目で、byte型にキャストを行っているのですが、
その理由が分かりません
リファレンスで調べると、FileOutputStreamのwrite()メソッドは、byte[]か
intしか(第1)引数に取らないと書いてあります
どなたかこのキャストの理由が分かる方がいましたら、教えてもらえませんで
しょうか? >>431
理由はない、完全に無駄なキャストだしflushも呼ばなくていい それだけでなくなんか無駄があるな。9〜13行目はこれでいいよなあ。
int data;
while ((data = is.read()) != -1)
os.write(data); あ、でも、何れにしてもバッファリングしてないから遅くなるかな。
BufferedInputStream() や BufferedOutputStream() を通すことをお勧めする。 答えてくれた方、ありがとうございます
>>432
flush()を呼ばないと書き込まれずにデータが残る恐れがある、と本には
書いてあるんですが…
>>433
>>434
分かりました >>435
どこの本じゃおらあああ!!!
説教してやるわ!
>>433さんお願いします >>436
有名な、「スッキリわかるJava入門 実践編」です
該当箇所(p252)を引用します
「…flush()を呼び出さないとファイルに正しくデータが書き込まれないことがある
からです。
実は、write()メソッドはデータの書き込みを要求するだけの命令であり、
呼び出したらすぐにファイルにデータが書き込まれるとは限りません。
これはファイルの読み書きを高速化するためのバッファというしくみによって、
後でまとめて書き込み処理がされることがあるためです。…」 普通はcloseの内部でflushが呼ばれるか同等の処理がされるから、
きちんとcloseするプログラムの場合は明示的なflushは不要。 >>438
そうなんですか?
ありがとうございました flush していないと、電源断・強制終了時に、書き込まれない
何秒おきに、flushされるかなどの設定は、
Java と言うよりは、OS・外部装置の挙動 flush使うのはログとかで途中経過を確実に見たいときだな flush() があった方が良いのは BufferedOutputStream や BufferedWriter のインスタンス経由で
出力していて尚且つ close() するよりも前に今まで出力した分がバッファから全て出力されて
欲しい場合だろう。そうでないのなら普通は無意味、というか、Bufferedでないクラスなら多分
何もしていない。(バッファがないなら flush() も何もないからね)。
>>431のプログラムの場合 FileOutputStream を作っているだけなのでバッファリングはされて
おらず write() した直後に書かれている筈だ。更に終わったらすぐに close() するだけなので
たとえバッファリングされていたとしても close() 前に flush() をする必要はない。
ただ問題は1バイトづつ読んだり書いたりするようになっていて非常に効率が悪いことだ。
入出力は両方ともこんな風にバッファリングされるようにした方が良い。
InputStream is = new BufferedInputStream(url.openStream());
OutputStream os = new BufferedOutputStream(new FileOutputStream("dj4.ico"));
更に読み書きする部分も以下のように自分でバッファ作ってまとめて読んでまとめて書くようにした方が良い。
(1000である必要はない。もっと大きくても良い)。
byte[] buf = new byte[1000];
int n;
while ((n = is.read(buf)) > 0)
os.write(buf, 0, n);
こうした時の速度差は何Mバイトとか何Gバイトもの大量のデータを扱うと分かると思う。
(但しJavaコンパイラやJITの最適化、およびJavaVMやOSやハードウェアの進歩により
将来的にはどう書いても速く動くようになる可能性はある)。 FileOutputStreamはJava側ではバッファリングしていないが
OS側のファイルシステムがバッファリングしてる場合もあるので、
flush呼び出しで明示的にディスク書き出しを指示できるので完全に無意味って事はない。
ただしディスク書き出しを指示するっても指示された側が直ちに実行するとは限らない。
典型的にはflushの呼び出しが終わった時には書き出しが終わっている事が期待されるが
実際にはディスクアクセスの優先順位待ちとかでflushの呼び出しが終わった時点でも
ディスクへの書き出しが終わってないとかそーゆーケースはある。 FileOutputStreamだとflush上書きしてねーから>>444はウソだったわ。 Java 側で FileOutputStream を使っていても OS 側で密かにバッファリングされていた場合は
Java の方からではどうすることもできないかもね。
ま、実際今時のOSだとディスクに対するライトキャッシュはデフォルトではONになっているのが
普通だろうからどんなプログラムでも(Javaであろうがなかろうが)OSのシステムコールの write()
直後にディスクに書かれていないことはあり得る。但しその場合は write() 直後に read() すると
あたかもディスクから読んだかのように書いた内容が読める。しかしいきなり電源が落ちると
ディスクに書いてない分の内容は失われる。
これを防止する方法は Linux ならシステムコールの sync() を呼ぶか sync コマンドを
実行れば良いのだが、しかし他のOSでは違うやり方になるだろう。統一された方法はない。
大雑把に UNIX 系 OS だと sync() でやると昔からの慣習で決まっているだけ。同じUNIX系
OSでも違う場合もあり得るし特殊なハードウェアのディスクの場合は違うかも知れない。
などという細かい事まで考えないといけないぐらい高度な要求があることは滅多にないだろうが、
どうしてもそこまで考えて作らねばならない場合は本当に Java だけで実現できるのか、または
Javaで作ることは適切かを事前によく検討した方が良いと思う。 Linux では、アイドル時間を利用して、5秒毎にデバイスに書き込んでいるけど、
SSD の寿命対策で、書き込み回数を減らしたい場合に、
15秒毎とかに設定することもある
またデバイスも、バッファ・キャッシュを持つから、
バッファに書き込んだ時点で、OS に書き込み完了を知らせるかも知れない。
ここで電源断すると、デバイスに書き込まれない
まあ、デバイスの設定は、よく知らないけど 作成するアプリの規模にもよるかもしれませんが、
非同期処理を安全に書くために調べたら数年前まではRxJavaが流行りそうって記事が多いけども、
今はAsyncTaskとかで十分なのかな? Javaについてこの理解であってますか?
1 ソースコードは互換性がありどのJDKでもコンパイルできる
2 バイトコードは互換性がありどのJVMでも実行できる
3 JREやJDKはJVMとクラスライブラリを含む >>449
大雑把にはそれでいいのだが標準ではないライブラリを追加して作られたプログラムはそれの無い環境では当然コンパイルエラーになる。
コンパイル済みのクラスファイルやそれを入れたjarファイルの場合は足りないライブラリのせいで動かない。 >>451
そんな当たり前のことはどうでもいいから、>>449が正しいか間違ってるか、大雑把にではなく正確に答えろや
断言できる知識がないからって「大雑把に」とか言って保険かけんな 1. 完全な互換性はないので同じソースコードが全てのJDKで必ずコンパイルできるとは限らない。
2. 完全な互換性はないので同じバイトコードが全てのJVMで必ず実行できるとは限らない。 >>452
当たり前ってわかってんなら>>449がどうかもわかるんじゃねーの? Classクラスが持つメソッドについて質問です。
メソッドを取得するgetDeclaredMethod()やコンストラクタを取得する
getDeclaredConstructor()の引数に、Class<?>型が含まれているのですが、
何故この型なのでしょうか?
intやdoubleなどの基本型を取る場合もあると思うのですが…。 基本型を指定したい場合、ラッパークラスの.TYPEを使うんだ
intの場合Integer.TYPEとかそういう感じで >>452
わかった。じゃあ厳密に答えよう。こうだ。
1 ×
2 ×
3 ○ >>456です。
>>457
ありがとうございます。
本によると、int.classとか見慣れない表記をしているのですが、
これでもよいのでしょうか? >>460
ありがとうございます。
int.classやlong.classなど、基本型名.classは何型になるのですか? レイアウトについて質問させてください。
(1)
Container contain = getContentPane() ;
contain.setLayout(new BoxLayout(contain, BoxLayout.Y_AXIS));
contain.add(new JButton("ボタン1")) ;
contain.add(new JButton("ボタン2")) ;
(2)
Container contain = getContentPane() ;
contain.setLayout(new BoxLayout(contain, BoxLayout.Y_AXIS));
contain.add(new JButton("ボタン1")) ;
JPanel p = new JPanel() ;
p.add(new JButton("ボタン2")) ;
contain.add(p) ;
(1)ではボタンが二つとも左端に表示されるのですが、(2)は両方とも真ん中になります。
なぜ両方とも左寄せにならないのか悩んでます。これってどうしてですか? 見たことない書き方だな
普通にレイアウト書いたらあかんの?
静的でも動的でもいいけど >>462
JButtonは、alignmentXのデフォがLEFT_ALIGNMENT
JPanelは、alignmentXのデフォがCENTER_ALIGNMENT
JPanelのalignmentXにLEFT_ALIGNMENTを設定したら
JButtonが左に寄った
BoxLayout内のコンポネントは独立して配置されるわけじゃないみたい
わしにはよくわからん >>464
ありがとうございます。でもそれだとボタン1は左に寄るんですけど、ボタン2はまだ真ん中なんですよね。
でも p を boxlayout.X_ASIS にしたらボタン2も左に寄りました。
でもなぜそうなるのか、何が何だか分からない。
Container contain = getContentPane() ;
contain.setLayout(new BoxLayout(contain, BoxLayout.Y_AXIS));
contain.add(new JButton("ボタン1")) ;
JPanel p = new JPanel() ;
p.setAlignmentX(Component.LEFT_ALIGNMENT);
p.setLayout(new BoxLayout(p,BoxLayout.X_AXIS));
p.add(new JButton("ボタン2")) ;
contain.add(p) ;
あと
p.setLayout(new BoxLayout(p,BoxLayout.Y_AXIS));
p.setLayout(new FlowLayout(FlowLayout.RIGHT)) ;
p.setLayout(new FlowLayout(FlowLayout.CENTER)) ;
p.setLayout(new FlowLayout(FlowLayout.LEFT)) ;
とか、あとボタンをさらに加えたり、色々試してみるんですが、よく分からない。 正規表現について質問なんですけど、
String str = "会社名( 多久比禮志神社 )、住所 ( 富山県富山市塩689 ) のウェブサイトを探し、そのウェブサイトのURLを入力してください" ;
ここから会社名と住所を取り出したいんですけど、
Pattern pattern1 = Pattern.compile("[(] .* [)]");
これだと
( 多久比禮志神社 )、住所 ( 富山県富山市塩689 )
が取り出されるんですけど、何が悪いんでしょうか?( 多久比禮志神社 )と、( 富山県富山市塩689 ) を別々に取り出したいんです。 >>466
最長一致とかでググれ。
Matcher m1 = Pattern.compile("a.*b").matcher("ababab");
Matcher m2 = Pattern.compile("a.*?b").matcher("ababab");
System.out.println(m1.find() + " " + m1.group());
System.out.println(m2.find() + " " + m2.group()); >>466
こうかねえ
\\((.*?)\\)\\((.*?)\\) あ、まつがえた
こうだな
\\((.*?)\\).*?\\((.*?)\\) 俺のレスが見えないのか馬鹿ども
無駄な駄レスをまき散らすなアホ 皆さんほんとに感謝です。最長一致、最短一致は自分で調べていて目にはしていたんですが、解説を読んでもよく分かりませんでした。
こういうコードになりました。
String str = "会社名( 多久比禮志神社 )、住所 ( 富山県富山市塩689 ) のウェブサイトを探し、そのウェブサイトのURLを入力してください" ;
Pattern pattern1 = Pattern.compile("[(].*?[)]");
Matcher m1 = pattern1.matcher(str);
String[] id = new String [2] ;
for (int j = 0 ; j < 2 ; j++) {
m1.find() ;
id[j] = m1.group(0);
System.out.println(id[j]);
}
出力結果
( 多久比禮志神社 )
( 富山県富山市塩689 ) お前さぁ
俺が一番最初に一番最短のまともな回答書いてやってるのに
なんで意味わからずアスタリスク使った方を選んでんだアホ
これだから馬鹿はイラつくんだよな
説明読んで正規表現もわからんってどんな馬鹿だよ・・
お前はもう二度と書き込むなアホ >>476
申し訳ありません。ところで、あなたの [( ].+?[)] を使うと、
会社名( 多久比禮志神社 )
( 富山県富山市塩689 )
と出力されます。
[(].+?[)]
にすると
( 多久比禮志神社 )
( 富山県富山市塩689 )
になります。なんかまた謎が増えてしまって。 >あなたの [( ].+?[)] を使うと、
おめーが使ってる最初の括弧が2バイト文字だからそのまま使ってるだけなんだが
舐めてんのかお前? あ、半角スペース入ってただけだわすまんな
っつーか揚げ足取って挑発してんのかおまえ?
あ? >>481
でも半角スペースが入ったら、「会社名」が何で含まれるんでしょうか?揚げ足を取りたいわけではなくて、ほんとに分からない。 >>481
申し訳ありません。文字列が違ってました。
"2. 会社名( 多久比禮志神社 )、住所 ( 富山県富山市塩689 ) のウェブサイトを探・・・”でした。最初の「2」の後にスペースが入ってました。
重ねて謝罪します。ほんとに申し訳ありませんでした。 会社名や住所に()が含まれるときここに出た正規表現じゃ全部駄目
再帰的パターン使え だめだけど、そういう仕様にしなければいけないという指定はない。 * は、0回以上
+ は、0回以上
? は、0 か1回
{m} は、m回
{m,} は、m回以上
{,n} は、n回以下
{m,n} は、m回以上、n回以下
上は最長一致 (greedy)。
最短一致にするには、? を付ける (reluctant)
*?, +?, ??, {m,}?, {,n}?, {m,n}?
例えば、<div>あ</div> で、
<.*> なら最長一致で、<div>あ</div>
<.*?> なら最短一致で、<div> >>486
修正
>+ は、0回以上
+ は、1回以上 修正
本当は最短一致なら、<[^>]*>
先頭が< で、> 以外の文字が、0以上あって、末尾が> なんで \\( と書かずに [(] と書く?
まあこの場合同じ事だけどさ。 まだ前の人の質問が完結してないみたいですが、質問させて頂いていいでしょうか?
JUnitというツールを使いこなせれば、アサーションは覚えなくても問題無い
でしょうか? boolean hoge1=false,hoge2=false;
if(hoge1 == true && hoge2 == true){}
こうやって書くともっとシンプルにって言われるんだけども、
どうやってシンプルに書くのでしょう?
if(hoge1 && hoge2 ){}
だと、両方falseでも条件を満たしますよね? >>491
>>492
意味分からんレスするなよ… >>493
頭悪い上に自分で試そうともしない
生きている価値のない究極の人間のクズ System.out.println(true && true) ;
System.out.println(false && false);
System.out.println(true && false);
true
false
false >>499
それは質問>>493の答えになっていない 大規模開発用言語のHaxe なんて、
if の条件文は厳格で、Bool しか書けない
Bool以外の変数、a について、
if ( a )
は、コンパイルエラー
if ( a != null )
null でも、わざわざ比較する
if ( a == 1 )
if ( a = 1 )
こういう書き間違いを防ぐため >>502
Javaもそうだよ。比較的新しい言語ってだいたいそうなってない? >>497
それをワザワザ教えてあげる貴方いい人だ
俺も色んなカス見てきたけど
if (b == true)これ書く奴はまず頭も悪いし
プログラマとしてのセンスも皆無だと思う
現場を混沌に導く癌でしかない
>>501
俺もそう思った
Qちゃん今回はチョッとズレてたね残念 >>506
好みの問題だから君が言ってるのは
ワガママだと思うけどなあ
自分の価値観が絶対だと思ってるんでしょ
友達いなさそう いゆしかし if (b == true) は人に何かがおかしいと感じさせるには十分 >>508
!bは分かりづらいからb == falseと書くことがあり
一貫性を持たせるために
b == true
b == false
と書きましょうとなることもある
可読性の話です 代替を「だいがえ」と言うようなものかな
おかしいけどわかりやすいっしょ あのなぁ
くだらないネタでいつまでもくだらないレスの応酬やめろボケカス低能ども >>511
b == true
これありですよね? >>514
詳しく言うとQZのコードは論理的に破綻してるよねってこと >>516
俺は困ってないからみたいな
分かりづらいと思う人が存在してることを受け入れるんだよ
お前は自分が良ければそれでいい
他人のことなんか知ったことじゃない
俺様こそが世界の全てだと思ってるクッパ野郎だろうけど
世の中にはクリボーもパックンフラワーも居るんだよ ニンテンドーは世界の広さと多様性を教えてくれるとても素敵な企業だよね >>517
分かりづらくない、いやむしろ分かりやすい、と感じ始めたところ辺りが初心者の終わりの始まり。 >>519
> 終わりの始まり
このフレーズ、30年前俺が中学の時一番最初に思いついた
著作権は俺にあるから、別に自由に使ってくれていいけど
最初に思いついたのは俺だからそこんとこ忘れないでくれ FF13でヴァニラが使ってたときは恥ずかしくて枕に顔埋めたよね
それ俺のだから〜(///ω///)みたいな
俺が30年前中二病全開のときに思いついたフレーズだからみたいな
よくよく考えれば売上の何%か俺に入ってもいいよねこれ >>519
あどうも、終わりの始まりさんこんにちわ
ドゥモ♪\( ̄ー ̄|電柱| ̄ー ̄)/ドゥモ♪ ____
/ \ /\ キリッ
. / (ー) (ー)\ 終わりの始まり
/ ⌒(__人__)⌒ \
| |r┬-| |
\ `ー'´ /
ノ \
/´ ヽ 久々に使ってもらえて嬉しかったからついつい失敬失敬 やはり if (b == true) なんて書くやつは何かがおかしいな。 自分は if (a && b) と書かれたコードを見たら、5秒か10秒くらい考える口だわ。 ま、ifで条件式書かずに直接booleanの変数だけ使うのはあまりないけどな。
何らかの理由で複数回同じ比較をする必要があったりして、無駄だから比較結果を変数に入れといて実際に比較する代わりにそれ使うようにするとかな。
あとはメソッドの戻り値がbooleanで成功がtrue、エラーがfalseの時にifでそのまんま分岐させるとか。 >>520
https://ja.wikiquote.org/wiki/%E3%82%A6%E3%82%A3%E3%83%B3%E3%82%B9%E3%83%88%E3%83%B3%E3%83%BB%E3%83%81%E3%83%A3%E3%83%BC%E3%83%81%E3%83%AB
「今は終わりではない。これは終わりの始まりですらない。しかしあるいは、始まりの終わりかもしれない。」
"Now this is not the end. It is not even the beginning of the end. But it is, perhaps, the end of the beginning."
>>520
貴様は「始まる前に終わっていた」 public class A(){
int x;
int y;
/*(略)*/
}
みたいなクラスAがあったとして
クラスBにフィールドxを利用するメソッドをつくりたい場合
public class B(){
public void func(int ax){
/*(略)*/
}
/*(略)*/
}
とするのと
public class B(){
public void func(A a){
//a.xのみ利用
/*(略)*/
}
/*(略)*/
}
とするのではどちらが良い書き方でしょうか? クラスBのフィールドxを使いたいなら前者だし
クラスBのフィールドxに入っている値を使いたいなら後者
設計と考え方次第 >>532
将来的にクラスAの他の変数にもアクセスするように拡張するなら後者かな。
しかしB側のメソッドに値を渡す度に必ずAのインスタンスが必要になるわけで、それで効率悪くなるとかメモリ食い過ぎになるようなら前者かな。 レスありがとうございます
任意の値放り込んで動作テストしやすい前者のほう好んで使ってたけど
後者のほうが良く見かける気がしたので聞いてみたんですが
思考停止でどっちってものでもないんですね staticでもない限りフィールドを参照する場合は必ず
そのフィールドを持つクラスのインスタンスが存在するんだから
ほとんどの場合において思考停止で後者だよアホ
ここの回答者はアホしかおらんからお前みたいなのがよく騙される こうしてimport地獄に足を踏み入れるのであった どんどん機能追加しているうちに多次元配列や変数が増えたからか若干カクカクになってきたんだけど
例えば if (0==0) { みたいに変数のスコープ狭くしたら多少は軽くなるんでしょうか スコープ狭くしたらメモリ確保と解放が多くなるから遅くなるのでは?
ま、実際は最適化されるからあまり遅くならんかも知れないが。 一つリストを使ったアンドロイドのソースがあって
以下サイトのコードを(main.activityの名前は適当に変えて)そこから呼び出すように実装したいんだけど
どこにどう書けばいいの?
http://olee46.hatenablog.com/entry/2017/06/07/053010
呼び出したい画面のjavaソースの中に何かを書けばいいと思うんだけど、
参考書みてもぐぐってもわからん coberturaをダウンロードしたのですが、.gzというファイル形式だったので
展開する必要があるみたいです。
何かおすすめの無償の解凍用ソフトがあったら教えて頂きたいのですが、
どんな感じでしょうか? >>545
tar.gz でしょ? 昔からUNIX系OSでよく使われていた方式で、 tar で複数のファイルをまとめたものを gzip 圧縮したやつだ。
Windows で中身を取り出したい場合でもだいたいの zip 展開できるソフトならできると思う。
俺が使ってるのはこれ。7zipだが、tar.gz 等もできる。
https://www.7-zip.org/
その他、Linux等のUNIX系OSなら tar xfz でファイル指定すると展開できるよ。(WSL上のLinux環境やCygwinでも同じ) >>546
返信ありがとうございます。
7zipのサイト見たのですが、ちょっと気になったのが、LGPLという記述があった
ことです。
LGPLだと、規約により自分の作成したコードを公開しないといけなくなるらしい
のですが、その辺は問題無いのでしょうか? >>547
使うだけなら関係ない。7zipのライブラリ等を使うプログラムを自分で作って公開する場合に関係する。
LGPLの概要はこんな感じ。必ずしも自作部分のソースを公開する必要はない。
http://easylabo.com/2015/04/rapid-prototyping/9048/ >>548
しつこくて恐縮ですが、念のためにお聞きすると、
LGPLの影響は7zip内のソースコードやクラスライブラリを自分の著作物に
利用する場合にのみ影響してくる、ということでいいんですよね? 7-Zip は、普通の無料アプリ。
インストールしたら、右クリックメニューから解凍できる、って言うだけ
この著作物を、君が無断で配布しなければ良いだけ。
そもそも、他人の著作物を無駄配布できないのは、常識だろ
>>541
メモリ確保と解放は、多くならない
例えば、スタックメモリ、1,000番地まで使っていて、
40バイトのオブジェクトを作ったら、1,040番地まで使っていることになる
各オブジェクトの生成・解放の手間は、毎回掛かるので、
それを嫌がる人は、スタックよりもヒープを使うけど、
ヒープはスコープが広いから、よくバグる
でも、メモリ確保と解放は、小さいサイズ毎にはやらない。
数MB毎とか、まとめて確保しているはず
メモリプールのような感じ >>551
メモリのOSへの要求はライブラリでまとめて多目に要求するのが普通だとは思うが、それでもその中で確保と解放の処理が必要になるためその分の負荷は掛かる。 たぶん、ファイルのバッファ・キャッシュと同じ理屈だろ
1バイトずつ千回書き込んでも、バッファにためておいて、
たまったタイミングで、1KB の1回の書き込みに変えてしまう
だから、そんなに小さいサイズ毎に、OSには要求しないと思う
何MB か、Java内部のメモリプールでやり繰りしておいて、
そのサイズで足らなくなったタイミングで、OSに新たなメモリを催促する感じ
数バイト毎に、OSのAPIを呼ぶと、
その度に、コンテキストスイッチが起こって、とんでもなく遅くなるはず
なるべく、OSのAPIを呼ばないように、VM 内でやり繰りする最適化が、
Java, JS, Ruby など、各VMの腕の見せ所 そう。そんなのはC言語のmalloc()でもやっている。
しかしメモリが足りていてもmalloc()が呼ばれれば要求された分のメモリを呼ばれた側に返すために管理用のポインタを書き換えたりする処理が必要になる。
それは微々たるものではあるが何万回も呼ばれたりすれば人間でも感じられるぐらいの遅さにはなるかも知れない。
同じようなプログラムが何千もマルチタスクで動けばそのマシン全体の付加を高めて遅くなるかも知れない。 基本的な質問で恐縮なのですが、
https://pastebin.com/iQbMfbRS
上のコードで、
FileWriter fw = null;
と、変数fwをnullで初期化していますが、
ここは変数宣言するだけの、
FileWriter fw;
ではダメなんでしょうか? >>560
それだと fw を初期化しないまま finally ブロックに行く可能性があるのでダメ。
それと fw.close() は IOException を catch するように try 〜 catch の中に書かないとダメ。
ということで、 そのような従来通りの書き方をするよりも try-with-resources文で書いた方が良いと思う。
詳しくは下記ページ等を見てくれ。
try-with-resources文の基本
https://qiita.com/Takmiy/items/a0f65c58b407dbc0ca99 >>561
返信ありがとうございます。
fwをnullで初期化してない状態でfw.close()を実行すると、何がまずいんですか? >>562
変数を初期化されないまま使うことが起こりうるプログラムはコンパイラがエラーにする。 ていうか自分でコンパイルすればわかるよな。
まあ初期化してない変数は多分nullや0が入ってるんだろうが、初期化する処理がないままでその変数を使用するということは普通はプログラマの初期化忘れだ。
だからコンパイル時に発見されたらエラーにする。 >>563
>>564
回答ありがとうございます。
では、fwにnullを代入したとして、この時fwは何も参照していないと思うのですが、
この場合fw.close()というのはどんな動作をするのでしょうか? 外出先でスマホ使ってプログラムを書く勉強をしたいんですがお勧めのアプリorサイトはありませんか?
家ではpaiza使ってるんですが流石にスマホでは使いづらくて
スレ立てる必要もない質問はここでってスレで質問したらスレチ(?)言われたので教えて下さい><; >>566
>>567
ありがとうございました。やってみようと思います。 今のガキって世界が全部スマホ基準でキモすぎだな
そんな都合の良いサイトあるかよアホ >>569
お題スレの1にいくつかサイトが書いてあるが、どれか使えるのはないか?
プログラミングのお題スレ Part11
https://mevius.5ch.net/test/read.cgi/tech/1524570314/
まあでもスマホって大きさにもよるな。タブレット並にでかければやり易いとは思うが。 >>571
何でもかんでも食って掛かってくんじゃねえよ爺
こちとら家でも四六時中スマホぽちぽちやってる異常者じゃねえんだよ
外出中少しでも暇な時間をプログラミングの学習に当てて効率よくやりたいと思っただけだ
>>572
ありがとうございます。見てみます なんだこのゴミガキw
てめーみたいな馬鹿ガキはPHPでも触ってろアホガキ しかもスマホでコーディングとかおめーみたいな馬鹿は間違っても現場くんなよアホ
まぁ勉強なんてしてる時点で馬鹿だからとっとと首吊って死ね >>575
現場ってなんすか?
会社と仕事場所が違うんすか?
そんなんあるんすか? AndroidならTermux入れればスマホ内でDebianが使えるからコーディングし放題
またはGCEとか借りてスマホからSSH接続すればいい スマホでコーディングしたいとか馬鹿丸出しのレスつけてる異常者の低能ガイジが
スマホ弄ってる奴のことを異常者とか言ってるのがウケるわw
お前が一番の異常者だよ馬鹿ガキ
スマホで何コーディングすんの?wねぇ?ww
ifでもポチポチ打つの?wwねぇ?www
実際のコーディングっていうのは何千ファイルもあるクラスの中から
IDEの補完機能で頻繁に実装クラス流し読みしたり他人のソース読むことが大半なんだよ
基礎の基礎もしらねぇ糞馬鹿のアホガキが一丁前に二面性丸出しにしたレスつけて
くっそ気持ちわりぃんだよゴミガキ
20代がジジイならJavaすら勉強しねーと理解できねぇゴミクソのお前は何なんだ?あ?
胎児か?wwwよくレス返せるなこの馬鹿
トラックに轢かれてとっとと死ねアホガキ ほんとこういう頭の弱い馬鹿ガキはSNSから出てくんなっつーのな リアルで何か問題抱えてないと暴言吐かないと本気で思ってる奴がいるようだけど
馬鹿とアホとガイジと低能とガキが調子こいたレスつけてるのを見たら
一般人は無条件でイラつくんだよアホガキ
分を弁えろ低能スマホガイジが 初心者スレに来て初心者に暴言を吐くのが一般的とは思えない
病んでるよ、現場の人は病んでるよ
現場で何があったんや 本当に初心者丸出しで恐縮なのですが、質問させてください。
tomcatでサーブレット、JSPを勉強していました。
そしていざwebAPIを作ろうと思い検索したところ、JAX-RSの記事がほとんどでした。
Glassfishを導入しJavaEEをいちから勉強した方が良いでしょうか?
それともJavaEEを使わず(webAPIに限らず)サーブレットで実装したほうが良いでしょうか?
その他にも良い選択肢があれば教えていただければと思います。
よろしくお願いします。 馬鹿に余裕なんか見せてどうすんだよw
この手の馬鹿ガキは馬鹿のくせに変なプライド持ってたりするから
馬鹿って言ってやらないと一生理解できない糞馬鹿だから徹底的に馬鹿って言ってやったほうがいい
実際社会に0.01_も貢献してない役立たずのゴミガキだしな ヒント:質問する前に用語の理解(言ってること無茶苦茶) 爺ってワード一つでここまで面白いものが見れるとは思わなかった 初心者に余裕見せられないって切羽詰まりすぎでしょ
現場で社会に貢献してるならもっと自信持ちなよ お前みたいにド底辺の馬鹿ガキのくせに一丁前に噛みついて
しつこくレスつけてくるゴキブリみたいなゴミの方が面白いよ
馬鹿なりに馬鹿って言われて怒ってんのか?ん?w
アホ 現場の人を観察するのを諦めない<●><●> じーっ 噛みつき返してくる時点で初心者でも何でもねーからアホw
膨大な知識と実力がある奴はみんな聖人君子だと思い込んでるようだけど
こんなゴミ糞な馬鹿ガキがタメ口聞いてきたら大半の奴は余裕でキレる
なんで地面這いつくばってようなゴキブリ風情が同じ土俵で口聞いてんだ?w
馬鹿かクソガキ
アホ 現場どこなんだろ、ここまで人を追い込んでしまった
現場を僕らは許せない 馬鹿ガキ自演で逃亡w
クソワロwww
こういう馬鹿って自演で逃げ道作らないと何もできねーんだよな
馬鹿で知識もねぇゴミなんだから最初から噛みついてくんじゃねーよキチガイ馬鹿ガキ
二度と書き込むなよ低能スマホ馬鹿ガキガイジ
アホ >>601
じゃあ逆に聞くけど現場と会社どっち取るの? ノ L____
⌒ \ / \
/ (○) (○)\ 事件は現場で起きてんだ!
/ (__人__) \
| |::::::| | <- ID:uvtiXGuN
\ l;;;;;;l /l!| !
/ `ー' \ |i
/ ヽ !l ヽi
( 丶- 、 しE |そ ドンッ!!
`ー、_ノ 煤@l、E ノ <
レY^V^ヽl ム板に「ぼくの勉強日誌」みたいな日記帳スレ立てる馬鹿ガキもいるし
ここの低能池沼みたいに何もできないゴミ糞馬鹿アホガキの分際でタメ口聞いてきたりと
最近のゆとり低能ガイジってマジやべーわ
案外同一人物かもなw
馬鹿発見器のSNSから一生出てくんなっつーのな
アホ >>584
> 一般人は無条件でイラつく
自分も暴言でイラつかせてる可能性に考えが及んでいない? スレ違いって言われてまたスレ違いのことを書くような低能ガイジが原因なので
どう見ても暴言吐かれるガイジが悪い つまり「俺は全く中身が無い暴言レスをしても悪くない全て周りが悪い」と
HAHAHA こういう脳内で自然とすり替え起こしてる池沼ガイジは掲示板使うなって言ってんだけど
それすら理解できてなさそうだな
頼むからSNSから出てくるなって・・・
アホ >>579
横だが、Termux いいね。これは知らなかった。
ただやはりbluetoothのキーボード繋いだ方が良いな。vim 使う時に ESC の入力が楽だから。
(てか、あの画面に出てくるキーボードで ESC 入力する方法が分からなかった。できないのかも知れない)。 >>580
>>569は「プログラムを書く勉強をしたい」と書いてるだけなのでスマホでも特に問題ないと思うが? >>610
つまり「全く中身が無い暴言レスは否定しない」と
HAHAHA お前が来るな馬鹿ゴミ
スマホでポチポチして学べるレベルの内容なんて全くやる価値0で
時間の無駄でしかないのは馬鹿ガキ以外のまともな奴なら普通にわかるから
親切に罵倒してやってるのにお前みたいなアホが自分で確認してるわけでもないのに
何も考えず「あるかも〜?」みたいなゴミレス回答して馬鹿ガキをのさばらせてんじゃねーよ馬鹿カスアホ
一緒に消えて二度と書き込むな
アホ で、その抽出は何か意味あんの?w
反論できなくなったチンパンの最後の抵抗か?w
くやしいなら黙って消えろゴミ
アホ 最後にレス付けないと居ても立ってもいられない類の人だから
ほっといてやれよw お、自演で逃げ口まで作ったアホガキが居ても立っても居られず戻ってきたかw
馬鹿ガキでも馬鹿にされるとくやしいのか?お?w
ゆとり馬鹿クソガキはスマホでエロ画像でも見てろゴミ
アホ で、抽出の意味は?w
答えられないならいちいちレス付けるなゴミマヌケ
アホ ぼくの反論できない相手はいじめられてることにしたいゴミマヌケ馬鹿w
もう少しがんばろうよぉ低能ぼくちゃんw
アホ 35歳Java歴1年半Java Bronze持ちが作成した最高傑作
https://ideone.com/JQbabV >>634
やるじゃん
自力で作ったなら大したもんだよ >>635
それは誉め言葉と受け取っていいんですか? >>637
西暦1年から1,000,000,000年まで対応できるように変更してみましょう
ユリウス暦とグレゴリオ暦の存在と切り替え月に注意 >>637
1日の曜日によって分岐させて個別に出力しているが、これを一つにまとめてみな。
最初にスペースをいくつ出すか、どのタイミングで改行するか、及び何日まで出すかの問題で、全て計算と条件判断でできるから。 >>634
これは何か制約があって、こんな狂ったコードになってるの?
納入条件が1.5kstep以上になっているみたいな。
昭和の時代の、1行で中身を書ける関数なのに規模を水増しするために
if文で入力対復帰値を全部書いてたような狂気を感じる。 724 : 仕様書無しさん : sage : 18/05/27(日) 19:34:26.51
論評。
>https://ideone.com/JQbabV
わざととしか思えない。人の領域を超える作品。
序盤はコピペとコピペを少し直しながらつなげつつ、最終的には
論理が破綻し崩壊していきながら、目的の実行結果になるためには
どうすればいいかと分からないながらも挑む苦悩が見え隠れし、
破綻したままコードは終焉を迎える。
>https://ideone.com/WZmNs5
ほっとする作品。
不慣れな感じと新しい技術を積極的に取り入れようとする姿勢が見え、
初心者が作りました、というのに相応しい作品。
逆に言えば1作目に比べて面白みに欠ける。よくあるフレーズを
よくまとめただけの作品。だがその中身はリファクタリングの域を
遙かに超え、元作の雰囲気を持ちつつリメイク・リビルドと言える
別作品に仕上がっている。
>https://ideone.com/bLfLVt
まあなんというか、ふつう。
練習用に提示したことを考えれば、難易度を抑えて教えたいポイントを
絞り、よくまとまっている。作者のやさしさが垣間見れる普通のコード。 >>643
2つ目
最終日の後ろにもスペースが付く
3つ目
メンバー変数がpublic
ここらへんはそれぞれか 2つ目はうるう年でないときの2月も29日まで出るんじゃないか?
maxDaysの2つ目の29は28でないとだめだろう。 プログラム初心者にはjavaとkotlinとどっちがおすすめですか? >>638
以下のように解釈することにします。
(35歳にしては)やるじゃん
(35歳の実力からすると)自力で作ったなら大したもんだよ >>646
Java
勘違いしてるようだけど、KotlinはJavaより覚えること多くて難しい言語だし、
Javaができないとライブラリの使い方分かんなくて話にならないよ 初心者には、か、実際どうだかなあ?
最終的にどちらも覚えるのが良いとは思うが。 数年後にはなくなってるkotlinとかいうクソ言語の布教活動はいい加減やめような
な? 現代の世相を刹那に描き切った名作がkotlinなんだから、数年後のことを言うのは違うだろな。
アートを全く理解していない。 なくならんだろう。GoogleがAndroidでサポートするって言ってそこで爆発的に使用者増えたようだし。
Googleがやっぱ止めたと言い出しても有名になりすぎたのでもう消えようがないと思う。 どっちにしろJavaができない人には使えない言語だから最初はJavaから javaの継承についての質問です
Humanクラスを継承して、TeacherクラスとDoctorクラスを作りました
別のメソッドが引数にTeacherだろうとDoctorだろうと引数に取れるように、
Humanクラスを引数に取るように設定しました
someMethod(Human human)
このメソッドの中でTeacherやDoctor固有のメソッドを使いたい場合はどうするのが正解ですか?
if(human instanceof Teacher){
((Teacher) human).teacherMethod();
}
とかキャストして使うしか無いでしょうか? >>656
そう。
何度もキャストするのが面倒ならその型の変数作ってキャストした結果を代入して使えばいい。 human クラスに professon とか付随するメソッドを用意しておくのが正統なやり方か。 >>642
java.util.LocalDate 使って自分では何も考えずに作ったほとんど出力してるだけのもの。
https://ideone.com/ujLA0Y javaが有料になるって本当なの?
今まで作ったものも金を払わないといけなくなるのか? booleanが条件式のif文で質問させてください
boolean bl ;
if(this.bl){
}
って書かれていたら、ifの条件文はどんな意味があるんでしょうか?
blがtureならif文を実行という意味でしょうか? >>663
this が付いているということはインスタンス変数なので if 文のあるメソッド内で
宣言されている bl とは別の変数だ。
true なら if のブロック内に入るというのはその通り。 >>664
先生、ありがとうございます!!
よく理解できていないので先生の文章を読み返し、理解できるように頑張ります
ありがとうございます >>656
型を判別して、処理を切り替えるのは、継承プログラミングではない。
型を判別している部分があったら、即ダメ!
継承すると、型判別が消えるはず。
それが継承プログラミング
Teacher・Doctor のどちらのインスタンスを渡しても、動くように作っていないとダメ Humanにabstructなメソッドか空メソッド用意しておいて、
Teacherのほうだけ中身を書く、Doctorのほうは何もしないで復帰にしてoverride、
Humanのメソッドからは単にそれを呼び出せばいい。 ティーチャ特有のメソッド呼ぶならティーチャ型の引数にするべき Ch[] c1=new Ch[3];
c[0]=new H();
c[1]=new T();
c[2]=new W();
for(Ch ct:c){
ct.setNo(ct.getNo()+1);
}
というコードがあったとして、
Ch ct ってインスタンスを生成しているように見えるのですが、そういう理解ではいけませんか? >>674
ループのところでChのインスタンス作ってるわけじゃないっしょ
代入してるだけでござろう
ゆえにそういう理解では良くない 変数名間違ってるしインスタンスの意味も理解してない
入門書読み直し ct はループの中で、c の0から2をそれぞれぞれ参照していくというのが正しい言い方なんですか? ヒント1:拡張for文
ヒント2:ググる
ヒント3:説明読む
ヒント4:初心者以前のレベル
ヒント5:上記のことが理解出来たら入門書読み直して理解できるまで絶対に質問しない >>668
>型を判別している部分があったら、即ダメ
Hotelクラスを作りました
checkIn(Human human)メソッドを定義して、配列Human[] guestsに入れていきます
そのホテルはDoctorに対しては特別割引をしていました
その場合の宿泊料計算についても型判別を使ったらダメですか? >>681
それは職業の属性を持たせるという方式でやった方が良いのではないか?
Job クラス作ってそのインスタンスで職業を保持するようにしておいてそれを Human クラスの中に持つ感じ。
何故かというと同じ人の職業が変化する可能性があるため。 >>682
なるほど、確かにそうですね。その通りです
感覚的に継承の使い所だと思って安易に継承を使ってしまうと後で困ってしまうということになりかねない
設計レベルで何をするのか固まってないと使うのは難しいのか >>683
というか継承いらない
継承は基本的に悪なので使わなくて済むなら使わないほうがよくて、原則としてインターフェイスと移譲を使えというのが今時のオブジェクト指向
継承は、どうしても継承を使ったほうが自然にコードを共通化できる場合に実装テクニックとして使うもの 言語仕様なんでしょうけど、
何で普通のfor文は遅いのでしょう? どうせループの閾値をループ毎にコストの掛かる冗長な計算してましたってオチだろ 継承is-a よりも、包含has-a(委譲・インターフェース)の方が柔軟性がある。
継承を使うと、長期間仕様が固定される
怪物クラスの派生で、スライム・ドラゴンクラスがある時、
攻撃・属性とか、長期間に渡って、仕様が固定される
その代わりに、後に、幽霊クラスを追加しても、
同じ仕様だから、修正箇所が無い
もし、型判別するのに、switch 文を使っていたら、
何か所も修正して、テストしないといけないから、新たな怪物を作れなくなる
switch monster {
case slime:
case dragon:
case ghost: // 追加 すみません、またまた正規表現でつまずいたので教えてください。
-------------------------
String mail = "mailto:info@jafrec.org?subject=title" ;
Pattern pattern = Pattern.compile(
"(([0-9a-zA-Z!#\\$%&'\\*\\+\\-/=\\?\\^_`\\{\\}\\|~]+(\\.[0-9a-zA-Z!#\\$%&'\\*\\+\\-/=\\?\\^_`\\{\\}\\|~]+)*)|(\"[^\"]*\"))"
+ "@[0-9a-zA-Z!#\\$%&'\\*\\+\\-/=\\?\\^_`\\{\\}\\|~]+"
+ "(\\.[0-9a-zA-Z!#\\$%&'\\*\\+\\-/=\\?\\^_`\\{\\}\\|~]+)*");
Matcher m = pattern.matcher(mail);
if (m.find())
System.out.println(m.group());
-------------------------
info@jafrec.org?subject=title
-------------------------
このパターン文字列は、このサイトからもらってきて、行頭の「^」と行末の「$」を消しただけのものです。
[メールアドレスのチェックをするサンプルコード]
https://www.sejuku.net/blog/13215
要するにメールアドレスでは「?」は使用可能な文字ということですが、
subject=title という文字列を含まないちゃんとしたメールアドレスはどうやって抽出すればいいのしょうか? Regular Expression(正規表現) Part14 [無断転載禁止]©2ch.net
ttp://mevius.2ch.net/test/read.cgi/tech/1489511075/ 基本を理解してれば5秒で解決できようなことも
コピペするだけで自分で考えることを完全に放棄して
「どうすればいいですか?!(ブヒッ w」って言う奴がたまに沸くけど
俺から言えることは一つ
とりあえずプログラム勉強するのやめて死ぬか肉体労働でもしてろアホ String mail = "mailto:info@jafrec.org?subject=title";
int start = "mailto:".length();
int end = mail.lastIndexOf("?subject=");
System.out.println(mail.substring(start, end)); 自分は中括弧なしの一行のif文よく使うのだけど、
別の事情でたまたまそれ全部取ったら動作早くなった気がするのだけど気のせいでしょうか? >694 ←なんだこれw
馬鹿は回答側に回るなって何度言えばわかるんだ?
入門書読み終わるまでROMってるか釣りじゃなかったら
思考能力が小学生以下だからとっとと死ぬか肉体労働でもやってろ低能 >>697
よう天才
最高のコード頼むわ
無理だろうけど 正規表現で何してるかわかれば
上の方でアホっぽい奴が書いてるように最後の行の「?」と「*」消せば
?に当たった時点で抽出されなくなる
それを>694みたいに固定文字列検索してsubstringするような馬鹿は馬鹿と言われて当然
こんなコピペだけして何も考えてなく応用力0の奴に回答すると延々と質問してくるし回答してやる価値もないし
?残してそれ以降の文字だけ消したいとかこの?が何を意味してるかもわかってないし
そもそもこんなことしたい奴なんてwebクローリングとかして怪しいことする気満々の糞業者だし
とりあえず死ねって感じ ∧_∧ / ̄ ̄ ̄ ̄ ̄
( ´∀`)< オマエモナー
( ) \_____
│ │ │
(__)___) まぁ勉強初めて2日目とかの初心者なんだろうけど
よくそんなゴミコード晒せるな
ビックリするわ >>703
はよ自信満々のコード晒せよ
無理だろうけど >>703
派遣切りされて暇なのか?
現場で頑張りなよ土方くん >>700
後出しで偉そうに言ってんじゃねえよw
おい土方コード書け *消したらドットが複数ある時どうするんだ
そもそもドメイン名にハテナ無理じゃね
消すのは最後だけじゃない
でもまあ土方にしては回答頑張ったんじゃねえの 現場土方は他人に馬鹿と言う割に頭悪いよね
高卒土方と呼んでやろうか? 正規表現もわからずゴミコードしか書けない池沼が6連投www
>*消したらドットが複数ある時どうするんだ
書いてある正規表現も理解できない馬鹿なんだから無理して書き込むなって糞馬鹿w
こんな奴が回答してたりするからゴミスレすぎる
馬鹿はプログラムやるなってwマジでw 昨日ふと夜空を見上げたら微分が流れた
思わず願い事したの 昔もこのスレはこんなに馬鹿が溢れてなかったんだけど
今はすごいね
まともな奴はみんなどっか他所に行ったみたいだな
馬鹿しかいねぇw >>718
馬鹿はお前だけだよ高卒くん、あんま調子乗ってっと微分せざるを得ないが? 正しい修正案を提示できない高卒土方がさっき微分を殺してました 最後の?と*消すなんてそんないい加減な修正したら
現場では速攻微分だから public class sure{
public static void main(String[] args){
System.out.println("ここは初心者の質問が許されているスレですか?");
}
} >>722
public class sure{
public static void main(String[] args){
System.out.println("はい。");
}
} String[] come=
{"コ","メ","ン","ト","が","辛","す","ぎ","て",
"質","問","し","づ","ら","い","で","す","わ","(汗"};
for(String c:come){
System.out.println(c);
} すまないが生きている価値のないごみクズは35歳だけにしてくれないかな。 皆さんレスどうもありがとうございました。こんな感じになりました。
if (m.find()) {
int index = m.group().indexOf("?subject=");
if (index > -1)
System.out.println(m.group(0).substring(0, index)) ;
----------------
String mail = "mailto:info@?subject=.org?subject=title" ;
これだとちゃんとしたアドレスを抽出できませんが、こんなドメインなどほとんどないだろうってことにしときます。
実際のところ「?」を含むドメインにもほとんどお目にかからないのでパターン文字列から「?」を取り除いても実用上ほとんど問題ないって気がします。
あと余談になりますが、
<a href = "mailto:info@?subject=.org?subject=title">連絡先</a>
このリンクをクリックすると、メーラーが立ち上がりますが、宛先は「info@;」、件名が「.org?subject=title」になりました。 サ ブ ス ト リ ン グ www
上のゴミコードってこの馬鹿の自演だったのかw
消えろゴミ業者 ちょっと間違いました。indexOf より lastIndexOf ですね。
それなら "mailto:info@?subject=.org?subject=title" からも抽出出来ます。
"mailto:info@?subject=.org" だとおかしくなるってことです。 >>730
ご指摘ありがとうございます。?が使えるのはアカウント部分で、ドメイン部分はダメなんですね。
すごく恥ずかしい勘違いをしてました。皆さんお騒がせしました。 ええんやで高卒土方の修正案が悪すぎて
混乱を招いた、全部そいつのせい 馬鹿すぎて何も理解できてないのがすげーww
皮肉で指摘してやっても「?」が何を意味してるかも全くわかってないし
3秒で解決できることに何日かけてんだこの自演馬鹿はwww >>733
お前がメルアドの仕様をまったくわかってなくて
いい加減な修正案を提示したんですよ
馬鹿すぎて理解できてなかったのはお前です 高卒の限界を示した土方くんはもうここに来たらアカンで
回答者として能力が足りてない >上の方でアホっぽい奴が書いてるように最後の行の「?」と「*」消せば
>?に当たった時点で抽出されなくなる
最後の行? は? メールアドレスの仕様わからずに回答してるわけ?
この人頭の中には水でも詰まってるわけ? 砂漠では助かりそう
とこのスレを見てる全員が思いましたよ、サハラで死ねよ高卒くん javaグラマーになりたい中学生のガキかなんかかなコイツ・・w
文章滅茶苦茶でチンパン言語で何言ってるか解読不能w
ゴミコードって言われたもんだから常に顔真っ赤でギャーギャー負け惜しみ言って
俺の言ってることがホントにわからんらしいwww
馬鹿ガキはSNSで質問でもしてろ池沼
アホ あと可哀想だから教えてやるけど
お前のようなゴミコードは現場だと速攻で指摘されて全部書き直しさせられるからなw
2文字消すだけで解決することを固定文字検索してサブストリングってwwww
小学生のプログラミングスクールかよwww
こういうゴミコードを「コーディングホラー」って言うから覚えておけアホガキw
アホ 高卒土方が中学生のガキに回答の瑕疵を指摘されてサハラの星になったお話 >>739
でたw現場www
お前の現場レベル低くね? まぁ勉強し始めて3日目?wぐらいのお前のようなガキが書いたコードを
現場で書く奴なんて1万人に一人もいないからありえんけどなw
アホ 自称上級者のいい加減な修正より
勉強を始めて3日目の俺の素直で正直なコードの方が
わかりやすくて処理が速くて正確に動作するわけ
このスレで1万人に1人の天才と出会ってしまった不幸を呪って
もいいと思うが何年も仕事してて末尾の?と*を消せばいいなんて
アドバイスしてしまう自分に疑問を持たないと成長はないんじゃないかと
差し出がましいとは思うが天才からの忠告として受け入れていただければ
初心者スレから卒業できるんじゃないかと思います
末筆ながらご卒業誠におめでとうございました お前のゴミコードだとURLパラメータ1個増えたら全部修正だね!すごいね!w(大失笑(爆裂(核爆弾))www)
俺の正規表現で完結する修正内容はメールアドレスだけ未来永劫正しく取得できるね!やったね!w
池沼「うるさい!うるさい!ぼくのゴミコードの方が正しいんだ!!!!くぁwせdrftgyふじこlp (アババババオンギャあああ」
THE 池沼
アホww
腹いてぇwww おめーの正規表現バグってっから
末尾の?と*を消すだけの姑息な修正施した
正規表現ではメルアド抽出できないことは
上級者の自覚をお持ちのあなたならよくわかっておられるでしょうに
subjectのパラメータは今後一生変わらないから俺の天才コードは
一切問題ないけど 元々はお前が持ってきたゴミ正規表現だろアホww
アホ >>747
まあまあ落ち着きなさいな
興奮しすぎて混乱しておられるようだ
(小前提)正規表現を提示したのは質問者
(大前提)僕は質問者じゃありません
(結論)ゆえに僕は正規表現を持ってきていません
正規表現がマズいと思うならそれを修正しないと
この正規表現はマズイですよとあなたが指摘したのならわかりますよ
でもあなたはそれをやっていない
最後の行の?と*を消したら行けるよ、なんとかなるよ!絶対大丈夫だよ!!
とお墨付きを与えたのはあなたじゃないですか、あなたが首謀者ですよ >>689って、ドメインの部分に、アカウントにしか使えない文字が他にも並んでませんか?
?以外にももっと消すべき文字があるのでは。 だからゴミ正規表現でもお前の期待通り動くようにしてやってんのに
バグってるだのホンマキチガイクソガキやなコイツw
アホ そもそも質問に曖昧な部分があるからな
A = mailto:
B = info@jafrec.org
C = ?subject=title
としてAとCが不変でBを取得したいのか
それともCは可変なのか >>752
不変ならばこうする
可変ならばこうすると仮定を置いて
修正案を提示すればよいかと 曖昧だからわかりませんではなく
曖昧だから分析して選択肢を作るのが回答者としての役目だと思います お前みたい馬鹿の思考を考慮して
何で回答者があらゆるパティーンを推測して回答すんだよ馬鹿ガキ
スレを荒らすなゴミ >>755
あなたのように間違った回答を提示しないように
曖昧さを分析するのは大事なことだと思いますけどね
スレを荒らしてるのはあなたですよ、あなたがゴミです 文体を見てください、丁寧語で書いてる僕がどう見てもジェントルメンです >>757
有れよじゃねーよw
勝手に仮定おくような奴はチームにはいらんから
確認しろよ フレームワーク・ライブラリにあるはず
例えば、Ruby なら、validates_email_format_of という、gem を使う >>760
仮定と思い込みは違いますよ
こう仮定を置いたらこうなります
一方でこう仮定を置いたらこうなります
どちらかわかりませんので教えてくださいと
確認することできますよね
仮定を置くことと確認することは独立した事柄で
同時に成り立ちますよ
仮定を置いたから確認できないという関係にないので
あなたが言ってることは成り立たない 仕様の曖昧なところを分析して選択肢を用意して
仕様を明確にしていくって能力は仕事で必要だし
チーム開発でも役立つっしょ >>752
やろうとしているのは、WEBページで、クリックするとメーラーが起動するリンクがありますよね。
そのHTMLコードの中からメールアドレスを抽出することです。
mailto: は固定で、メールアドレスのあとにに来る文字列は色々ですが、?だけを見ればいいようです。
http://www.shurey.com/js/mailto.html >>764
不要な選択肢に要した時間が無駄だから先に確認するんだろ
お前みたいに非効率な奴はチームにいらんって事 >>766
時間かけずに仮定を置けばいいじゃん
思考を巡らせずにわかりませんといっちゃうやつは木偶の坊だよ >仕様の曖昧なところを分析して
ワロタw
斬新な発想した馬鹿だねw
仕事したことなくても普通こんなこと思わんと思うけどねぇ(超新星爆発ww)wwwww そもそも仕様が決まってないこともあるからね
仕様を決めてもらうために仮定を置いて
こうしたらこうなりますね、さあどうしましょうかとお伺い立てれば
うむ、そうなのか、じゃあこうしようと意思決定できるよ >>768
仕様ガチガチに決まってるものが下りてくる現場なの?
それって末端過ぎない? もう少し上だとあるよ
僕勉強始めて3日目の中学生だからわかんないけど 最初から「?」のことしか言ってないのに馬鹿な質問しかできない馬鹿が
自演で馬鹿コード書いて自演で馬鹿なコードを選択してるんだから世話ねぇわw
「?」の意味を調べればおのずと答え出るのに全く調べようとしないしなw
だからこんなコピペ馬鹿に回答してやる価値なんか最初からないんだよ
アホ 曖昧なところは明確になるまで詰めるんだよアホwww
お前が最初に言ったのは仮定をしてその仮定に対して”回答”を作るってことなんだよ
話をすり替えるな雑魚
アホ >>771
でも君回答したよね?
最後の行の?と*を消せば良いって自信満々にご回答されましたよね? >>767
つまりお前は時間をかけずに全ての仮定をおけると
AIかよ
>>769
それは口頭だろ摩り替えんな
コード書くのは確認してからが常識だから >>772
でもあなた何も詰めずに最後の行の?と?*を消せば良いって言いましたよね?
あなたが言いましたよね? 全然詰めれてないじゃないですか >>774
全ての仮定を置けると言ったのは僕じゃないですよね
それあなたが自分で言って自分で批判してますよね
自作自演論法と呼ばれる詭弁ですよね
口頭でも、メールでもチャットでもいいっすけど >>769
仕様の一部が決まってなくてその担当になったらまず書くんじゃなくて確認からだろ
全て決まるまで待つより既に決まった部分は着手した方が効率いいからな
今回のケースは決まっていない部分の話だから確認が先だ
>>776
アンカミスってるだろ
俺は確認しろって言ったんだからな >>777
確認した?
アンカーは間違ってないですよ
AIかよ、口頭だろとか言ってたので
違いますよと言ってみただけです
あなたに対する返信ですよ >>765で確認したかったことはわかったようだけど
それではそれを踏まえて着手しちゃう? 確認してからコード書くんだと言ってたからコード書いちゃう? ここまで他人の言ってることが理解できない池沼が現場にいたら1日でクビだろうなw
触らぬ池沼に祟りなしwくわばらくわばらw
アホ >>778
お前、論理破綻してるって気付いてる?
>>780
確認した条件を満たすのは方法はどうあれ既出で本人も納得してるやん
解決済みに回答つけるとかアホやん >>781
冷静になってID:ffIOJoFgの書き込みを見直してみろ
曖昧なところがあったら確認してからコード書くんだ
確認せずにコード書く人はチームに要らないと言っておられる
仕様が明確なところはコーディングに着手するが
今回のケースは確認が先だとも
>>765によって確認したかったことは明確に成ったと思われる
また、これをチーム開発と思っておられる
確認が終わったからこれからチームとしてコーディングに取り掛かるんだと思うんですよ
僕はその結果を待ちたいと思います >>782
100辺自分のレスを見直してみたけど僕は正論しか言ってなかった
ことを確認できました
AIかよとか、口頭だろとかイチャモンつけられて
反論したら論理破綻だと言われました
酷いなっって思いました
僕は君のコードが見たいんだよね
確認してからコード書くんやでって言った君のコードが僕は見たい
見せてくれるかい? ・確認してからコード書くんだ
・確認終わりました
・コード書きません
え? 全部お前の方が間違ってるからスレを荒らすなゴミ
アホ 結局書けへんのやないか
確認が先だと言ったのもコード書かない言い訳やったんか?
せやから言うたやろ、コードを先に書くんやって
結局やれへんやないか あんたいつもそうや、グダグダ言い訳して、結局やれへんやないか >>786
おいお前、subjectのパラメータは今後一生変わらないと言ったな、あれは嘘だ >>785
・条件確認した
・条件満たすのは既出
・書く必要無い >>791
String mail = "mailto:info@jafrec.org?subject=";
int start = "mailto:".length();
int end = mail.lastIndexOf("?");
if (end < 0) {
end = mail.length();
}
System.out.println(mail.substring(start, end)); どや? 結局でけへんかったお前と僕どっちが優れてる?
勉強始めて3日目の中学生に負けた感想は? コードこそ成果物
俺はやれるから今はやらない <- 結局やれない人 僕の天才コードを見て歯ぎしりしてる ID:ffIOJoFg が目に浮かぶわw 正規表現ならこう↓
String mail = "mailto:user@dammy.com?subject=";
Pattern pat = Pattern.compile("mailto:([^?]+)", Pattern.CASE_INSENSITIVE);
Matcher mat = pat.matcher(mail);
if (mat.find()) {
System.out.println(mat.group(1));
} 荒らすなゴミ
さすがにゴミ相手にするのも疲れてきたわ カタカタ
|| ̄ Λ_Λ
||_(Д`; ) 「なに?このスレ・・・」
\⊂´ )
( ┳' >>792
実際にはWebページに埋め込まれた状態だろうから、こんな文字列が来たら '?' が見つかってしまってうまく行かない。
<a href="mailto:info@jafrac.org">メールくれますか?</a>
正規表現使うとしたら \"mailto:([^\"\?]+)[^\"]*?\" のパターンで group(1) を抜き出すみたいなのが良いんじゃないだろうか? これで大丈夫でしょうか?
Pattern pattern = Pattern.compile(
"(([0-9a-zA-Z!#\\$%&'\\*\\+\\-/=\\?\\^_`\\{\\}\\|~]+(\\.[0-9a-zA-Z!#\\$%&'\\*\\+\\-/=\\?\\^_`\\{\\}\\|~]+)*)|(\"[^\"]*\"))"
"@[0-9a-zA-Z\\-]+(\\.[0-9a-zA-Z\\-]+)*");
実際のところ、リンクから取得する他に、、Webページの中に普通のテキストで表示してあるメールアドレスも取得したいんですね。
その場合どうするかというと、ページに書いてある全てのテキストをひとつの文字列に格納して、その中からメールアドレスを探してます。
その時はやはりメールアドレスのパターンから探すのがいいのではないかと思います。
まあ実際のところパターン文字列から?だけを削除したものを使って、これまで数百件のメールアドレスのWEBページからの抽出をしましたが、
ほぼエラーなしというか、変な文字列を抽出することはありませんでした。
mailto:info@jafrac.org&abc みたいな記述があればちゃんと抽出出来ないはずだと思うのですが、そうした記述はまずないってことだと思います。
とは言え使えない文字を含めたパターン文字列はまずいと思うので、書き換えてみましたが、これでいいのか不安です。 あ、すみません
mailto:info@jafrac.org&abc
じゃなくて
info@jafrac.org&abcですね。普通にメールアドレスを書く時に mailto: なんてつけませんね。 Local-part = Dot-string / Quoted-stringAtom = 1*atext
Dot-string = Atom *("." Atom)
atext = ALPHA / DIGIT / "!" / "#" / "$" / "%" / "&" / "'" / "*" / "+" /
"-" / "/" / "=" / "?" / "^" / "_" / "`" / "{" / "|" / "}" / "~"
Quoted-string = DQUOTE *QcontentSMTP DQUOTE
QcontentSMTP = qtextSMTP / quoted-pairSMTP
quoted-pairSMTP = %d92 %d32-126
qtextSMTP = %d32-33 / %d35-91 / %d93-126
Local-part = ([a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*)|("([\x20-\x21\x23-\x5b\x5d-\x73]|\x5c[\x20-\x7e])*")
Dot-string = [a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*
Atom = [a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+
atext = [a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]
Quoted-string = "([\x20-\x21\x23-\x5b\x5d-\x73]|\x5c[\x20-\x7e])*"
QcontentSMTP = [\x20-\x21\x23-\x5b\x5d-\x73]|\x5c[\x20-\x7e]
quoted-pairSMTP = \x5c[\x20-\x7e]
qtextSMTP = [\x20-\x21\x23-\x5b\x5d-\x73] Domain = sub-domain *("." sub-domain)
sub-domain = Let-dig [Ldh-str]
Let-dig = ALPHA / DIGIT
Ldh-str = *( ALPHA / DIGIT / "-" ) Let-dig
domain = ([a-zA-Z0-9]([a-zA-Z0-9-]*[a-zA-Z0-9])?)(\.([a-zA-Z0-9]([a-zA-Z0-9-]*[a-zA-Z0-9])?))*
sub-domain = [a-zA-Z0-9]([a-zA-Z0-9-]*[a-zA-Z0-9])?
let-dig = [a-zA-Z0-9]
ldh-str = [a-zA-Z0-9-]*[a-zA-Z0-9] Mailbox = Local-part "@" Domain
Mailbox = (([a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*)|("([\x20-\x21\x23-\x5b\x5d-\x73]|\x5c[\x20-\x7e])*"))@([a-zA-Z0-9]([a-zA-Z0-9-]*[a-zA-Z0-9])?)(\.([a-zA-Z0-9]([a-zA-Z0-9-]*[a-zA-Z0-9])?))* というわけでrfcに従うなら↓こうなるけど
Pattern pattern = Pattern.compile(
"(([a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(\\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*)|(\"([\\x20-\\x21\\x23-\\x5b\\x5d-\\x73]|\\x5c[\\x20-\\x7e])*\"))"
+ "@([a-zA-Z0-9]([a-zA-Z0-9-]*[a-zA-Z0-9])?)(\\.([a-zA-Z0-9]([a-zA-Z0-9-]*[a-zA-Z0-9])?))*");
現実にはrfcに従ってないメールアドレスもあるからね
そんな厳密にやる必要ないかと、とくに今回のような場合は
有効なメールアドレスかチェックするってわけじゃないし
>>805で大丈夫だと思うよ >>810
どうもです。書いて頂いたことのほとんどは、ちょっと難しすぎてよく分かりません。
しかし(>>805で大丈夫だと思うよ)ということで、これ以上深く考えないことにします。
実務上1,00件に1件くらい例外的に間違いが起きるとしても、大損害ってほどでもないので。 馬鹿な質問者と荒らしの馬鹿ガキのせいでスレ無駄に消費しすぎ validates-email-format-of/validates_email_format_of
https://github.com/validates-email-format-of/validates_email_format_of/blob/master/lib/validates_email_format_of.rb
これは、Ruby のライブラリだけど、10人ぐらいで、規格を調べて作っている。
こんな複雑なものを、個人で作れるわけない
OSS のライブラリを探して、使えば良い >>814
以下の文字の場合とか、
LocalPartSpecialChars = /[\!\#\$\%\&\'\*\-\/\=\?\+\-\^\_\`\{\|\}\~]/
他にも、文字92, 34, 46 とか、. の場合の処理とか、すごく複雑。
こんなの個人で作れない 馬鹿か?正規表現1_も理解してねーじゃん
鍵括弧とバーの意味わかってればやってることは足し算と同レベルなのに
馬鹿レスでスレ消費続けるのもいい加減にしろよ
しかも正規表現はスレ違いだしうぜぇから消えろアホ >>814
えー。個人でも作れるだろう。規格さえはっきり分かれば。
作れないとすると能力が足りないか気力が持たなかったかやる気が出なかったかぐらいのもんだろう。 はよ消えろ低能コピペ馬鹿
お前にプログラマは無理だから
アホ 普通に [使える文字]@[使える文字\.]\.[ドメインに使える文字] じゃ駄目なの?
使える文字ってそんなに複雑なのかね
せいぜい[a-zA-Z0-9\-_]+α だと思ってたんだけど >>814
では、文字コード92\, 34", 46. の場合とか、別に処理してるだろ。
LocalPartSpecialChars では、20ほどの記号もチェックしている
こんな処理を、個人で作れるわけないだろ
OSS のライブラリを使えば良いだけ。
いくらでもあるだろ
自作するのは馬鹿げているし、間違っているから、使い物にはならない >>819
作ったら幾ら貰える?
何もなしじゃやる気は起きんぞ。 >>823
作れないくせに金だけ貰おうとすんな乞食野郎 ホンマに作れるんやったらとっくにGitHubに上げとるわ
まるで自分は作れるだけの技術力があるけど金をもらえないから
作る気がないみたいに装ってるけどお前は作れへんねん 作れると大見えきった ID:m3SIxw/I が作るまでですよ なんでそれが大見得なんだ?
普通のプログラマならその程度誰でも作れるだろうが。 誰でも作れる、自分は作れないけど
大阪のたこ焼き器の逆バージョンですわ >>831
やだよ面倒臭い。
いいか。お前はまだ初心者だからよくわからないかも知れないがこの程度のものはプログラマーやってれば何れ必ず出来るような類いのものなんだよ。
お前もそのうちわかるようになるの。そんなに難しいことじゃないから。
もちろん避けてたらわからないままだけどな。 たこ焼きプレートは鋳物にこだわるべきかもしれんな。 俺オリンピックでメダル取れるわ、面倒だからやらないけど この程度の事がお前にとってはオリンピックでメダル取るぐらいに難しいのか?
そりゃ自己認識や現実認識が歪み過ぎ。 でけへんやろ
口だけやないか
それやったらワイもオリンピックでメダル確定や言うてんねん 出来る出来る言うてやれへん
それをでけへん言うねん お前はアホか。
いいか。お前が今やっていることはまだ電車の乗り方が分からない子供が電車に乗れば渋谷から横浜へ行けると言った大人に対して「じゃあ行ってみろ」と言ってるのと同じようなものだ。
大人は電車の乗り方を知っているし自分にとってそれをする必要があるなら幾らでもやるだろう。しかしやれるならやってみろと騒ぐ子供に対してわざわざやってやる大人はいない。
たまたま行く用事があったり特別に教えることを頼まれている教師みたいな立場でないならな。 でけへんと正直に言うたらええねん
何をグダグダ言うてんねん 相手にして欲しいだけの子供の相手はせんよ。
じゃ、君のIDは今日のNGIDに入れとく。 Javaのストリームってなんですか?出入力の流れだと説明されたのですがよくわかりません。 そもそも、たこ焼きは東京の名店、銀タコが明治24年に売り出したのが始まり。
戦後食糧難の時代に、当時タコの国内水揚げの8割を占めていた兵庫県に近いことから、復員兵、天田八助が地元心斎橋で屋台を出したところ、本家銀タコをしのぐ勢いで大ヒットした。
料亭の味にこだわった銀タコに対し、屋台から始めた八助は、手軽に作る製法をとるしかなかった。
ところが、手軽に作る製法はたこ焼きを広める結果につながり、たこ焼きと言えば大阪と言われるほどに広まったのである。 >>853
ストリームというのは川の流れのようにデーターがちゅるちゅると流れていくやつですね。
途中にダムを設けることが多いです。 >>853
工場のラインの流れ作業的なことができる。
流れの途中にある工業用ロボットが塗装したりネジ止めしたりの加工して行って最後の所で完成。 Javaでストリームと呼ばれるものには二種類ある
InputStream/OutputStreamとStreamは何の奸計もない全く別物の技術というクソみたいなネーミング 俺がタコ焼きを作ってキミが食べるとすると、一個焼きあがるたびに口に突っ込むわけですよ、無理やり。
するとキミは、もっとクレってときもあれば、口の中がいっぱいなのに突っ込まれる時もあるわけです。
そこでストリームなんですよ。
俺は焼きあがるとストリームに突っ込む、キミは食いたいときにストリームからタコ焼きをとる。 初心者質問スレなのだから、どんな突飛な質問だって、あって当然
staticってなんですか?オブジェクトって目的ですか?。なんていう質問があっても
javaってなんですか?何ができるのですか?って質問があっても
初心者スレなのだから、そういう質問もあり、という姿勢で、このスレに参加してくださいな
初心者に中学生が、とか、バカが、とか
そういう人は360億年ロム推奨
あなたの助言は必要とされていません。Errorです。 質問の仕方の是非を非難して馬鹿って言ってるのであって
質問内容の質じゃないんだよねぇ 海を見たことない人が、海育ちの人に海について質問するときに
何をどのように質問したらいいかなんて分かるわけがない
質問の仕方とか、聞き方さえも、初心者には分からない
質問する勇気は、前進しようとする姿勢の現れ
それを評価せず、どんなメンターなんだという話
質問の仕方の是非を問うなんて、知っている者のエゴなんだよ
そんなことも分からずにアドバイスするなという話
Errorは人に宿ってるんですわ
君の部下は才能を殺されているんだろうな だがしかし、同じレベルのもの同士でしか争いは起こらないというぞ? エゴじゃないんだよねぇ
質問の仕方もわからないのなら現実だともっと辛い目に合うので
ここで突き放すのは正解なんだよねぇ 君は生まれてきてから今日まで
赤子の頃から質問の仕方を弁えてきたのかね
親や友達や先輩の懐深い指導があって
稚拙な質問を、先輩たちが補いつつ
求めた解答や指導をしてくれたのでは?
君は常に、幼き頃から突き放されてきたのですか? 君は、一つのクラスやメソッドの振る舞いが好ましくない時に
そのクラスやメソッドに、おまえバカだろwwwっていうのだろうか
そのクラスやメソッドが正しく機能するために、みずからのコードを見直し修正しないのだろうか
君がアドバイスした人が、将来一緒に仕事をするかもしれない、しないかもしれない
でも、君のアドバイスで優れた人が、この道を歩むのをあきらめる可能性だってある
君がそんな処断をしていいわけがない
アドバイスを求めたものが、正しく機能するように、コードを書くものが導くべきだと思う 優れたものがいれば足を引っ張るのが人の道だろう。
すなわち人道主義。 プログラマーは、導きあうべきだし、奉仕しあうべきだと、僕は教わってきた
年齢、国籍、信条、性別、能力に関係なく
突然、色々いって悪かったですね。しばらく自重してロムります。@136億年 >>874
ROM中に悪いんだけど、誰に教わったの?
教えた人の悪意を感じるんだけど。 他所からコピペしてきて「これを動くように改変してください!(ブヒッw」
ってそれもう質問じゃないんだよねぇ
自分で思考することを放棄したただの馬鹿なんだよねぇ
馬鹿を棚に上げて「ぼくを突き放すなー!(オンギャアw」
ってただのクソガキの我儘なんだよねぇ
アホ https://github.com/validates-email-format-of/validates_email_format_of/blob/master/spec/validates_email_format_of_spec.rb
ここに、RSpec のテストも付いているだろ
こんな仕様を個人で作って、すべてのテストケースを羅列して、
合格判定するのは無理だろ。
フレームワークの会社か、OSS で作っているものを使うしかない
そもそも、ビジネスロジックと無関係だし、
こういう汎用的な部分を作って、テスト・保守する費用は出ない
OSS ですら一旦、Ruby で作ったものを、他の言語へ移植する。
いきなり、Java などで作るのは、可読性が低いから、議論の叩き台にならない。
Javaのソースコードで打ち合わせすることは、無理
他にも、正しいクレジットカードの番号かどうかチェックするとか、
こういう汎用的な処理は、個別のビジネスロジックじゃない くだらないしもう飽きたからいいよそのネタ
チラシの裏にでも書いてろアホ できない理由よりできる理由を考える人の方が伸びるのではないかな。
人間の脳は注目していることの情報収集を延々とするし。
出来ない方にばかり意識を集中してたらやがて何もできないようにしか思えなくなるだろう。 >>877
Ruby可読性高いのかな
そのRubyのプログラムJavaにポーティングできる?
>>856の方がよほどわかりやすいけどね Rubyの人は、僕はわからないのでどっかの誰かが作ったプログラムを利用します
と言ってるようにしか思えなくてRuby要らなくね? メールアドレスチェックの処理を、各プロジェクトの工程に入れるのは無理。
そのプロジェクト固有の処理じゃないから、共通ライブラリの部署へ頼めと言われる
共通ライブラリの部署でも、それは自社固有の処理じゃないから、
フレームワークの製作会社か、OSS へ頼めと言われる
社内では費用が出せない、工程に入れられない処理。
この処理を工程に入れて、テスト・保守する費用が出せない
一会社内よりも、もっと大きな世界レベルの共通処理 メールアドレスの正規表現
http://www.din.or.jp/~ohzaki/mail_regex.htm
ここでも正規表現で、何百行も書いているだろ
個人で作って、テスト・保守できるレベルじゃない >>883
内容を理解してないから行数みて無理だと思っちゃうんだよ
やってみなよ、案外簡単かもよ こんなの正規表現を使うか構文解析器作るかだからそんな難しくないよなあ。
なんで無理と決めつけるのか謎だ。
まあしかしこんなの何十年も前にライブラリ化されてとっくの昔に枯れた技術だろうから新規に作る必要性は普通はないだろうけどな。 性能を考慮したJavaのプログラミング
http://www.dd.e-mansion.com/~kumada/laboratory/column/java_perf.html#ITEM4_4
最近Javaを始めたのですが、この鉄則で今では変わった物ってありますか?
今どきVectorは使わない、とかはあるのでしょうが。 書いてる事の半分以上が時代遅れの間違いだらけの産物
プリミティブ型が速いのは当たり前で正確な小数点の計算をするにしても
特定の桁数までにしか対応できないし可読性も落ちる
速いからラッパークラスを全否定してる時点で論外
Arrayよりも配列を使うっていうのも同様でもはやただの馬鹿 配列がリストより速いのは事実
プリミティブ型がクラス型より速いのは事実
いずれも正しい
性能第一で考えるなら鉄則として妥当 例えばstatic private finalを付けてインライン化ってのは当時でも間違いだな。
つけてもつけなくても条件さえ合えば実行時にインライン化される。
仮にそれらが有効だったとしても記事がかかれるより5年ぐらい前の最初期のJITコンパイラぐらいだけかと。 デバッガでインスタンスの生成なんか逐一トレースしたら、絶対途中で挫折するわな。 性能を考慮するなら最初からJava使わない方が・・・ >>889
ブラウザでページ情報を出したら更新日時が 2003年8月14日 21:13:01 と出たので
内容が時代遅れなのは当然と言えば当然かもね。
約15年前。あの時は若かった。 色々な意見ありがとうございます。
確かにラッパーや可変長配列が遅いのは当然のことですね。
インライン化は意識しなくてもコンパイラがやってくれるのですか!
勉強になりました、ありがとうございます。 C++ の本にも書いてあるけど、
vector を使うよりも、君が配列で書いた方が速いっていう事は、あり得ない
コンピューターの最適化には、人間が書いたソースコードでは、絶対に勝てない
どれだけ一生懸命書いても、書けば書くほど遅くなるw >>898
> C++ の本にも書いてあるけど、
> vector を使うよりも、君が配列で書いた方が速いっていう事は、あり得ない
そうとは限らないと思うが?
C++ではそうなのかも知れないが。
> コンピューターの最適化には、人間が書いたソースコードでは、絶対に勝てない
最適化のアイデアは人間が考え付いてコンパイラやJITに実装しているわけで、勝てるかどうかで考えるなら引き分けか勝つかの二通りしかないのではないか?
相手はコンピュータのように見えても実は人間だから、その人と同じになるか上回ればいいだけだよね。 禿4にはstd::vectorは配列より遅いと書いてあるが。
そしてstd::arrayは配列に劣るところはないと書いてある。 拡張forで比較したら配列がリストより20倍以上速かったよ
あり得ないと言ってる人は性能が問題になるようなプログラミング経験がない知ったかぶりだと思った ここに別の言語の事情を書かれてもそうですかとしか言えない Javaの利点ってJVM上で動作するからプラットフォームを選ばないって言うけどさ、あれってどういうことなの
Webサーバー上でもWindowsのシェル上でも動くってことであってる? >>903
そう。
もちろん標準とは別のライブラリを使うのならそのライブラリがないと動かんが。(例えばAndroid用アプリとか) >>904
なるほとよくわかった
サンキューSEX ごめんまだよくわかってないわ
CだとなんでWebサーバー上で動作しないの
PHPだとなんでLinuxシェル上で動作しないのか
教えてくれ >>906
cはサーバ上で動くし
phpはシェル上で動くよ エッヘン、コンパイル後のクラスファイルはどんなOS上でも動くんだぞ!
ボクはスクリプト言語でいいです 急遽、Hibernate(JPA?)という物を扱う必要が出てきました。
タイプセーフなクライテリア、柔軟なネイティブSQLはなんとなくわかりますが、JPQLの利点って何でしょうか?
Javaに、@"や"""のような、複数行文字列を扱う仕組みはあるでしょうか?
切り刻まれたバラバラ死体のSQLゾンビによく効く武器はないでしょうか? あーあ終わったな
hibernateの癖の強さと難解さはORM一だからな
プロジェクトにガチでhibernateのプロフェッショナルが最低でも一人はいないとお前死んだわ ORMの利点ってオブジェクトの属性とカラム値の間のマッピングを勝手にやってくれることだけでしょ
それ以外は長期的にはデメリットしかない >>912
そんな気はしてた
先輩無断で会社来なくなってLINEも電話も出ないんだよね... 今は日本語のドキュメントあるからそれ見りゃ大体使い方わかるし
こういう例みたいにパフォーマンスを極端に気にしなければ悲観する必要はないと思うけどね
ttps://www.kaitoy.xyz/2017/02/23/how-hibernate-ruined-my-career/ 初歩的な質問をさせて頂いてもよろしいでしょうか?
System.out.println(31);
と表記した場合、
System.out.println("31");
と変換されてから、31、と表示される、
という理解でよろしいでしょうか? >>918
どこが間違っていますか?
例えば、
System.out.println("レベル" + 5);
という命令文の場合、
System.out.println("レベル" + "5");
System.out.println("レベル5");
というプロセスを経る、と本には書かれているのですが… 質問の際に「初歩的な質問ですが」とか「初心者です」等を書くのは絶対やってはいけないことだからね
そりゃあよろしくないよね System.out.println(31);
→ write(String.valueOf(31))
"レベル" + 5
→ "レベル5" >>920
何でですか?
>>921
ありがとうございます。
出来ればもう少し詳しくお願いしたいのですが… ヒント:入門書だけひたすら読んでわかるまで二度と書き込まない "レベル" + 5
「文字列型 + 数値型」の場合は、数値を文字列型に型変換して、
「文字列 + 文字列」つまり、文字列を連結するのじゃないか?
"レベル" + 5 → "レベル" + "5" → "レベル5"
まあ、検索して確かめて下さい
>>911
Ruby on Rails では、Active Record。
最初に、Rails をやっていないと、MVC の作り方がわからないだろ >>917
違うでしょ。
数値で受けとった後に
メソッドの中で文字列に変換してるのじゃね? 最終的には文字列だよね。
8を出力したら、カーソルが8個右に動いたりしない。 >>920
初心者です。初歩的な質問ですが、なぜですか? >>917
java.io.PrintStream のドキュメント見ればわかると思うが、int型一つを引数とする print() と println() メソッドはあるのでそれが呼ばれる。
文字列(というか String のインスタンス)をプラス記号で連結しようとした場合は StringBuilder クラス使って append() してから toString() で取り出した String のインスタンスになると考えて良い。
ただし最適化されて違う方法で連結されたりお互いに定数だったらコンパイル時に連結した結果がコードになるかも知れない。 >>892
ちょっと前のソースコードを見ると、
何でもfinalをしたりsuperを使ってたけども、
今は継承する必要が無ければ、特に意識しなくてもいいのかな? >>923
入門書に載ってなかったから聞いたんですが
>>925
そうですよね。俺も同じ理解です。
だとしたらprintln()メソッドの引数にint型の31が入ってきても、
一旦String型の"31"に変換されてから、プロンプトに出力されると思うんです。
>>927
ええ、だからその様子を>>917で表現したんですが
>>928
はい。
>>930
あれ?println()メソッドって、java.lang.*パッケージに属しているんじゃ… >>932
System.out は ProntStream クラスのインスタンス 猿でもわかる回答もらっておいてアホみたいに何回も質問繰り返す
ホームラン級の馬鹿に何度も触るな
ほんとこういうゴミは教えてもらうことが常識になってるから延々と調子に乗り続ける 答えてくれた方々ありがとうございました。
>>933
調べてみたら俺が間違っていました。失礼しました。
>>934
ちょっとその言い方は失礼じゃないですか?
ここは質問が出来るスレッドなんですよ ちょっと間違えた。8を出力したら→9を出力したら
ちょっとお遊び
abc
という内容のファイル abc.txt を作って、コマンドプロンプトから
type abc,txt とすると出力は
abc
ここでバイナリエディタを使って
61 62 63
を、
09 62 07
に変更すると、
type abc.txt で
b
と表示されてチャイムが鳴る。(半角スペース2つを全角スペースに書き換え) 究極クズ人間の35歳に関わらないように言っているのに
一部の教えたがりが餌付けしたのでキチガイが居座ってしまった例。 IP表示でいいよ。35歳は自演癖があるからそれだけで寄ってこない。 >>935
調べればすぐにわかることを何度も質問したら
苛立つ人もいるよ、わざとやってんのかなって思うし
巣に帰りなよ ちょうどスレ消費しそうだしいいね
全板ワッチョイ導入になったんだっけ? >>937
何だよその言い方は
>>939
必要があれば質問に来るし、無ければ来ない
>>940
分かりましたが、暴言は看過出来ません 35歳ってどこに行っても迷惑を掛けまくりだな
その上、自分理論だけを当てはめさせようとするから酷い
コテ付けたり消したりコウモリも相変わらずだし 文字列連結演算子使う事で暗黙の型変換が起こってるとか想像出来ないんだな 参考資料:カレンダープログラム一覧
・Java歴1年半Java Bronze持ち35歳が作成した最高傑作
https://ideone.com/JQbabV
・中学生が真似して作った贋作
https://ideone.com/WZmNs5
・プロ作
https://ideone.com/bLfLVt >>942
己が怠けるために他人を検索道具として扱うお前の行動は暴言よりも人の道を外れた行為だからな?
だから大勢がお前を看過しないで叩くんだよ。
本当他人を不快にさせるだけの存在と自覚してもう二度と来ないでくれ。
部屋に引きこもって生きながら社会的に死んでろ。 >>945
すっきりJavaに載ってないんだろうな。
自分で調べる気が皆無で本に載っていないことは知らなくて当然、という
マジ基地だからこいつ。 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行目の右辺をキャストするのは何故でしょうか? >>952
clone()が返すのはDate型じゃないから >>953
>>954
ありがとうございます!!
プリミティブ型にキャストが必要ないのもそういうことなのですね。
頂いた情報をもとに、色々検索して調べてみます。
本当にありがとうございました。 プリミティブ型はそもそもキャストが必要ないということかしら >>956
キャストはプリミティブ型にもあるっしょ
ナローイング変換
long l = 10;
int i = (int)l;
ボクシング変換
Object o = 1;
int i = (int)o;
>>952のようなclone()の実装で
clone()を呼ばないなら型は同じなのでキャストは必要ない
clone()を呼ぶのはオブジェクトの状態を共有するのを避けるため
プリミティブ型のときは状態がないのでキャストは必要ない
参照型であってもString型のようにオブジェクトの状態が不変であれば
clone()を呼ばなくて良いしキャストも必要ない 仕事でJavaを使う(開発)のに最低限必要な知識
・eclipseの使い方を覚える
・htmlとjstlとjavascriptを当たり前のように使えるようにする
・SQLを当たり前のように使えるようにする(外部結合ぐらいわからないと話にならない)
・DB接続ツールの使い方を覚える
・メジャーなDB(oracle、db2、mysqlなど)間のデータタイプ、互換性のないSQL、演算子を覚える
・バージョン管理ツール(subversion、gitなど)やTracの使い方を覚える
・シェアが高いフレームワークの作法を覚える(開発が死んだFWも含む)
・シェアが高いORMの使い方と欠点を覚える
・シェアが高いビルドツールの記述作法を覚える
・unitテストの実装方法とやり方を覚える
・デザインパターンを覚える
・言語の超基本的な知識をつける
・クラスやインスタンスの違い
・singletonとstaticの使い分け
・インターフェースと抽象クラスの使い分け
・継承とコンポジションの使い分け
・ジェネリクス >>958
こういう内容の本があると売れそうですね だから皆、無料のRails チュートリアルをやる
MVC とか、開発の全工程・数十の技術を、広く浅く学べる 「Ruby ゴミ」でググると一番上に「Rubyはゴミすぎて使い物にならない」
っていうタイトルが出てくる
「Rails ゴミ」でググると上から8番目にやっぱり「Rubyはゴミすぎて使い物にならない」
っていうタイトルが出てくる
不朽の言語であるJavaスレでゴミを勧めるなキチガイ >>957
ありがとうございます。
多分、理解できたと思います。
今回のケースで3日調べていましたが
一番わかりやすくて助かりました
本当にありがとうござます!
テキストにもしっかりメモさせていただきました 基本的なことだと思うのですが、教えてください。
「インスタンスを一つだけ格納できるクラス」
public class Xxx{
privete Object o;
}
これは、Objectは全てのクラスの親クラスだから
Objectで型指定したoは、必ずインスタンスでなければならない
という意味合いと理解していいのでしょうか?
いつもすみません、よろしくお願いします。 すみません。
問題で、「インスタンスを一つだけ格納できるクラスを作りなさい」という問いがあり
その解答が
public class Xxx{
privete Object o;
}
というコードになっているのですが、
このコードが、どうしてインスタンスを
一つだけ格納できるクラスとなっているのか
oがインスタンスだけに限定されていて
プリミティブ型が入ることがないのはどうしてなのか
という疑問がありまして、質問させてもらいました おまえさぁ、わざとやってんだろうけど少しはググったら?
なんでググって3秒でわかることを毎回ダラダラとくだらない長文書いて無駄にスレ消費すんだ?
なめてんのか? >>967
(^ω^)ペロペロ
お尻の穴を舐めてあげるね
君、チンカス臭いよ >>966
プリミティブ型とクラス型は継承関係になくて
Object型はクラス型なのでObject型にプリミティブ型が入ることはないっすよ
Object o = 1;
とした場合はオートボクシングでラッパークラスに変換される
Object o = Integer.valueOf(1);
コンパイル時にはこういうコードに変換される
オートボクシングがなかったJava 1.4以前は
手作業でObject o = Integer.valueOf(1);こう書かなくてはいけなくて
なかなか地獄だったよ >>969
早朝にご指導いただきましてありがとうございます。
よく理解できました。すっきりしました、ありがとうございます!
これからもよろしくお願いいます! いつもすみません。教えてくださると幸いです><
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をつけたりつけなかったりするのでしょうか? 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);
}
} >>973
そいつは35歳というスレに住み着いているキチガイで、
質問するのが目的じゃなくて、わざと叩かれるようなことをして
構ってもらうのが目的なんで、相手にしないでください。 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をつけたりつけなかったりするのでしょうか >>975
質問するのが目的なら、質問した時点で目的は果たしたということ? これが
「もう初心者は脱した」
「Javaブロンズ持ってます」
「リフレクション以外は完璧にマスター」
と豪語している大人の質問かね...? >>944
ふざけんな
回答が雑なのも悪い
>>945
はあ?俺のレスに書いてあるだろうが
>>946
余計なことを書くな
>>947
別のスレに書けよ ここに書くな
>>948
ここに書くな
>>951
関係ねえよ しばらく荒れてただろうが
>>974
俺の書き込みじゃねえよ馬鹿 >>978
俺の書き込みじゃねえよ
>>979
俺の書き込みじゃねえよ
>>981
初心者ではないのだろうけど、スルー耐性が低い人間はいる >>983
初心者じゃなかったら>>975に答えてやれよ >>975
クラスの中にメソッドがないのだが、それコンパイルエラー出ない? >>982
自分の思い通りにならなかった癇癪起こすのいい加減やめてくんない?
あと回答が雑とか、自分は荒らす癖に他人は余所行けとかお前何様?
Javaなんかやんないでいいから部屋に引きこもってエッチなゲームでも
ずっとやってろよ社会不適合の他人の迷惑にしかならないごみクズが。 >>986
すみません><
十分時間がなくて急いでの投稿だったので
色々ミスが満載でした
時間のある時にもう一度質問させてください
スレ汚してしまってすみませんでした 荒らしがあまりにも酷いので次スレはIP付きのを優先的に使いませんか?
Java入門・初心者質問スレ Part.8
http://mevius.5ch.net/test/read.cgi/tech/1528370228/ このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 152日 16時間 54分 19秒 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php レス数が1000を超えています。これ以上書き込みはできません。