初入JAVA-----数据类型
强类型语言
要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用
弱类型语言
Java的数据类型分为两大类
◆基本类型(primitive type)
◆引用类型(reference type)
public class dema02 {
public static void main(String[] args) {
//八大基本数据类型
//整数
int num1 = 10; //最常用
byte num2 = 20;
short num3 = 30;
long num4 = 50L; //long类型要要在数字后面加个L
//小数:浮点数
float num5 = 50.01F; //float 类型奥在数字后面加F
double num6 = 3.15159262313;
//字符
char name = '国';
//字符串。string不是关键字,类
//string name = "你好";
//布尔值:是非
boolean flag = false;
}
}
import com.sun.management.VMOption;
import com.sun.xml.internal.bind.v2.runtime.output.DOMOutput;
import sun.plugin.liveconnect.OriginNotAllowedException;
public class dema03 {
public static void main(String[] args) {
//整数拓展:进制 二进制0b 十进制 八进制0 十六进制0x
int i = 10;
int i2 = 010;
int i3 = 0x10;
System.out.println(i);
System.out.println(i2);
System.out.println(i3);
System.out.println("======================================================");
//浮点数拓展? 银行业务怎么表示?钱
//BigDecimal 数字工具类
//===============================================
//float 有限 离散 舍入误差 大约 接近但不等于
//double
//最好完全使用浮点数进行比较
//最好完全使用浮点数进行比较
//最好完全使用浮点数进行比较
float f = 0.1f; //0.1
double d = 1.0 / 10; //0.1
System.out.println(f == d); //flase
float d1 = 2323123131313f;
float d2 = d1 + 1;
System.out.println(d1 == d2);
System.out.println("=====================================================");
//================================
//字符拓张?
//================================
char c1 = 'a';
char c2 = '中';
char c3 = 'A';
System.out.println(c1);
System.out.println((int) c1); //强制换行
System.out.println(c2);
System.out.println((int) c2); //强制换行
System.out.println(c3);
System.out.println((int)c3);
//所有的字符本质都是数字
//编码 unicode 表:97 = a 65 = A 2字节 0 - 65535
// U0000 UFFFF
char c4 = '\u0061';
System.out.println(c4); //a
//转义字符
// \t 制表符
// \n 换行
System.out.println("hello\nworld"); // \n 换行
System.out.println("hello\tworld"); // \t 制表符
System.out.println("===========================================================================");
String sa =new String( "hello world");
String sb =new String( "hello world");
System.out.println(sa==sb);
String sc = "hello world";
String sd = "hello world";
System.out.println(sd==sc);
//对象 从内存分离
//布尔值扩展
boolean flag = true;
if (flag==true){} //新手
if (flag){} //老手
// less is more 代码要精简易读
}
}
类型转换
由于Java是强类型语言,所以要进行有些运算的时候的,需要用到类型转换。
低---->高
byte,short,char-> int -> long-> float -> double
运算中,不同类型的数据先转化为同一类型,然后进行运算。
强制类型转换
自动类型转换
public class dema04 {
public static void main(String[] args) {
int i = 128;
double b = i;
//强制转换 (类型)变量名 高 -- 低
//自动转换 低 -- 高
System.out.println(i);
System.out.println(b);
/*
注意点:
1。不能对布尔值进行转换
2. 不能把对象类型转换为不相干的类型
3. 把高容量转换到低容量的时候,强制转换
4。转换可能存在内存溢出 或者精度问题!
*/
System.out.println("======================================");
System.out.println((int)23.7); //23
System.out.println((int)-34.34f); //-34
System.out.println("=======================================");
char c = 'a';
int d = c+1;
System.out.println(d);
System.out.println((char)d);
}
}
public class dema05 {
public static void main(String[] args) {
//操作比较大的数的时候,注意溢出问题
//JDK7新特性,数字之间可以用下划线分割
int money = 10_0000_0000;
int years = 20;
int total = money*years; //-1474836480,计算的时候溢出了
long total2 = money*years; //默认是int,转换之前已经存在问题了?
long total3 =money*((long)years); //先把一个数转换为long
System.out.println(total3);
}
}