1.变量的常用类型
基本类型 | 对象类型 | 说明 |
byte | Byte | 字节 |
short | Short | 短整型 |
int | Integer | 整型 |
long | Long | 长整型 |
float | Float | 浮点型 |
double | Double | 双精度 |
char | Char | 字符型 |
boolean | Boolean | 布尔型 |
String | 字符串类型 |
2.定义变量
1)定义变量
[访问标识符] [final] 变量类型名[=变量值];
public int a=1;
2)
类变量(全局变量)(实例变量) -- 直接定义在类中的变量
每个变量都有默认值
数据类型 | 默认值 |
byte | 0 |
short | 0 |
int | 0 |
long | 0L |
float | 0.0f |
double | 0.0d |
char | '\u0000' |
boolean | false |
3)
局部变量 -- 在一个方法内部的变量
没有默认值,必须要手动赋值,若没手动赋值,编译时系统会报错。
3.变量的命名规则
- 由字母、数字、下划线组成
- 首字母必须以字母字符,$、_下划线开头
- 变量名不能与保留字重名
- 第一个单词的首字母小写,多个单词的第二单词首字母大写
4.java保留字
第一列 | 第二列 | 第三列 | 第四列 | 第五列 |
abstract | assert | boolean | break | byte |
case | catch | char | class | const |
continue | default | do | double | else |
enum | extends | final | finally | float |
for | goto | if | implements | import |
instanceof | int | interface | long | native |
new | package | private | protected | public |
return | strictfp | short | static | super |
switch | synchronized | this | throw | throws |
transient | try | void | volatile | while |
5.变量的可访问性
可见/访问性 | 在同一类中 | 同一包中 | 不同包中 | 同一包子类中 | 不同包子类中 |
public | yes | yes | yes | yes | yes |
protected | yes | yes | no | yes | yes |
package | yes | yes | no | yes | no |
private | yes | no | no | no | no |
6.变量的作用范围
- 类变量
在对象的生命周期中,都可以访问类变量。
- 局部变量
在代码段中访问。
7.值变量与引用变量
- 值变量
被方法引用时,不会改变原变量的值
包含8种基本类型与对象类型的值
- 引用变量
被方法引用时,会改变原变量的值
8.静态变量 -- 不用实例化就可使用
不同点 | 静态变量 | 非静态变量 |
内存分配 | 应用程序初始化时 | 实例(对象)初始化时 |
生存周期 | 应用程序生命周期(不会被GC回收) | 实例的存在周期(会被GC回收) |
调用方式 | 类.静态变量名 | 实例.变量名 |
共享方式 | 静态变量是全局变量,被所有类的实例对象共享 | 实例之间不能共享变量 |
- 引用静态变量的方法
(1)类名.变量名
(2)如果是在当前的类内部,直接使用变量名就可以访问
(3)使用实例来引用(不建议用该方法,此方法在修改时不方便)
- 静态代码块,会优先执行,执行完之后,才开始执行主方法
//静态代码块:在java中使用static关键字声明的代码块。静态块用于初始化类,为类的属性初始化。每个静态代码块只会执行一次。由于JVM在加载类时会执行静态代码块,所以静态代码块先于主方法执行。//如果类中包含多个静态代码块,那么将按照"先定义的代码先执行,后定义的代码后执行"。//注意:1 静态代码块不能存在于任何方法体内。
2 静态代码块不能直接访问静态实例变量和实例方法,需要通过类的实例对象来访问
执行顺序:(优先级从高到低。)
静态代码块>mian方法>构造代码块>构造方法。
其中静态代码块只执行一次。构造代码块在每次创建对象是都会执行。
//构造块:直接在类中定义且没有加static关键字的代码块称为{}构造代码块。构造代码块在创建对象时被调用,每次创建对象都会被调用,并且构造代码块的执行次序优先于类构造函数。
9.常量
final int i = 0;
常量不可更改
10.一维数组
数组的最大特点:要定义长度
1)定义数组:
type[] 变量名 = new type[数组中元素的个数];
int[] num = new int[5]; -- int num[]=new int[5]; 这样写也可以
num[0]=1;
num[1]=5;
num[2]=23;
num[3]=22;
num[4]=50;
2)定义数组时直接初始化数组:
方法1:int num[] = new int[]{1,5,23,22,50}
方法2:int num[] = {1,5,23,22,50}
3)数组的长度:
length属性,表示数组的长度。
数组长度一旦确定,就不能改变大小。
int numLength = num.length;
System.out.println(“数组的长度:”+numberLength);
例:public static void main(String[] args){
byte[] tfboys=new byte[3];
tfboys[0]=100;
tfboys[1]=101;
tfboys[2]=102;
//for循环遍历数组
for(int i=0;i<tyboys.length;i++){
System.out.println(tfboys[i]);
}
//forEach循环遍历数组
for(int m:tfboys){
System.out.println(m);
}
}
11.二维数组/多维数组
1)定义数组:
type[] [] 变量名 = new type[][];
int num[][] = int[2][2];
num[0] = {1,2};
num[1] = {5,6}
2)定义数组时直接初始化数组:
方法1:int num[][] = int[][] {{1, 2},{5, 6}}
方法2:int num[][] = {{1, 2},{5, 6}}
例:
public class First{
public static void main(String[] args){
int boys[]={101,102,103,104};
int girls[]={200,201,202};
int human[][]=new int[2][4];
human[0]=boys;
human[1]=girls;
/**
for(int i=0;i<human.length;i++){
for(int j=0;j<human[i].length;j++){
System.out.println(human[i][j]);
}
}
*/
for(int[] teams:human){
for(int mm:teams){
System.out.println(mm);
}
}
}
}
12.JDK1.6在线中文文档JDK1.6档