Java语言基础
1.引入
变量是用于存储数据的
举例:
比如,你的同桌要买大宝剑,发现钱不够,找你借5毛钱,为了防止时间长了忘记了,你拿个小本把这件事记下来
人物:你的同桌
事件:大宝剑
金额:5毛
时间: 2020/09/16
2.单位换算
1TB = 1024GB
1GB = 1024MB
1MB = 1024KB
1KB = 1024byte
1byte = 8bit
3.NotePad++设置
4.变量的定义
三种方式
1.先声明,再赋值(常用)
2.连声明带赋值(常用)
3.同时声明多个同类型的变量,赋值个别变量(了解)
public class Test1{
public static void main(String [] args){
// 定义变量的三种方式
// 方式1
byte b1; // 先声明
b1 = 20; // 再赋值
System.out.println("b1中的值是" + b1);
// 方式2 连声明带赋值写为一条语句
byte b2 = 21;
System.out.println("b2中的值是" + b2);
// 方式3 同时声明多个变量 赋值个别变量
byte a , b ,c = 12 , d = 21;
// ln line 行
// System.out.print("a中的值是" + a);
// System.out.print("b中的值是" + b);
System.out.println("c中的值是" + c);
System.out.println("d中的值是" + d);
}
}
5.数据类型
5.1 整型
byte 单字节 8位 -128 ~ 127
short 两个字节 16位 -32768 ~ 32767
int 四个字节 32位 -2147483648 ~ 2147483647
long 八个字节 64位 -9223372036854775808 ~ 9223372036854775807
在long类型中存储超过int取值范围的值 需要在值的末尾加上L 大小写都可以 要求大写
public class Test2{
public static void main(String [] args){
// 定义其他类型的变量
byte b1 = -128; // byte 取值范围 -128 ~ 127
System.out.println(b1);
// short 我们也叫短整型 -32768 ~ 32767
short s1 = -32768;
System.out.println(s1);
// int 取值范围 -2147483648 ~ 2147483647
int i1 = 2147483647;
System.out.println(i1);
// long 长整型 取值范围 -9223372036854775808 ~ 9223372036854775807
// System.out.println(Long.MAX_VALUE);
// System.out.println(Long.MIN_VALUE);
long l1 = 20;
System.out.println(l1);
// 在long类型中存储超过int取值范围的值 需要在值的末尾加上L 大小写都可以 要求大写
long l2 = 2147483648L;
System.out.println(l2);
}
}
5.2 浮点类型
float 单精度的小数
double 双精度的小数
以上两者都是近似值,不是精确值
float在定义变量的时候需要在值以后加上F,大小写都可以
public class Test4{
public static void main(String [] args){
double d1 = 20;
double d2 = 20.5;
System.out.println(d1);
System.out.println(d2);
float f1 = 20F;
float f2 = 21.3f;
System.out.println(f1);
System.out.println(f2);
// float最大取值 最小取值
float minValue = -340000000000000000000000000000000000000F;
System.out.println(minValue);
float maxValue = 340000000000000000000000000000000000000F;
System.out.println(maxValue);
float minValue2 = -0.0000000000000000000000000000000000000000000014F;
System.out.println(minValue2);
}
}
5.3 布尔类型
布尔类型只有两个取值,true或者false,不能参与运算
public class Test5{
public static void main(String [] args){
// boolean 布尔类型 取值只有真 或者 假
boolean flag = false; // 否
boolean flag1 = true;
System.out.println(flag);
System.out.println(flag1);
}
}
5.4 char类型
char类型取值范围 0~ 65535 无符号的(只有正数)
可以存储一个字符的内容,比如一个英文,一个数字,或者一个中文
也可以直接写入正确范围内的数字,比如 65,20013等
在我们写入数字的情况会根据数字所对应的编码表找到对应的字符
ASCII码表,美国标准信息交换码
Unicode,万国码,收录了世界上大多数国家的语言,相当于一个比较全面的字典
public class Test6{
public static void main(String [] args){
// char 两个字节 只能存储一个 字符 1 A a 中
char ch1 = 'a';
char ch2 = '2';
char ch3 = '中';
char ch4 = 'A';
System.out.println(ch1);
System.out.println(ch2);
System.out.println(ch3);
System.out.println(ch4);
// char ch5 = 'ab';
// char ch6 = '22';
// char ch7 = '中国';
// System.out.println(ch5);
// System.out.println(ch6);
// System.out.println(ch7);
char c1 = 65;
System.out.println(c1);
char c2 = 66;
System.out.println(c2);
char c3 = 67;
System.out.println(c3);
// 通过以上代码 我们发现 直接写数值 可以得到一些字符
// 我们的计算机只认 0 和 1 ASCII 码表 美国标准信息交换码
char c4 = 97;
System.out.println(c4);
char c5 = (char)-1;
System.out.println(c5);
// 显示中文是基于Unicode码表 万国码 十六进制的编码表 收录了世界大多数国家的语言编码
// \u9fa5 ~ \u4e00 属于中文的区间
// GBK 国标扩展板 支持中文简体 和 繁体
// GB2312 国标 只支持简体
// ISO-8859-1 最原始的编码方式 用于解决乱码
// UTF-8 unicode编码 通用的一种编码方式
char c6 = 20013;
System.out.println(c6);
// 6211 7231 4f60 25105 29233 20320
}
}
6. 转义字符
转义字符是为了解决在开发中用于区分特殊符号的一种方式
public class Test7{
public static void main(String [] args){
// 转义字符 我们使用char类型的变量存储一些特殊的字符 需要使用转义字符 \
// \n
System.out.print("世界你好\n");
System.out.print("世界你好\n");
// \t 表示制表符 可以使文字对齐(大多数情况下)
System.out.println("学java\t到千锋\t郑州千锋找帅栋");
System.out.println("找帅栋\t圆你梦");
// \\ 打印一个反斜杠
char ch1 = '\\';
System.out.println(ch1);
char ch2 = '\'';
System.out.println(ch2);
char ch3 = '\"';
System.out.println(ch3);
}
}
7.String类型
String类型属于JDK提供的一个类,用于存储字符串,属于引用数据类型
public class Test8{
public static void main(String [] args){
// String 类型是JDK给我们提供的一个类
// 属于引用数据类型
String str1 = "abcd";
String str2 = "210";
String str3 = "汉字";
String str4 = "110";
System.out.println(str1);
System.out.println(str2);
System.out.println(str3);
System.out.println(str2 + str4);
short s1 = 22;
char ch1 = s1; // short有可能会有负数 所以不能直接赋值给char类型
}
}
8.类型转换
自动提升 手动下降
自动转换,两种类型要兼容,目标类型大于源类型
强制转换,两种类型要兼容,目标类型小于源类型
public class Test9{
public static void main(String [] args){
// 自动类型转换 自动提升
// 1.两种类型要兼容 比如 整数 和 小数 都属于数值
// 2.目标类型(等号左边)要大于源类型(等号右边的)
byte b1 = 20;
short s1 = b1;
int i1 = b1;
long l1 = i1;
System.out.println(l1);
System.out.println(i1);
System.out.println(s1);
float f1 = l1;
System.out.println(f1);
double d1 = i1;
System.out.println(d1);
// 强制类型转换 手动下降
// 1.两种类型要兼容
// 2.目标类型小于源类型
// 写法 (强制转换的类型)
System.out.println("=================================================");
short s2 = 120;
byte b2 = (byte)s2;
System.out.println(b2);
double d2 = 20;
int i2 = (int)d2;
System.out.println(i2);
short s3 = 128;
byte b3 = (byte)s3;
System.out.println(b3);
short s4 = 257;
byte b4 = (byte)s4;
System.out.println(b4);
short s5 = 129;
byte b5 = (byte)s5;
System.out.println(b5);
// 原码 反码 补码
// 正数的原码 反码 补码 都一样
// 负数 负数的反码是符号位保持不变 其余位取反 1001 0100 11101011
// 补码 是在反码的基础上+ 1 java中使用补码来表示负数
}
}
后续补充……
public class Test10{
public static void main(String [] args){
// char 类型赋值可以使用 unicode码值 但是必须加上 反斜杠u 前缀 使用 单引号包括
char ch1 = '\u4f60';
System.out.println(ch1);
double d1 = 2.5;
int i = (int)d1;
System.out.println(i); // 小数点之后直接抹去
}
}
不变 其余位取反 1001 0100 11101011
// 补码 是在反码的基础上+ 1 java中使用补码来表示负数
}
}
> 后续补充……
```java
public class Test10{
public static void main(String [] args){
// char 类型赋值可以使用 unicode码值 但是必须加上 反斜杠u 前缀 使用 单引号包括
char ch1 = '\u4f60';
System.out.println(ch1);
double d1 = 2.5;
int i = (int)d1;
System.out.println(i); // 小数点之后直接抹去
}
}