一、环境变量配置:
set JAVA_HOME=D:\Java
set CLASSPATH=D:\Java\lib\dt.jar;D:\Java\lib\tools.jar;
set path=%path%;D:\Java\bin;.
%path%表明引用原有的path变量值。
二、
1.标识符:用于给程序中常量、变量、方法、类、接口和包等命名的符号
规则:由字母、数字、下划线或美元符号组成;由字母、下划线或美元符号开头、不能以数字开头;不能与关键字、布尔值(true、false)、null同名;区分大小写,没有长度限制,坚持见名知义原则
标识符为什么不能以数字开头?
答:如果一个标识符以数字开头,并且其他字符也都是数字的话,如123,那它究竟是变量名呢,还是常量值呢?
2.关键字:程序中特殊用途的符号,由系统定义,有固定含义;程序员不能其定义为标识符。简单说,就是java这门语言自己占下的标识符,有它自己的特殊用途。
true、false、null 不是关键字,是常量值。
Class、String、main是关键字吗?
小写class是关键字,关键字全部是小写。String是字符串的类名,main是主方法名
三、数据类型
基本数据类型
数值型:整数类型(byte、short、int、long)浮点类型(float、double)
引用数据类型
类(class)、接口(interface)、数组
基本数据类型取值范围:
基本类型 大小 取值范围
booolen 1字节8位 true、false
byte 1字节8位有符号整数 -128--+127
short 2字节16位有符号整数 -32768(-2 15次方)-- +32767(+2 15次方 -1)
int 4字节32位有符号整数 -2 31次方 --- +2 31次方 -1
long 8字节64位有符号整数 -2 63 次方 --- +2 63次方 -1
char 2字节16位unicode字符 0 --- 2 16次方-1
float 4字节32位浮点数
double 8字节64位浮点数
说明:1.char占2个字节而不是占1个字节 采用unicoce编码(支持世界上所有语言的字符)
2.float类型的数值后面有一个后缀F,例如:3.45F,没有后缀F的浮点数值默认为double类型
3.byte类型占一个字节,是整数类型的一种
4.所有数据类型长度固定,不随硬件软件系统不同而不同
5.String类型不是基本数据类型,而是引用数据类型。String是一个类
四、数据类型转换
转换规则:低级别->高级别
赋值时的数据类型转换
自动类型转换:将低级别类型赋值给高级别类型时,将进行自动类型转换
byte b =7;
int i=b; //b自动转换成int型
强制类型转换:将高级别类型赋值给低级别类型时,必须进行强制类型转换
五、字符串
检测两个字符串是否相等用equals(),检测两个字符串是否相等而不区分大小写,可以使用equalslgnoreCase(),一定不能使用==运算符,这个运算符只能确定两个字符串是否被放置在同一个位置
六、数组
数据类型 [ ] 数组名 = new 数据类型[数组长度]
定义数组时不指定长度,分配空间时指定数组长度,否则会出现编译错误
数组的内存分配:
int [ ] scores;时将在栈内存中为scores分配内存空间,其值是一个不确定的值
执行scores = new int [5];时将在堆内存中分配连续5个空间,每个空间结4个字节,用于存放整型数据,其初始值为0,然后将该段空间首地址,也就是第一元素的地址簿,比如为0x3000,赋给scores变量。该地址相当于一个指针,指向堆内存中分配的空间。如果此时在将null值赋给scores时,scores变量将不再指向任何位置,此时堆内存中分配的空间就变成了垃圾,由垃圾回收器负责在某一时间进行回收。
在方法中定义的变量,包括基本数据类型变量和引用数据类型变量,都将在栈内存中分配空间。当超过变量的作用范围之后,这里的变量会马上回收,所占用空间将另作它用。通过new创建的数组及对象,将在堆内存中分配空间。同时还可以在栈内存中定义一个引用变量,取值为分配的数组或对象空间的首地址,用来实现对数组或对象内容的访问。当堆内存这里的内容变成垃圾后,将由垃圾回收器负责自动回收,释放所占用的内存空间。回收的时机是确定的。