变量--是一个程序执行的最小单位
变量的格式:数据类型 变量名称=初始值;
java中的数据类型
(1).基本数据类型
byte short int long float char boolean
(2).复合数据类型
1.基本数据类型的转换
1.boolean不参与基本数据类型转换的
2.基本数据类型精度的排序
byte short char int long float double
3.隐式数据转换类型【自动数据类型转换】
数据类型精度地的转换成数据类型精度高的这个过程就是隐式数据类型转换【自动数据类型转换】
低 --->高 隐式数据类型转换【自动数据类型转换】
例如:
public class DataType{
public static void main(String args[]){
//低--->高 隐式数据类型转换【自动数据类型转换】
int intnum=100;
double dou=intnum;//int被隐式转换成double
System.out.println("dou=="+dou);
double dou2=100;//整数默常量是int 100被隐式转换成double
System.out.println("dou2=="+dou2);
}
}
4.显示数据类型转换【强制数据类型转换】
数据类型精度高的转换成数据类型精度低的这个过程就是显示数据【强制数据类型转换】
高 ---> 低 显示数据类型转换【强制数据类型转换】
格式:低类型 变量名称 =(低类型)高【值或者变量】;
例如:
public class DataType{
public static void main(String args[] ){
//高-->低 显示数据类型转换【强制数据类型转换】
//小数常量默认是double
//将小数转换成整数不会"四舍五入"
double dounum=12.8;
int intnumber=(int) dounum;//double被强制转换为int
System.out.println("intnumber=="+intnumber);
int intnumber1=(int)12.8f;//float被强制转换为int
System.out.println("intnumber1=="+intnumber1);
}
}
注意 :
double dou1=12.5;
int num1=dou1; //错误: 不兼容的类型: 从double转换到int可能会有损失
5.char与int的转换
char的取值范围就是整数
char--->int 隐式数据类型转换【自动数据类型转换】
int--->char 显示数据类型转换【强制数据类型转换】
例如:
public class DataType{
public static void main(String args[] ){
//char与int的转换
//char--->int 隐式数据类型转换【自动数据类型转换】
char ch='家';
int intnum=ch; //隐式数据转换
System.out.println("intnum=="+intnum);
//int--->char 显示数据类型转换【强制数据类型转换】
int intnum1=23478;
char ch1=(char) intnum1;//强制数据转换
System.out.println("ch1=="+ch1);
}
}
6.int与byte的转换
byte转换成int---隐式数据类型转换【自动数据类型转换】
int转换成byte---显示数据类型转换【强制数据类型转换】
(1)当整数int转换成byte时,int取值正数超过byte范围以后,会从byte最小值向前推进计算。
(2)当整数tin转换成byte时,int取值负数超过byte范围以后,会从byte最大值向后推进计算。
参考图片:
例如:
public class DataType{
public static void main(String args[] ){
//int与byte的转换
//byte--->int隐式数据类型转换【自动数据类型转换】
byte bytenum=120;
int intnum=bytenum;//隐式数据类型转换
System.out.println("intnum=="+intnum);
//int--->byte显示数据类型转换【强制数据类型转换】
int intnum1=129;
byte bytenum1=(byte) intnum1; //显示数据类型转换
System.out.println("bytenum1=="+bytenum1);
int intnum2=-130;
byte bytenum2=(byte) intnum2;//显示数据类型转换
System.out.println("bytenum2=="+bytenum2);
}
}
2.Java中的运算符
1.赋值运算符 =
例如: int num=100;
2.算数运算符 【+ - * / %[求余] ++[自动加1] --[自动减1]】
例如:
public class YunSuanFu{
public static void main(String args[]){
int num=10;
int num1=3;
//+ 1.进行加法运算 2.连接符号
System.out.println("num+num1=="+(num+num1));
System.out.println("num-num1=="+(num-num1));
System.out.println("num*num1=="+(num*num1));
System.out.println("num/num1=="+(num/num1));
System.out.println("num%num1=="+(num%num1));
//当参数算术运算的数据是整数是,运算结果就是整数
//++【自动加1】
//变量++【先用后加1】
//System.out.println(num++);
//System.out.println(num);
//++变量【先加1后用】
//System.out.println(++num);
//System.out.println(num);
//--【自动减1】
//变量--【先用后减1】
//System.out.println(num--);
//System.out.println(num);
//--变量【先减1后用】
System.out.println(--num);
System.out.println(num);
}
}
3.比较运算符 【> < >= <= == != 】
例如:
public class YunSuanFu{
public static void main(String args[]){
//比较运算符 【> < >= <= == !=】运算结果为boolean
int a=15;
int b=20;
System.out.println(a+">"+b+"=="+(a>b));
System.out.println(a+"<"+b+"=="+(a="+b+"=="+(a>=b));
System.out.println(a+" <="+b+"=="+(a <=b));
System.out.println(a+"=="+b+"=="+(a==b));
System.out.println(a+"!="+b+"=="+(a!=b));
}
}
4.逻辑运算符 【|| && ! 】
例如:
public class YunSuanFu{
public static void main(String args[]){
int a=15;
int b=20;
//逻辑运算符【|| && !】使用逻辑运算符的数据是boolean值
//【短路或】|| 运算符号的左边为true时,右边不需要计算,结果为true
System.out.println((a1);
//【短路与】&& 运算符号的左边为false时,右边不需要计算,结果为false
System.out.println((a>b)&&(10/0)>1);
//! 求反
System.out.println(!(a>b));
}
}
位运算符 【 | & ! ~ ^ >> << 】
位运算符需要将数据转换成2进制【0010010】数据进行运算
掌握10进制转2进制:短除法【笨方法】 8421码转换法
1024 521 256 128 64 32 16 8 4 2 1
7=4+2+1 0 0 0 0 0 0 0 0 1 1 1 -----00000111
13=8+4+1 0 0 0 0 0 0 0 1 1 0 1------00001101
负数的2进制:实质上补码表示 正数的补码是本身
负数的补码是反码+1
反码的表示方法是: 正数的反码是其本身【源码】
负数的反码是在其源码的基础上,符号位不变,其余各个位取反。
源码就是表示符号位加上真值的绝对值,即用第一位表示符号,其余位表示值。
-7--7的2进制--00000111--【负数的源码】10000111--【负数的反码】11111000--11111001
| 按位或 相同位只要一个为1即为1
【7 | -7】 【01--1 10--1 11-1】
00000111
11111001
11111111
& 按位与 相同1为1,不同为0.
【7 % -7】【11--1 00--1 01--0 10-0】
00000111
11111001
00000001
^ 按位异或 相同位不同则为1,相同则为0
【7 % -7】【01--1 10--1 11--0 00--0】
00000111
11111001
11111110
~ 取反 0和1全部取反
<< 左移位 2进制整体向左移动指定的位数
7<<2
>>右移 2进制整体整体向右移动指定的位数
7>>2
例如:
public class YunSuanFu{
public static void main(String args[]){
int a=15;
int b=20;
//位运算符 | & ! ~ ^ >> <<
System.out.println(7 | -7);
System.out.println(7 & -7);
System.out.println(7 ^ -7);
System.out.println(7<<2);
System.out.println(7>>2);
}
}
5.三元运算符【(判断)? 数据值1 : 数据值2】
先判断,判断结果为true,整运算表达式的结果去数据值1
先判断,判断结果为false,整运算表达式的结果取数据值2
例如:
public class YunSuanFu{
public static void main(String args[]){
int a=15;
int b=20;
//()? 数据值1:数据值2【2选1】
char ch1=(a>b)?'t' :'f';
System.out.println("ch1=="+ch1);
}
}
3.Java中的语句
1.顺序结构【写好的代码从上往下一行一行的逐个执行】
2.选择结构【if语句 switch语句】
例如:if语句
public class IfDemo{
public static void main(String args[]){
//if(判断){java代码}【只选对的】
//先执行判断,true时执行{java代码},false是不执行
int code=60;
if(code>=60){
System.out.println("及格");
}
}
}
public class IfDemo{
public static void main(String args[]){
//if(判断){java代码1}else{java代码2}【2选1】
//先执行判断,true时执行{java代码1},false时执行{java代码2}
int code=59;
if(code>=60){
System.out.println("及格");
}else{
System.out.println("不及格");
}
}
}
public class IfDemo{
public static void main(String args[]){
//if(判断1){java代码1}else if(判断2){java代码2}.........else{java代码n}【多选1】
//先执行判断1,判断1true时执行{java代码1},false时执行判断2,判断2为true时{java代码2}
//所有的判断都为false,则执行最后一个else中的{java代码n}
int code=71;
if(code>=60 && code<=79){
System.out.println("及格");
}else if(code>=80 && code<90){
System.out.println("良好");
}else if(code>=90 && code<=100){
System.out.println("优秀");
}else{
System.out.println("不及格或者有错");
}
}
}
public class IfDemo{
public static void main(String args[]){
//判断1位true,执行判断2,判断2为true时执行java代码1,判断2位false是执行java代码2
//判断1位false,执行判断3,,判断3为true是执行java代码3,判断3为false时执行java代码4
int code=59;
if(code>=60){
if(code>=80){
System.out.println("优秀");
}else{
System.out.println("良好");
}
}else{
if(code>=0){
System.out.println("不及格");
}else{
System.out.println("不能为负数");
}
}
}
}
例如:switch语句
public class Switch{
public static void main(String args[]){
//switch语句
int num1=10;
int num2=3;
char op='+';
switch(op){
case '+':System.out.println(num1+"+"+num2+"="+(num1+num2));
case '-':System.out.println(num1+"-"+num2+"="+(num1-num2));
case '*':System.out.println(num1+"*"+num2+"="+(num1*num2));
case '/':System.out.println(num1+"/"+num2+"="+(num1/num2));
default:System.out.println("运算有误");break;
}
}
}



