对象的成员变量的默认值规则

数据类型 明细 默认值
基本类型 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关键字

作用:出现在成员方法、构造器中代表当前对象的地址,用于访问当前对象的成员变量、成员方法。

如:

Class Car{
private String name;
public class Car(String name){
//this区分同名变量,用于访问当前对象的成员变量。
this name = name;
}
}

封装

封装是面向对象的三大特征之一,合理隐藏,合理暴露。一般会把成员变量使用private隐藏起来。通过getter和setter方法暴露其访问。

封装加强了程序代码的安全性。适当的封装可以提升开发效率,同时可以让程序更容易理解与维护。

如:

Class Car{
private String name;
private int year;

public setName(String name){
this name = name;
}

public getName(){
return name;
}
}

成员变量和局部变量的区别

区别 成员变量 局部变量
类中位置不同 在类中,方法外 常见于方法中
初始化值不同 有默认初始化值没有,使用之前需要完成赋值 没有,使用之前需要完成赋值
内存位置不同 堆内存 栈内存
生命周期不同 随着对象的创建而存在,随着对象的消失而消失 随着方法的调用而存在,随着方法的运行结束而消失
作用域 在所归属的大括号中

常用类和方法

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) 数组升序排序
//降序排序
Arrays.sort(ages, new Comparator<Integer>(){
@Override
public int compare(Integer o1, Integer o2) {
//升序
//return o1 - o2;
//降序
return o2 - o1;
}
});

binarySearch(arr, key) 二分搜索技术(数组必须排好序才支持)

/**
二分法查找算法
@param arr 排好序的数组
@param data 查找的数据
@return 索引
**/
public static int binarySearch(int[] arr, int data){
int left = 0;
int right = arr.length - 1;

while (left <= right){
if (arr[(left + right)/2] > data){
right = (left + right)/2 - 1;
}else if (arr[(left + right)/2] < data){
left = (left + right)/2 + 1;
}else {
return (left + right)/2;
}
}
return -(left + 1);
}

Collection

常用方法

方法 说明
boolean add(E e) 添加元素
boolean remove(Object o) 从集合中移除指定的元素
void clear() 清空集合中的元素
boolean contains(Object o) 判断集合中是否存在指定的元素
boolean isEmpty() 判断集合是否为空
int size() 集合的长度,也就是集合中元素的个数
Iterator iterator() 返回此集合中元素的迭代器

List

  • 有索引
  • 可以存储重复元素
  • 元素存取有序

特有方法

方法 说明
void add(int index,E element) 在此集合中的指定位置插入指定的元素
E remove(int index) 删除指定索引处的元素,返回被删除的元素
E set(int index,E element) 修改指定索引处的元素,返回被修改的元素
E get(int index) 返回指定索引处的元素

ArrayList

方法#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实例