JavaSE学习笔记
对象的成员变量的默认值规则
数据类型 | 明细 | 默认值 |
---|---|---|
基本类型 | byte、short、char、int、long | 0 |
float、double | 0.0 | |
boolean | false | |
引用类型 | 类、接口、数组、String | null |
对象的内存
对象存放在堆内存中
Car c = new Car();
中变量c存储的是对象new Car()
在堆内存中的地址。
c.name
成员变量的数据存储在对象开辟出的内存中,也存在于堆内存中。
注意:垃圾回收
当堆内存中的类对象或数组对象,没有被任何变量引用(指向)时,就会被判定为内存中的“垃圾”。
Java存在自动垃圾回收器,会定期进行清理。
this关键字
作用:出现在成员方法、构造器中代表当前对象的地址,用于访问当前对象的成员变量、成员方法。
如:
java
Class Car{ |
封装
封装是面向对象的三大特征之一,合理隐藏,合理暴露。一般会把成员变量使用private隐藏起来。通过getter和setter方法暴露其访问。
封装加强了程序代码的安全性。适当的封装可以提升开发效率,同时可以让程序更容易理解与维护。
如:
java
Class Car{ |
成员变量和局部变量的区别
区别 | 成员变量 | 局部变量 |
---|---|---|
类中位置不同 | 在类中,方法外 | 常见于方法中 |
初始化值不同 | 有默认初始化值没有,使用之前需要完成赋值 | 没有,使用之前需要完成赋值 |
内存位置不同 | 堆内存 | 栈内存 |
生命周期不同 | 随着对象的创建而存在,随着对象的消失而消失 | 随着方法的调用而存在,随着方法的运行结束而消失 |
作用域 | 在所归属的大括号中 |
常用类和方法
String
常用方法
方法 | 说明 |
---|---|
equals() | 比较两个字符串的内容 |
equalsIgnoreCase() | 不分大小写比较两个字符串的内容 |
charAt(int index) | 获取某个索引位置的字符 |
toCharArray() | 将字符串转换为字符数组 |
substring(int beginIndex, int endIndex) | 截取一个索引区间的字符 |
substring(int beginIndex) | 从当前索引截取到末尾 |
replace(CharSequence target, CharSequence replacement) | 替换谋字符为新的字符 |
contains(CharSequence s) | 判断字符串中是否包含某个字符 |
startWith(String prefix) | 判断字符串是否以某个字符开始 |
split(String s) | 使用字符串中某个字符隔开字符串为字符串数组 |
ArrayList
常用方法
方法 | 说明 |
---|---|
add(E element) | 集合添加元素 |
add(int index, E element) | 给指定索引插入数据 |
get(int index) | 获取某个索引对应的集合元素 |
size() | 获取集合大小 |
remove(object o) | 删除集合中的元素,返会是否成功 |
set(int index, E element) | 修改集合中某个索引对应的值 |
StringBuilder
常用方法
方法 | 说明 |
---|---|
append(Objiect o) | 添加任意类型数据,可以连续添加 |
reverse() | 反转内容 |
length() | 返回内容长度 |
toString() | 转换为字符串类型 |
Object
常用方法
方法 | 说明 |
---|---|
toString() | 默认是返回当前对象在堆内存中的地址信息:类的全限名@内存地址,用来重写返回对象的内容信息 |
equals() | 默认是比较当前对象与另一个对象的地址是否相同,相同返回true,不同返回false,类重写后返回对象的内容是否相等 |
Objects.equale(Object o, Object o) | 比较内容是否相同,更安全 |
System
常用方法
方法 | 说明 |
---|---|
eurrentTimeMillis() | 返回当前时间(以毫秒为单位) |
arraycopy() | 数组拷贝,(被拷贝数组,开始的位置,拷贝数组,拷贝到的位置,拷贝几个) |
exit(int status) | 终止当前运行的 Java 虚拟机,非零表示异常终 |
Math
常用方法
方法 | 说明 |
---|---|
Math.abs(-1) | 获取绝对值,返回值为1 |
Math.ceil(1.2) | 向上取整,返回值为2 |
Math.floor(1.7) | 向下取整1,返回值为1 |
Math.round(4.6) | 四舍五入,返回值为5 |
Math.max(1,2) | 获取两个int中最大值,返回值为2 |
Math.pow(2,2) | 返回a的b次幂,返回值为4 |
Math.random() | 返回0.0-1.0的随机数 |
BigDecimal
常用方法
方法 | 说明 |
---|---|
valueOf(Double d) | 将一个double类型转换为BigDecimal |
add(BigDecimal b) | 加 |
subtract(BigDecimal b) | 减 |
multiply(BigDecimal b) | 乘 |
divide(BigDecimal b) | 除 |
divide(除数,保留位数,舍入方式) | 如果除不尽使用 |
Date
常用方法
方法 | 说明 |
---|---|
getTime() | 获取时间毫秒值 |
new Date(long time) | 时间毫秒值转换为时间对象 |
setTime() | 设置日期对象的时间为当前时间毫秒值对应的时间 |
SimpleDateFormat
常用方法
方法 | 说明 |
---|---|
new SimpleDateFormat(pattern) | 日期格式化,可以用来把日期时间格式化成为我们想要的形式如:”yyyy-MM-dd HH:mm:ss” |
format(Date date) | 格式化日期对象或毫秒值返回格式化后的字符串 |
parse(String str) | 解析字符串时间成为日期对象 |
Calendar
常用方法
方法 | 说明 |
---|---|
get(Calendar.YEAR) | 获取年份 |
get(Calendar.MONTH) | 获取月,从0开始需要加1 |
get(Calendar.DAY_OF_MONTH) | 获取月(31)日 |
get(Calendar.DAY_OF_YEAR) | 获取年(365)日 |
getTime() | 获取Date日期对象 |
set(Calendar.YEAR,int year) | 修改日历的时间信息年 |
Arrays
常用方法
方法 | 说明 |
---|---|
toString(arr) | 打印数组内容 |
sort(arr) | 数组升序排序 |
java
//降序排序 |
binarySearch(arr, key) 二分搜索技术(数组必须排好序才支持)
java
/** |
Collection
常用方法
方法 | 说明 |
---|---|
boolean add(E e) | 添加元素 |
boolean remove(Object o) | 从集合中移除指定的元素 |
void clear() | 清空集合中的元素 |
boolean contains(Object o) | 判断集合中是否存在指定的元素 |
boolean isEmpty() | 判断集合是否为空 |
int size() | 集合的长度,也就是集合中元素的个数 |
Iterator |
返回此集合中元素的迭代器 |
List
- 有索引
- 可以存储重复元素
- 元素存取有序
特有方法
方法 | 说明 |
---|---|
void add(int index,E element) | 在此集合中的指定位置插入指定的元素 |
E remove(int index) | 删除指定索引处的元素,返回被删除的元素 |
E set(int index,E element) | 修改指定索引处的元素,返回被修改的元素 |
E get(int index) | 返回指定索引处的元素 |
ArrayList
LinkedList
特有方法
方法 | 说明 |
---|---|
addFirst(E element) | 添加元素到第一位 |
removeFirst() | 删除第一位元素 |
addLast(E element) | 添加元素到最后一位 |
removeLast() | 删除最后一位元素 |
getFirst() | 返回此列表中的第一个元素 |
getLast() | 返回此列表中的最后一个元素 |
Set
- 元素存取无
- 没有索引、只能通过迭代器或增强for循环遍历
- 不能存储重复元素
常用方法同#Collection
HashSet
- 底层数据结构是哈希表
- 对集合的迭代顺序不作任何保证,也就是说不保证存储和取出的元素顺序一致
- 没有带索引的方法,所以不能使用普通for循环遍历
- 由于是Set集合,所以是不包含重复元素的集
常用方法同#Collection
LinkedHashSet
继承了HashSet,所以它是在HashSet的基础上维护了元素添加顺序的功能
哈希表和链表实现的Set接口,具有可预测的迭代次序
由链表保证元素有序,也就是说元素的存储和取出顺序是一致的
由哈希表保证元素唯一,也就是说没有重复的元素
常用方法同#Collection
File
File类的构造方法
方法 | 说明 |
---|---|
File(String pathname) | 通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例 |
File(String parent, String child) | 从父路径名字符串和子路径名字符串创建新的 File实例 |
File(File parent, String child) | 从父抽象路径名和子路径名字符串创建新的 File实例 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 XZ's blog!