Object类
System.gc强制释放空间(释放空间时会先调用finalize()方法)。
equals()是方法,不是运算符。重写equals方法以后比较的是两个实体内容是否相等
String、Date、File、包装类重写了Object的toString方法,调用toString()方法时返回实体内容。
基本数据类型转换为包装类
基本数据类型转换包装类:调用包装类构造器;基本数据类型没有默认值,包装类型有
int num1 = 10;
Integer integer1 = new Integer(num1);
System.out.println(integer1.toString());
Integer integer2 = new Integer("123");
System.out.println(integer2.toString());
Float aFloat = new Float(12.2);
System.out.println(aFloat);
包装类转换为基本数据类型:调用包装类型xxxValue;包装类型不能进行运算(类对象)
Integer integer = new Integer(12);
int i = integer.intValue();
System.out.println(i + 1);
JDK5.0自动装箱、拆箱
int num = 10;
Integer ni = num;//自动装箱
int nn = ni;//自动拆箱
基本数据类型、包装类型--->String类型(valueOf)
float f1 = 12.3f;
String str2 = String.valueOf(f1);//12.3
Double dou = new Double(12.12);
String s = String.valueOf(dou);//12.12
String类型--->包装类型、基本数据类型(parseXXX)
String ni = "10";
Integer i = Integer.parseInt(ni);
System.out.println(i + 1);
int u = Integer.parseInt(ni);
System.out.println(u);
包装类练习,判断成绩 · master · 权* / java基础例题 · GitCode
面试题:
多态的理解:实现代码的通用性。
JDBC:使用java程序操作(获取数据库连接、CRUD)。
多态是编译行为还是运行时行为?
运行行为。(左编译右运行)
static关键字
静态的,修饰属性、方法、代码块、内部类;多个对象共享同一个静态变量;通过一个对象修改静态变量时,会导致其他调用时时修改过的;静态变量是属于类的;使用类.静态变量调用。
属性是可以被多个对象共享,不随着对象的不同而不同。
工具类中的方法习惯声明为static,Math、Arrays、Collections。
单例设计模式
对某个类只能存在一个对象,构造器访问权限设计为private,调用该类的静态方法返回内部创建的对象,该类的对象变量定义成静态的。
单例模式饿汉式;对象加载时间过长、线程安全。
public static void main(String[] args) {
Bank bank = Bank.getInstance();
}
static class Bank {
//私有化构造器
private Bank() {
}
//内部类创建对象
//对象声明为静态
private static Bank instance = new Bank();
//提供公共静态方法,返回公共对象
public static Bank getInstance(){
return instance;
}
}
单例模式懒汉式;延迟对象创建、线程不安全。
public static void main(String[] args) {
Bank bank = Bank.getInstance();
}
static class Bank {
private Bank() {
}
//声明类对象
private static Bank instance = null;
public static Bank getInstance() {//给方法加锁||加对象锁(if语句)
if (instance == null){//当第一个线程进入阻塞状态
//第二个线程可能就会进入另外new一个对象
instance = new Bank();
}
return instance;
}
}
单例模式应用场景:网站计数器、应用程序日志应用、数据库连接池、读取配置文件的类、任务管理器、回收站。
静态代码块:初始化类
static {//静态代码块,随着类的加载而加载,只执行一次
System.out.println("hello");
}
final(最终的)关键字
修饰类,不能被其他类继承;修饰方法,不能重写方法;修饰变量,显示初始化、代码块中初始化、构造器中初始化;修饰局部变量(常量)修饰形参时表明是常量
final int WIND = 0;
final int LED;
final int EIGF;
{//代码块中初始化
LED = 1;
}
public Person() {//构造器中初始化
EIGF = 2;
}