20.04.29
1.
- Java Applet在被浏览器加载的时候首先被执行且在applet整个生命周期中被运行一次的方法——init(),初始化方法,自然只有一次。
- Applet 是一种在 Web 环境下,运行于客户端的Java程序组件。Applet
必须运行于某个特定的“容器”,这个容器可以是浏览器本身,也可以是通过各种插件,或者包括支持 Applet的移动设备在内的其他各种程序来运行。与一般的Java应用程序不同,Applet 不是通过 main方法来运行的。Applet运行之前,先调用 Init() 方法,然后调用 start() 方法,最后调用 paint() 方法。
2.
collection类型的集合(ArrayList,LinkedList)只能装入对象类型的数据
instanceof关键字,instanceof执行时类似利用java反射机制,识别对象信息。
3.
类中静态语句块仅在类加载时被执行一次 ,静态代码块优先于主方法,且只执行一次
4.
- 虚拟机中没有泛型,只有普通类和普通方法
- 所有泛型类的类型参数在编译时都会被擦除
- 创建泛型对象时请指明类型,让编译器尽早的做参数检查
泛型的类型擦除机制意味着不能在运行时动态获取List中T的实际类型
5.
结构型模式中最体现扩展性的模式——装饰模式
6.
关于抽象类 (abstruct)
JDK 1.8以前,抽象类的方法默认访问权限为protected
JDK 1.8时,抽象类的方法默认访问权限变为default
关于接口 (interface)
JDK 1.8以前,接口中的方法必须是public的
JDK 1.8时,接口中的方法可以是public的,也可以是default的
JDK 1.9时,接口中的方法可以是private的
7.
- 静态语句块中x为局部变量,静态代码快执行完后变被释放,不影响静态变量x的值 ;
- x和y为静态变量,默认初始值为0,属于当前类,其值得改变会影响整个类运行;
- java中自增操作非原子性的 。
main方法中:
执行x–后 x=-1
调用myMethod方法,x执行x++结果为-1(后++),但x=0,++x结果1,x=1 ,则y=0
x+y+ ++x,先执行x+y,结果为1,执行++x结果为2,得到最终结果为3
java初始化的加载顺序为:
父类静态成员变量 父类静态代码块 子类静态成员变量 子类静态代码块 父类非静态成员变量,父类非静态代码块,父类构造函数,子类非静态成员变量,子类非静态代码块,子类构造函数
8.
成员变量,存放在堆区;
方法中的局部变量,存放在栈区 ;
- 方法区:又叫静态存储区,存放class文件和静态数据,线程共享;
- 堆区:只存放类对象,线程共享;
- 栈区:存放方法局部变量,基本类型变量区、执行环境上下文、操作指令区,线程不共享;
9.
ArrayList(数组)和LinkedList (链表)均实现了List接口;
ArrayList访问速度比LinkedList快;
HashMap实现Map接口,它允许任何类型的键和值对象,并允许将NULL用作键或值。
10.
-
常用的servlet包的名称:javax.servlet、javax.servlet.http
-
javax.servlet 包中包含了 7 个接口 ,3 个类和 2 个异常类 , 它们分别是 :
接口: 是RequestDispatcher, Servlet, ServletConfig, ServletContext, ServletRequest, ServletResponse和 SingleThreadModel
类: GenericServlet,ServletInputStream 和 ServletOutputStream
异常类: ServletException 和 UnavailableException