アフィリエイト広告を利用しています
メニュー
Java関連
C言語
Python
RaspberryPi
Windows10
Word
Excel
PowerPoint
Access
AutoCAD
Jw_cad
Photoshop
Illustrator
その他


最新記事
<< 2019年08月 >>
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
カテゴリアーカイブ
日別アーカイブ
↓エンジニア特化型のQ&Aサイト『テラテイル』。メールアドレスのみで登録ができます。 困ったときに助けてもらえるかも!

広告

この広告は30日以上更新がないブログに表示されております。
新規記事の投稿を行うことで、非表示にすることが可能です。
posted by fanblog

2019年08月17日

nullがわからない【Java】

Java Silverの説明の準備をしていて、
nullの実体とはなにかという疑問に陥ってしまいました。

C言語だと明確に定義されていて、
ヌル文字(0x00)とヌルポインタ((void *)0)がありますが
Javaのnullとは一体…?

文字型配列に代入するときのnullはCのヌル文字とほぼ同じで
文字コード0の文字のようです。ただし文字列の終端の意味はない。

参照のときのnullは、それとは別物なのでしょうか??
null型オブジェクト(ユーザは扱えない型)ということらしいのですが
null型というのがvoid * 型のようなものなのだろうか・・・
イマイチ実体がつかめずもやもやしています。


posted by Milky at 11:09 | TrackBack(0) | Java関連

2017年08月04日

C++との違い【Java】








JavaとCやC++の基礎部分はほとんど同じだよね〜とをくくって
あんまりきちんと考えてこなかったのですが
きちんと説明しなくてはいけなくなったので
文法まわりについての違いを勉強中です。

少しずつ追記していく予定です。

■論理演算子

"&"と"|"は整数に用いればCもJavaもビット演算子だが
javaではbooleanのとき論理演算子となる
a&b , a|b
真偽にかかわらずaもbも実行する

■条件分岐

Javaではswitch文にStringが使用できる
Java7から使えるようです
【Java入門】switch文でString型の文字列を使う方法

■クラス外でのコーディング
前方宣言や関数だけのコーディングができないっぽい
もう少し詳しく調べる必要あり

■アクセス修飾子
<Java>
1. クラス自体へのアクセス制御
 publicか無指定(パッケージ内)のみ
2. メンバへのアクセス制御
 public, protected, privateはjavaとC++は同じ
 Javaは無指定はパッケージ内となる
3. メンバへのアクセス制御の書き方
  private int num;
  private int sum;
<C++>
1. クラス自体へのアクセス制御
 C++はクラス自体のアクセス制御はない
2. メンバへのアクセス制御
 public, protected, privateはjavaとC++は同じ
 無指定はprivateとなる
3. メンバへのアクセス制御の書き方
  private:
   int num;
   int sum;

■抽象クラス
javaではabstractクラスを作成できる
C++ではクラスにそのような指定をするものはないが
virtualをメンバ関数につければ、抽象クラスと同様に
オーバーライドしないとインスタンスが生成できないクラスとなる

■インターフェイス
C++ではインターフェイスというものは存在しない
しかし、C++は多重継承が許されているので、
virtual関数しかもたないクラスでインターフェイスのような
クラスを作ることができる







posted by Milky at 02:47 | TrackBack(0) | Java関連

2015年11月15日

Java Bronzeその後







■Bronzeでも役に立った!
Oracle Java Bronzeをとって1ヶ月半経ちます。
(参考:Java Bronzeをオンラインで受けてみた
訓練講師からITスクールに勤め先を変えるため、
履歴書のために取り急ぎとったJava Bronzeの資格でした。

Bronzeだと学生レベルで、取る意味がない
BronzeをとるくらいならSilverをとれ、という意見が多く
履歴書に書いても意味がないかなと思っていたのですが
私の場合はそんなことはありませんでした!

■Silverとそんなに変わらないかも?
面接日の直前まで勉強し、前日の真夜中に慌ててとったBronzeを
こそっと履歴書の資格欄に追加して面接にのぞみました。

Bronzeなんてむしろ評価が下がるかなとドキドキだったのですが、
なんと面接をしてくれた方は、
「BronzeがとれるならSilverの実力もあるよね」 
と言って、好意的な見方をしてくれました!!
(私がもともとC++プログラマーだったのもあるかも??)

そのスクールはJava講座だけのスクールではないので
どこまで効果があったかはわかりませんが、
とりあえず無事に採用されました♪

今はまたSilverの勉強を少し始めていますが、
想像してたほどは違いは感じられません。
範囲はBronzeとほぼ同じで、(例外処理が加わった程度)
そして少しずつ内容が深くなっています。

私のようにSilverと同等ととらえてくれる場合もあるようだし
値段もSilverに比べると安いし、
オンラインでいつでも自宅受験できるし
短時間で資格が取りたい人はBronzeおススメです♪






posted by Milky at 16:49 | TrackBack(0) | Java関連

2015年09月30日

Java Bronze試験をオンラインで受けてみた



スポンサーリンク





オラクル認定Java Programmer SE 7/8 Bronze の試験を
オンラインで受けてみました!

今年はJavaの試験が20%引きのようなので、お得でした!
税込み価格で¥14688 ⇒ ¥11750
3000円くらい安くなりました♪
でも高いですね (TmT)
Silver や Goldだと3万円を超えるので、2割引きは大きいです!

で、オンラインで受験したわけですが、
申込はそんなに問題なく、登録もとくに迷うことなくできました。
ピアソンにアカウントを作成する必要がありますが
きちんと必要事項を入力していれば
試験開始画面にたどり着けます。
試験は開始ボタンを押すと説明のあとにすぐに始まるので
万全の体制を整えてから進めましょう。

試験問題については、終わった今となっては頭が真っ白で
どんな問題がでたか忘れてしまいましたが、
紫本と黒本をやっておけば大丈夫だと思います!
インクリメントなどはしっかり理解しておきましょう
 ⇒インクリメントの前置後置
試験時間は60問で65分でしたが
15分くらい余りました。
模擬問題ではほとんど余らなかったので自分でもびっくり。
わからない問題はさっさと諦めることが肝心ですね!(´▽`)

そして面倒だったのは試験の後!
オンラインだから合否がすぐにでると思っていました。
MOSの感覚で、終了と同時に画面に合否がでるかと思ったら
いろいろとややこしい手続きが・・・!

まずoracleにアカウントを作成しておく必要があります。
その後Certviewというシステムにログインして初回認証をする必要があります。
ここで問題なのが、Certviewで認証を3回間違えると
コールセンターに問い合わせなければならなくなる、ということです。
また、ピアソンのアカウントがCertviewに反映されるまで最大1週間かかるらしい
ということで、すぐに結果が見れるかどうかはわかりません。

私の場合、Certviewの初回認証でエラーがでてしまい、
あと2回間違えたらめんどくさいことになる・・・!と思って
かなりドキドキしました。
アカウントが反映されていないのかなと思って、
15分くらいおいて再チャレンジしたらきちんと認証されました!
初回のエラーは入力ミスなのかアカウントが反映されていなかったからなのか
理由はわかりません。
なんだかんだ試験が終わって30分くらいで合否を見ることができました。

結果は・・・!

合格ーー!やったー!
93%でした。 抽象化のあたりを間違えたようですが
詳しいことはよくわかりません。
試験を受け始めたのが夜中の1時半だったので、
合否を見たのが3時頃。
こんな時間に一人でハイテンションになっていました( *´艸`)
次はSilverめざしてがんばるぞー!



私が使用したのはこの2冊。鉄板です!!

1冊目は、いわゆる紫本です。
実際に使用したのはこの1つ前のSE7版ですが、全く問題ありませんでした。
Javaの基本概念からきちんと学習できます。
目で追っているだけだとすぐに忘れてしまうので、
疑問に思ったところはサンプルプログラムを実際に書きながら
学習すると良いと思います。



2冊目はいわゆる黒本です。
まず問題があって、その後に問題の解説がテキスト代わりになっています。
コンストラクタや継承・ポリモフィズムのあたりの理解がとても深まりました。
紫本を理解してから取り組むのが良いと思います。
模擬問題は1つは本紙に掲載されていますが、もう一つは
インプレスのサイトからダウンロードしてくる必要があります。
こちらもぜひ活用しましょう。
徹底攻略 Java SE 7/8 Bronze 問題集[1Z0-814]対応

あともう一つ、良く知られているのが白本です。
こちらは使用していないのでわかりませんが
問題をときながら進めていく黒本に近い形のようです。




スポンサーリンク




posted by Milky at 09:20 | TrackBack(0) | Java関連

2015年09月27日

いろいろな疑問【Java】









まだ整理できていないことや
気をつけでいきたいことがあるので走り書き。
いずれきちんとまとめたいと思います。

■デフォルトコンストラクタ
コンストラクタを明示しない(1つも記述しない)場合、デフォルトコンストラクタが作成される。
デフォルトコンストラクタとは「引数なし」で処理は「空」のコンストラクタ。
コンストラクタを明示した場合、デフォルトコンストラクタは作成されない。
このとき、引数があるコンストラクタであっても、
明示すればデフォルトコンストラクタは作成されないため、注意が必要。
つまり、引数ありのコンストラクタを持つ場合は
引数なしでインスタンスを作成しようとするとエラーになる。


■自分のクラス内でのインスタンス化
mainメソッドをもつクラス内で自分のクラスをインスタンスできる

■セミコロンのルール
メソッドの{}のあとにセミコロンがいらないけどつけてもOK

■抽象クラスとインターフェイスクラスの使い分け
abstractは継承関係。
is a の関係。
「車」は「乗り物」

imterfaceは継承関係がない場合に使用できる。
can do の関係。
「車」は「走る」

■finalメソッドはオーバーライドできない
オーバーライドはできないけど、オーバーロードはできる。
サブクラスでそのまま再定義することはできないけど、
引数や戻り値の型を変えてメソッドを定義することはできます。

オーバーロードが名前が同じなだけで別のメソッドと思えば納得。

■例外処理
わかりやすいサイト
マンガで分かる Java入門講座 8-10 例外1 throwとthrows
マンガで分かる Java入門講座 8-11 例外2 try catch文






posted by Milky at 00:29 | TrackBack(0) | Java関連

2015年09月09日

インクリメントの前置と後置【Java】

■基本
■単独で用いる場合
■計算と同時に用いる場合
■条件で用いられるとき
■出力時に用いる場合
■まとめ






インクリメント演算子の前置(++a)と後置(a++)について
きちんと理解できているでしょうか。

違いがあったり、なかったりしてややこしいですよね。
単独だったらわかるけど、複雑な式になってくると、
あれ?と思ったりします。
使い方によって、結果が変わってきたりするので、
使われるパターンごとに整理してみたいと思います。


■基本

インクリメント演算子とは、という基本や概念はここでは割愛して
前置と後置という2パターンがあることを知っておきましょう。
そしてその違いは、増加させるタイミングに違いがあります。

++a 「増加」してから「計算」
a++ 「計算」してから「増加」
1増加させるのも計算でしょ!と言われてしまえばそうなんですが
ここでは、増加以外の計算、と思ってください。


このタイミングによって、計算結果が違ってくる場合があるので
注意が必要です。


■単独で用いる場合
a=0;
++a;

aの値は1になります。
a=0;
a++;

aの値は1になります。


単独で用いるときに違いはありません。
どちらもaの値は1になります。
なぜなら、「計算」の部分が存在しないからです。


■計算と同時に用いる場合

増加以外の計算と合わせて用いる場合は違いが出てきます。
a=0;
b=++a;

先にaが増加して、bにaを代入します。
aの値は1、bの値は1となります。
a=0;
b=a++;

先にbにaを代入して、その後aを増加させます。
aの値は1、bの値は0となります。

bの値が異なっているのがわかるでしょうか?
前置と後置では、増加させるタイミングが異なるため、結果に違いが出てきます。

要するに、++の優先度が変わる、といえばよいでしょうか。
前置きの場合は、どの計算よりも優先され、
後置きの場合は、他の計算の方が優先されることになります。


■条件で用いられるとき

if文の条件や、ループの条件として用いられることもよくあります。
a=0;
while(++a < 3){
 //処理
}

先にaが増加して1になり、1と3を比較して、処理に進みます。
次にaが増加して2になり、2と3を比較して、処理に進みます。
次にaが増加して3になり、3と3を比較して、条件を満たさないのでループを抜けます。
最終的にaの値は3になります。
a=0;
while(a++ < 3){
 //処理
}

先に0と3を比較してから、aが増加して1になり、処理に進みます。
次に1と3を比較してから、aが増加して2になり、処理に進みます。
次に2と3を比較してから、aが増加して3になり、処理に進みます。
次に3と3を比較してから、aが増加して4になり、条件を満たさないのでループを抜けます。
最終的にaの値は4になります。

わかりましたか?
前置と後置では、ループする回数が違っています。
増加させたものを判定に使うか、増加させる前に判定されるかが
異なっている点です。


■出力時に用いる場合

a=0;
//System.out.println("a="+(++a));

aが増加してから、出力するので、出力結果は1となります。
a=0;
System.out.println("a="+(a++));

出力してから、aが増加するので、出力結果は0となります。

単独でもちいられるように見えても、出力という処理に対して
増加させるタイミングが変わっています。


■まとめ

今回はインクリメント演算子の前置と後置について整理してみました。

演算のタイミング以外にも、処理速度などの違いもあるようですが
きちんと2つの違いを理解したうえで
速度などを考慮して使い分けるようにしましょう。






posted by Milky at 14:57 | TrackBack(0) | Java関連

2015年09月06日

リテラルってなんだろう?【Java】


リテラルってなんだろう?
リテラルの定義は?
わかりやすい解釈はコレ!
例えばこんな使い方
まとめ









■リテラルってなんだろう?


Javaの参考書を読んでいると、
最初の方に「リテラル」という言葉がでてきます。
これがさっぱりよくわからない。

変数や定数の型宣言に関することのようだけど、モヤっとします。

今回は、このモヤモヤを少しでも解消したい!と思います。


■リテラルの定義は?


とりあえず、リテラルってどういうものか調べてみました。

Wikipediaより
リテラル(英: literal)は、「文字どおり」「字義どおり」を意味する語で、letter と同じくラテン語の littera(文字)に由来する。数理論理学とコンピュータプログラミングで異なる意味の学術用語として使われる。

コンピュータプログラミングにおいてリテラルは即値(英: Immediate)ともいい、ソースコード内に値を直接表記したものをいう。 言語によってリテラルとして表記できる型の種類や表記方法は異なる。

Weblio辞書 IT用語辞典より
リテラルとは、プログラムのソースコードにおいて使用される、数値や文字列を直接に記述した定数のことである。変数の対義語であり、変更されないことを前提とした値である。

プログラミング言語のコード中にリテラルが挿入される場合には、判別のために特定の書式を用いる必要がある。例えば文字列を表記する際は、多くのプログラムにおいて必ず前後をダブルクォーテーション( " )で括ると定められている。このため、プログラミングについて記述した文章では、必要に応じてリテラルを分類し、数値リテラルとか日付リテラルとか言うふうに呼び分けるのが一般的である。

IT用語辞典 e-Wordsより
リテラル 【 literal 】 直値
リテラルとは、コンピュータプログラムのソースコードなどで、特定のデータ型による値を直接表記する際の書式。また、そのような書式に従って記載された値。
表記の仕方によってデータ型を識別できるよう、例えば文字列を表記する際は必ず前後を「"」で括る、といった書式が言語仕様によって定められている。各データ型のリテラルを、型名を先頭につけて「文字列リテラル」「整数リテラル」「日付リテラル」などと呼ぶ。



■わかりやすい解釈はコレ!

即値直値あるいは定数とも書かれていますが、正直、あまりはっきりわからない。

それよりも注目すべきはIT用語辞典 e-Wordsにある
特定のデータ型による値を直接表記する際の書式
また、そのような書式に従って記載された値

という部分です。

そう、「書式」つまり「書き方」と考えればわかりやすい!
でもそれだけじゃない。実はもう一つ意味があります。
書式に従って記載された値」です。
つまり、書き方にしたがって書いたもの も、リテラルとよばれるのです。
実はリテラルには2つの意味がある。このあたりが、ややこしくしている一因です。

というわけで、「書き方」と「書式にしたがって書いたもの」、と思えば
わかりやすくないでしょうか?


■例えばこんな使い方

【例】 「書き方」という言葉に置き換える

float f = 10.0;
という式を、浮動小数点数リテラルに従って書き直すと
float f = 10.F;
となります。
 ⇓
float f = 10.0;
という式を、浮動小数点数の書き方に従って書き直すと
float f = 10.F;
となります。


【例】 「書式にしたがって書いたもの」という言葉に置き換える

"Hello\n"は「Hello(改行)」という文字列のリテラルです。
 ⇓
"Hello\n"は「Hello(改行)」という文字列を書式にしたがって書いたものです。


■まとめ

モヤモヤが少しは晴れたでしょうか?

リテラルなんて普段使い慣れないので、
突然出てきてギョッとしてしまいますが、ようするに書式(書き方)のこと。

ここで言葉に惑わされてつまづかないように、
ササッと乗り切りましょう。






posted by Milky at 15:26 | TrackBack(0) | Java関連

2015年09月03日

Eclipseのインストール【Java】








Javaの開発環境として最も知られているのがEclipse(エクリプス/イクリプス)です。

今回は、Eclipseのインストール手順についてまとめます。

■Eclipseをダウンロードしよう

まずはEclipseをダウンロードしなければいけません。
このとき、Eclipseの公式サイトからダウンロードすることもできますが、
日本語化パッケージでPleiades (プレアデス)というものがあります。
こちらの方が、すでに必要な設定も整っており、日本語化されていてとても便利です。
こちらをダウンロードしましょう。

プレアデス配布サイト

Pleiades All in One ダウンロード(ページの上部)に
ダウンロードできるPleiades のパッケージがボタンとして並んでいるので、
ダウンロードしたいものを選びます。
(ここではバージョン4.4を選びます。)
ecli01

次に、ダウンロードする言語とエディションからパッケージをを選ぶ画面になるので
Java・Full Edition ・32bit版または64bit版 を選択します。
ecli02

あとは、ダウンロードしてきたzipファイルを展開すればOKです。
展開にも少し時間がかかります。
とくにインストール作業はないので、Pleiadesのフォルダごと移動させてもOKです。
展開するときにパス名が長すぎるとエラーとなってしまうので、
その場合はCドライブの直下などに短い名前のフォルダを作成して展開するといいでしょう。

バージョンによってはVectorのページが開き、
そこからダウンロードしてインストールになる場合もあります。

■Eclipseを起動する

展開したフォルダの中に、「pleiades」というフォルダがあり、その中に
「eclipse.exe」というファイルがあります。
ecli03
このファイルをダブルクリックしてEclipseを起動させます。

途中でワークスペースについてのダイアログが出るので「OK」を押して進めます。
ecli04

以下のような画面が立ち上がれば完了です。
ecli05
お疲れ様でした。






posted by Milky at 13:24 | TrackBack(0) | Java関連

2015年09月02日

メモ帳で作ったソースをコンパイルして実行【Java】








Javaプログラムの第一歩目として、プログラムを書いてコンパイルしてみます。
「Hello World」という一文を書き出すプログラムです。

メモ帳などのエディタに以下のコードを記述します。

public class MyFirstPgm{
 public static void main(String... args){
  System.out.println("Hello World");
 }
}


ファイル名はMyFirstPgm.java(1行目のクラス名と同じ)として保存します。

コマンドプロンプトでMyFirstPgm.javaが置いてあるディレクトリに移動し、
javaコンパイルを実行します。

> javac MyFirstPgm.java

すると、MyFirstPgm.class というクラスファイルが生成されます。

こんどはコマンプロンプトでクラス名をよんで実行します。

> MyFirstPgm

すると、プログラムが実行され、以下の一文が出力されます。

Hello World

これで完了です。
お疲れ様でした。






posted by Milky at 23:46 | TrackBack(0) | Java関連

2015年08月29日

Android Studioのインストール【Java】

Andoroid Studioをダウンロードしよう
Andoroid Studioをインストールしよう
起動を確認しよう








Andoroidアプリを作るためにはAndoroid Studioという開発環境を使います。
ここでは、Andoroid Studioのインストールについてまとめます。

■Andoroid Studioをダウンロードしよう
以下サイトからダウンロードできます。
http://developer.android.com/sdk/

as01
DOWNLOAD ANDROID FOR WINDOWS というボタンをクリックすると
ダウンロード規約のページに変わるので、
ライセンスに同意するチェックを入れてダウンロードの青いボタンをクリックします。
as02

ダウンロードのウィンドウが出るので保存またはそのまま実行してインストールを開始します。
(2分程度でダウンロードできました。)
as03

■Andoroid Studioをインストールしよう
ダウンロードしたファイルを実行します。
基本的には設定を変えずに「Next」ボタンを押して進めて行けばOKです。
as05

ライセンスへの同意の表示も出るので「I Agree」ボタンを押して進めます。
as06

そのままいくつか設定を変えずに進めていくと、インストールがはじまります。
as07
(10分程度かかりました。)

「Finish」まで進めばインストールは完了です。
as08

■起動を確認しよう
先ほどのFinish画面で「Start Android Studio」にチェックが入っていれば
そのままAndoroid Studioが起動します。

はじめに、設定を引き継ぐかどうかのダイアログボックスがでるので
Android Studioを使うのが初めての場合は下の選択肢を選びます。

as08

最新のコンポーネントをダウンロードする画面になり、終わったら「Finish」を押します。
as09

最後にWelcom画面が出ていれば、正常に起動する確認ができたので完了です。
as10

お疲れ様でした。









posted by Milky at 15:02 | TrackBack(0) | Java関連
プロフィール
Milkyさんの画像
Milky
職業訓練校のPC講師⇒ITインストラクターをやっています。 パソコン関連で、知りたいこと・調べたこと・教えたこと・わからないことなど 整理しながらまとめていきたいと思います。
プロフィール
検索
タグクラウド
最新コメント
コメント用 by こむ (05/12)
ファン
×

この広告は30日以上新しい記事の更新がないブログに表示されております。