switch(expr1)的控制语句类型
- expr1只能是byte,short,int,char,不能是long,String ,因为byte,short会自动向上转型为int,long不能自动转型为int为丢失掉精度。
jsp与servlet的区别
- jsp是servlet的技术扩展,servlet的应用逻辑是在java文件中,并且完全从表示层的HTML文件中分离开来。
- 而jsp是HTML和Java文件的合并。
- jsp更加强调的是逻辑视图,servlet主要用于逻辑控制。
单例设计模式 -->懒汉式
public class SingletonLazy {
//懒汉式 让调用此方法的对象来创建该类的对象
//1.私有化构造方法
private SingletonLazy(){};
private static SingletonLazy s;
//声明此方法为类方法
public static SingletonLazy getSingletonLazy() {
if (s == null) {
s = new SingletonLazy();
}
return s;
}
}
单例设计模式 -->饿汉式
public class SingletonHungry {
//饿汉式
//1.私有化构造方法
private SingletonHungry(){};
//2.自己创建本类对象对外提供访问方法
private static SingletonHungry hungry = new SingletonHungry();
public static SingletonHungry getSingletonHungry() {
return hungry;
}
}
垃圾回收器的基本原理(gc)
对于GC来说,当程序员创建对象时,GC(垃圾回收器)就开始监控这个对象的地址,大小以及使用情况。通常GC通过有向图的方式来记录和管理堆(heap)中的所有对象。通过这种方式确定哪些对象是“可达的”,哪些对象是“不可达的”;当GC确定对象为“不可达时”,GC就有责任回收这些内存空间。程序员可以手动使用System.gc()通知GC运行,但是java语言规范并不保证GC一定会运行。
对适配器模式的理解
/**
* 定义一个接口
*/
public interface Person {
public void eat();
public void sleep();
public void exercise();
}
/**
* @author JasonYu
* 定义适配器实现该接口
*/
abstract class PersonAdaptor implements Person {
//定义适配器,方法全部为空
@Override
public void eat() {
}
@Override
public void sleep() {
}
@Override
public void exercise() {
}
}
/**
* @author JasonYu
* 重写适配器中的某一个方法
*/
public class AdaptorDemo extends PersonAdaptor {
//去继承适配器重写其中的某一个方法
@Override
public void sleep() {
System.out.println("人有睡觉的功能...");
}
}