1.类变量(static)在不设置初始值时,会进行默认值赋值,而局部方法中声明的变量则必须进行初始化,它不会进行默认值赋值
2.了解forward,redirect:
URL:统一资源定位符,又是也被俗称为网页地址
http://www.runoob.com/index.html?language=cn#j2se
-
协议为(protocol):http
-
主机为(host:port):www.runoob.com
-
端口号为(port): 80 ,以上URL实例并未指定端口,因为 HTTP 协议默认的端口号为 80。
-
文件路径为(path):/index.html
-
请求参数(query):language=cn
-
定位位置(fragment):j2se,定位到网页中 id 属性为 j2se 的 HTML 元素位置 。
1.从地址栏显示来说
forward是服务器请求i资源,服务器直接访问目标地址的URL,把哪个URL的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道浏览器发送的内容从哪里来,所以他的地址栏还是原来的地址
redirect是服务器根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,所以地址栏显示的是新的URL
2.从数据共享来说
forward:转发页面和转发到的页面可以共享request里面的数据
redirect不能共享数据
3.从运用地方来说
forward:一把用于用户登录的时候,根据用户转发到响应的模块
redirect:一般用于用户注销登录时返回主页面和跳转到其他的网站
4.从效率来说
forward:高
redirect:低
3.
二维数组的声明
4.
对象的序列化:
Java平台允许我们在内存中创建可复用的Java对象,但一般情况下,只有当JVM处于运行时,这些对像才可能存在,即,这些对象的生命周期不会比JVM的生命周期更长。但子啊显示应用中,就可能要求在JVM停止运行之后能够保存(持久化)的对象,并在将来重新读取被保存的对象。
使用Java序列化,在保存对象时,会把其状态保存为一组字节,在未来,再将这些字节组装成对象。必须注意的是,对象序列化保存的是对象的"状态",即它的成员变量。对象序列化不会关注类中的静态变量
将Java对象或数据结构通过序列化机制转换成二进制字节流传输到网络其他结点或存储介质上
声明ObjectOutputStream和ObjectInputStream可以将第项进行传输
注意:
1.基本数据类型的变量可以直接序列化
2.对象要被序列化,它的类必须要实现Serializable接口,
如果一个类中有引用类型的变量,这个引用类型的变量的类也必须实现Serializable接口。如果这个引用类型的变量不想被实例化,则用transient修饰
5.
Integer是类,默认值是null
6.
String.valueOf(m) : 是将m(char类型)转化为String
char 只有转化到int 才会转化成assic码
7.
yiled方法属于高风亮节的行为,这个坑位我不上了,后面跟我同级别的先上厕所。这样比较好记!
高优先级的就是你们的县长,县长要上厕所,对不起,你得出来,县长先上,县长上完了,CPU分配到你了,你才能继续拉X。
进程是有优先级的。如果即将被运行的进程的优先级比正在运行的进程的优先级高,则系统可以强行剥夺正在运行的进程的CPU,让优先级高的进程先运行
8.
1.Bootstrap ClassLoader 负责加载$JAVA_HOME中jre/lib/rt.jar里所有的class,由C++实现,不是ClassLoader子类
2.Extension ClassLoader
负责加载java平台中扩展功能的一些jar包,包括$JAVA_HOME中jre/lib/*.jar或-Djava.ext.dirs指定目录下的jar包
3.App ClassLoader
负责记录classpath中指定的jar包及目录中class
4.Custom ClassLoader
属于应用程序根据自身需要自定义的ClassLoader
加载过程中会先检查类是否被已加载,检查顺序是自底向上,从Custom ClassLoader到BootStrap ClassLoader逐层检查,只要某个classloader已加载就视为已加载此类,保证此类只所有ClassLoader加载一次。而加载的顺序是自顶向下,也就是由上层来逐层尝试加载此类。
9.
如果子类没有声明任何构造函数,还是会调用Parent的构造函数
没有声明的话,系统会自动声明一个没有参数的构造器,还是会调用父类的
10.
Boolean flag = false; if(flag = true){//if((flag = true)==true),这里会拆箱 sout("true"); }
11.
创建线程的方法:1)从Java.lang.Thread类派生一个(就是继承)新的线程类,重写它的run()方法;2) 实现Runnable接口,重写Runnable接口中的run()方法。
12.
java.lang包中不能被继承的类:
public final class Byte
public final class Character
public static final class Character.UnicodeBlock
public final class Class<T>
public final class Compile
public final class Double
public final class Float
public final class Integer
public final class Long
public final class Math
public final class ProcessBuilder
public final class RuntimePermission
public final class Short
public final class StackTraceElement
public final class StrictMath
public final class String
public final class StringBuffer
public final class StringBuilder
public final class System
public final class Void
public final class Boolean