Java:
关于final,finally,finalize的区别:
final:修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。
finally:异常处理时提供finally块来执行任何清楚操作。如果抛出一个异常,那么匹配的catch子句就会执行,然后控制就会进入finally块(如果有的话)。一般异常处理块需要。
finalize:方法名。Java技术允许使用finalize()方法在垃圾收集器将对象从内存中清除出去之前并做必要的清理工作。这个办法是由垃圾级收集器在确定这个对象没有被引用时对这个对象调用的。它是在Object类中定义的,因此所有的类都继承了它。子类覆盖finalize()方法以整理系统资源或者执行其他清理工作。finalize()方法是在垃圾收集器删除对西藏之前对这个对象调用的。
注意:Java中所有类都从Object类中继承finalize()方法。当垃圾收集器(garbage colector)决定回收某对象时,就会运行该对象的finalize()方法。
jvm中垃圾回收分为scanvenge gc和full GC,其中full GC触发的条件可能有哪些?
答:①老年代满 ②持久代满 ③System.gc()
解析:
①新生代:(1)所有对象创建在新生代的Edem区,当Edem区满后触发新生代的Minor GC,将Edem区和非空闲Survivor区存活的对象赋值到另外一个空闲的Survivor区中。(2)保证一个Survivor区是空的,新生代Minor GC就是在两个Survivor区之间相互复制存活对象,知道Survivor区满为止。
②老年代:当Survivor区也满了之后就通过Minor GC将对象复制到老年代。老年代也满了的话,就将触发Full GC,针对整个堆(包括新年代、老年代、持久代)进行垃圾回收。
③持久代:持久代如果满了,将触发Full GC。
CSS:
1)<meta name="viewport" content="width=device-width;initial-scale=1.0;maximum-scale=1.0;user-scalable=0;"/>
//强制让文档的宽度与设备的宽度保持1:1
//文档初始化缩放比例是1:1
//不允许用户点击屏幕放大浏览
//允许用户缩放到的最大比例
//尤其要注意的是content里多个属性的设置一定要用逗号+空格来隔开,如果不规范将不会起作用。其他属性有:width;height;initial-scale;minimum-scale;maximum-scale;user-scalable;
2)<meta name="apple-mobile-web-app-capable" content="yes"/>
//iPhone私有标签,它表示:允许全屏模式浏览
3)<meta name="apple-mobile-web-app-status-bar-style" content="black"/>
//iPhone私有标签,它指定的iPhone中Safari顶端的状态条的样式
4)<meta name="format-detection" content="telephone=no;email=no"/>
//不识别邮件和不把数字识别为电话号码
一个HTTP请求返回的HTTP状态码中,304表示:如果客户端发送了一个带条件的GET请求且该请求已被允许,而文档的内容(自上次访问以来或者根据请求的条件)并没有改变,则服务器应当返回这个状态码。 307表示:临时重定向。