Java基础
注释
1.多行注释 /* 注释 */,可以注释一段文字
/*111111
111111
111111
*/
2.文档注释 /** 注释 */
/**
*
*
*/
标识符与关键字
标识符
java所有的组成部分都需要名字。类名、变量名、方法名都被称为标识符。
所有的标识符都应该以字母(A_Z或者a_z)、美元符($)、或者下划线(_)开始。
首字符之后可以是字母(A_Z或者a_z)、美元符($)、或者下划线(_)或数字的任意字符组合
关键字不能用作变量名或者方法名
标识符是大小写敏感的。
可以使用中文,但是不建议使用中文,拼音也不建议使用。
关键字
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
数据类型
强类型语言:要求变量的使用要严格符合规定,所有的变量都必须先定义后才能使用。(java就是强类型语言)
弱类型语言
java的数据类型分为两大类
1.基本类型(PrimitiveType)
数值类型
整数类型:byte占一个字节
short占两个字节
int占四个字节
long占八个字节
浮点类型:float占四个字节
double占八个字节
字符类型char占两个字节
**Boolean类型:**占一位其值只有true和false两个
2.引用数据类型(Reference Type)
类
接口
数组
八大基本数据类型(重点)
//八大基本数据类型
//整数
int num = 10;//最常使用
byte num2 =20;
short num3 = 30;
long num4 = 30L;//long类型需要在数字后面加个L
//小数:浮点数
float num5 = 50.1F;//float类型需要在数字后面加F
double num6 = 3.14999999;//数字后面可以加可以不加D
//字符
char name = 'a';
//字符串,String不是关键字,是类
String name2 = "柏大";
//布尔值:是非
boolean flag = true;
boolean flag2 = false;
什么是字节
位(bit):计算机内部数据储存的最小单位。
字节:是计算机中数据处理的基本单位,大B表示
1B(byte,字节)=8bit
字符:字符是计算机中使用的字母、数字和符号。
数据类型扩展
1.整数扩展: 进制 二进制:以0b开头 十进制 八进制以:0开头 十六进制:以0x开头
int i = 10;
int i2 = 010;//八进制
int i3 =0x10;//十六进制 0~9 A~F
System.out.println(i);
System.out.println(i2);
System.out.println(i3);
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-39JoEg1a-1600733780441)(C:\Users\25343\AppData\Roaming\Typora\typora-user-images\image-20200922081126733.png)]
2.浮点数扩展
重点
浮点数扩展
银行业务怎么表示?
float
double
BigDecimal 数学工具类
基本类型比较是值,引用类型比较是地址
浮点数不能表示精确的数值,不能用作于比较货币或者金融
浮点数 是有限的 是离散的 存在舍入误差 无法精确表示 接近但不等于
最好完全避免使用浮点数进行比较
最好完全避免使用浮点数进行比较
最好完全避免使用浮点数进行比较
float f = 0.1f;//0.1
double d = 0.1;//0.1
System.out.println(f);
System.out.println(d);
System.out.println(f==d);//false
float d1 = 2323232332323f;
float d2 = d1+1;
System.out.println(d1==d2);//true
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DKio1Yst-1600733780444)(C:\Users\25343\AppData\Roaming\Typora\typora-user-images\image-20200922081159519.png)]
3.字符扩展
char c1 = 'a';
char c2 = '柏';
System.out.println(c1);
System.out.println((int)c1);//强制类型转换
System.out.println(c2);
System.out.println((int)c2);//强制类型转换
//所有的字符本质是数字
//编码 Unicode 表 2 16 = 65536
//U0000 UFFFF
char c3 = '\u0061';
System.out.println(c3);//a
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2yDZqiTL-1600733780447)(C:\Users\25343\AppData\Roaming\Typora\typora-user-images\image-20200922081235716.png)]
转义字符
\t 制表符 水平制表(HT) (跳到下一个TAB位置)
\n 换行
区分,斜杠:"/" 与 反斜杠:"" ,此处不可互换
System.out.println("Hello\nworld");
System.out.println("Hello\tWorld");
"=="与equals的区别(重点)
(1)==:如果比较的对象是基本数据类型,则比较的是数值是否一致;如果比较的是引用数据类型,则比较的是对象的地址值是否一致。
equals():equals()方法不能用于比较基本数据类型的对象,如果对象和自身进行比较,则equals()方法与==是一样的。对于String类 Date类 File类等 可重写equals() 方法用于比较对象的属性内容是否一致。
(2)对于==,比较的是值是否相等
如果作用于基本数据类型的变量,则直接比较其存储的 值是否相等,
如果作用于引用类型的变量,则比较的是所指向的对象的地址是否相等。
其实==比较的不管是基本数据类型,还是引用数据类型的变量,比较的都是值,只是引用类型变量存的值是对象的地址
2)对于equals方法,比较的是是否是同一个对象
首先,equals()方法不能作用于基本数据类型的变量,
另外,equals()方法存在于Object类中,而Object类是所有类的直接或间接父类,所以说所有类中的equals()方法都继承自Object类,在没有重写equals()方法的类中,调用equals()方法其实和使用==的效果一样,也是比较的是引用类型的变量所指向的对象的地址,不过,Java提供的类中,有些类都重写了equals()方法,重写后的equals()方法一般都是比较两个对象的值,比如String类。
参考文档地址
System.out.println("================================");
String s1 = new String("Hello,world");
String s2 = new String("Hello,World");
System.out.println(s1==s2);//false
String s3 = "Hello,World";
String s4 = "Hello,World";
System.out.println(s3==s4);//true
//对象 从内存分析
//一个比较地址 一个比较值(内容)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cgpufY32-1600733780450)(C:\Users\25343\AppData\Roaming\Typora\typora-user-images\image-20200922081329863.png)]
4.布尔值扩展
Less is More! 更少的就是更多的
boolean flag = true;
//两个if是一样的
if (flag==true){ }//新手比较合适写的
if (flag){}//老手写的
//Less is More! 更少的就是更多的