Java学习(day2)
整数拓展
int i =10;
int i2 =010;//八进制0
int i3 =0x10;//十六进制0x
浮点数拓展
float f = 0.1f; //0.1
double d = 1.0/10;//0.1
f != d 浮点数有舍入误差
最好不用浮点数进行比较
字符拓展
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 = '\u0097'
//会输出a
编码Unicode表 0097 = a
布尔值拓展
boolean flag = true;
if(flag==true){}
强制类型转换
int i=128;
byte b=(byte)i;//这个会内存溢出,但是强制转换格式就这样
double c=(double)i;//这个没问题
注意点
- 不能对布尔值进行转换
- 不能把对象类型转换为不相干的类型
- 转换的时候可能存在内存溢出或精度问题
- 把高容量转换为低容量的时候,强制转换
int money = 10_0000_0000//JDK新特性,数字之间可以用下划线分割
变量
int a=1,b=2,c=3;//建议不在一行定义多个变量,要增强程序可读性
String name = "aha";
char x = 'x';
double pi = 3.14
面向对象👇
修饰符,不存在先后顺序
static final double PI=3.14;//static(指类变量) 和 final(指常量) 就是修饰符
变量命名规范
- 所有变量见名知意
- 类成员变量:首字母小写和驼峰原则
- 局部变量:首字母小写和驼峰原则
- 常量:大写字母和下划线:MAX_VALUE
- 类名:首字母大写和驼峰原则:GoodMan
- 方法名:首字母小写和驼峰原则
运算符
- 算术运算符easy
- 赋值运算符easy
- 关系运算符easy
- 其他
(不重要):逻辑运算符、位运算符、条件运算符、扩展赋值运算符
long不参加运算的话,结果都为int(结果按优先级较高的类型算)
a++和++a运算时机不一样
c=a++;//相当于c=a;a=a+1;
b=++a;//相当于a=a+1;b=a;
逻辑运算符
boolean a = true;
boolean b = false;
//a&&b为false,a||b为true,!(a&&b)为true
位运算符
A=0011 1100
B=0000 1101
A&B 0000 1100
A|B 0011 1101
A^B 0011 0001
~B 1111 0010
扩展逻辑运算符
a+=b;//相当于a=a+b
字符串连接符
字符串+其他,输出会是一个字符串
三元运算符
x ? y : z//x为真则输出y,假则输出z
包机制
包的本质是文件夹
import com.hao.www.*//把com.hao.www包内所有东西导进来
Java创建文档
妹学会
学会了
按enter进入命令行窗口
Doc文件就生成好了
用户交互Scanner
- 顺序结构
- 选择结构
- 循环结构
- break & continue
使用next方式
貌似只能接收空格前的
使用nextline方式
能全显示
Scanner对象
- next()
- 要读取有效字符后才可以结束输入
- 有效字符前的空白会自动省略
- 输入有效字符后的空白作为分隔符或结束符
- 不能输出空格
- nextline()
- 回车作为结束符
- 可以输出空格