基础语法
1、注释、标识符、关键字
1.1注释
java中的注释类型有三种:
- 单行注释
- 多行注释
- 文档注释
文档注释
/**
*
* @param entityType
* @param entityId
* @param entityUserId
* @param postId
* @return
*/
1.2标识符、关键字
java所有的组成部分都需要名字。类名、变量名以及方法名都被称为标识符。 |
标识符注意点
-
所有的标识符都应该以字符(A-Z或者a-z),美元符($)、或者下划线(_)开始
-
首字母之后可以是字母(A-Z或者a-z),美元符($)、下划线(_)或者数字或者任何字符组合
-
不能使用关键字作为变量名或者方法名 -
标识符是大小写敏感的 -
变量名或方法名可以使用中文,但我们不会使用
2、数据类型
java是强类型语言,要求变量的使用要严格符合规定,所有变量必须先定义后使用
public class Data_type {
public static void main(String[] args) {
//八大基本数据类型
//整形
byte num1 = 10; //一个字节
short num2 = 20; //两个字节
int num3 =30; //最常用 四个字节
long num4 =40; //八个字节
//浮点型
float num5 = 50.1F; //fload类型需要在后面加F标识
double num6= 3.1415926535;
//字符
char name= 'A';
//字符串不是基本类型,String不是关键字,是一个类
String name1 = "Alpha";
//boolean
boolean flag =true;
// boolean flag =false;
}
}
数据类型扩展:
public class Data_type_2 {
public static void main(String[] args) {
//整形扩展 二进制0b开头 八进制0开头 十进制 十六进制0x开头
int num1 = 0b1010; //二进制0b
int num2 = 010; //八进制0
int num3 =10;
int num4 =0x10; //十六进制0x
System.out.println(num1);
System.out.println(num2);
System.out.println(num3);
System.out.println(num4);
System.out.println(" =========================================");
//浮点数扩展 处理银行业务用什么数据类型?
//float 有限 离散 舍入误差 大约 接近不等于
//最后完全避免使用浮点数进行比较,在银行业务中使用BigDecimal数学工具类
//double
float f = 0.1F; //0.1
double d = 1.0/10;//10
System.out.println(f==d);//false
float d1 = 2333333333333333333f;
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);
System.out.println('\u0062');
//所有的字符本质还是数字
//编码 Unicode
System.out.println("=============================================");
//转义字符
System.out.println("hello\nworld");
}
}
注意点:
1.最好完全避免使用浮点数进行比较,有一些小数,十进制是有限的,二进制是无限的
比如十进制的0.1用二进制表示就是0.00011001100110011……
这是一个无限循环小数,显然不可能用有限的空间存储一个无限的数字
那么我们就会对它做一个截取操作,只取小数点后x位。
所以实际上二进制存储起来的0.1要比十进制所表示的那个0.1要小。
2.所有的字符本质还是数字
3、类型转换
java是强类型语言,在有些运算时,需要用到类型转换。
低----------------------------->高
byte,short,char--->int--->long--->fload---->double
从高到低转换需要强制转换后,从低到高不用
public class Type_conversion {
public static void main(String[] args) {
int i = 128;
byte b = (byte) i; //内存溢出,byte范围在-128~127
System.out.println(b);//-128
//强制转换 (类型)变量名 高---低
//自动转换 低---高
/***
* 注意点
* 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((int) c);//97
System.out.println(d);//98
}
}
在运算中,不同类型的数据先转换为同一类型,然后进行运算。
public class Type_conversion_2 {
public static void main(String[] args) {
//操作比较大的数时候,注意溢出问题
//JDk7新特性,数字之间可以用下划线分割
int money = 10_0000_0000;
System.out.println(money);
int years = 20;
int total = money*years;
System.out.println(total);//-1474836480 溢出
long total2=money*years;
System.out.println(total2);//-1474836480同样会溢出,因为是先计算了在转换
long total3 = money*(long) years;
System.out.println(total3);//20000000000先转换在计算
}
}
4、变量、常量、作用域
java变量是程序中最基本的存储单元(变量其实是内存单元里的一个地址),其要素包括变量名,变量类型和作用域。
注意事项:
- 每个变量都有类型,类型可以是基本类型,也可以是引用类型;
- 变量名必须是合法的标识符;
- 变量声明是一条完整的语句,因此每一个声明都必须以分号结束;
变量的作用域:
类变量:在类里面,方法外面,用static修饰,可以不初始化值(有默认值)
实例变量:在类里面,方法外面,有默认值
局部变量:在方法里面,无默认值,需要初始化值
public class Variable {
//属性:变量
//实例变量:从属于对象
String name;
int age;
//类变量
static int i=2500;
public static void main(String[] args) {
//实例变量 有默认值
Variable variable = new Variable();
System.out.println(variable.age);
System.out.println(variable.name);
//类变量 有默认值
System.out.println(i);
variable.add();
}
//
public void add(){
//局部变量
int i =1;
System.out.println(i);
}
}