1、try catch finally
- finally语句总是执行的,当finally中有return语句会覆盖try catch中的语句
/**
* Created by Administrator on 2020/4/20.
*/
public class testTry {
public static void main(String[] args) {
System.out.println(getValue());
}
public static int getValue(){
try {
return 0;
}finally {
return 1;
}
}
}
2、三元运算符会对两个结果的数据类型,进行自动的类型提升。
/**
* Created by Administrator on 2020/4/20.
*/
public class testJava {
public static void main(String[] args) {
Object o1 = true ? new Integer(1) : new Double(2.0);
Object o2;
if (true) {
o2 = new Integer(1);
} else {
o2 = new Double(2.0);
}
System.out.print(o1);
System.out.print(" ");
System.out.print(o2);
}
}
3、jsp静态include和动态include
静态的include:是jsp的指令来实现的,<% @ include file="xx.html"%> 特点是 共享request请求域,先包含再编译,不检查包含页面的变化。
动态的include:是jsp动作来实现的,<jsp:include page="xx.jsp" flush="true"/> 这个是不共享request请求域,先编译在包含,是要检查包含页面的变化的。
4、tar命令
-c: 建立压缩档案
-x:解压
-t:查看内容
-r:向压缩归档文件末尾追加文件
-u:更新原压缩包中的文件
-z:有gzip属性的
-j:有bz2属性的
-Z:有compress属性的
-v:显示所有过程
-O:将文件解开到标准输出
5、静态代码块和静态变量
类的加载过程:加载、连接(验证、准备、解析)、初始化。初始化过程执行的是静态代码块和静态变量,这两个的先后顺序是按代码的先后顺序执行的。
new对象先执行非静态代码块,然后执行构造方法。
public class B
{
public static B t1 = new B();
public static B t2 = new B();
{
System.out.println("构造块");
}
static
{
System.out.println("静态块");
}
public static void main(String[] args)
{
B t = new B();
}
}
6、java自增运算
public class B
{
public static void main(String[] args)
{
int i=0;
i=i++;
System.out.println(i);
}
}
7、java类的静态方法当对象为null时也可以调用成功
public class B
{
public static void main(String[] args) {
// TODO Auto-generated method stub
Test test=null;
test.hello();
}
}
class Test {
public static void hello() {
System.out.println("hello");
}
}