文章目录
- JAVA基础
-
- 一、Java特性
- 二、标识符规则
- 三、局部变量和成员变量的区别?
- 四、静态变量和实例变量的区别?
- 五、Java的数据类型?
- 六、自动类型转换
- 七、强制类型转换
- 八、基本类型转换常见的错误和问题
- 九、运算符
- 十、键盘输入
- 十一、switch语句中case标签
- 十二、break和continue区别
- 十三、重载和重写
- 十四、Java参数传值机制
- 十五、封装的定义
- 十六、四种访问权限修饰符
- 十七、this关键字
- 十八、static 关键字
- 十九、this和super的区别
- 二十、完整的执行流程
- 二十一、final关键字
- 二十二、接口和抽象类的区别
- 二十三、多态
- 二十四、==和equals的区别
- 二十五、String,StringBuffer,StringBuilder的区别
- 二十六、final,finally,finalize的区别
- 二十七、int和Integer有什么区别?
- 二十八、Java和JavaSciprt?
- 二十九、&和&&的区别?
- 三十、什么是值传递和引用传递?
- 三十一、十进制的数在内存中是怎么存的??
- 三十二、Object类中方法
- 三十三、hashCode()和equals()的关系
- 三十四、为什么要重写hashCode()和equals()
- 三十五、String类有哪些方法
- 三十五、String可以被继承吗
- 三十六、new和""使用
- 三十七、字符串拼接
- 三十八、泛型
- 三十九、序列化作用
- 四十、类中的静态变量为什么不会被序列化
- 四十一、序列化注意事项
JAVA基础
一、Java特性
1、跨平台/可移植性
2、安全性
3、面向对象
4、简单性
5、高性能
6、分布式
7、多线程
8、健壮性
二、标识符规则
1、标识符必须以字母、下划线_、美元符号 $ 开头
2、标识符其他部分可以是字母、下划线_、美元符号 $ 和数字的任意组合。
3、Java标识符大小写敏感,且长度无限制
4、标识符不可以是Java关键字
三、局部变量和成员变量的区别?
(1)定义位置不同
(1.1)局部变量定义在方法中
(1.2)成员变量定义在类中,方法之外
(2)占用的内存空间不同
(2.1)局部变量存储在栈区中
(2.2)非静态成员变量存储在堆区中,静态成员变量存储在方法区中的全局数据区里
(3)生命周期不同
(3.1)局部变量的作用范围是定义该变量的一对{}
(3.2)非静态的成员变量随着对象的创建而存在,随着对象的消失而消失
静态成员变量随着类的加载而存在,随着程序结束,JVM卸载时销毁
(4)初始值不同
(4.1)局部变量没有默认的初始值,使用前必须要先初始化
(4.2)成员变量有默认的初始值
四、静态变量和实例变量的区别?
(1)位置和生命周期不同
静态变量—加载类时,在全局代码区分配空间,随着类的卸载而销毁,与是否存在对象实例无关
实例变量—创建对象时,在堆区分配空间,随着对象的销毁而销毁
(2)数量不同
静态变量—全局唯一,只有一份,每个对象共享使用
实例变量—每个对象内部各自一份,内容互不相同
(3)调用格式不同
静态变量—可以使用类名.或对象名.的形式调用,推荐使用类名调用
实例变量—必须使用对象名.的形式调用
五、Java的数据类型?
(1)3类8种基本数据类型:
数值型 - byte(1字节)、short(2字节)、int(4字节)、long(8字节)、float(4字节)、double(8字节)
字符型 - char(2字节)
布尔型 - boolean
引用数据类型:
类
接口
数组
字符串
(2)占用的内存空间不同
基本数据类型的变量和对应的数据都存放在栈空间中
引用数据类型的数据存在于堆空间中,而引用型变量存在于栈在空间中,相当于一个指针指向堆空间的某个对象,存储的对象在堆空间中的首地址
(3)生命周期不同
基本型数据的作用范围是定义它的一对{}内,一旦出了大括号的范围,基本类型数据就被销毁
引用型数据的作用范围是从创建对象开始(new),一旦数据没有被任何引用变量引用(null),则对象成为垃圾,一旦被垃圾回收器回收,引用类型数据就被销毁
六、自动类型转换
黑色表示无数据丢失的自动类型转换
红色表示转换时可能有精度丢失
七、强制类型转换
高精度变量转换为低精度变量,可能造成精度损失。
八、基本类型转换常见的错误和问题
1、操作比较大的数时,要留意是否溢出,尤其是整数操作时
2、long型变量
九、运算符
逻辑运算符 | 符号 | 说明 |
---|---|---|
逻辑与 | & | 两个操作数为true,结果才是true,否则是false |
逻辑或 | l | 两个操作数有一个是true,结果就是true |
短路与 | && | 只要有一个是false,则直接返回false |
短路或 | ll | 只要有一个是true,则直接返回true |
逻辑非 | ! | 取反:!true是false,!false是true |
逻辑异或 | ^ | 不同是true,相同是false |
位运算符 | 说明 |
---|---|
~ | 取反 |
& | 按位与 |
l | 按位或 |
^ | 按位异或 |
<< | 左移运算符,左移1位相当于乘2 |
>> | 右移运算符,右移1位相当于除2取商 |
十、键盘输入
nextLine | 输入一行字符串 |
next | 遇到第一个空白符为止的字符串 |
nextInt | 输入数字 |