package com.qianfeng.test;
/*
* 数据类型:决定了变量所占内存空间的大小,并且给变量确定了类型。
* 分类:有符号型(有0,正数,负数)和无符号型(只有0和负数)
*
* 主要研究有符号型:
* 两类:
* 1.简单数据类型
* >数值型
* >>byte 一个字节 [-2^7,2^7-1]
* >>short 两个字节 [-2^15,2^15-1]
* >>int 四个字节 [-2^63,2^63-1]
* >>long 八个字节
* >浮点型:小数--采用科学计数法
* >>float 四个字节
* >>double 八个字节
* >布尔型
* >>boolean:true false 一个字节
* >字符型
* >>char 一个字节 这里所对应的字符集是ASCII--世界通用标准 '0'--48 'A'-65 'a'--97
* 常用字符集: GBK/GB2312 中国 , ISO8859-1欧洲的, utf-8 通用标准 , unicode 内部标准
* 对于中文: 两个字节 不支持中文 三个字节 两个字节
*
* 编码:我们将字符(字符串)通过字符集转成对应的二进制形式
* 解码:反之,解码
* 乱码:在编码与解码的过程中使用的字符集不一致,造成了错误。
*
* 2.引用数据类型
*
*/
public class Demo2 {
public static void main(String[] args) {
// 数据类型的使用
//byte b = 4; //定义byte类型变量b,并初始化,赋值4
//重新赋值,覆盖4;
//b = 5;
/*
* 注意:变量赋值时,有两种描述
* 1.初始化:定义变量的同时完成赋值
* 2.赋值:单独给变量赋值
*/
//获取float型 ,long型的最大值
//所有的小数默认是 double型的,要表示float型的话,在数的后面加f
// System.out.println(Float.MAX_VALUE);
//练习字符
// char c = 'a';
// System.out.println((int)c);//得到的字符对应的ASCII码
/*
* 注意:
* 1.数据类型之间的转换
*
* 数据类型的类型的等级高低(根据数据的范围划分):从低到高 :byte,char,short,int,long,float,double
*
* 自动类型转换:从低等级到 高等级,不会造成数据的损失,但是可能浪费一些内存
* 强制类型转换:从高等级到 低等级,有可能造成数据的损失。
*
*/
//强制类型转换实例
/*int num = 128;
byte num1= (byte)num;
System.out.println(num1);
byte num2 = 20;
num2 = (byte)(num2 + 2); //整数默认是int型
char c1 = 'c';
int c2 = c1;
System.out.println((char)(c2+2));*
/*
* 运算符:
* a.从功能分类
* 1.算数运算符: +,-,*,/,%,++,--
* 2.赋值运算符: =,+=,-=,*=,/=,%=
* 3.关系运算符: >,<,>=,<=,!=,==
* 注:返回值只有true或false
* 4.逻辑运算符: &&,||,!
* 注:运算的结果是true或false 参与运算的元素也必须是true或false
* &&:全真则真,一假则假
* ||:全假则假,一真则真
* !: 假则真,真则假
*
* 短路与:当有多个&&连接时,从左往右运算,只要得到一个false,就会停止运算,整个的结果就是false
* 短路或:当有多个||连接时,从左往右运算,只要得到一个true,就会停止运算,整个结果就是false
*
*
* 5.位运算符: 直接操作的是位 &(按位与)全1则1,有0则0,
* |(按位或)全0则0,有1则1,
* ^(按位异或)参与运算的当前位,相同则是0,不同则是1,
* ~(按位取反)1就取0,0就取1
*
* 问题:为森么有了普通的运算符,还要有位运算符呢?
* 答:速度快效率高,因为直接操作的是二进制
*
* 6.移位运算符: >>1 右移一位:代表除以二 , <<1 左移一位,代表乘以二
* 注:只能用于整数的运算
*
* b.按运算符操作的元素个数分类:
* 1.一元运算符
* 2.二元运算符
* 3.三元运算符
*
*/
//System.out.println(3%-2);//余数的符号与被余数一致
/*
* ++ 默认一次增加1
* 当++在变量后面时,变量会使用当前的值先参与运算,之后再自身加一
* 当++在变量前面时,变量会先自身加一,之后使用当前的值再参与运算
*/
// int w=1,x=0,q=1,y=0;
// x=++w;
// y=q++;
// System.out.println(x+" "+y+" "+w+" "+q);
/*
* 先考虑优先级,优先级相同再考虑 结合性,先考虑优先级低的,使用排除法将优先级高的找出来,再一步步运算
* 1.先考虑 =,使用排除法,根据右结合性,先算 = 号的右边
* 2.再考虑括号外的-,+, 根据左结合性
* 3.先算n++,再算--m n=3, n++=2 m=2 --m=2
* 4.算括号里的 (1-3) n=2 u=2
* 5.算2中的-+
*/
// int n =2 ,m = 3, u = 1, o = 0;
// o = n++ - --m +(u++ - n--);
// System.out.println(n+" "+m+" "+u+" "+o);
//有两个数,t=4,h=5,要求交换两个数(通过异或)
// int t= 4, h = 5;
// t = t^h;
// h = t^h;
// t = t^h;
// System.out.println(t+" "+h);
/*
* 表达式:由变量和常量以及运算符组成的式子
* 语句:表达式+; 注:如果只有一个分好,也叫语句,叫空语句
*
* b.按运算符操作的元素个数分类:
* 1.一元运算符: ++,--,~,!,-(符号),+(正号)
* 2.二元运算符: +,-,*,/
* 3.三元运算符:三目运算符: ?: ----表达式一<表达式二 ? 变量一:变量二
*/
}
}
Java_学习2:数据类型和分支语句
猜你喜欢
转载自blog.csdn.net/fang1025780636/article/details/81213562
今日推荐
周排行