数据类型
强类型语言:Java、C++
变量的使用要严格符合规定,所有变量都必须先定义后才能使用
弱类型语言:
VB、JavaScript('12'+3=123、'12'+3="123")
long:数字后必须加“L”,不加默认为int。
long l = 123L;
float:数字后必须加“F”,不加默认为double。
float f = 123.1f;
char name = "秦";
电脑32位(支持最大4G内存)和64位(支持最大128G内存)
整型
int i1 = 10;
int i2 = 0b10; //二进制以“0b”开头
int i2 = 010; //八进制以数字“0”开头
int i3 = 0x10; //十六进制以“0x”开头
System.out.println(i1);
System.out.println(i2);
System.out.println(i3);
System.out.println(i4);
浮点型
银行业务怎么表示?BigDecimal 数学工具类
float:有限、离散、舍入误差、大约、接近但不等于
double:
最好不要使用浮点数进行比较
float f = 0.1f; //0.1
double d = 1.0/10; //0.1
System.out.println(f==d); //false
float d1 = 232323232313132232233f;
float d2 = d1 + 1;
System.out.println(d1==d2); //true
字符型
所有的字符本质还是数字
编码 Unicode 表(97 = a 65 = A)2字节 0 - 65536 早期,Excel表最长2^16 = 65536行
U0000 UFFFF
转义字符:\t:制表符;\n:换行符
char c1 = 'a';
char c2 = '中';
System.out.println(c1);
System.out.println((int)c1); //强制转换
System.out.println(c2);
System.out.println((int)c2); //强制转换
char c3 = '\u0061';
System.out.println(c3); //a
字符串
对象 从内存分析
String sa = new String("hello world");
String sb = new String("hello world");
String sc = "hello world";
String sd = "hello world";
System.out.println(sa==sb); //false
System.out.println(sc==sd); //true
布尔
Less is More!
boolean flag = true;
if(flag == true){}
if(flag){}
类型转换
由于Java是强类型语言,所以运算中,不同类型的数据需要进行类型转换,先转化为同一类型,然后进行运算;
-
强制类型转换(高-->低):(类型)变量名,包括类与类之间的转换,也是这种形式;
-
自动类型转换(低-->高);
-
不能对布尔值进行转换;
-
不能把对象类型转换为不相干的类型;
-
高容量转换为低容量,强制转换;
-
转换的时候可能出现内存溢出,或精度问题;
-
操作比较大的数的时候,注意溢出问题;
-
JDK7 新特性,数字之间可以用下划线分割
int i = 128;标签:String,int,数据类型,System,println,c1,out From: https://www.cnblogs.com/sunfy/p/17017920.html
byte b = (byte) i; //内存溢出(Byte:-128 ~ 127)
double d = i;
char c = 'a';
int c1 = c + 1;
int money = 10_0000_0000;
int years = 20;
int total1 = money * years; //-1474836480 计算的时候内存溢出了
long total2 = money * years; //-1474836480 计算的时候内存溢出了 默认是int,转换之前已经存在问题了
long total3 = money * ((long)years); //200 00000 0000 先把一个数转换为long
System.out.println(i); //128
System.out.println(b); //-128
System.out.println(d); //128.0
System.out.println((int)23.7); //23 精度问题
System.out.println((int)-45.89f); //-45 精度问题
System.out.println(c1); //98
System.out.println((char)c1); //b
System.out.println(total1); //-1474836480
System.out.println(total2); //-1474836480
System.out.println(total3); //200 00000 0000