java 基礎資料型別和String型別細節 + 自動轉換 + 強轉
阿新 • • 發佈:2022-04-18
java整形浮點型細節
package week01;
public class intDetail {
public static void main(String[] args) {
int n1 = 1;
//int n2 = (int) 1L;
long n3 = 1L;
//bit是最小的儲存單元,byte是一個位元組也就是基本儲存單元
//社會是由人類構成的,但是人類是由細胞構成的
//以前我總是認為位元組是要相加的,一直沒有改過,啊哈哈,
byte m1 = 1;
short m2 = 1;
}
}
package week01;
public class floatDetail {
public static void main(String[] args) {
//浮點數是由符號位 + 指數位 + 尾數位
//java中浮點數預設是double,如果是float型別 需要加f
float a = 1.1f;
double b = 1.5;
double c = .123;
//一般不可以用浮點數運算來進行比較
double d = 2.7;
double f = 8.1/3;
System.out.println(d + " " + f);
//解決辦法
if(Math.abs(d - f) < 0.00001) System.out.println("相等");
}
}
java字元型細節
package week01;
public class chatDetail {
public static void main(String[] args) {
char c = 97;
//char a = "8";”“字串型別 ‘’字元型別
System.out.println(c);
//在java中char本質的整數,對用的是unicode碼對應的字元
char c1 = 33889;
System.out.println(c1);
char c2 = '葡';
System.out.println((int)c2);
//char 可以進行運算的
System.out.println((char) ('a' + 10));
}
}
boolean型別
boolean不能直接等於0,1只能是true,flase
基本資料型別轉換
自動型別轉換,java中精度小的資料型別可以自動轉化為精度大的資料型別
char - int - long - float - double
byte - short - int-long - float - double
int a = 'c';//OK
細節
package week01;
public class AutoConvert {
public static void main(String[] args) {
int num = 'A';
double a = 80;
System.out.println(num + " " + a);
//1.把數字賦值給byte時候,先判斷數字是不是在byte範圍之內
byte b = 15;
//2.byte,short 不會和 char 發生轉換
//char c = b; 錯誤
//3.byte short char 他們三者在計算的時候首先會轉化為int,
byte d = 1;
short f = 1;
//short e = (d + f);
int e = d + f;
byte g = 1;
//byte k = d + g;同種型別的也不行!!!!!
int k = d + g;
//4.boolean 不參與轉換
//java中boolean true ,flase,一般就作為條件,不會像c++那樣可以是0,1還能參與運算
boolean l = true;
//int c = 1 + l;錯
//5.自動提升原則,轉換成精度最大的
}
}
強制型別轉換
package week01;
public class ForceConvert {
public static void main(String[] args) {
//1.並不會變成最大的數字,資料溢位了
int a = 200000;
byte b = (byte) a;
System.out.println(b);
//2.精度減小
double c = 1.1;
int d = (int) c;
System.out.println(d);
//3.強轉()就近原則
//int f = (int)3.5 * 6 * 3.2;只是把3.5轉換成3了並沒有把3.2轉換所以還是double型別
int f = (int)(3.5 * 6 * 3.2);
System.out.println(f);
//4.char型別可以儲存int常數值,但不能儲存int變數值,只能強轉!
char g =100;
int k = 100;
char p = (char) k;
int m = g;
System.out.println(p + " " + m);
}
}
基本資料型別練習題
String和Basic的轉換
package week01;
public class StringToBasic {
public static void main(String[] args) {
//1.basic -> string
int a = 2;
char b = 100;
short c = 200;
double d = 1.1;
String a1 = a + "";
String b1 = b + "";
String c1 = c + "";
String d1 = d + "";
System.out.println(a1 + " " + b1 + " " + c1 + " " + d1);
//2.string -> basic
String s1 = "112";
int num = Integer.parseInt(s1);
double m = Double.parseDouble(s1);
System.out.println(num + " " + m);
for(int i = 0; i < s1.length(); i ++)
{
char t = s1.charAt(i);
System.out.println(t);
}
}
}