一、Java标识如何命名
-
标识符就是名字,包括变量名,类名,方法名
-
Java标识符命名规则:由数字,字母,$组成,不能以数字开头,不能是关键字
abstract | continue | for | new | switch |
---|---|---|---|---|
assert | default | goto | package | synchronized |
boolean | do | if | private | this |
break | double | implements | protected | throw |
byte | else | import | public | throws |
case | enum | instanceof | return | transient |
catch | extends | int | short | try |
char | final | interface | static | void |
class | finally | long | strictfp | volatile |
const | float | native | super | while |
-
Java关键字全部小写
-
goto和const是Java关键字,但不能使用
三、Java中的变量
-
变量就是值可变
-
分为局部变量和成员变量
-
注意事项:局部变量使用前必须初始化,就是明确赋值,它没有默认值;成员变量有默认值。
四、Java的数据类型
-
Java语言提供11种数据类型,8种基本类型,3种引用类型,分别是:类、数组、接口
-
Java语言的8个基本类型
-
boolean
-
byte
-
char
-
short
-
int
-
long
-
float
-
double
-
-
Java语言的3个引用类型
-
类
-
数组
-
接口
-
-
五、基本类型的长度与使用规则
-
Java中的数字,区分正负
-
boolean布尔型,值只能是true或false,不能是0或非0.长度不明确
-
byte 字节型,长度是1个字节,8位,表示的数的范围:-128~127
-
char 字符型,长度是2个字节,16位,使用Unicode编码,没有负数,表示数的范围:0~65535
-
short 短整型,长度是2个字节,16位,表示数的范围是:-32768~32767
-
int 一般整型,长度是4个字节,32位
-
long长整型,长度是8个字节,64位,long类型后可以L或小写l,如果数值超过了int的最大值,L或l是必须的
-
float 浮点数,就是小数,长度是4个字节,32位,值后面必须加F或f
-
double浮点数,长度是8个字节,64位
-
-
整数默认类型是int,小数默认类型是double
六、基本类型转换规则
低级类型转为高级类型,自动转换;高级类型转为低级类型,强制转换。boolean不能参与转换
低级类型 》》》》》》》》》》》》》》》》》》高级类型
byte -> short -> int -> long -> float -> double
char->int
七、引用类型
-
共三种:类,数组,接口
-
以对象的形式存在
-
内容的逻辑划分
-
栈 先进后出;存放局部变量,由操作系统管理
-
堆 new出来的对象全部放在堆区。new的时候在堆区开辟新的内存单元,内存单元有唯一的编号,每次new都会长生一个新的编号,也就是对象的地址
-
全局数据区 放全局数据,比如:static变量
-
代码段 放程序代码
-
八、Java垃圾回收机制
-
垃圾:无用的对象,仍占据内存空间,这就是垃圾
-
Java自动垃圾回收:new出来的对象放在堆区,程序员无需自己回收,JVM会自动回收,减轻程序员负担
-
垃圾回收:Garbage Collection 简称GC
-
Java种有没有可能存在内存泄漏?有可能
-
能不能用System.gc()强迫JVM进行垃圾回收?不能强制,只是建议JVM做垃圾回收
九、Java值传递
-
基本类型值传递
基本类型传值,其实就是值的复制过程,把num的值80,复制一份给形参count,在half方法里,count的值变成了40,相当于复印件变成了40,原件num的值依然是80。
public class Test1 {
public int half(int count) {
count = count / 2;
return count;
}
public static void main(String[] args) {
int num = 80;
Test1 test1 = new Test1();
int result = test1.half(num);
System.out.println("num的值是" + num);
System.out.println("返回值是" + result);
}
} -
引用类型值传递
引用类型传递也是复制过程,只是复制的是对象的地址
十、面试题
-
goto和const是不是Java关键字?
是Java关键字
-
局部变量使用注意什么?
使用前要先赋值
-
局部变量有没有默认值?
没有默认值
-
Java中能否用汉字当变量,方法名字?
可以
-
float数据的f或F能不能省去?
不能
-
Java基本类型转换规则是什么?
低级转高级自动转换,高级转低级强制转换
-
简述JavaGC机制
new出来的对象放在堆区,程序员无需自己回收,JVM会自动回收,减轻程序员负担
-
能否用System.gc()强迫JVM进行垃圾回收?
不能,只是建议JVM进行垃圾回收
-
内存的逻辑划分是哪些?各存储什么?
栈:存储局部变量
堆:new出来的对象全部放在堆区,每new一个,就会产生一个新的编号
全局数据区:放全局变量
代码段:放程序
-
基本类型和引用类型值传递的特点是什么?
基本类型是复制的值,引用类型复制的是地址
十一、任务
-
交换数字:a=20,b=30要求:不使用中间变量
public class Exchange {
public static void main(String[] args) {
int a = 20;
int b = 30;
a = a^b;
b = a^b;
a = a^b;
System.out.println("a的值是"+a +"b的值是"+b);
}
}