文章目录
一、数据拓展
整数拓展
二进制:0 b开头
八进制:0开头
十六进制:0 x开头
浮点数扩展
public class helloword {
public static void main(String[] args) {
float a=0.1f;
double b=0.1;
System.out.println(a==b);//false
System.out.println(a);//0.1
System.out.println(b);//0.1
}
}
float 有限 离散 舍去误差 大约接近但不等于;因此要精确计算时,要使用BigDecimal 类。
最好完全使用浮点数进行比较。
字符
可以用强制转换,查出字符的Unicode编码
ASCII编码是1个字节,而Unicode编码通常是2个字节。 字母A用ASCII编码是十进制的65,二进制的01000001;而在Unicode中,只需要在前面补0,即为:00000000 01000001。
转义字符
\t 制表符
\n 换行
二、类型转换
byte(char)—short—int—long—float—double
强制转换:(类型)变量名 高——>低
自动转换:低到高,代码如下
int a=28;
double b=a;
注意:把高容量转到低容量时,强制转换;转换时可能存在内存溢出,或者精度问题。如舍去小数位。
JDK7新特性,数字之间可以用下划线分割
三、变量
- **类变量:**使用static关键词定义,可不实例化对象,直接使用。
- **实例变量:**从属于对象,如果不自行初始化,会有默认值,如返回0 0.0 false等。除了基本数据类型,其余的默认值都是null。
- **局部变量:**只在{ }内有效果,且必须声明和初始化值
四、常量
使用关键词final定义,一旦初始化之后不能改变。final与static都是修饰符,使用时不分先后。
五、变量命名规范
-
所有变量、方法、类名:见名知意
-
类成员变量:首字母小写何驼峰原则:monthSalary
-
局部变量:首字母小写和驼峰原则
-
常量:大写字母和下划线:MAX_VALUE
-
类名:首字母大写和驼峰原则:Man,GoodMan
-
方法名:首字母小写和驼峰原则
bold:adj:勇敢的,冒失的,粗体的
六、运算符
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZasIBZoF-1626096555274)(C:\Users\77647\AppData\Roaming\Typora\typora-user-images\image-20210712114918886.png)]
- instance of
- 逻辑运算符:&&,||,!
ctrl+D 复制当前行到下一行
int b=a++//执行这段代码后,a再自增
int c=++a//执行这段代码前,先自增
- java无幂运算,只能导入Math中的Math.pow()函数来进行运算
power:乘方
- 短路运算:a&&b,如果a为false,则直接输出结果,不执行b!!!
七、三元运算符及小结
-
a+=b等价于a=a+b
-
字符串连接符:“+”
-
x ?y:z 如果x成立,那么结果为y,否则结果为z
八、包机制
发现输入com.baidu时并不会分级建立包,最终在csdn上得到了解决。[解决方法链接在这]((1条消息) 解决idea创建文件时,文件不分级展示的问题_wang_yaqin的博客-CSDN博客)
- 一般利用公司域名倒置作为包名,如com.baidu.com
- 在IDEA中输入错误时,按alt+enter会出现修改提示
导入包必须在package***的下面
- import package1.package2.classname( .* 为通配符,意为导入该包中的所有类)
- 推荐《阿里巴巴java开发手册》
九、JavaDoc生成文档
- 使用 /** 文字 */ 生成文档
十、用户交互Scannner
package com.baidu;
import java.util.Scanner;
public class Demo1 {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);//创建一个监听系统输入的扫描器对象,用于接受键盘数据
System.out.println("请输入数据");//提示用户输入数据
if(scanner.hasNextLine()){//判断扫描器是否扫描到数据输入
String str= scanner.nextLine();//将扫描到的数据赋给变量str
System.out.println("您输入的数据为:"+str);
scanner.close(); //关闭输入扫描器
}
}
}
10.1 next() ——>hasNext()
- 一定读取到有效字符后才可以结束输入。
- 对输入有效字符之前遇得的空白,next()方法会自动将其去掉。
- 只有输入有效字符后才能将其后面的空白作为分隔符或者结束符。
- next()方法不能得到带有空白的字符串。
10.2 nextLine() ——>hasNextLine()
- 以enter为结束符,也就是说nextLine()方法返回的是输入回车之前的所有字符。
- 可以获得空白。
10.3 Scanner进阶使用
scanner.hasNextInt();//判断扫描到的数据,是否是整数,返回true或者false
scanner.nextInt();//表示扫描器扫描到的整数
package com.baidu;
import java.util.Scanner;
/*我们可以输入多个数字,并求其总和与平均数,每输入一个数字回车确认,通过输入非数字来结束输入并输出执行结果*/
public class Demo2 {
public static void main(String[] args) {
double sum=0.0;
int n=0;
Scanner scanner=new Scanner(System.in);
while(scanner.hasNextDouble()){
double x=scanner.nextDouble();
sum=sum+x;
n++;
}
System.out.println("您输入的数据总和为:"+sum+",平均数为:"+(sum/n));
scanner.close();
}
}
结果为:
10
20
30
100
x
您输入的数据总和为:160.0,平均数为:40.0