一、单引号括起来的是字符,双引号括起来的是字符串
二、变量的数据类型
1、两大类:基本数据类型、引用数据类型
基本数据类型(4类八种):数值型(byte:1个字节,short:2字节,int:4字节,long:8字节),浮点型(float,dubbo),字符型(char),布尔型(boolean)
引用数据类型:类,接口,数组
byte 1 (-128~127)
short 2(-32768~32767)
int 4
long 8
1Byte = 8bit
1KB = 1024Byte
1MB = 1024KB
1GB = 1024MB
整数在Java中有三种表示方法
十进制(常用的)
八进制(从0开始)
十六进制(从x0开始)
Java中任何一个整数,默认类型都是int
//十进制
int l1 = 10;
//八进制,已0开头
int l2 = 010;
//十六进制,已x0开头
int l3 = 0x10;
System.out.println(l1+l2+l3); //34
//自动类型转换,小容量-->大容量
// int-->long
long t1 = 10;
//不需要类型转换
long t2 = 10L;//加个l表示长整型
long t3 = 2147483647;
long t4 = 2147483648;//int类型的最大容量为2147483647,超出去就会报错,只需要在后面增加一个l就可以
2、如果整数没有超出范围,可以直接将这个整数赋值给byte,short,char
/*
关于byte,short,int,long
如果整数没有超出范围,可以直接将这个整数赋值给byte,short,char
*/
byte s1 = 10;
byte s2 = 127;//byte的容量范围是-128~127,整数没有超过最大范围时,可以直接赋值给byte
//整数超出了最大范围,即大容量像小容量转换时需要强制转换,强制转换的弊端:丢失精度
byte s3 = (byte)128;
System.out.println(s3);//-128 强制转换为负的最大值
byte s4 = (byte)156;
System.out.println(s4); //-100 强制转换成-100,丢失了精度
short s1 = 32767; //short的容量范围是-32768~32767
short s2 = (short)32768;
System.out.println(s2);
short s3 = (short)32999;
System.out.println(s3);
3、
关于char类型,最大取值范围为:0~65535==>2^16
即可以把数字赋值给char类型,也可以字符赋值给char类型
char类型中有字符编码方式:
基本的编码是ASCII:
'a' 97
'A' 65
'0' 48
char c1 =10;
char c2 = 'a';
System.out.println(c2);//a
char c3 = '中';
System.out.println(c3);//中
// char c4 = '中国';//char两个字符长度,一个汉字占两个字符长度,所有'中国'四个字符长度,会报错
char c5 = 65535;
char c6 = (char)65536;//超出最大取值范围会报错,采用强制转换
System.out.println(c6);//[]
4、浮点型:类型:folat,double
float 4字节
double 8字节
Java中的小数默认的类型都是double类型
如果想表示float类型,必须在后面添加F/f
double d1 = 3.25;
float f1 = 3.25f;//float表示,必须在后面加F/f
float f2 = (float)3.25;//大容量转换成小容量,强制转换
System.out.println(f2);
5、boolean类型一个直接,只有两个值,true,flase
一般用于判断语句
6、char类型
1、char在Java中表示字符,描述的是显示世界中的文字
2、因为计算机只识别二进制,所以必须引入"字符集编码方式"
3、导致程序乱码原因:编码和解码不一致
4、char底层占用两个字符,编码方式采用的是unicode(UTF-16)进行编码
5、汉字占用两个字符,所以char可以存储一个汉字
7、基本数据类型的转换关系
|-- 八种基本数据类型中,只有boolean类型不能参加类型转换
|-- 小容量向大容量转换,叫做自动类型转换
byte<short(char)<int<long<float<double
|-- byte,short,char三种类型做混合运算先转换成int类型在做运算
|-- 大容量向小容量转换,叫做强制转换,需要加强制类型转换符
|-- 如果整数没有超出范围的话,可以直接将整数赋值给byte,short,char
|-- 多种数据类型做混合运算先转换成容量大的那种在做运算
三、算术运算符
/*
算术运算符:
+ 求和
- 相减
* 乘法
/ 除法
% 取余数
++ 自加1
-- 自减1
*/
public static void main(String[] args){
int a =10;
int b = 3;
System.out.println(a+b);// 13
System.out.println(a-b);// 7
System.out.println(a*b);// 30
System.out.println(a/b);// 3
System.out.println(a%b);// 1
//关于++运算符
int i= 10;
i++;
System.out.println(i);
int j = 10;
++j;
System.out.println(j);
//这两种情况下++放在前面和放在后面是一样的
//++出现在变量后面,先赋值后加1,++出现在变量前面,先加1后赋值
int x = 10;
int y=x++; //++出现在了x之后,即x的值10先赋值给y,则y的值变成了10,然后在+1
System.out.println("y=="+y);//10
System.out.println("x=="+x);//11
int m = 10;
int n = ++m;
System.out.println("m=="+m);//11
System.out.println("n=="+n);//11
}
四、关系运算符
> < >=等等,关系运算符一定是布尔类型的
五、布尔运算符
六、字符串的连接运算符