`

笔记(自用)

 
阅读更多
poi创建excel流程
   创建webbook(对应excel),创建sheet(工作簿),创建表头,填充数据,保存excel文件
java堆和栈:
   堆是一个动态的数据区,类的对象从中分配空间,由垃圾回收收回空间,动态分配,效率较低。
   栈存取速度快,数据可共享,数据大小、生存周期必须是确定的,灵活性差,主要用来存放基本类型。
java多线程:
   java多线程三种方式,继承Thread类,实现Runable接口,使用ExecuterService,Callable,Future实现有返回结果的多线程。
servlet并发处理
当请求来临时,servlet容器会初始化对应的servlet。如果多个请求同时访问的是同一个servlet,Servlet容器会创建多个线程同时调用servlet的service()方法来处理这些请求,而不是多个servlet实例。
如果给service方法设置了synchronized关键字,servlet容器则是序列化请求依次通过service方法。
但如果servlet实现了SingleThreadModel接口(此时,这个servlet只能一次处理一个请求),那么servlet容器会根据请求的数量创建多个servlet的实例(每个servlet实例相当于一个线程),并调用servlet的service方法来处理请求。
java classloader
当JVM(Java虚拟机)启动时,会形成由三个类加载器组成的初始类加载器层次结构:

       bootstrap classloader
                |
       extension classloader
                |
       system classloader
bootstrap classloader -引导(也称为原始)类加载器,它负责加载Java的核心类(jre/lib下的jar)。
extension classloader -扩展类加载器,它负责加载JRE的扩展目录(JAVA_HOME/jre/lib/ext或者由java.ext.dirs系统属性指定的)中JAR的 类包
system classloader -系统(也称为应用)类加载器,它负责在JVM被启动时,加载来自在命令java中的-classpath或者java.class.path系统属性或 者 CLASSPATH操作系统属性所指定的JAR类包和类路径。
hibernate
    三种状态:临时,持久,游离
    对于get和load的根本区别,一句话,hibernate对于load方法认为该数据在数据库中一定存在,可以放心的使用代理来延迟加载,如果在使用过程中发现了问题,只能抛异常;而对于get方法,hibernate一定要获取到真实的数据,否则返回null。
   

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics