java基础知识复习
1.java是一种面对象的语言,java 所有类型其实都有对象关联(除了基本数据类型)
2.变量:程序运行中可以改变的量(数据)
变量的实质是一小块内存的单元,而这一小块内存单元中存储着变量的值
变量声明:数据类型 变量名;
3.变量的作用域:即变量能生效的范围,一般是变量所定义的代码块
4.变量的命名规则:
- 必须以字母、下划线"_"、或‘"$"符号开头
- 可以包含数字、区分大小写
- 不能使用java语言的关键字
5.变量赋值:数据类型 变量名=值、表达式;
1.等号左边是个框、把右边的值存入到左边
int a=10;
int b=a;
2.等号左边是值,等号右边是值;
int []a={1,2,3,4};
int []b=a;
a[0]=10;
6.数据类型:基本数据类型和引用数据类型
基本数据类型 | 默认值 | 存储 | 包装类 |
---|---|---|---|
boolean | false | 1位 | java.lang.Boolean |
byte | 0 | 1字节 | java.lang.Byte |
short | 0 | 2字节 | java.lang.Shorter |
int | 0 | 4字节 | java.lang.Integer |
long | 0L | 8字节 | java.lang.Long |
float | 0.0F | 4字节 | java.lang.Float |
double | 0.0 | 8字节 | java.lang.Double |
char | ‘\u0000’ | 2字节 | java.lang.Character |
引用类型 | null | 注:引用类型分为数组引用、接口引用、类引用 |
7.什么是引用?
- 如果一个变量的类型是数组类型、类类型,而非基本类型,那么该变量又叫做引用
- 引用实质:就是某个目标变量的别名,对引用的操作就是对变量的直接操作,它们效果是完全一样的
- 引用不是一种新的数据类型,因此它本身不占存储单元,系统也不会为它分配存储单元
- 方法调用过程中引用类型也是值传递,形参的改变不会影响实参的改变
int[]a={1,2,3}; //1.a是一个int[]引用; 2.指向一个元素类型是int的数组
Node node=new Node(1);//1.node 是一个Node引用; 2.指向一个新创建的对象
Node head=node; //1.head是一个Node引用; 2.指向node引用指向的对象
Integer i=10; //1.i是一个Integer类型的引用;2.指向一个integer类型的对象
8.常量:程序运行时,不发生改变的值(数据)
- 字面值常量
10 // int 字面值常量(十进制)
010 // int 字面值常量(八进制) 由数字 0 开头. 010 也就是十进制的 8
0x10 // int 字面值常量(十六进制) 由数字 0x 开头. 0x10 也就是十进制的 16
10L // long 字面值常量. 也可以写作 10l (小写的L)
1.0 // double 字面值常量. 也可以写作 1.0d 或者 1.0D
1.5e2 // double 字面值常量. 科学计数法表示. 相当于 1.5 * 10^2
1.0f // float 字面值常量, 也可以写作 1.0F
true // boolen 字面值常量, 同样的还有 false
'a' // char 字面值常量, 单引号中只能有一个字符
"abc" // String 字面值常量, 双引号中可以有多个字符.
- final关键字修饰的常量
final int a = 10;
a = 20; // 编译出错. 提示无法为最终变量a分配值
9.类型转换:当不同类型之间的变量相互赋值时会产生
隐式转换:范围小的可以隐式转换成范围较大的
显示转换:强制转换类型(损失精度)
//1.两边类型一致 可以赋值
//2.左边的类型比较
long a = 10; 10为int类型可以隐式转换为long类型
//3.左边类型小
int a = 10L;
int a = (int)10L 强制类型转换(损失精度)
//4. 两边无关系,运行出现错误
10.数值提升:
- 不同类型的数据混合运算,范围小的会提升成范围大的
- 对于short,byte这种比4个字节小的类型,会先提升成4个字节的int,再运算
11.程序结构
1)顺序结构
2)分支结构
3)循环结构 for()和while()和do{}while();
4)子程序结构(方法)
注意:
- 用语句组织,用分号结尾的表达式或者方法调用
- 所有的语句都得出现在方法(和静态)中/构造(静态构造)块
- 语句都出现在方法中,初始化语句,赋值语句除外
class
{
int a=10;
int b=20;
System.out.println(a+b); // 语句出现在成员级别了
}
//不是所有的分支都有返回语句
int menthod(int a)
{
if(a>10)
{
return 1;
}
if(a=10)
{
return 0;
}
if(a<10)
{
return -1;
}
}
int menthod(int a)
{
if(a>10)
{
return 1;
}
else if(a==10)
{
return 0;
}
else
{
return -1;
}
}