1datetype
//基本数据类型包括4类(共8种)
//Java数据类型包含:基本数据类型和引用数据类型
//引用数据类型包括:类、接口和数组,
public class DataType{
public static void main(String args[]){
//变量:程序执行过程中变量的值可以改变
//作用:用来存放数据的,方便对数据的操作
//定义格式:
/*
数据类型 变量名称 = 值;
*/
/*
基本数据类型 关键字 占得字节数 默认值
字节型 byte 1 0
短整型 short 2 0
整形 int 4 0
长整型 long 8 0L
单精度浮点型 float 4 0.0F
双精度浮点型 double 8 0.0
字符型 char 2 '\u0000'
布尔型 boolean 1位 false
*/
//字节型:byte 占一个字节
byte b=100;
System.out.println("b="+b); //+的作用将""中的内容和b的值拼接起来
b=127; //只能表示-128到127
System.out.println("b="+b);
//短整型:short 占2个字节
short s=10000;
System.out.println("s="+s);
//s=100000; //超出最大值
//整型:int 占4个字节
int i=100000;
System.out.println("i="+i);
//i=10000000000;
//长整型:long 占8个字节
long l=10000000000L; //整型数字面量的默认类型是int,表示long后面加上l或L
System.out.println("l="+l);
//单精度浮点数:float 占4个字节
float f = 0.123456789F; //小数字面量的默认类型是double,表示float加f或F
System.out.println("f="+f);
//双精度浮点数:double 占8个字节
double d = 0.12345678999;
System.out.println("d="+d);
//字符型:char 占2个字节(采用的是unicode编码)
char c = 'a'; //将字符用单引号括起来
System.out.println("c="+c);
c = 97;
System.out.println("c="+c);
c='中';
System.out.println("c="+c);
//转义字符:有以\开头的字符,\的作用将后面字符的意义改变了
c='\t'; //\n \b \r
System.out.println("c="+c+"]");
c='\''; //输出单引号、双引号、\
System.out.println("c="+c);
//c='\a'; //非法的转义字符
//布尔型:boolean 取值范围:true,false,用1位表示就够了
boolean flag = true;
System.out.println("flag="+flag);
flag=false;
System.out.println("flag="+flag);
//常量:程序执行过程中常量的值不能修改
//定义常量使用final
final double PI = 3.14;
System.out.println("PI="+PI);
//PI=3.14159; //常量赋值以后不能修改
//String类型不是基本类型,但是比较常用
String str = "好好学习";
System.out.println("str="+str);
}
}
//这是注释版的程序
/*
注释的作用:提高代码的可读性
辅助程序调试
//注释写在文件开头处或需要说明的内容附近
*/
public class Test1{
//下面定义一个main()方法,它是程序的入口地址
public static void main(String args[]){ //static 是一个关键字
System.out.println("Test"); //输出的内容写在“”中
}
}
//数据类型转换
public class TypeCast{
public static void main(String args[]){
//数据类型转换有两种情况:自动类型转换和强制类型转换
//自动类型转换的条件
//1.类型兼容
//2.表示范围扩大
//自动类型转换一般不会出现问题
//优先级由低到高:byte short char int long float double
byte b=100;
int i=b;
System.out.println("i="+i);
float f=b;
System.out.println("f="+f);
//强制类型转换
// (要转的数据类型)值
//可能会出现问题
byte b2 = (byte)i;
System.out.println("b2="+b2);
b2 = (byte)3.14F;
System.out.println("b2="+b2); //3 小数点后被舍弃
b2 = (byte)128;
System.out.println("b2="+b2); //-128 取最低一个字节,高位被舍弃
double d=129.95;
i = (int)d;
System.out.println("i="+i);
b2 = (byte)d;
System.out.println("b2="+b2);
}
}
//运算符
public class Calculate{
public static void main(String args[]){
//算数运算符:+、-、*、/、%、++、--
int a=3;
int b=2;
int c=a+b;
System.out.println("c="+c);
c=a%b; //取与、求模
System.out.println("c="+c);
//自增:++
//前缀++:自身先增加,然后再其他操作
//后缀++:先其它操作,再自身增加
c=a++;
System.out.println("c="+c); //3
System.out.println("a="+a); //4
c=++a;
System.out.println("c="+c); //5
System.out.println("a="+a); //5
//自减:--
//关系运算符: == != > >= < <=
//关系运算符的结果是一个布尔类型的值
a=3;b=2;
boolean flag = a>b;
System.out.println("flag="+flag); //true
//布尔逻辑运算符:& | !^ && ||
//&: 两个值都为true 结果才为true
//|: 只要有一个值为true,结果就为true
//!: 取反 true变false false变true
//^: 相同为false 不同为true
boolean flag2= !(true^false);
System.out.println("flag2="+flag2);
//简洁与:&& 简洁或:||
//和非简洁与相比,具有短路功能
//第一个表达式结果决定最终的结果,短路功能不会去运行第二个表达式了
a=6;b=8;c=10;
int d=12;
boolean flag3 = ++a>b++ && c++>d--;
System.out.println("flag3="+flag3); //false
System.out.println("a="+a); //7
System.out.println("b="+b); //9
System.out.println("c="+c); //10
System.out.println("d="+d); //12
//练习:将以上&&改成& 或 ||
//赋值运算符:= += -= *= /= %=
a=3;b=2;
a += b; //a=a+b
System.out.println("a="+a);
//条件运算符,也称三目运算符
//(表达式1)?表达式2:表达式3
//表达式1结果是布尔类型,表达式2和表达式3类型相同
//表达式1为true,取表达式2的结果,为false时取表达式3的结果
a=3;b=2;
int result = (a<b)?1000:100;
System.out.println("result="+result); //100
//位运算符:& | ~ ^ << >> >>>
a=3;
b=2;
c = a&b;
System.out.println("c="+c); //2
c=~a;
System.out.println("c="+c); //-4
c=a<<2; //左移若干位,右边补0
System.out.println("c="+c);
a=-2;
c=a>>1; //右移若干位,左边补符号位
System.out.println("c="+c);//1
c=a>>>1; //无符号右移若干位,左边补0
System.out.println("c="+c);//1
}
}
public class Test2{
public static void main(String args[]){
int a=3;
int b=2;
int c=a/b; //两个int相除结果为int类型
System.out.println("c="+c); //1
float f=a/b;
System.out.println("f="+f); //1.0
f = (float)a/b;
System.out.println("f="+f); //1.5
f = (float)(a/b);
System.out.println("f="+f);
//()提高运算的优先级
//练习1: 输出1-a/b的值,输出(1-a)/b
c=1-a/b;
System.out.println("c="+c);
c=(1-a)/b;
System.out.println("c="+c);
byte b1=3;
byte b2=2;
byte b3 = (byte)(b1+b2); //byte运算时转成int
System.out.println("b3="+b3);
b1 += b2; //b1=(byte)(b1+b2)
System.out.println("b1="+b1);
}
}
public class Test2{
public static void main(String args[]){
int a=3;
int b=2;
int c=a/b; //两个int相除结果为int类型
System.out.println("c="+c); //1
float f=a/b;
System.out.println("f="+f); //1.0
f = (float)a/b;
System.out.println("f="+f); //1.5
f = (float)(a/b);
System.out.println("f="+f);
//()提高运算的优先级
//练习1: 输出1-a/b的值,输出(1-a)/b
c=1-a/b;
System.out.println("c="+c);
c=(1-a)/b;
System.out.println("c="+c);
byte b1=3;
byte b2=2;
byte b3 = (byte)(b1+b2); //byte运算时转成int
System.out.println("b3="+b3);
b1 += b2; //b1=(byte)(b1+b2)
System.out.println("b1="+b1);
}
}
public class Test2{
public static void main(String args[]){
int a=3;
int b=2;
int c=a/b; //两个int相除结果为int类型
System.out.println("c="+c); //1
float f=a/b;
System.out.println("f="+f); //1.0
f = (float)a/b;
System.out.println("f="+f); //1.5
f = (float)(a/b);
System.out.println("f="+f);
//()提高运算的优先级
//练习1: 输出1-a/b的值,输出(1-a)/b
c=1-a/b;
System.out.println("c="+c);
c=(1-a)/b;
System.out.println("c="+c);
byte b1=3;
byte b2=2;
byte b3 = (byte)(b1+b2); //byte运算时转成int
System.out.println("b3="+b3);
b1 += b2; //b1=(byte)(b1+b2)
System.out.println("b1="+b1);
}
}
最后更新:2017-06-05 10:01:44