文章目录
一、数据类型
- 基本类型
- 引用类型
1、基本类型(primitive type)、
1.1、数据类型、
1.1.1、整数类型、
- byte:占1字节
- short:占2字节
- int:占4字节
- long:占8字节
1.1.2、浮点类型、
- float:占4字节
- double:占8字节
1.1.3、字符类型、
- char:占2字节
1.2、boolean类型、
- 占1位 true/false
2、引用类型(reference type)、
- 类
- 接口
- 数组
3、扩展
3.1、整数扩展
进制表示
/**
* @Author S1Lu
* @create 2022/10/5 15:07
*/
public class Demo {
public static void main(String[] args) {
//整数扩展 进制 : 二进制0b 八进制0 十进制 十六进制0x
int i = 0b10;
int i2 = 010;
int i3 = 10;
int i4 = 0x10;
System.out.println(i);
System.out.println(i2);
System.out.println(i3);
System.out.println(i4);
}
}
结果:
2
8
10
16
3.2、浮点数扩展
/**
* @Author S1Lu
* @create 2022/10/5 15:07
*/
public class Demo {
public static void main(String[] args) {
//浮点数扩展
//使用 BigDecimal 类 来进行浮点类型的比较等
//float
//double
//最好完全避免浮点数进行比较
float f = 0.1f;
double d = 0.1;
double d1 = 1.0/10;
System.out.println(f==d);
System.out.println(f==d1);
System.out.println(d==d1);
System.out.println("================================");
//数据溢出
float f1 = 12345678912345678f;
float f2 = f1;
float f3 = f1 + 1;
System.out.println(f1 == f2); //true
System.out.println(f1 == f3); //true
}
}
结果:
false
false
true
================================
true
true
3.3、字符扩展
所有的字符的本质还是是数字
/**
* @Author S1Lu
* @create 2022/10/5 15:07
*/
public class Demo {
public static void main(String[] args) {
//编码 Unicode
//Unicode转义字符:'/u' + 四个十六进制数字;0~65535
char c = '\u0061';
System.out.println(c); //a
//转义字符 等等
// \r 回车
// \n 换行
// \f 走纸换页
// \t 横向跳格
// \b 退格
String s = new String("a");
String s1 = new String("a");
System.out.println(s == s1); //false
String s2 = "a";
String s3 = "a";
System.out.println(s2 == s3); //true
}
}
结果:
a
false
true
3.4、布尔值扩展
/**
* @Author S1Lu
* @create 2022/10/5 15:07
*/
public class Demo {
public static void main(String[] args) {
boolean flag = true;
if(flag == true){}
if(flag){} //上上句效果一样
}
}
二、类型转换
低------------------------------------------------>高
byte,short,char-> int-> long-> float-> double
Java 是强类型语言,运算时,不同类型的数据先
转换
成同一类型
,然后再运算
强制类型转换
从低到高
(类型)变量名
自动转换
从高到低
import javax.swing.*;
/**
* @Author S1Lu
* @create 2022/10/5 15:07
*/
public class 字符类型Demo {
public static void main(String[] args) {
boolean flag = true;
if(flag == true){}
if(flag){} //上上句效果一样
/*
* 1、不能对布尔值进行转换
* 2、不能把对象类型转换成为不相干的类型
* 3、在把高容量转换成低容量的时候,强制转换
* 4、转换的时间可能存在内存一处,或者精度问题
* */
int i = 128;
byte b = (byte)i;
System.out.println(i); //128
System.out.println(b); //-128 内存溢出
System.out.println("===============================");
System.out.println((int)23.7); //23 精度
System.out.println((int)-45.89f); //-45 精度
System.out.println("=================================");
char c = 'a'; //Unicode 编码 a -->97
int d = c+1; //自动转成 int 97+1 -->98
System.out.println(d);
System.out.println((char)d); //强制转换成char 98 -->b
System.out.println("=================================");
//数据溢出
int m = 1000000000;
int n = 20;
int to = m * n;
System.out.println(to); //-1474836480 数据溢出
long to2 = m * n;
System.out.println(to2); //-1474836480 先计算出的是int类型已经出现错误,再转换成long
long to3 = m * (long)n;
System.out.println(to3); //20000000000 整体运算之前已经转换成long
}
}
结果:
128
-128
===============================
23
-45
=================================
98
b
=================================
-1474836480
-1474836480
20000000000
三、变量
1、变量的声明
type varName [=value] [{,varName[=value]}];
//数据类型 变量名 = 值;
int a = 1;
int b , c , d; //通过逗号隔开声明多个同类型变量
2、变量的作用域
- 实例变量
- 类变量
- 局部变量
/**
* @Author S1Lu
* @create 2022/10/6 16:26
*/
public class Demo {
//变量作用域
//1、实例变量 从属于对象,如果不自行初始化,默认为 0 0.0 null false
String name;
int age;
boolean flag;
//2.类变量
static double salary = 222.3;
//常量 大写和下划线
static final double PI = 3.14;
//main方法
public static void main(String[] args) {
//3、局部变量 必须声明和初始化值
System.out.println("==============局部变量===========");
int i = 123;
System.out.println(i);
System.out.println("==============实例变量===========");
Demo demo = new Demo();
System.out.println(demo.age);
System.out.println(demo.name);
System.out.println(demo.flag);
System.out.println("==============类部变量===========");
System.out.println(salary);
}
}
结果:
==============局部变量===========
123
==============实例变量===========
0
null
false
==============类部变量===========
222.3
3、变量的命名规则
类别 | 表述 | 举例 |
---|---|---|
类成员变量: | 首字母小写和驼峰原则 | monthSalary |
局部变量: | 首字母小写和驼峰原则 | yearSalary |
常量: | 大写字母和下划线 | MAX_ VALUE |
类名: | 首字母大写和驼峰原则 | GoodMan |
方法名: | 首字母小写和驼峰原则 | runRun() |