培训第二天 变量与常量的定义、使用,运算符

来源:互联网 发布:专业服装收银软件 编辑:程序博客网 时间:2024/06/15 18:31
逐鹿须问鼎,会猎于东吴。
培训第二天
今天讲了变量与常量的定义、使用,运算符。这些比较简单,有很多变量类型其实使用频率不高。
 变量:
变量概述:内存中装载数据的小盒子(容器)。只能存数据和取数据。
 变量必须明确类型,什么类型变量装载什么类型数据。同一个变量,数据可以变化,类型不能变。
 基本类型之四类八种:
整形:
byte 1字节-128~127
short 2字节
int 4字节
long 8字节
浮点型
float 4字节
double 8字节
字符型
char
布尔型
boolean 1字节 true/false

 创建变量必须的内容:
类型 名字 数据
        int  a  = 100;
  注意事项:
    变量必须先定义,后使用。
变量定义后,不赋值无法使用。
变量名必须是合法的标识。
    变量的值以最后一次赋值为准。
变量有自己的作用范围:
有效范围只在其定义的一对大括号内。
 
 常量与类型:
整数常量是更具所在范围来确定范围。
Java中默认整数数据类型是int。
Java中,整数常量不在-2147483648~2147483648之间,必须加“L(l)后缀”变成long类型。
1.26F是float类型。
5.28D是double类型。

 
 public class Variable{
public static void main(String[] args){
//定义整数类型,字节类型,byte
//内存中1个字节,-127~128

byte b = 100;
System.out.println(b);

//定义整数类型,短整型,short
//内存中2个字节,-32768~32767
short s = 200;
System.out.println(s);

//定义整数类型,int
//内存中4个字节
int i = 1000;
System.out.println(i);

//定义整数类型,长整型,
//在内存中8个字节
long l = 50000L;
System.out.println(l);

//定义浮点数据 单精度 float
//在内存中占4个字节
float f = 1.0F;
System.out.println(f);

//定义浮点数据 双精度 double
//在内存中占8个字节
double d = 2.2D;
System.out.println(d);

//定义布尔数据 boolean
//在内存中占1个字节
boolean bool = true;
System.out.println(bool);

//定义变量,字符串类型,String,不是基本类型,而是引用类型
String str="我爱java";
System.out.println(str);

}
}






数据类型转换:
 byte——》short——》int——》long——》float——》double
 数据范围小的可以直接转为数据范围大的。(自动转换)
int i = 100;   4字节。
double d2 = i; 8字节。
4字节的数据可以放入8字节的容器中,因此可以自动转换。
布尔类型不可以转换。
 数据范围大的不能直接转换成数据范围小的。(强制转换)需要人工参与。
    被转后的数据类型 变量名 = (被转后的数据类型)要被转的数据。
不可避免地会造成数据的损失。
 强制类型转换在没要求的时候不要做,原因是会丢数据。
public class DataConvert {


public static void main(String[] args) {
//自动转换,数据范围小的可以直接转为数据范围大的。
//定义一个Double类型的变量。
double d = 1000;//出现自动类型转换,1000是int类型,自动转换成double
System.out.println(d);

//强制转换,数据范围大的不能直接转换成数据范围小的。需要人工参与。
//double类型转成int
int i = (int)d;
System.out.println(i);

byte b = (byte)200;
System.out.println(b);//结果是-56
}









运算符:用来计算数据的符号。数据可以是常量,也可以是变量。
算数运算符:
+
-
*
/
%
++
--
a++和++a的区别:
  ++写前面和后面,在变量自己独立运算时,没区别。但参与了其他运算,就有区别。
  ++在后面:先运算,后自增
  ++在前面:先自增,后运算
  
  
    赋值运算符:
=
+=
-=
*=
/=
%=

byte b = 1;
b = b+1;
system.out.println(b);
编译出错!!!
但是,b+=1;就没问题,等同于(byte)(b+1)
1是int类型,占四个字节,而b是byte类型。
比较运算符:
==
!=
>
<
>=
<=
结果只能是布尔类型。

逻辑运算符:对两个布尔类型数据运算,结果也是布尔类型
       & 一边是false,运算结果是false
| 一边是true,运算结果是true 
^ 两边相同为false,不同为true
! 取反
&& 短路与  一边是false,另一边不运行
|| 短路或 一边true,另一边不运行




三元运算符:
布尔表达式 ? 结果1:结果2
布尔表达式结果是true,三元表达式结果为结果1,否则为结果2
 public class Operator {


public static void main(String[] args) {
//算数运算符
/*  
   + 加法、连接
-减法
*乘法
除法
%取模
++自增
   --自减
*/
//+连接作用,将字符串连接
//+遇到了字符串就变成了连接符
//任何类型用加号连接字符串,最后结果都是字符串。
System.out.println("5+5="+5+5);
System.out.println("5+5="+(5+5));

//除法运算
int i = 100;
int j = 9;
System.out.println(i/j);//整数运算,得不到小数

//取模运算,获取余数
int k = 6;
int m = 4;
System.out.println(k%m);

//自增运算
int a = 3;
int b = 4;
a++;
++b;
System.out.println(a);
System.out.println(b);
int x = 5;
int y = x++;
int x1 = 5;
int z = ++x1;
System.out.println("y="+y);
System.out.println("z="+z);

/*
* 赋值运算符,将右面的值赋予左面
*  =
*  +=  i+=1;(一次运算)相当于 i = i+1;(两次运算)
*  -=
*  *=
*  /=
*  %=
*/

int c = 3;
c+=1;
System.out.println(c);

/**
* 比较运算符
*  ==
*  !=
*  >
*  <
*  >=
*  <=
*  计算结果是布尔类型
*/
int g = 3;
int h = 4;
System.out.println(g==4);
System.out.println(h==4);

/**
* 逻辑运算符:对两个布尔类型数据运算,结果也是布尔类型
& 一边是false,运算结果是false
| 一边是true,运算结果是true 
^ 两边相同为false,不同为true
! 取反
&& 短路与  一边是false,另一边不运行
|| 短路或 一边true,另一边不运行
*/
System.out.println(false&true);
System.out.println(false|true);
System.out.println(false^true);
System.out.println(false^false);
System.out.println(!false);
System.out.println("----------------------------");
int v = 2;
int u = 3;
System.out.println(3>4&&++u>3);
System.out.println(u);
System.out.println(v);
System.out.println("----------------------------");
System.out.println(3<4||++u>3);
System.out.println(u);
System.out.println(v);


/*
* 三元运算符
* 布尔表达式 ? 结果1:结果2
* 布尔表达式结果是true,三元表达式结果为结果1,否则为结果2
*/
System.out.println("*******************************");
System.out.println(3>2?1:2);
}


}
阅读全文
0 0
原创粉丝点击