从零开始学习Java,Day1
1. java命名(标识符)规范
命名规则
不能以数字开头
Java严格区分大小写,长度无限制
以26字母,0-9,_或$组成
命名格式
包名:多单词组成所有字母都小写,xxxyyyzzz
类名、接口名:多单词首字母大写,XxYy
变量名、方法名:第一个单词小写,之后单词首字母大写,xxxYyyyZzzz
常量名:所有字母大写,以_分隔 XXX _YY
2.数据类型
基本数据类型:
byte,short,int,long,float,double,char,boolean
float表示带小数点的数值,表示范围大于long,但精度较低
引用数据类型:
class,interface,array([ ])
char:2字节
自动转换
优先级:char、byte、short > int > long > float > double;
前三者转化为int后运算,结果为int类型
强制类型转化
(int)longNum
原地交换数据
int num1,num2;
num1 = num1 ^ num2;
num2 = num1 ^ num2;
num1 = num1 ^ num2;
3.流程控制
循环:
break,continue 可指定循环
label:for(int i = 0 ; i < 2; i++){
break label;
}
分支
4. 数组Array
属性:
1.引用数据类型
2.创建数组内存中连续的空间,数组名引用的是首地址
3.长度固定
4.有序排列
初始化
1.静态初始化:数组初始化和赋值同时进行: int[] a = new int[]{1,2,3,4};
2.动态初始化:数组的初始化和赋值分开:String[] str = new String[4];
3.默认初始化值:
数字:0;char:0 (\u0000);引用数据类型:null;
4.类型推断,省略new:int[] a = {1,2};
内存分配
int[] arr = new int[]{1, 2, 3};
其内存分配:
1.arr作为局部变量 (类方法)存放于栈中,在堆中开辟连续空间并初始化,将首地址(16进制)值传递至arr,在初始化之后的数组空间上赋值。
2.作用域运行完后,arr出栈,对应堆空间由垃圾回收机制回收(引用计数算法)。
二维数组
1.静态初始化:int[][] a = new int[][] {{1,2,3}, {4,5}};
2.动态初始化:String[][] arr1 = new String[3][2]; String[][] arr2 = new String[3][](堆上三个元素,访问内层需赋值);
3.打印数组首位外层元素为地址值,其他为null
int[][] arr = new int[4][3];
System.out.println(arr[0]); //[I@15db9742 ( [ 表示一维数组、I 表示为整形)
System.out.printlin(arr); // [[I@6d06d69c ( [[ 表示为二位数组 )