javac-d的参数的用途是指定编译后类层次的根目录
application能被同一个应用程序的所有用户访问,所以当前用户的信息就不宜保存在application中
session会话对象,一个会话只可能是一个用户的,生命周期默认30分钟,也可以自行定义,当前会话结束(如关闭浏览器),当前session被销毁。所以当前用户的信息应该保存在session中
HashCode方法与equals方法的关系如下:
如果两个对象相等,那么他们一定有相同的哈希值
如果两个对象的哈希值相等,那么这两个对象有可能相等也有可能不相等,需要再次equals比较
如果String类型的=是一个空串,再次分割之后,它的数组长度就是1
jps:查看本机java进程信息
jstack:打印线程的栈信息,制作线程dump文件
jmap:打印内存映射,制作堆dump文件
jstat:性能监控工具
jhat: 内存分析工具
jconsole: 简易的可视化控制台
jvisualvm: 功能强大的控制台
byte+byte=int,低级向高级是隐式类型转换,高级向低级必须强制类型转换,byte<char<short<int<long<float<double
ThreadLocalMap中使用开放地址法来处理散列冲突,而HashMap中使用的是分离链表法。之所以采用不同的方式主要是因为:在ThreadLocalMap中的散列值分散得十分均匀,很少会出现冲突。并且ThreadLocalMap经常需要清除无用的对象,使用纯数组更加方便
jsp中的九大内置对象
out->response.getWriter
request ->Service方法中的req参数
response ->Service方法中的resp参数
session ->request.getSession
application ->getServletContext
exception ->Throwable
page ->this
pageContext ->PageContext
Config ->getServletConfig
在同一个类中调用普通方法时,是直接调用方法名即可,但是调用构造方法需要用到this关键词
同步器是一些使线程能够等待另一个线程的对象,允许它们协调动作。最常用的同步器是CountDownLatch和Semaphore,不常用的是Barrier 和Exchanger
修饰非静态方法 锁的是this 对象
修饰静态方法 锁的是class对象