JAVA SE 基础概念
当我们能够理解和掌握计算机基础快捷命令,我们就要开始对Java中那些最基本的概念基础进行了解,只有当完全了解与掌握这些概念,才能熟悉的创建与调用它们。
1.常量
就是在程序的执行过程中其值不发生改变的量。
常量的分类:字面值常量和自定义常量。
字面值常量的分类
(1): 字符串常量 用双引号括起来的内容
(2): 整数常量 所有整数
(3): 小数常量 所有小数
(4): 字符常量 用单引号括起来的内容
(5):布尔常量(true、false)
(6):空常量 NULL
代码演示
class Constant
public class Constant {
public static void main(String[] args) {
System.out.println("200");
System.out.println("true");
System.out.println("false");
System.out.println("daydayup");
System.out.println('d');
System.out.println("2.97");
}
}
在这里插入代码片
运行结果如下:
2.进制
就是进位制,是人们规定的一种进位方法。 对于任何一种进制–X进制,就表示某一位置上的数运算时是逢X进一位。
进制的数据表现形式:
二进制:以 0 b开头
八进制: 以0 开头
十六进制:以0 x 开头
代码演示
public class Jinzhi {
public static void main(String[] args) {
System.out.println(1000);
System.out.println(0b1000);
System.out.println(01000);
System.out.println(0x1000);
}
}
运行结果如下:
十进制到任意进制的转换原理:除基取余 直到商为0 余数反转,十进制到X进制这个基就是X。
8421码及特点:
8421码是中国大陆的叫法,8421码是BCD代码中最常用的一种。
在这种编码方式中每一位二值代码的1都是代表一个固定数值,把每一位的1代表的十进制数加起来,得到的结果就是它所代表的十进制数码。
二进制到八进制的简易方式 (100110) (3位为一组)
二进制到十六进制的简易方式(01100110) (4位为一组)
计算机底层做运算时采用补码去运算。
原码:就是二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。
反码:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。
补码:正数的补码与其原码相同;负数的补码是在其反码的末位加1。
例题:
已知原码求补码
已知某数X的原码为 0B 1 0110100,试求X的补码和反码。
0B 1 1001011 反码
0B 1 1001100 补码
已知补码求原码
已知某数X的补码 0B1 1101110,试求其原码。
0B1 1101101 反码
0B1 0010010 原码
3.变量
在程序执行的过程中,在某个范围内其值可以发生改变的量(例如:苹果的价钱)。其就是在内存中,开辟一小块空间,可以储存数据。
变量的定义格式: 数据类型 变量名 = 变量值 ;
基本数据类型分类:
(1)整数型:byte 占一个字节 -128~~+127
short 占两个字节 -2^15~~ 2^15-1
int 占四个字节 -231231-1263-1
long 占八个字节 -263
(2)浮点型:float 占四个字节 double 占八个字节
(3)布尔型:true false 占一个字节
(4)字符型:char 占两个字节 GBK码表一个汉字占两个字节,Java中采用Unicode编码,一个字符占两个字节 ‘a’=97 ‘A’=65 ‘0’=48 ‘ ’=32
代码演示
public class Variable
{
public static void main(String[] args)
{
byte a=100;
short b=2000;
int c=2131000;
long d=20000L;//定义long类型数值时,后面加一个L表示long类型数据
float e=2.79F;//定义float类型变量时,值得后面要加上后缀F,表示这是一个float值,不加会报错
double f=4.38;
boolean g=true;
boolean h=false;
char ch='A';//定义char类型的变量时,值需要用‘’引起来的单个字符
//变量命名时一般小写
System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out.println(d);
System.out.println(e);
System.out.println(f);
System.out.println(g);
System.out.println(h);
System.out.println(ch);
}
}
运行结果如下:
变量的注意事项:
1.在同一个作用域(同一对大括号所括起来的范围)里面不能定义两个同名变量
2.变量必须赋值才能使用
3.Java中的数据类型的隐式转换,当byte short char 在参与运算时,会自动提升为int类型,如果还有 long double float类型,会自动转换为 long double float类型boolen类型 不参与运算(大类型可以运算小类型,小类型不能运算大类型)
4.强制转换:将数据类型转化为目标类型,原理就是把多余的字节丢弃掉,但是会发生精度损失
5.常量优化机制:当多个常量参与运算时,会先计算他们的结果在不在这个数据类型的范围内,如果在就不报错(整数默认int,小数默认 double)
“+”号做拼接符
class Stringdemo {
public static void main(String[] args) {
// + 拼接符的作用 ,当+两端只要任意一端是字符串,就会起拼接符的作用,形成一个新的字符串
System.out.println(8+3);
System.out.println("8"+3);
System.out.println(8+"3");
System.out.println("8"+"3");
System.out.println("hello"+'a'+1);
System.out.println('a'+1+"hello");
System.out.println("5+5="+5+5);
System.out.println(5+5+"=5+5");
}
}
运行结果如下:
运算符注意事项
1.byte b=10; b=b+10与byte b=10;b+=10;的区别:前者报错,后者不报错,会自动丢弃掉多余的字节,强制类型转换
2. 赋值运算符要求左边的数据必须是一个变量