java 常用关键字
java变量名取名规范
java的数据类型
- 基本类型
public class test {
public static void main(String[] args) {
// dada
byte a = 10; //占1字节 -128~127
short b = 3000; //占2字节 -32768~32767
int c = 8889999;//占4字节 -2147483648-2147483647
long d = 100000000;//占8字节 -923372036854775808-923372036854775808 long类型后面要加L
float f = 32.5F; //占4字节 float类型加F
double g = 3.1415926; //占8字节
char adb = 'a'; //字符 占2字节 字符类型用的是单引号不是双引号
String name = "dadwada"; //字符串
boolean h = false;
}
}
- 引用类型
进制的定义
public class test {
public static void main(String[] args) {
//进制 二进制0b 八进制0 十六进制0x
int i = 10;
int a = 010;
int b = 0x10;
System.out.println(i); //10
System.out.println(a); //8
System.out.println(b); //16
}
}
数据类型转换的那些事
public class test {
public static void main(String[] args) {
//类型转换 数据类型从低到高排列
//byte short int long float double
/*
* 数据类型从高到低转换需要强制转换
* 转换语法 (数据类型) 变量名
* */
int a = 129;
byte b = (byte) a; //由于byte 是-128~127,超出范围内存溢出 输出了-127
System.out.println(b);
/*
* 数据类型从低到高转换自动转换
* */
byte c = 127;
int d = c; //由于byte 是-128~127,超出范围内存溢出 输出了-127
System.out.println(d);
/*
注意点:
不能对布尔值转换,因为布尔值和数值是不同类
高容量像低容量转换需要强制转换
转换时候存在内存溢出或者精度问题
*/
System.out.println((int)25.6); //25
System.out.println((int)-27.6f); //-27
//jdk7新特性 数字可以用下划线分割,但不影响计算和输出
int e = 10_0000_0000;
System.out.println(e - 1); //999999999
/*操作较大数据的时候注意 溢出问题
*如果数据溢出,会导致计算错误,我们需要在计算前就把数据类型转换
*
*/
byte d = 10;
int a = 10_0000_0000;
int b = 10;
double c= 10;
System.out.println(d*a);
//1410065408
System.out.println(a*b);
//1410065408 1.0E10超出了int范围,会导致内存泄露
System.out.println(a*c);
/*1.0E10 但是我们计算时候,2个不同大小的数值做计算,最后数值类型是较大的数值类型.
源码会在计算之前就转换数值类型,然后计算结果也就不会超出范围,会导致内存泄露了
*/
}
}