java基础
关键字
标识符
给类、借口、方法、变量等起名字时使用的字符序列
用字母,数字,下划线和$组成
注意:
不能以数字开头
不能是java中的关键字
区分大小写
命名规则
运用
class MakeNameDemo {
public static void main(String[] args) {
//正确做法
int x = 100;
//不能以数字开头
int 1y = 100;
int y1 = 100;
//不能是Java中的关键字
//int public = 100;
int Public = 100;
}
}
错误原因:标识符用数字开头,所以报错
运用
class MakeNameDemo {
public static void main(String[] args) {
//正确做法
int x = 100;
//不能以数字开头
//int 1y = 100;
int y1 = 100;
//不能是Java中的关键字
int public = 100;
int Public = 100;
}
}
原因:关键字错误
一定要会写注释,提高程序可读性
常量
概念:程序执行过程中值不发生改变
分类
字符串常量
整数常量
小数常量
字符常量
布尔常量
空常量
常量操作
class ConstantDemo {
public static void main(String[] args) {
//字符串常量的输出
System.out.println("hello");
//整数常量的输出
System.out.println(100);
//小数常量的输出
System.out.println(100.10);
//字符常量的输出
System.out.println('a');
System.out.println('A');
System.out.println('0');
//这个是有问题的
//System.out.println('ab');
//布尔常量的输出
System.out.println(true);
System.out.println(false);
}
}
注意
class ConstantDemo {
public static void main(String[] args) {
//字符串常量的输出
System.out.println("hello");
//整数常量的输出
System.out.println(100);
//小数常量的输出
System.out.println(100.10);
//字符常量的输出
System.out.println('a');
System.out.println('A');
System.out.println('0'+1);
System.out.println("0"+1);
System.out.println(0+1);
//这个是有问题的
//System.out.println('ab');
//布尔常量的输出
System.out.println(true);
System.out.println(false);
}
}
第一个49是因为1是整型,级别更高,把字符‘0’转换成整型再相加
第二个+起连接作用,所以出现01
变量
java默认是int类型,声明常量为float类型一定要在数字后面加f,前后一定要一致,不然会报错
boolean用“ture”“fause”
运用
class DataTypeDemo {
public static void main(String[] args) {
//定义变量的格式:
//数据类型 变量名 = 初始化值;
//定义一个字节变量
byte b = 10;
System.out.println(10);
System.out.println(b);
//定义一个短整型变量
short s = 100;
System.out.println(s);
//定义一个整型变量
int i = 1000;
System.out.println(i);
//超过了int的范围
//int j = 1000000000000;
long j = 1000000000000L;
//long j = 100L;
System.out.println(j);
//定义浮点数据变量
float f = 12.345F;
System.out.println(f);
double d = 12.345;
System.out.println(d);
//定义字符变量
char ch = 'a';
System.out.println(ch);
//定义布尔变量
boolean flag = true;
System.out.println(flag);
}
}
int 类型不能超过2^31,超过的要用long型
定义上下变量不能重复
数据类型的转换
boolean类型不能转换为其他数据类型
运用
class DataTypeDemo3 {
public static void main(String[] args) {
//直接输出的方式做加法
//System.out.println(3 + 4);
//两个int类型做加法
int x = 3;
int y = 4;
int z = x + y;
System.out.println(z);
//定义一个byte类型,一个int类型,做加法
byte a = 3;
int b = 4;
System.out.println(a + b);
//可能损失精度
//byte c = a + b;
int c = a + b;
System.out.println(c);
}
}
byte、float、char参与运算会首先转换为int
class DataTypeDemo4 {
public static void main(String[] args) {
byte a = 3;
int b = 4;
//这个肯定没有问题
//int c = a + b;
//byte c = 7;
//这个是有问题的
//byte c = a + b;
//用强制类型转换改进
byte c = (byte) (a + b);
System.out.println(c);
}
}
class DataTypeDemo7 {
public static void main(String[] args) {
//因为byte的范围是:-128到127。
//而130不在此范围内,所以报错。
//byte b = 130;
//我们可以使用强制类型转换
byte b = (byte) 130;
//结果是多少呢?
System.out.println(b);
}
}
强转不安全,可能会掉数据,尽量不要用强制转换
/*
分析过程:
我们要想知道结果是什么,就应该知道是如何进行计算的。
而我们又知道计算机中数据的运算都是补码进行的。
而要得到补码,首先要计算出数据的二进制。
A:获取130这个数据的二进制。
00000000 00000000 00000000 10000010
这是130的原码,也是反码,还是补码。
B:做截取操作,截成byte类型的了。
10000010
这个结果是补码。
C:已知补码求原码。
符号位 数值位
补码: 1 0000010
反码: 1 0000001
原码: 1 1111110
*/
思考题
System.out.println(‘a’);
System.out.println(‘a’+1);
System.out.println(“hello”+’a’+1);
System.out.println(‘a’+1+”hello”);
System.out.println(“5+5=”+5+5);
System.out.println(5+5+”=5+5”);
class DataTypeDemo9 {
public static void main(String[] args) {
System.out.println("hello"+'a'+1); //helloa1
System.out.println('a'+1+"hello"); //98hello
System.out.println("5+5="+5+5); //5+5=55
System.out.println(5+5+"=5+5"); //10=5+5
}
}