*常量:在程序的执行过程中其值不会改变的量。
字面值常量;
自定义常量;
class day201 {
public static void main(String[] args) {
System.out.println("Hello World!");
System.out.println('子');//一个汉字
也算一个字符,可以存储在char类型中。
char 类型取值范围,//0到65535;
System.out.println(236);
System.out.println(0.01);
System.out.println(true);
System.out.println("null");java中的关键字。
System.out.println('\\');
System.out.println(0b100);
}
}
进位制:1byte=8bit(比特位)
1k=1024b;
1M=1024k
1g=1024m
1t=1024g
500g=5oo*1000*1000*1000/1024/1024/1024约等于465g。
(电脑坑人的原因是因为厂家,不是因为电脑。)
进制:
二进制的表示形式:以0b开头,0b100;
(b可以大写也可以小写)是在jdk1.7之后才有的。
八进制的表现形式:以0开头,0100;
十进制不用管。
16进制的表现形式:以0x开头,0x100;
任意进制转十进制:
系数*基数的权次幂。
01201
系数:所在数位上的数。
基数:所要转换的数的进制。
权:从右往左编号,从0开始编号。
相加的和。
十进制转任意进制;
除基倒取余。
8421快速转换;八位的二进制都是1,
1 1 1 1 1 1 1 1
128 64 32 16 8 4 2 1
把二进制快速转换成八进制;
100 101
4 5
0010 0101
2 5
原码反码补码:(表示负数,强制类型转换)
原码:就是二进制定点表示法,即最高位为符号位,“0”表示
正,“1”表示负,其余位表示数值的大小。
负数对的反码是对其原码逐位取反,但符号位除外;
负数的补码是其反码的末位加一。
0 0000111 +7(补码)
1 1111001 -7(补码)
10 0000000(正负的相加,第八位代表的是什么呢?)
运算是以补码形式进行的。(计算机底层的计算形式)
二进制运算时,每逢二进一。
变量和数据类型转换。
<隐式转换与强制转换>。。。
*对变量的了解:在程序执行过程中其值可以发生改变的量。
变量名:合法的标识符。
变量值。定义变量的格式:
1,数据类型 变量名=变量值;
2,数据类型 变量名;
变量名=变量值;
用来不断地存储相同类型的变量。
变量的数据类型:在内存中分配不同的内存空间。
(1)基本数据类型:四类八种。
(2)引用数据类型;(类,接口,字符串。)
整数型:byte 占一个字节 -128到127
short 占两个字节
int 占四个字节。
long占八个字节
浮点型;float 占四个字节
double 占八个字节
字符型;char占两个字节
布尔型:boolean没有明确定义大小。只有true和 false。
引用数据类型:
类,接口,字符串。
byte b=10;如果long类型后面加L进行标识最好加大L,因为小l
太像一啦。
小数的默认数据类型是double。
float f=12.3f;----------------
char c='a';
boolean b1=true;
boolean b2=false;
定义在方法中的变量,为局部变量。
局部变量在使用注意;
1,作用域。同一作用域内不能重复定义变量名。
2.使用前必须赋值。
3.同一个语句可以定义多个变量。
int a,b,c,d,e;(用逗号隔开);
a=b=c=1;
数据类型转换之;
(1)隐式转换:
int x=3;
byte b=4;
x=x+b;
System.out.println(x);
(可以执行,不损失精度)
(2)强制转换:
运算时还是提升到了大的类型;
int x=3;
byte b=4;
b=(byte)(x+b);
(当超出被强转的类型的范围时会发生什么。)
隐式转换:
和定义变量是一样的:
byte b=5;(5是int类型)
强制转换:
数据类型 变量名=(要转换的数据类型) 数值
注意:
强制转换(1损失精度;2,布尔类型不能转换成其他类型)
byte b1=3;
byte b2=4;
byte b3=b1+b2;(两方面:
1:byte与byte或(short,char)进行运算的
时候会提升为int,两个int型相加也是int型。
2,变量存储值在变化,虚拟机无法确定他们的值。可能超出byte的取值
范围)
byte b4=3+4;java编译器有常量优化机制。直接算出来了7,已经
判断出了是否超出了byte的取值范围。
double大于float大于long大于int。(浮点型与整数型在java底层
表示形式不同。)
float=12.3f;
long x=12345;
f=x;//隐式转换
System.out.println(f);
x=(long)f;//强制转换
System.out.println(x);
byte,short,char,int,long,float,double.(基本数据类型
从小到大的排序)
a字符
System.out.println('a'+1);
System.out.println(char('a'+1));
System.out.println("hello"+'a'+1);//任何数据类型
用+与字符串连接都会产生新的字符串。
boolean b=true;
System.out.println("汉字"+b);
(输出结果为汉字true)
a97
A65
0 48
char类型好玩玩儿的地方
char c2=3;
char c3=4;
char c4=5;
char c5=6;
char中可以存储中文但是只能存储一个。
在java中中文用Unicode编码形式,占两个字节,char也是两个字节
所以可以存储中文。
int i=10;
byte b=(byte)i;
运算符:就是对变量和常量进行操作的符号。
运算符的分类:
算数运算符;+-*/%++--
+号有三个作用:正号,加法运算,连接字符串。
整数与小数进行运算,(如果想得到小数,一个写成小数,另一
个整数在运算的时候自动提升为double型)
赋值运算符,比较(条件)运算符,逻辑运算符,
位运算符,三元运算符。
整数相除结果只能是整数。
%运算符符号只与左边有关。
++和--的运算规则;
放在前后是不一样的规则。
练习题结果:(1)int a=10;
int b=10;
int c=10;
a=b++;
c=--a;
b=++a;
a=c--;
a=9,b=10,c=8;
2,计算x,y的值
int x=4;
int y=(x++)+(++x)+(x*10);
x=6,y=70;
b=b+1;(有错误)
++操作里包含一个强制类型转换。
当byte与int进行混合运算的时候。
赋值运算符:
int a=3;
把3赋值给a.
= += -= *= /=
+=左右两边做加法,然后把值赋值给左边。
short s=1;
s=s+1;
------------------------------------------------------
short s=1;
s+=1;//这句话隐含了 一个强制类型转换;
==,!=,<,>,<=,>=;
结果只有true和false。
==不要写成=
布尔类型的结果。 |
|