Java基础知识 02
常量
整数
小数
字符常量:单引号引起的单个字符(中英文都行)
字符串常量:双引号引起来的多个字符(中英文都行)
布尔常量:true,false null(空常量)
class ConstantDemo{
public static void main(String[] args) {
//输出字符串常量
System.out.println("Hello World!");
System.out.println("H");
//输出整数常量
System.out.println(100);
//输出小数常量
System.out.println(3.14);
//输出字符常量 单引号 一起来的 单个字符
System.out.println("AB");
System.out.println('A');
System.out.println('B');
System.out.println('你');
//输出布尔常量
System.out.println(true); //真
System.out.println(false);//假
}
}
进制转换
进制:一种进位制,比如X进制,逢X进1
字节是计算机中数据的最小单位.
1byte = 8bit 1kb = 1024byte
1M = 1024 kb 1G = 1024M
1T = 1024G 有这种0 1 组成的数据我们称之为2进制数据
8进制:把2进制数据每3位分成一组,不够的前面补0,然后把每一组数据换算成10进制,那么拼接起来形成的数据就是8进制数据。
16进制:把2进制数据每4位分成一组,不够的前面补0,然后把每一组数据换算成10进制,那么拼接起来形成的数据就是16进制数据。
特点:进制越大,数据的表现形式越短。
不同的进制数据组成:
1. 二进制:0 1
2. 八进制:0 1 2 3 4 5 6 7
3. 十进制:0 1 2 3 4 5 6 7 8 9
4. 十六进制:0 1 2 3 4 5 6 7 8 9 a b c d e f
为了区分不同的进制数据,需要加前缀来区分:
5. 二进制:0b100
6. 八进制:0100
7. 十进制:100
8. 十六进制:0x100
任意进制到十进制的转换:位权展开法!
十进制到任意进制的转换:除基取余,直到商为0,余数反转。
class JinZhi{
public static void main(String[] args) {
//输出二进制数据 0b100
System.out.println(0b100);
//输出8进制的数据
System.out.println(0100);
//输出10进制的数据
System.out.println(100);
//输出16进制的数据
System.out.println(0x100);
//最后输出的结果。全部换算成了10进制
}
}
原码反码补码
为了区分正负数,我们采用符号定位法:把一个数据转换成2进制,最高位作为符号位,0代表正数,1代表负数。
符号位 数值位
原码 0 0000111 ----> +7 正数的原码反码补码都是一样的。 计算机底层在运算时,是通过补码运算的。
原码 1 0000111 ----> -7
负数的反码:在其原码基础上,符号位不变,其余为取反,1变0,0变1.
反码 1 1111000
复数的补码:在其原码的基础上,末位+1.
补码 1 1111001
练习(1):符号位 数值位 符号位 数值位
原码: 1 0110100 补码: 1 1101110
反码: 1 1001011 反码: 1 1101101
补码: 1 1001100 原码: 1 0010010
变量
引入一个数据类型的概念。
就是在程序执行的过程中,其值可以发生变化的量。
变量其实就是在内存中开辟的一小块空间,可以用来存储数据,并且这块空间中存在的数据是可以发生变化的。
数据类型:基本数据类型和引言数据类型(后面讲)
整数型: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
(定义long类型的变量,在变量值的后面要加上一个后缀L,来表示这是一个long类型的变量值)
小数型:float:占4个字节,表示的范围:-3.403×10^38~3.403×10^38
(定义float类型的变量,在变量值的后面要加上一个后缀F,来表示这是一个float类型的变量值)
double:占8个字节,表示的范围:-1.798×10^308~1.798×10^308
布尔型:boolean:占1个字节,布尔类型的值:true,false.
字符型:char:占2个字节(字符类型的值,是单引号' '引起来的单个字符)
整数默认是int类型,小数默认是double类型。
class VariableDemo{
public static void main(String[] args) {
//定义整数类型的变量
byte num1=127;
byte num2=-128;
short num3=1000;
//定义long类型的变量,需要在变量值的后面加一个L。
long num4=10000L;
//定义小数类型的变量
//定义float类型的变量,需要在变量值的后面添加一个F。
float num5=3.141F;
double num6=15.798;
//定义布尔类型的变量
boolean a=true;
boolean b=false;
//定义字符型的变量
char ch1='A';
char ch2='B';
//输出变量的值
System.out.println(num1);
System.out.println(num2);
System.out.println(num3);
System.out.println(num4);
System.out.println(num5);
System.out.println(num6);
System.out.println(a);
System.out.println(b);
System.out.println(ch1);
System.out.println(ch2);
}
}
变量定义的注意问题:
(1)在同一个作用域内,不能定义两个同名变量。(作用域指的是同一对大括号所括起来的范围)
(2)变量没有赋值不能使用
(3)建议一行上面定义一个变量
class VariableDemo2{
public static void main(String[] args) {
//定义变量的注意事项
//1.在同一个作用域里面,不能定义两个同名变量
//作用域:指的是同一对大括号,所括起来的范围
int a=100;
int b=200;
int c=20;
//给变量c重新赋值了
c=10;
c=2;
System.out.println(c);
//定义变量的其他注意事项2:
// 变量没有赋值 不能使用
int d,e; //可以这么简写 定义了两个int类型的变量 d 和 e
d=200;
e=200;
System.out.println(d);
System.out.println(e);
int f=200; int ff=100; //一行上可以定义多个变量,但是建议 一行上,只定义一个变量
}
}