版权声明
- 本文原创作者:元芳,你怎么看
- 作者的博客地址:https://blog.csdn.net/ewcc_ycl
一、进制
常用进制为二进制,八进制,十进制,十六进制。x进制就是逢x进一。
进制书写格式
二进制:由0和1组成。以0b开头,例如0b1001、0b1100。
八进制:由0-7组成。以0开头,例如0752、06241。
十进制:由0-9组成。我们日常用的数字都是十进制的,例如100、10。
十六进制:由0-9和a、b、c、d、e、f组成。以0x开头。例如0x9dc3、0x8b。
进制转换-- 常用进制转十进制
常用进制(x进制)转十进制都大同小异。
规则为:从最低位(最右)算起,位上的数字乘以本位的权重(x的(位数减一)次方),然后把所有值加起来。
举例一个其余类似。
例如:二进制转十进制
二进制:ob1110
转换过程:
得到转换后的十进制:15
进制转换-- 十进制转常用进制
十进制转常用进制也都大同小异。
规则总结为一句:除积倒取余
例如:十进制转二进制
十进制:123
转换过程:
得到转换后的二进制:0b1111011
二、原码 反码 补码
计算机中参与运算用的就是补码
原码:二进制数前面加一个符号位,正数为零,负数为一。
反码:正数的反码与其原码相同,负数的反码是对其原码逐位取反,但符号位除外
补码:正数的补码与其原码相同,负数的补码是在其反码的末位加1。
三、数据类型
下图为Java的数据类型结构图
从图中可以看出整数类型有byte(字节)、short(短整形)、int(整形,整数计算未声明类型默认为int类型)、long(长整形)。
其中1字节为8位(二进制)取值范围为-2^7 ~ 2^7-1 默认值为0。
short=2字节 占16位 取值范围为-2^15 ~ 2^15-1 默认值为0。
int=4字节 占32位 取值范围为-2^31 ~ 2^31-1 默认值为0。
long=8字节 占64位 取值范围为-2^63 ~ 2^63-1 默认值为0。
浮点类型有float(单精度浮点)、double(双精度浮点 浮点数计算默认类型为double)。
float=4字节 占32位 取值范围为1.40129846432481707e-45 ~3.40282346638528860e+38 (无论正负) 默认值为0.0。
double=8字节 占64位 取值范围4.94065645841246544e324d ~ 1.79769313486231570e+308d (无论正负) 默认值为0.0 。
注意:
长整型long的后缀用L或者l标记;建议使用L。
float单精度浮点数用F或者f标记;建议使用F。
char(字符) 2字节 16位 取值范围:0-65535 最小值是 \u0000(即为0) 最大值是 \uffff(即为65,535)默认值为0。
注意:字符与字符串是两种不同的数据类型
boolean(布尔) 1字节 占8位 其值只有true(真)和false(假) 默认值为false。
四、变量与常量
变量
变量,顾名思义是可变的量。
变量是用于存储基本类型的值,或者是存储对象的引用。
声明一个变量的时候需要确定变量的大小、类型、名字
例如:
package com.ew;
public class Variable {
public static void main(String[] args) {
int a; //声明一个int类型的变量a
a=50; //把a 变量初始化为50即为其赋值为50
int b=9; //声明一个int类型的变量b并为其赋值为9
float c=5.5F; //声明一个float类型变量c并为其赋值5.5
//F为后缀声明这是一个单精度,否则会默认为double
}
}
变量的命名规则:
1.变量名只能是由:字母,数字,下划线, $组成。
2.变量的首字母不能是数字
3.变量名不能使用系统关键字或者保留关键字
4.为了代码的清晰易懂,通常变量名采用一些著名的命名规则,主要有Camel标记法(驼峰标记法)、 Pascal标记法、和匈牙利标记法;Camel标记法采用首字母小写,接下来的单词首字母都以大写字母开头的方法。
5.命名一般采用有意义的英文单词来进行命名,这样通俗易懂
常量
常量,即在程序运行过程中不能改变的量
package com.ew;
public class Constant {
public static void main(String[] args) {
int a=50;
int b=9+12;
//这里的a和b都为变量。9与12为常量
}
}
常量的分类如下:
整数常量:所有整数
小数常量:
所有小数
布尔常量:只有true和false
字符常量:
使用‘ ’引起来的单个字符
字符串常量:使用“ ”引起来的字符序列,例如:“abc”
null常量:只有一个值null
五、运算符
算数运算符
算数运算符 | 操作 | 范例 | 结果 |
---|---|---|---|
+ | 正号 | +5 | 5 |
- | 负号 | int b=6 ;-b | -6 |
+ | 加 | 5+5 | 10 |
- | 减 | 6-3 | 3 |
* | 乘 | 3*7 | 21 |
/ | 除 | 6/3 | 2 |
% | 取模 | 6/4 | 2 |
++ | 自增(前) | a=3;b=++a | a=4;b=4 |
++ | 自增(后) | a=3;b=a++ | a=4;b=3 |
- - | 自减(前) | a=3;b=- -a | a=2;b=2 |
- - | 自减(后) | a=3;b=a- - | a=2;b=3 |
前面的基本都不用说,这里主要说一下自增自减。
其分为两种情况,说一下++的,- -就与++类似。
第一种情况
单独使用i++和++i。在该情况下将++放在操作数(例如i)的前面或者后面效果是一样的,
第二种情况
i++和++i参与运算。在该情况下:
1、将++放在操作数(例如i)的前面,那么i会先自增然后再参与运算
2、将++放在操作数(例如i)的后面,那么i会先参与运算然后再自增
++i表示先执行++运算改变变量值,再计算表示式; i++表示先执行表达式计算,最后计算++改变变量值。
赋值运算符
赋值运算符 | 格式 | 范例 | 结果 |
---|---|---|---|
= | 变量=表达式 | a=3; | 将3赋值给变量a |
+= | 变量+=表达式 | a+=3即a=a+3 | 变量a+3,并且把值赋值给a |
-= | 变量-=表达式 | a-=3即a=a-3 | 变量a-3,并把值赋给a |
*= | 变量*=表达式 | a*=3即a=a*3 | 变量a*3,并把值赋给a |
/= | 变量/=表达式 | a/=3即a=a/3 | 变量a/3,并把值赋给a |
%= | 变量%=表达式 | a%=3即a=a%3 | 变量a%3,并把值赋给a |
package com.ew;
public class TestOperator {
public static void main(String[] args) {
int a=3; //把3赋值给a
int b=0;
b+=3; //等同于b=b+3
int c=5;
c-=1; //等同于c=c-1
System.out.println(a);//打印函数,以后会讲到。打印a的值
System.out.println(b);//打印b的值
System.out.println(c);//打印c的值
}
}
结果:
关系运算符
关系运算符 | 名称 | 范例 | 结果 |
---|---|---|---|
> | 大于 | 5>2 | true |
>= | 大于等于 | 5>=2 | true |
< | 小于 | 5<4 | false |
<= | 小于等于 | 5<=4 | false |
== | 等于 | 3==3 | true |
!= | 不等于 | 5!=4 | true |
package com.ew;
public class TestOperator {
public static void main(String[] args) {
System.out.println(5>2);//如果5>2 为真返回true 否则为假返回 false
System.out.println(5>=2);//如果5大于或等于2 为真返回 true 否则为假返回 false
System.out.println(5<4);//如果5<4 为真返回true 否则为假返回 false
System.out.println(5<=4);//如果5小于或等于4 为真返回true 否则为假返回 false
System.out.println(3==3);//==与= 是不同的一个是比较两边的元素是否相等,一个是赋值
//如果3等于3 为真返回true 否则为假返回false
System.out.println(5!=4);//如果5不等于4 为真返回true 否则为假返回false
}
}
结果:
逻辑运算符
逻辑运算符 | 名称 | 范例 | 结果 |
---|---|---|---|
& | 逻辑与 | 5>2 | true |
l | 逻辑或 | 5>=2 | true |
^ | 逻辑异或 | 5<4 | false |
! | 逻辑非 | 5<=4 | false |
&& | 逻辑与 | 3==3 | true |
ll | 逻辑或 | 5!=4 | true |
&:只要两边的boolean表达式结果,有一个false.那么结果就是false.
只有两边都为true,将结果为true.
|:两边只要有一个为true结果就为true, 当两边同为false时结果才为false.
^:两边相同,结果是false;两边不同,结果是true.
!: !false值就为true 相反 !true值就为false.
&&:左边表达式为false后面的表达式就不会去判断了直接返回false,为true才会判断后面表达式,同时为真才返回true.
||:左边表达式为true后面的表达式就不会去判断了直接返回true,为false才会判断后面表达式,同时为false才返回false.
“&”和“&&”的区别:单与时,左边无论真假,右边都进行运算;
双与时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。
"|"与“||”的区别:原理与前面雷同
package com.ew;
public class TestOperator {
public static void main(String[] args) {
System.out.println(5>2&5<4);
System.out.println(5>2|5<4);
System.out.println(5>2^5<4);
System.out.println(!(5>2));
}
}
结果:
三目运算符
也称三元运算符
语法格式:条件表达式?表达式1:表达式2;
如果条件为true,运算后的结果是表达式1;
如果条件为false,运算后的结果是表达式2;
package com.ew;
public class TestOperator {
public static void main(String[] args) {
int a=9;
int b=4;
int c;
c=a>b?a:b; //如果a>b则执行a的结果把值赋值给c,否则执行b的结果把值赋值给c
System.out.println("c="+c);
}
}
结果: