main 方法 psvm 或 main
输出 sout
注释
- // 单行注释
- /*
- 多行注释
- */
- /**
- * 文档注释
- */
java 数据类型
强类型语言
先定义后使用
Java 的数据类型分为两大类
基本类型 (primitive type)
? 数值类型 Boolean
引用类型 (reference type)
? 类 接口 数组
- // 八大基本数据类型
- // 整数
- int num1= 10;// 最常用
- byte num2 = 20;
- short num3 = 30;
- long num4 = 40L;// 后面要加 L
- // 小数: 浮点数
- float num5 = 50.1F;// 后面要加 F
- double num6 =3.14159265358;
- // 字符
- char name = 'A';
- // 字符串, String 不是关键字, 类
- //String name="王天培"
- // 布尔值: 是非
- boolean flag =true;
数据类型拓展
- // 整数拓展 : 进制 二进制 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;
- double d = 1.0/10;
- System.out.println(f==d);//flase
- System.out.println(f);
- System.out.println(d);
- float d1 = 235656565232136f;
- float d2 = d1 + 1;
- System.out.println(d1==d2);//true
- System.out.println("=======================================");
- // 字符拓展
- char c1 = 'a';
- char c2 = '中';
- System.out.println(c1);
- System.out.println((int)c1);// 强制换行
- System.out.println(c2);
- System.out.println((int)c2);// 强制换行
- // 所有的字符本质还是数字
- // 编码 Unicode 表:(97 =1 65 =A) 2 字节 0-65536 Excel 2 16 = 65536
- // U0000 UFFFF
- char c3 = '\u0061';
- System.out.println(c3);
- System.out.println("==================================");
- // 转义字符
- // \t 制表符
- // \n 换行
- //......
- System.out.println("Hello\nWorld");
- String sa =new String("hello world");
- String sb =new String("hello world");
- // 堆内地址不一样
- System.out.println(sa==sb);//flase
- String sc = "hello world";
- String sd = "hello world";
- // 常量池
- System.out.println(sc==sd);//true
- // 对象 从内存分析
- //==: 如果比较的对象是基本数据类型, 则比较的是数值是否一致; 如果比较的是引用数据类型, 则比较的是对象的地址值是否一致.
- // 布尔值扩展
- boolean flag = true;
- if (flag==true){ }// 新手
- if (flag){}// 老手
- //Less is More! 代码要精简易读
类型转换
- public class Demo04 {
- public static void main(String[] args) {
- int i = 128;
- byte b = (byte)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)-45.89f);//-45
- System.out.println("================");
- char c = 'a';
- int d = c+1;
- System.out.println(d);//98
- System.out.println((char)d);//b
- System.out.println("================");
- // 操作比较大的数的时候, 注意溢出问题
- //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(total);
- System.out.println(total2);
- System.out.println(total3);
- }
- }
来源: http://www.bubuko.com/infodetail-3717131.html