JavaBean
1. javaBean 也称为实体类,其对象可以用于在程序中封装数据。
2. 标准JavaBean需满足如下书写要求 ;
3. 成员变量使用private修饰 ;
4. 提供成员变量对应的setXxx()/getXxx()方法 ;
5. 必须提供一个无参构造器;
String 常见用法和面试题
1. String 是什么,可以做什么?
字符串类型,可以定义字符串变量指向字符串对象。
2. String 是不可变字符串的原因?
a. String 变量每次的修改其实都是产生并指向新的字符对象。
b. 原来的字符串对象都没有改变的,所以称为不可变字符串。
3. 直接赋值和使用构造器的区别?
1. 以 “” 方式给出的字符串对象,在字符串常量池中存储,而且相同内容只会存储一 份;
2. 通过构造器new对象,每new一次都会产生一个新对象,放在堆内存中。
ArrayList
代表的时集合类,集合是一种容器,与数组类似,不同的是集合的大小是不固定的。
通过创建ArrayList 的对象表示得到一个集合容器,同时ArrayList提供了比数组更好用,更丰富的Api。
特点:
1. 集合大小不固定,启动后可以动态变化,类型也可以选择不固定;
2. 集合非常适合做元素不确定,且要增删操作的业务场景。
数组和集合适合的场景:
数组适合数据个数和类型确定的场景
集合适合做个数不确定,且要做增删元素的场景。
ArrayList 集合
是集合的一种,它支持索引;
集合对象的获取 new ArrayList();
添加集合元素的方法
1. add (E e),指定的元素追加到此集合的末尾;
2. add(int index, E element); 在此集合的指定位置插入指定元素;
ArrayList 泛型的支持
泛型概念
ArrayList: 其实就是一个泛型类,可以在编译阶段约束集合对象只能操作某种数据类型;
举例:
1. ArrayList :此集合只能操作字符串类型的元素
2. ArrayList: 此集合只能操作整数类型的元素,
注意: 集合中只能存储引用类型,不支持基本数据类型;
ArrayList 集合常用方法
1. public E get(int index) : 返回指定索引处的元素;
2. public int size() : 返回集合中元素的个数;
3. public E remove(int index): 删除指定索引处的元素,返回被删除的元素;
4. public boolean remove(Object o) : 删除指定的元素,返回删除是否成功;只删除第一个出现的元素 ;
5. public E set(int index,E element) : 修改指定索引处的元素,返回被修改的元素;
1, 从集合中遍历元素,并筛选出元素删除它,应该怎么解决?
从集合后面遍历删除,可以避免漏掉元素;
存储自定义类型的对象:集合中存储的元素并不是对象本身,而是对象的地址;
static 应用
工具类
类中都是一些静态方法, 每个方法都是以完成一个共用的功能为目的,这个类用来给系统开发人员共同使用; 调用方便,提高了代码复用。
工具类中的方法为什么不用实例方法;
1. 实例方法需要创建对象调用。
2. 此时用对象只是为了调用方法,这样只会浪费内存;
定义时的要求: 由于工具里面都是静态方法,直接用类名即可访问,一次,工具类无需创建对象,建议将工具类的构造器进行私有;
代码块
代码块时类的5大成分之一,定义在类中方法外 。
在java类下,使用{} 括起来的代码称为代码块。
静态代码块:
格式 static {}
特点 需要通过static 关键字修饰,随着类的加载而加载,并且自动触发,只执行一次;
使用场景 在类加载的时候做一些静态数据初始化的操作,以便后续使用;
构造代码块
格式 {}
特点 每次创建对象,调用构造器执行时,都会执行该代码中的代码,并且在构造器执行前执行;
场景 初始化实例资源;
什么是设计模式
开发中经常遇到一些问题,一个问题通常有n种解法,但其中肯定有一种解法是最优的,这个最优的解法被人总结出来,称之为设计模式。
学设计模式主要学两点:
1. 这种模式是解决什么问题 ;
2. 遇到这种问题,该设计模式是怎么写的,是如何解决这个问题的。
单例模式
可以保证史通中,应用该模式的这个类永远只有一个实例,即这个类永远只能创建一个对象。
-
饿汉单例模式:在用类获取对象的时候,对象已经提前为你创建好了 。
public class Singleinstance { private Singleinstance() {} public static Singleinstance instance = new Singleinstance(); }
实现步骤: 定义一个类,把构造器私有。 定义一个静态变量存储一个对象。
2. 懒汉单例模式
真正需要该对象的时候,才去创建一个对象(延迟加载对象)。
public class Singleinstance {
// 私有化构造器
private Singleinstance() { }
// 定义存储对象静态变量
public static Singleinstance instance;
// 定义一个生成对象的静态方法
public static Singleinstance getInstance() {
if (instance == null) {
instance = new Singleinstance();
}
return instance;
}
}
实现步骤
1. 定义一个类,把构造器私有;
2. 定义一个静态变量存储一个对象 > 3. 提供一个返回单例对象的方法;