1.java为什么是跨平台语言?
因为java执行的是.class文件,java.exe加载到虚拟机中执行,针对不同的平台(操作系统),sun公司提供了针对不同平台的JVM, JVM屏蔽底层硬件还有操作系统大差异。
2,
byte b1=3,b2=4,b;
b=b1+b2;
b=3+4;
哪句是编译失败的呢?为什么呢?
b=b1+b2;编译失败。原因:类型不匹配:不能从int转换为byte。因为b1,b2是变量,不确定它的值,所以默认使用int型进行存储。
3,
byte b = 130;有没有问题?如果我想让赋值正确,可以怎么做?结果是多少呢?
练习:byte b = 300;
byte b=130;
有问题,类型不匹配,不能从int转换为byte。byte类型的数据表示范围为-128~127,超出范围,130为整型数据。
强制类型转换:byte b=(byte)(130);结果b=-126;因为将表示范围看成一个环,127之后从-128开始第三个就是-126. (130-127)-1+(-128)=-126
byte b=300;
同上,类型不匹配,不能从int转换为byte,300为整型表示的数据范围。
强制类型转换,byte b=(byte)(300);将300转换为byte表示的范围,300-256=44;b=44;
public class J_01
{
public static void main(String[] args)
{
int a = 10;
int b = 10;
int c = 10;
a = b++;//a=10,b=11;
c = --a;//a=9,c=9;
b = ++a;//a=a+1=10,b=a=10;
a = c--;//a=c=9,c=c-1=8;
//a=9,b=10,c=8;
System.out.println("a="+a+";b="+b+";c="+c);
int x = 4;
int y = (x++)+(++x)+(x*10);//解答:y=4+5+50=59;此时x经过++x之后变为有4变为5,然后‘;’结束之后x++生效:x=x+1=6;
System.out.println("x="+x+";y="+y);//结果输出后自我更正:y=4+6+60=70;原因:(x++)括号完毕之后x=x+1=5;(++x)后:x=6;
/* * 优质解答: * a=x++ b=++x y=a+b+(x*10) a=4 x=5 x=6 b=6 y=4+6+(6*10)=70 */
boolean d=false;
int k=9,m=3;
if(d=true)
{
System.out.println("d=true");//d=true
}
if(k<10)
{
System.out.println("k<10");//k<10
}
if(m<4)
{
System.out.println("m<4");//m<4
}
else if(m<=5)
{
System.out.println("m<=5");
}
else
{
System.out.println("k>=10");
}
}
}
int i = 4;
switch (i) {
default:
System.out.println("default");
case 0:
System.out.println("zero");
break;
case 1:
System.out.println("one");
case 2:
System.out.println("two");
}
//default zero
//&
int x = 1,y = 1;
if(x++==2 & ++y==2)
{
x =7;
}
System.out.println("x="+x+",y="+y);
//x=2,y=2
//&&
int output=10;
boolean b1 = false;
if((b1==true) && ((output+=10)==20)){
System.out.println("We are equal "+output);
}else{
System.out.println("Not equal! "+output);
}
//not equal!10
boolean b = true;
if(b=false)
System.out.println("a");
else if(b)
System.out.println("b");
else if(!b)
System.out.println("c");
else
System.out.println("d");
//c
int j=1;
do{
System.out.println(j);
}while(++j<3);
//1 2
/** * if(b=false)将b赋值为false,if中为false所以不会执行if后的语句 */