{
public static void main(String[] args)
{
int a = 8; int b = 3;
//a++ = 9; ++a = 9; --a = 7; a-- = 7;
int x = a++;
//x = a; a = a+1;
int y = ++a;
//a = a+1; y = a;
//x = 8; y = 9;
System.out.println(a);
System.out.println(b);
}
}
基本数据类型 有8个 一个字节占8个二进制位 首位是判断正负的符号 0是正 1是负
整数类型
字节类型 byte 1字节
短整型 short 2字节
整形 int 4字节
长整形 long 8字节
浮点类型 输入的小数是默认的双精度
单精度 float 4字节 赋值单精度时 float f = 3.1f;
双精度 double 8字节
字符类型 char 2字节
逻辑类型 boolean 1字节 boolean t = true; boolean f = false;
引用类型
变量 String 字符串 String name = "中间的长度是无限的可以随便输入";
数组
接口
数据类型之间的转换
小的数据类型可以向大的数据类型隐式转换,大的数据类型向小的数据类型转换时必须强制转换,要保持不丢精度,小得数据类型没有数据溢出。
byte<short<int<long
long<float(转换时隐式转换)
float<double
int 转 char (根据ASCII表转换,逆转同理) 'a'=97; 'A'=65; '0'=48;
char<String
整数向字符型数据转换时,要按照ASCII码表进行转换。
public class number
{
public static void main(String [] arges)
{
byte b = 1;
short s = 12;
int i = 123;
long l = 12345;
long ll = 1234567890123456789l;
float f = 3.12f;
double d = 5.123;
char c = '我';
char a = '1';
char y = 1;
boolean t = true;
System.out.println(b);
System.out.println(s);
System.out.println(i);
System.out.println(l);
System.out.println(ll);
System.out.println(f);
System.out.println(d);
System.out.println(c);
System.out.println(a);
System.out.println(y);
System.out.println(t);
String name = "我的名字";
System.out.println(name);
//单行注释
/*多行注释
数据类型的转换小数据类型可以向大的数据类型隐式转换
*/
b=s; s=i; i=l; l=f; f=d; 都是隐式转换 name=c;
l=(byte)b;
i=c;隐式转换 不溢出
c=(char)i; 根据ASCII转化
}
}
赋值运算符是所有运算符中优先级第二低的运算符,最低的是后++ 后--。
算术运算符 + - * / %
自加 自减运算 ++ --
int a =8;
int b =3;
a+b = 11; a-b = 5; a*b = 24; a/b = 2; a%b = 2;
a ++ = 9; ++ a = 9; a -- = 7; -- a = 7;
int x = a ++;
x = a;
a = a + 1;
int y = ++ a;
a = a +1;
y = a;
x=8;
y=9;
字符串与任何数据类型相加是 数据的 拼接
String num = "123";
println (num + 123); 输出的是 123123
println (num + 123 +1); 输出的是 123124
println (123 + 1 + num); 输出的是 124123
运算顺序是从前往后的
println (num + ());
byte a = 3;
byte b = 4;
byte c = a + b;
是会报错的 因为在运算时 会把数据类型转换成 int 数据类型的 会转换的类型有 byte short char
汉字转换或者其他的事物在进行运算时 会转换成unicode码
public class ZuoYe
{
public static void main(String[] args)
{
double a = 123.5678;
double b = (double)(a * 100);
b = b + 0.5;
int c = (int)b;
//double d = (double) c/100;
double d = c / 100.0;
//前式得到的是一个float类型,后式得到的是整形。
//原因:因为()优先级大于除/,所以(int)(a*100+0.5)的结果是一样的,都是int型;然 //后分母不同,得到的类型自然不同
//double a = 123.567; a = (a*100+0.5)/100.0;
System.out.println(d);
}
}
1.标识符
(1)概念:java中,给类名、变量名、方法名、数组名、文件名起名字的有效字符序列
(2)合法的标识符
a.由字母、数字、下划线、美元符号组成,且首字符不能以数字开头
b.不能以关键字和保留字作为标识符
c.对大小写敏感
(3)关键字和保留字
48个关键字
2个保留字
2.变量、常量、数据类型
(1)常量:程序运行时,容器里的数据不能被改变,如数字、true、false
(2)数据类型
根据数据类型所占用的内存空间不同,1字节占8个二进制位(bit)
a.基本数据类型
byte 字节整型 约束:整数,1字节,-128--127
short 短整型 约束:整数,2字节,-2的15次方--2的15次方-1
int 整型 约束:整数,4字节,-2的31次方--2的31次方-1
long 长整型 约束:整数,8字节,-2的63次方--2的63次方-1
float 单精度浮点类型 约束:小数,4字节,-2的31次方--2的31次方-1
double 双精度浮点类型 约束:小数,8字节,-2的63次方--2的63次方-1
、
char 字符类型 约束:字符,2个字节,有且仅有一个字符,必须用''引起
boolean 逻辑类型 约束:true/false,占1bit
b.引用数据类型
数组
类:String(字符串)
接口
(3)变量
a.变量的声明
数据类型 变量名;
说明:数据类型约束了该变量,只能存放该类型的数据,且决定了该变量的取值范围
b.变量的赋值
变量名 = 数据;
说明:等号左右两边的数据类型保持一致
c.变量的使用
System.out.println(变量名);
运算
3.数据类型的转换
(1)自动类型转换
小的数据类型 赋值 给大的数据类型,会自动提升为大的数据类型
(2)强制类型转换
大的数据类型 赋值给 小的数据类型,必须强制转换为小的数据类型,且小的容器能够容纳大的数据
注意:字符--整数:ASCII
4.运算符
(1)算术运算符
+ - * / % ++ --
注意: 前++的优先级大于赋值运算符
后++的优先级小于赋值运算符
所有的byte、short、char进行运算的时候数据类型会自动提升为int类型
字符串与任何数据类型相加,是拼接