データタイプに関する(基本)_JP

データタイプに関する(基本)

まず、一つ会社の面接受けるときよくある問題、銀行業務中には、float型使えますか?

// float型の変数に値を代入したい場合は必ず最後に「f」をつける
float f = 0.1f;
double d = 1.0/10;
System.out.println(f);
System.out.println(d);
System.out.println(f==d);// なぜfalse?


float f1 = 1354684643535f;
float f2 = f1 + 1;
System.out.println(f1);
System.out.println(f2);
System.out.println(f1==f2);// ここまたなぜtrue?

問題の答えは、float型は銀行業務に使わないほうがいいです。

詳しくは为什么比较double和float会导致意外结果?

結論:

  • float型は上限、まるめの誤差がある
  • float型の変数で比較は完全にしないでください
  • 銀行業務には、BigDecimal変数型で計算、比較なです。

次は、キャラクター型、「文字」

char c1 = 'a';
char c2 = '本';
System.out.println(c1);
System.out.println((int)c1); // 強制転換、char型からint型に転換する

System.out.println(c2);
System.out.println((int)c2);

結果:
a
9726412
// すべての「キャラクター」「文字」の本質は数字

次は、エスケープ文字

// エスケープ文字
// \t 空白
// \n 改行
System.out.println("hello\tworld");
System.out.println("hello\nworld");

結果:
hello	world
hello
world

最後は

// 文字列
String sa = new String("hello world");
String sb = new String("hello world");
// saとsbの比較結果はfalseですか?なぜ
System.out.println(sa==sb);

String sc = "hello world";
String sd = "hello world";
System.out.println(sc==sd);
// scとsdの比較結果はtrueですか?なぜ

結果:
false
true

一番目は 完全に二つ違うオブジェクトの比較です。

newを使ったら、新しいオブジェクト作ることができます。

saとsbのメモリアドレスが違いますためfalseになった。

変数の比較は内容を比較、同じ内容のため、scとsdはtrueです

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值