JAVA基础--重新整理(1)后版
比较喜欢用demo来讲解。
变量:
public static void main(String[] args) { int age;//变量声明 age = 16;//变量的初始化,第一次赋值 age = 15;//变量的赋值 System.out.println(age);//15, 访问变量 int score = 100;//变量声明初始化 System.out.println(score); }
这是关于变量的有些知识点,变量也就那些东西注意。就是声明,赋值。
二进制基础:
public static void main(String[] args) { int i = 15; System.out.println(Integer.toBinaryString(i)); i = 'A'; System.out.println(Integer.toBinaryString(i)); i = 0xff;//0x 是16进制的开头 System.out.println(Integer.toBinaryString(i)); i = '李'; System.out.println(Integer.toBinaryString(i)); //5(1024*1024) Byte //1 Byte = 8bit; 两位16进制表示 //5M = 5* 1024 *1024 *2 个16进制字符 }
在这里,有点可以重新记一下。
1.计算机内部只有二进制,包括字符数据等。
2.任何,'A','李' 都可以转换为二进制。值得注意的是,
Integer.toBinaryString(); 这个方法能将我们一切用的转成计算机里面用的二进制。
3.一般我们习惯的10进制数字 传到 计算机 ,计算机通过 转成二进制 进行传输。
类同的16进制,10进制:
写几个注意点:
16进制 是 2进制的简写。 用0x开头
转换的方法:记住各进制常用的权就ok了。下面罗列下,举个例子。
2 进制:1 2 4 8 16 32 64 128
16进制:1 16 256
例子:1111(2)=1*1+1*2+1*4+1*8=15(10)
1000001(2)=64 +1 =65(10)
0x101(16)=256+1=257
java 基础类型:
四大类型:
先整数:short一般不用我不写了。
byte 8 bit -128 ~ 127
int 32 bit -2G~2G-1
long 64bit -2^63~2^63-1
public class IntegerDemo { public static void main(String[] args) { short age = 120; int age1 = 120;//age age1 在java底层中内存 都是int类型.short 其实就是int int size = 1024*1024*1024*2 ; System.out.println(size);//-2147483648 超了int 范围 //直接量 long l = 1; //直接量,字面量 //l = 20000000000;//错 //System.out.println(l); l = 2200000000L ;//以L l 结尾的数字 为long 类型 int a = 127; //byte b = a;//变量不能给小类型赋值 long c = a; } }
上面demo中:
1.在java底层中内存 都是int类型.short 其实就是int
2.超了int 范围,会显示负值
3.以L l 结尾的数字 为long 类型
4.重要的一点:就是 变量不能给小类型赋值
在实际项目中也有些考虑的是,类似,QQ号,淘宝物品编号。。。想想应该用 long 或者 long long
再讲浮点:
public class FloatDemo { public static void main(String[] args) { int a = 0x7fffffff; int b = 0x7ffffff0; float af = a; float bf = b; System.out.println(af);//计算机默认输出为10进制。2.14748365E9 10^9 System.out.println(bf); System.out.println(a);//af a 不同 因为 二进制取舍 System.out.println(b); double da = a; double db = b; System.out.println(da); System.out.println(db); double d = 2.5;// double float f = 2.5F;// F表示浮点类型的字面量 double c = 3D; // f = 2.5 // 错 } }
上面让我们学习了,
1.浮点数就是小数。
2.float f = 2.5//是错误的demo,,必须是2.5F
3.由于精度不同,有些精确的时候,float 会不正确。所以一般用double
4.写下一点计数法的知识:
10001000(2)
1000.1000*2^100(2)
1.0001000*2^111(2)
上面是等价的。
5.double a = 3D;// D 表示
然后是char
public class CharDemo { public static void main(String[] args) { int i = 'A'; System.out.println(i);// 65 A 的Unicode char c = '中'; i = c; System.out.println(i);// 20013 System.out.println(c);// 中 // 结论字符是一个数字,是字符的Unicode编码值 // println() 方法根据参数类型 // 采用不同的输出方式,整数输出整数,字符输出字符 System.out.println((int) 'B');// 66 int n = 'B' - 'A' + 10; n = 'C' - 'A' + 10; n = 'A' - 'D' + 10; char ch = 'E'; int num = ch - 'A' + 10;// 'E' 到 14 System.out.println(num); ch = '5'; num = ch - '1'; System.out.println(num);// '5' - '1' 转到 4 num = ch; System.out.println(num);//53 char chr = 'A' + 3; System.out.println(chr);//D Random r = new Random(); int x = r.nextInt(26);// 随机数x的范围 属于[0,26) chr = (char)('A' + x); System.out.println(chr);// A~Z char cx = 0; char cy = '0'; System.out.println(cx); System.out.println(cy); char xx = '\''; xx= '\\'; xx='\u0041'; xx='\u0000'; System.out.println(0=='\u0000'); System.out.println('0'=='\u0000');//false // \n \r \t \' \" \\ System.out.println("a\tmd\nnd"); System.out.println("OK\u0000123"); } }
我就罗列下上面demo的重要点:
1.最重要:采用不同的输出方式,整数输出整数,字符输出字符
2. println() 方法根据参数类型
3.'\'表示转译
byte-short-int-long-float-double
从大到小要强转,强转有风险,会造成精度损失或溢出。
本文来自 泥沙砖瓦浆木匠 之笔。 |