访问权限
线程–Thread、Runnable
线程调用start()启动,调用run()运行。run()方法当作普通方法的方式调用。程序还是要顺序执行,要等待run方法体执行完毕后,才可继续执行下面的代码, 这样就没有达到写线程的目的。
垃圾回收机制
垃圾回收主要针对的是堆区的回收,而栈区的内存是随着线程而释放。
堆分成三个区:年轻代(Young Generation)、年老代(Old Generation)、永久代(Permanent Generation,也就是方法区)
new放YG,Minor GC后还存在放OG。
年老代:就是上述年轻代移动过来的和一些比较大的对象。Minor GC(FullGC)是针对年老代的回收
- 方法调用时,会创建栈帧在栈中,调用完是程序自动出栈释放,而不是gc释放
- 永久代(Permanent Generation)存储类信息,常量,静态变量,即时编译器编译后代码等
永久代:存储的是final常量,static变量,常量池。
数组和对象在没有引用变量指向它的时候,才变为垃圾,不能再被使用,但仍然占据内存空间不放,在随后的一个不确定的时间被垃圾回收器收走(释放掉)。
HttpServletRequest功能:
request.getCookies();
request.getHeader(String s);
response.setContentType(“text/html;charset=utf-8”);
request.getContextPath();/request.getServletPath();
HttpServletResponse
- 设定响应的content类型
- 设置session
- 设置Cookie
- 设置HTTP头标
response.setHeader("Refresh","3"); //三秒刷新页面一次
- 输出返回数据
HttpServleteResponse.getOutputStream().write();
JVM理解泛型概念 —— 类型擦除
GBK编码字节流到UTF-8编码字节流的转换:dst=new String (src,”GBK”).getbytes(“UTF-8”)
CallableStatement继承自PreparedSatement,PreparedStatement继承自Statement
线程局部存储TLS(thread local storage)
- 解决多线程中的对同一变量的访问冲突的一种技术
- TLS会为每一个线程维护一个和该线程绑定的变量的副本
- Java平台的java.lang.ThreadLocal是TLS技术的一种实现
接口的成员特点
A:成员变量 只能是常量。默认修饰符 public static final
B:成员方法 只能是抽象方法。默认修饰符 public abstract
final关键字
1.final修饰变量,则等同于常量
2.final修饰方法中的参数,称为最终参数。
3.final修饰类,则类不能被继承
4.final修饰方法,则方法不能被重写。
java和C++
java是一次编写多处运行,c++是一次编写多处编译
只有单继承,接口可以多继承
Java中没有指针,只有引用