数据类型和运算符

2020/03/11

注释

注释只存在于源码中,不会出现在字节码中,因为编译器在编译的时候会跳过注释语句。

  1. 单行注释:“//”开头,“//”后面的所有内容均为注释内容。
  2. 多行注释:“/**/”左右平分,左面开始,右面结尾。两者之间的内容为注释内容。注:多行注释不能嵌套使用
  3. 文档注释:“/**”开头,“*/”结尾,会自动生成API。
//单行注释
/*多行注释!
多行注释!
多行注释!
*/
/**文档注释*/

标识符

标识符是用来给变量、类、方法以及包进行命名的。

  1. 标识符必须以字母、下划线、美元符号$开头。
  2. 标识符其他部分可以是字母、下划线“_”、美元符号“$”和数字在的任意组合。
  3. java标识符大小写敏感且长度无限制。
  4. 标识符不可以是java的关键字。

标识符的使用规范

表示类名的标识符:每个单词的首字母大写,如GoodBoy。
表示方法和变量的标识符:第一个单词小写,从第二个单词开始首字母大写–“驼峰原则”。
注:java采用的是Unicode标准的国际字符集,所以,字母不仅仅包括英文,还有汉字等等,但不建议用汉字来定义标识符。

public class TestIdentifer{
	public static void main(String[] ags){
		int a123 = 0;
		int 123abc = 2;//数字不能开头
		int $a = 9;
		int _a = 9;
		int #a = 9;int -a = 9;//开头只能由“字母”、“_”、"$"开头
		int 年龄 = 18;//可以使用汉字,但一般不建议
		int int = 2;//int为java关键字,不能设为关键字
	}
}

2020/03/12

java中的关键字/保留字

java中的关键字/保留字

变量

  1. 所有的变量、方法、类名:见名知意
  2. 类成员变量:首字母小写和驼峰原则
  3. 局部变量:首字母小写和驼峰原则
  4. 常量:大写字母和下划线——MAX_VALUE
  5. 类名:首字母大写和驼峰原则
  6. 方法名:首字母小写和驼峰原则

变量的本质

变量本质代表一个“可操作的存储空间”,空间的位置是一定的,但是里面的值不确定。通过变量名来访问“对应的存储空间”,从而操作里面存储的值。

变量的声明

格式:数据类型 变量名 [=初始值] [,变量名[=初始值]…];
[]中的内容可有可无

double salary;
long earth;
int ages;
ages = 18;//变量只有在进行初始化之后,才可以使用
int i,j;//两个变量的类型都是int(一行中声明两个变量,逐一声明可以提高程序的可读性)
int age = 18;
double e = 2.434;//变量的声明和初始化放到同一行中
//double 8个字节
//long 8个字节
//int 4个字节

每个变量都有类型,类型是基本类型或者引用类型。
变量名必须是合法的标识符。
变量声明是一条完整的语句,所以每一个声明必须以分号结束。

变量的分类

局部变量:方法或语句块内部定义的变量,生命周期是从声明位置开始到方法或语句块执行完毕为止。
成员变量(实例变量):方法外部、类的内部定义的变量,从属于对象,生命周期伴随对象始终。

数据类型实际值
int0
double0.0
char‘\u0000’
booleanfalse

静态变量(类变量):使用static定义,从属于类,生命周期伴随类始终,从类加载到类卸载。

public class Test{
	int a;//成员变量,如果没有赋值,会自动进行初始化,如上表格所示。此时a=0.
	static int size;//静态变量,从属于类,生命周期最长。
	public static void main(String[] args){//这是一个方法,方法里定义的变量是局部变量的一种
	int age;
	int a;
	int b=a+1;//局部变量必须先声明后赋值,当a没有初始化时,程序运行时会报错
	int i,n=5;
	for(i=0;i<n;i++){//这是一个语句块,语句块里定义的变量是局部变量的一种
		int temp;//temp只在for循环里面有效
	}
	}
}

常量

常量指的是一个固定的值。eg:1、2、‘a’、true等。
在java语言中,常用关键字final来定义一个常量,常量一旦被初始化后不能再更改其值。

//声明格式:
final type varName = value;
public class Test{
	public static void main(String[] args){
	int age = 18;
	String name = "lang";
	name = "狼"//可以重新赋值
	final String MAX = "ball";//符号常量
	MAX = "qiu";//程序会报错,因为name0是常量 
	
}
}

数据类型

基本数据类型

数值型:
整数类型——byte、short、int、long(1、2、4、8字节)
浮点类型——float、double(4、8字节)
字符型——char(2字节)
布尔型——boolean(1位)

引用数据类型(4字节)

类——class
接口——interface
数组

整型变量/常量
类型占用存储空间表数范围
byte1字节-2^7~ 2^7
short2字节-2^15~ 2^15
int4字节-2^31~ 2^31
long8字节-2^63~ 2^63

整型常量的四种表示形式
十进制整数,eg:99
八进制整数,要求以0开头,eg:015
十六进制数,要求以0x或0X开头,eg:0x15
二进制数,要求以0b或者0B开头,eg:0b01101010

public class Test{
public static void main(String[] args){
//测试整型变量
int a = 15;
int b = 015;//以0开头是八进制
int c = 0x15;//以0x开头是16进制
int d = 0b1101;//以0b开头是二进制
//a = 15;b = 13;c = 21;d = 13;
byte age = 300;//byte范围是-128——+127,300超范围会报错
long h = 88888888;//在int表示范围内,
long j = 88888888888L;//不加L编译错误,已经超过int表示的范围
}}
浮点型变量/常量
类型占用存储空间表数范围
float4字节-3.403E38~3.403E38
double8字节-1.798E308~1.798E308

常见的两种表现形式:
十进制数形式,eg:3.14
科学计数法形式,eg:314e2(x100)、314E2、314E-2(➗100)

float类型是单精度类型,尾数可以精确到7位有效数字,有时很难满足要求。而double类型的数值精确度约是float类型的两倍,又被称作双精度类型。
浮点型常量默认类型也是double。

import java.math.*;
public class Test{
	public static void main(String[] ags){
	//float a = 3.14;//3.14是浮点类型,默认类型是double,所以此时程序会报错,因此在后面增加f
	float a = 3.14f;
	double c = 628;
	double d =6.28e2;//c和d的数值是相等的

//浮点数是不精确的,一定不能用于比较。如果非要比较,就使用java.math包下面的两个类:BigInteger和BigDecimal,这两个类可以处理任意精度的整数运算和浮点运算。
	float f = 0.1f;
	double g = 1.0/10;
	System.out.println(f==g);//结果是false
//浮点运算
	BigDecimal bd = BigDecimal.valueOf(1.0);
	bd = bd.subtract(BigDecimal.valueOf(0.1));
	bd = bd.subtract(BigDecimal.valueOf(0.1));
	bd = bd.subtract(BigDecimal.valueOf(0.1));
	bd = bd.subtract(BigDecimal.valueOf(0.1));
	bd = bd.subtract(BigDecimal.valueOf(0.1));
	System.out.println(bd);//0.5
	System.out.println(1.0-0.1-0.1-0.1-0.1-0.1)//0.5000000000000001
	
	BigDecimal bd2 = BigDecimal.valueOf(0.1);
	BigDecimal bd3 = BigDecimal.valueOf(1.0/10.0);
	System.out.println(bd2.equals(bd3));//true
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值