Java系列之Java基础(上)

版权声明


一、进制

常用进制为二进制,八进制,十进制,十六进制。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的(位数减一)次方),然后把所有值加起来。
举例一个其余类似。
例如:二进制转十进制
二进制: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);
	}

}

结果:
在这里插入图片描述

发布了8 篇原创文章 · 获赞 10 · 访问量 554
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 游动-白 设计师: 上身试试

分享到微信朋友圈

×

扫一扫,手机浏览