Java基础语法 :变量和数据类型
1. 关键字和保留字
关键字:指被Java官方赋予了特殊含义的单词
1.要明白所学过的关键的含义
2.取名字不要与关键字冲突
保留字:现阶段java版本中未使用,但是也不允许我们使用的单词。
2. 标识符
只要是需要自定义名称的内容都称之为标识符
标识符命名规范:
望文生义、见名知义。
类名由一个或多个单词组成,每个单词首字母大写(pascal)
3. 变量引入
生活中我们会需要各种方式来记录数据,程序是用来解决现实生活中存在的问题的。程序中使用
变量
来记录数据。
生活中记录的数据有各种数据类型,程序中也同样。
4.变量的定义方式
声明变量的3种方式:
先声明,再赋值:【常用】
数据类型 变量名;
变量名 = 值;
声明并赋值:【常用】
数据类型 变量名 = 值;
多个同类型变量的声明与赋值:【了解】
数据类型 变量1 , 变量2 , 变量3 = 值3 , 变量4 , 变量5 = 值5;
public class Test1{
public static void main(String [] args){
// 变量的三种定义方式
// 方式1 先声明 再赋值
int a;
a = 100;
// 字符串与任何内容相加不做计算 实为拼接
System.out.println("a的取值是:" + a);
// 方式2 连声明带赋值写为一条语句
int b = 200;
System.out.println("b的取值是:" + b);
// 方式3 同时声明多个同类型的变量 赋值个别变量(了解)
int c,d,e = 55,f,g = 66;
System.out.println("e的取值为:" + e);
System.out.println("g的取值为:" + g);
// 未赋值的变量不能使用
/* System.out.println("c的取值为:" + c);
System.out.println("d的取值为:" + d);
System.out.println("f的取值为:" + f);
*/
}
}
5. 单位换算
1TB = 1024GB
1GB = 1024MB
1MB = 1024KB
1KB = 1024Byte(字节)
1Byte = 8bit(位)
6. 数据类型
6.1 整型
int为整数的默认类型
如需为long类型赋值 如果取值范围超过int必须在末尾加L 推荐大写
如果取值范围没有超过int 可加可不加
public class Test1{
public static void main(String [] args){
// 整型数据类型 byte short int long
// byte取值范围 -128 ~ 127
byte b1 = 20;
byte b2 = 35;
System.out.println(b1);
System.out.println(b2);
// byte b3 = 128;
// System.out.println(b3);
System.out.println("-----------------------");
// short取值范围 -32768 ~ 32767
short s1 = 2355;
short s2 = 200;
System.out.println(s1);
System.out.println(s2);
// short s3 = 32768;
// System.out.println(s3);
System.out.println("-----------------------");
// int取值范围 -2147483648 ~ 2147483647
int i1 = 5689;
int i2 = 55221144;
System.out.println(i1);
System.out.println(i2);
// int i3 = 2147483648;
// System.out.println(i3);
System.out.println("-----------------------");
// long取值范围 -9223372036854775808 ~9223372036854775807
// Long.MAX_VALUE 获取long类型最大值
// Long.MIN_VALUE 获取long类型最小值
System.out.println(Long.MAX_VALUE);
System.out.println(Long.MIN_VALUE);
long l1 = 2356;
long l2 = 2211;
System.out.println(l1);
System.out.println(l2);
// 如需为long类型赋值 如果取值范围超过int必须在末尾加L 推荐大写
// 如果取值范围没有超过int 可加可不加
long l3 = 214748364811L;
System.out.println(l3);
}
}
6.2 布尔类型
可直接赋值true / false
也可赋值一个结果为true / false的表达式
注意:Java中的boolean不能参与算数运算
public class Test1{
public static void main(String [] args){
// 布尔类型 boolean 取值为true真/false假
boolean bl1 = true;
boolean bl2 = false;
int a = 20;
int b = 30;
boolean bl3 = a > b;
System.out.println(bl1);
System.out.println(bl2);
System.out.println(bl3);
}
}
6.3 浮点类型
注意:double为浮点数的默认类型,如需为float类型赋值,需要在值的后面追加“F”
public class Test1{
public static void main(String [] args){
// 浮点类型 小数的默认数据类型为double
// float double
float f1 = 3.14F;
System.out.println(f1);
// float 负数取值范围 -3.4E+38 ~ -1.4E-45
float f2 = -340000000000000000000000000000000000000F;
System.out.println(f2);
float f3 = -0.0000000000000000000000000000000000000000000014F;
System.out.println(f3);
// float正数取值范围 1.4E-45 ~ 3.4E+38
float f4 = 0.0000000000000000000000000000000000000000000014F;
System.out.println(f4);
float f5 = 340000000000000000000000000000000000000F;
System.out.println(f5);
System.out.println("---------------------------------------");
double d1 = 20.5;
double d2 = 22.5;
double d3 = 9.7;
System.out.println(d1);
System.out.println(d2);
System.out.println(d3);
}
}
6.4 字符类型
1.直接赋值0~ 127 范围的整数数值将参考ASCII码表来找到对应的字符
2.超过0~ 127 范围的整数数值将参考Unicode编码表来找到对应的字符
字符赋值:char c1 = ‘A’;(通过’'描述为字符赋值)
整数赋值:char c2 = 65;(通过十进制数65在字符集中对应的字符赋值)
进制赋值:char c3 = ‘\u0041’;(通过十六进制数41在字符集中所对应的字符赋值)
public class Test1{
public static void main(String [] args){
// char类型 2个字节 字符类型 取值范围 0 ~ 65535
// 赋值方式1 直接使用英文的单引号包括一个内容
char ch1 = 'a';
char ch2 = '1';
char ch3 = '中';
System.out.println(ch1);
System.out.println(ch2);
System.out.println(ch3);
System.out.println("-------------------------------------");
// char ch4 = '88'; 只能保存一个内容
// System.out.println(ch4);
// 赋值方式2 直接赋值在0~65535范围以内的整数数值
char ch5 = 65;
System.out.println(ch5);
char ch6 = 66;
System.out.println(ch6);
char ch7 = 67;
System.out.println(ch7);
// ASCII 码表 只收录了0~ 127 共128个英文标点、特殊符号、大小写字母 不包括中文
// 中文收录在Unicode编码表中 万国码 十六进制的编码表
// 中文的取值范围是 \u4e00 ~ \u9fa5
char ch8 = 20013;
System.out.println(ch8);
char ch9 = 20320;
System.out.println(ch9);
// 赋值方式3 直接使用十六进制Unicode字符序列赋值
char ch10 = '\u4f60';
System.out.println(ch10);
char ch11 = '\u4e00';
System.out.println(ch11);
char ch12 = '\u9fa5';
System.out.println(ch12);
}
}
7.转义字符
Java使用转义字符 来实现保存一些特殊的符号,或者实现一些效果
public class Test1{
public static void main(String [] args){
// 使用char类型保存一个单引号
// 转义字符 保存一些特殊的符号
char ch1 = '\'';
System.out.println(ch1);
// \n 换行
System.out.println("世\n界\n你\n好");
// \t 制表位 可以保证在大多数情况 上下行的文字对齐
System.out.println("学Java\t到尚硅谷\t找帅栋");
System.out.println("学IT\t到尚硅谷\t圆你梦");
// \\ 保存一个反斜线
char ch2 = '\\';
System.out.println(ch2);
// \" 双引号 也可以不转义 直接写
char ch3 = '\"';
System.out.println(ch3);
}
}
8. String类型
String 类型 引用数据类型 任何英文的双引号包括的内容 都称之为字符串
public class Test1{
public static void main(String [] args){
// String 类型 引用数据类型 任何英文的双引号包括的内容 都称之为字符串
String str1 = "abcd";
String str2 = "世界你好";
String str3 = "sasasa wqwq 121 31312 ";
String str4 = " sad wqew qew qewq f dswlkj沙士大夫撒发大水";
System.out.println(str1);
System.out.println(str2);
System.out.println(str3);
System.out.println(str4);
String str5 = "\"";
System.out.println(str5);
// 不同类型变量 赋值问题
short s1 = 65;
char ch1 = (char)s1;
System.out.println(ch1);
short s2 = -1;
char ch2 = (char)s2;
System.out.println(ch2);
}
}
9. 类型转换
9.1 自动类型转换
自动类型转换
1.两种类型兼容
2.目标类型(等号左边)大于源类型(等号右边)
public class Test1{
public static void main(String [] args){
// 自动类型转换
// 1.两种类型兼容
// 2.目标类型(等号左边)大于源类型(等号右边)
byte b1 = 20;
short s1 = b1;
System.out.println(s1);
short s2 = 66;
int i1 = s2;
System.out.println(i1);
int i2 = 8899;
long l1 = i2;
System.out.println(l1);
long l2 = 885566;
float f1 = l2;
System.out.println(f1);
float f2 = 3.14F;
double d1 = f2;
System.out.println(d1);
int a = 20;
double d2 = a;
System.out.println(d2);
}
}
9.2 强制类型转换
强制类型转换
1.两种类型要兼容
2.目标类型(等号左边)小于源类型(等号右边)
public class Test2{
public static void main(String [] arg){
// 强制类型转换
// 1.两种类型要兼容
// 2.目标类型(等号左边)小于源类型(等号右边)
short s1 = 65;
byte b1 = (byte)s1;
System.out.println(b1);
int i1 = 8899;
short s2 = (short)i1;
System.out.println(s2);
long l1 = 2255;
int i2 = (int)l1;
System.out.println(i2);
float f1 = 25.5F;
long l2 = (long)f1;
System.out.println(l2);
double d1 = 255.6;
int i3 = (int)d1;
System.out.println(i3);
}
}