Java中的基本数据类型
基本类型 | 对象类型 | 说明 | 位数 | 基本类型 |
---|---|---|---|---|
boolean | Boolean | 布尔型 | 1 | 0,1 |
byte | Byte | 字节 | 8 | -128 - 127 |
short | Short | 短整型 | 16 | -32768 - 32767 |
char | Char | 字符型 | 16 | ‘ \u0000 - u\ffff ’ |
int | Integer | 整型 | 32 | -2147483648-2147483647 |
float | Float | 浮点型 | 32 | -3.40292347E+38-3.40292347E+38 |
long | Long | 长整型 | 64 | 9233372036854477808-9223372036854775807 |
double | Double | 双精度 | 64 | 1.79769313486231570E+308-1.79769313486231570E+308 |
字节的换算
- 已知一个字节占8位
eg:
int 类型 32位/8位 = 4字节
变量的定义
1. 定义变量
[访问标识符] [final] 变量类型名[=变量值];
public int a=1;
2. 类变量
每个变量都有默认值
public class Demo2{
byte by;
boolean sign;
char c ;
short sh;
float fl;
int i;
long l;
double d;
public static void main(String args[]){
System.out.println("byte默认值:" + new Demo2().by);
System.out.println("boolean默认值:" + new Demo2().sign);
System.out.println("char默认值:" + new Demo2().c);
System.out.println("short默认值:" + new Demo2().sh);
System.out.println("float默认值:" + new Demo2().fl);
System.out.println("int默认值:" + new Demo2().i);
System.out.println("long默认值:" + new Demo2().l);
System.out.println("double默认值:" + new Demo2().d);
//有关键词的不能定义为变量
//int int = 10;
//System.out.println(int);
String String = "lingdu";
System.out.println(String);
}
}
3. 局部变量
没有默认值,必须要手动赋值
变量的命名规则
- 1、由字母、数字、标点组成
- 2、首字母必须以字母字符,$、_下划线开头
- 3、变量名不能与保留字重名
- 4、第一个单词的首字母小写,多个单词的第二单词首字母大小
Java关键字
关键字是电脑语言里事先定义的,有特别意义的标识符,有时又叫保留字,还有特别意义的变量。
变量的可访问性
变量的作用范围
1、类变量
- 在对象的生命周期中,都可以访问类变量。
2、局部变量
- 只能在代码段中访问。
public class Demo6{
//全局变量(类变量)
int age = 10;
public void test1(){
//局部变量,作用范围只在该函数中
age = 20;
System.out.println(age);
}
public static void main(String args[]){
//想要引用类变量,必须要实例化一个对象出来
Demo6 demo = new Demo6();
demo.test1();
System.out.println(new Demo6().age);
}
}
值变量与引用变量
值变量
- 被方法引用时,不会改变原变量的值
- 包含8种基本类型与对象类型的值
引用变量
- 被方法引用时,会改变原变量的值
public class Demo3{
public void test1(int para){
para = 20;
System.out.println("para : " + para);
}
public void test2(String name){
name = "lingdu";
System.out.println(name);
}
public static void main(String args[]){
//值传递
String name = "my";
//将name传递给test2()
new Demo3().test2(name);
System.out.println("外部对象:" + name);
}
}
静态变量
public class Demo4{
//定义一个静态变量age
static short age;
//定义一个非静态的name
String name = "lingdu";
//静态变量
public static void main(String args[]){
//静态变量可以直接调用
System.out.println(Demo4.age);
//非静态变量需要实例化之后才能调用
System.out.println(new Demo4().name);
}
}
静态代码块
优先执行静态代码块,最后才执行主方法
public class Demo4{
//静态代码块
static{
System.out.println("我是静态代码块,在程序运行时会先执行!");
//初始化类
// Person person = new Person();
}
public static void main(String args[]){
System.out.println("我是主函数,我在静态代码快执行之后执行");
}
}
每个静态代码块都有一块内存空间
他们是互不影响的
但是静态变量不同,他是相互影响的,如果一个静态变量被改变,则该静态变量的值是被共享的。
常量
常量不可更改
final int i = 0;
public class Demo6{
public static void main(String args[]){
//定义为常量时, 如果再赋值的话就会报错
final int i = 0;
i = 10;
}
}