注释
Java的三种注释方法
-
单行注释 //
-
多行注释 /**/
-
文档注释 /***/
标识符
关键字
标识符注意点
数据类型
类型转换
小数的优先级大于整数
注意点:
-
不能对布尔值进行转换
-
不能把对象类型转为不相干的类型
-
在把高容量转换到低容量的时候,强制转换
-
转换的时候可能存在内存溢出,或者精度问题
-
内存溢出
//强制转换 (类型)变量名
int i = 128;//
byte b = (byte)i;//内存溢出 结果-128
System.out.println(i);//128
System.out.println(b);//-128-
数据精度问题
/*
1. 不能对布尔值进行转换
2. 不能把对象类型转为不相干的类型
3. 在把高容量转换到低容量的时候,强制转换
4. 转换的时候可能存在内存溢出,或者精度问题
*/
//演示精度存在的问题
System.out.println((int)23.7);//23
System.out.println((int) -45.53f);//45 -
当运算数据比较大注意点:
public class Demo4 {
public static void main(String[] args) {
//操作比较大的数时候,注意溢出问题
//JSK7新特性,数字之间可以用下划线分割
int money = 10_0000_0000;
int years = 20;
?
int total1 = money*years;//-1474836480,计算的时候已经溢出了
int total2 = money*years;//默认是int,转换之前已经存在问题了?
?
long total3 = money*(long)years;//先把一个数转换为long
?
?
System.out.println(total1);//-1474836480
System.out.println(total2);//-1474836480
System.out.println(total3);//20000000000
}
}
变量
变量不推荐的写法
//这两种方法了解即可
int a,b,c;
int a = 1,b=2,c=3;//程序可读性,不建议使用这种方式写变量
变量作用域
例子:
public class Demo6 {
?
//类变量 static
static double salary = 2500;//salary 工资
?
//属性:变量
?
//实例变量:从属于对象;如果不自行初始化,这个类型的默认值是 0 0.0
//布尔值:默认是false
//除了基本类型,其余的默认值都是null;
String name;
int age;
?
//main方法
public static void main(String[] args) {
?
//局部变量,必须声明和初始化值
int i = 10;
System.out.println(i);
?
//变量类型 变量名字 = new Demo6();
Demo6 demo6 = new Demo6();
System.out.println(demo6.age);
System.out.println(demo6.name);
?
//类变量 static
System.out.println(salary);
}
?
?
常量
例子:
public class Demo7 {
//修饰符,不存在先后顺序
static final double PI = 3.14;
?
public static void main(String[] args) {
System.out.println(PI);
}
}
变量命名规范
拓展
浮点数拓展
浮点数是有限的,离散的,他是有四舍五入的舍入误差,他是个大约数字并不是精确数字,所以最好是完全避免使用浮点数来进行比较。
//===========================================
//浮点数拓展? 银行业务怎么表示? 钱
//BigDecimal 数学工具类 用这个来写银行项目
//float 有限 离散 舍入误差 大约数 接近但不等于
//double
//最好完全避免使用浮点数比较
float f = 0.1f;//0.1
double d = 1.0/10;//0.1
System.out.println(f==d);//false
?
//==================================
float f1 = 1265235566f;
float f2 = f1+1;
System.out.println(f1==f2);//true
字符拓展
本质上所有的字符都是数字,只不过是通过某种方式变成了字符。
可以把Unicode看成是字典,每个数字对应一个字符
//===========================================
//字符拓展
System.out.println("\n\n=========================================");
char c1 = ‘a‘;
char c2 = ‘中‘;
System.out.println(c1);
System.out.println((int)c1);//强制转型
System.out.println("*******");
System.out.println(c2);
System.out.println((int)c2);//强制转型
//所有的字符本质还是数字
//编码 Unicode 表:97 = a 2字节 0 - 65536 Excel 2的16次方 65536
?
char c3 = ‘\u0061‘;
System.out.println(c3);//a
布尔值扩展
//布尔值扩展
boolean flag = true;
if (flag == true){}//新手
//因为默认就是true
if (flag){}//老手
//Less is More! 代码要精简易读
字符转义
//转义字符
// \t 制表符
// \n 换行