TCP/IP分为几层。
TCP/IP四层模型运算符优先级(i++)
public static void main(String[] args){
int i=0;
i=i++ + ++i; //i=2;
int j=0;
j=++j + j++ + j++ + j++; //j=7;
int k=0;
k=k++ + k++ + k++ + ++k; //k=7;
System.out.println("i="+i);
System.out.println("j="+j);
System.out.println("k="+k);
}
分析:先执行i++,但是i自增1操作是稍后才执行,所以此时i的值还是0,然后执行++i,++i后i的值是1,执行完++i后要补增i++,所以此时i的值才为2,0+2=2所以i的值为2
public static void main(String[] args){
int i=0;
for(int i=0;i<100;i++){
j=j++;
}
System.out.println(j);
}
分析:输出结果为0。java用了中间缓存变量的机制,所以j=j++可换成如下写法:
temp=j;
j=j+1;
j=temp;
英文介绍自己经常访问的技术网站,你是怎么使用和自己的收获。
-
error和Exception区别
Error和Exception都继承自Throwable;
error 表示系统级的错误和程序不必处理的异常,是恢复不是不可能但很困难的情况下的一种严重问题;比如内存溢出,不可能指望程序能处理这样的情况; exception 表示需要捕捉或者需要程序进行处理的异常,是一种设计或实现问题;也就是说,它表示如果程序运行正常,从不会发生的情况。
Error的继承关系:
Exception的继承关系:
Java 中异常类的继承关系图:
参考:
java面试宝典
异常机制 String和StringBuff和StringBuilder
String是不可变的对象, 因此在每次对String 类型进行改变的时候,都会生成一个新的 String 对象,然后将指针指向新的 String 对象,所以经常改变内容的字符串最好不要用 String ,因为每次生成对象都会对系统性能产生影响,特别当内存中无引用对象多了以后, JVM 的 GC 就会开始工作,性能就会降低。
使用 StringBuffer 类时,每次都会对 StringBuffer 对象本身进行操作,而不是生成新的对象并改变对象引用。
基本原则:如果要操作少量的数据,用String ;单线程操作大量数据,用StringBuilder ;多线程操作大量数据,用StringBuffer。
参考:
http://blog.csdn.net/kingzone_2008/article/details/9220691
http://blog.csdn.net/xlgen157387/article/details/44302455九九乘法表。
class Jiujiu
{
public static void main(String[] args)
{
for(int i=1;i<=9;i++)
{
for(int j=1;j<=i;j++)
{
System.out.print(i+"*"+j+"="+i*j+" ");
}
System.out.println();
}
}
}
- 毕达哥拉斯三元组求解。