プログラマメモ2 - programmer no memo2

ラベル付きブロックのラベルを日本語で。 2009/08/26

Javaです。

最近、日本語で変数名とかメソッド名をつけてもいいかなーと思ってます。
一年前ぐらいなら、日本語で変数名とかメソッド名なんて絶対だめと考えていましたが、似非英語を使うよりも、いいかなと。

あと、コメントに仕様書からのコピーのっけるなら、日本語で書かれた仕様書にさらに近づけるというわけで。

単語の省略形もさけてましたが、別にこれもOKかな。
いろいろな文化(プログラミングの)、経験した人がいるわけで、もう何でもありだ(笑)
もちろんルールを決めたらそれを守る方向で。

ソースコードと仕様書の乖離をどうふせぐかも頭が痛い問題だと思います。

ここんとこ考えているのは、ラベル付きブロックを使って上手い具合に仕様書とあわせられないかなーということです。

package ラベル;

public class ラベル参考 {

public static void main(String[] args) {
a();
}

static void a() {

処理1: {

if (false)
break 処理1;

if (false)
break 処理1;

if (false)
break 処理1;
}

処理2: {

if (false)
break 処理2;

if (false)
break 処理2;

if (false)
break 処理2;
}
}
}




参考

ByteBufferで、リトルエンディアン指定で。 2009/08/19

Javaです。
バイナリのファイルデータを読み込むときとかにByteBufferを使ってます。

リトルエンディアン指定で、読み込む場合は、orderを指定します。

import java.nio.ByteBuffer;
import java.nio.ByteOrder;


public class TestByteBuffer {

public static void main(String[] args) {
a();
}

static void a(){
byte[] bs = {0x01,0x0, 0x0, 0x0};
ByteBuffer buffer = ByteBuffer.wrap(bs);
buffer.order(ByteOrder.LITTLE_ENDIAN);
System.out.println(buffer.getInt());
}
}

いまさらながらJavaの文字列(String)を==で比較しちゃだめよ 2009/08/02

Javaです。

いまさらながら文字列の比較です。

下記のコードで出力される結果は、なんでしょうか。

public class Testストリング0 {
public static void main(String[] args) {
String a = "abc";
String b = "abc";
System.out.println(a == b);
}
}


僕の環境ではtrueでした。

で、一瞬、いつから文字列の比較で==がOKになったのかしらと思いました。

気をとりなおして、下記のコードで検証。
public class Testストリング0 {
public static void main(String[] args) {
String a = "abc";
String b = "abc";
a +="d";
b +="d";
System.out.println(a == b);
System.out.println(a.equals(b));
}
}


案の定、==では比較できませんでした。