一 Java语言基础
1 进制的了解及转换
进制就是进位制,是人们规定的一种进位方法。几进制就是表示某位置的数到几时就进一位,二进制就是逢2进1,八进制就是逢8进1,十进制就是逢10进1,十六进制就是逢16进1。
二级制的数据表现形式 由0和1组成 ,八进制是由0~7组成,十进制就是0-9组成,十六进制是由0·9,a·f组成,我们为了方便区分它们 再数据前加上特殊的符号来区分 ,0b用来表示二进制 ,0 用来表现八进制 ,0x用来表现十六进制,整数默认是十进制。
进制的转换
任意进制到十进制的转换
我们一般使用位权展开法来换算任意进制到十进制的转换 就是用每一位的数 乘以他的进制和后面数值的次方 最后相加 得到的数值 就是十进制的数值
十进制到任意进制的转换
除基取余法 除到商为0 然后余数反转得到的数就是我们需要的转化为该进制的数 转化成什么进制 就除以什么 这个数就成为基
当然人们为了简便 也发明出了一种快速转换法 这就是8421码 在这种编码方式中每一位二值代码的1都是代表一个固定数值,把每一位的1代表的十进制数加起来,得到的结果就是它所代表的十进制数码。
2 原码补码反码
计算机所有数据的运算都是采用补码进行的
原码:就是二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。
反码:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。
补码:正数的补码与其原码相同;负数的补码是在其反码的末位加1。
3变量的概述及格式
变量是在程序执行的过程中,在某个范围内其值可以发生改变的量,他在内存中是一小块区 域。定义变量的原因是用来不断地存放同一类型的常量,并可以重复使用。
变量的定义格式
数据类型 变量名=变量值;
4 数据类型的概述及分类
变量是内存中的一小块区域,定义一个变量就是开辟一个内存空间,我们为了开辟一个合适的 内存空间,所以就需要不同的数据类型来给内存分配不同大小的内存空间。
java中数据类型的分类分为基本数据类型和引用数据类型(类 接口 ),
基本数据类型分为数值型,字符型,布尔型。
数值型
整数型 字节数 范围
byte 1(8bit) -128 ~ 127
short 2(16bit) -2^15 ~ 2^15 - 1
int 4(32bit) -2^31 ~ 2^31 - 1
long 8(64bit) -2^63 ~ 2^63 - 1
浮点数
float 4(32bit) -3.40310^38 ~ 3.40310^38
double 8(64bit) -1.79810^308 ~ 1.79810^308
字符型 char 2(16bit) 0 ~ 2^16 - 1 = 65535
布尔型 boolean 1
整数默认是int类型,浮点数默认是double类型
数据类型转换之隐式转换
在数据相加的过程中数据类型会默认转换为更高级的类型
转换规则
(1): boolean类型不能转换为其他的数据类型
(2): byte,short,char—int—long—float—double
(3): byte,short,char之间不转换,他们参与运算首先转换为int类型
数据类型转换之强制转换
当然有时候我们想要的运算结果再该类型的范围内,但是计算机会自动转换为更高级的类型,从而输出报错,这时候,我们就可以对他进行强制转换。强制转换的格式 在目标数类型 变量名 = (目标数据类型)(被转换的数据),但是强制转换会可能存在精度损失的问题,所以不建议经常使用。
5 Java字符和字符串的运算
在ASCII码表中对键盘上没一个字符都有一个规定的值,我们在进行字符运算的时候,得到的运算结果就是这些值相加,在进行字符串和字符混合运算的时候需要注意,如果是字符先运算,那么他会相加成数值再合字符串组合到一起,如果是字符串在前,那他就会和字符直接拼接在一起,字符不做加法运算。
6 Java算数运算符的基本用法
运算符就是对常量和变量进行操作的符号,分为 算术运算符、赋值运算符、比较运算符、逻辑运算符、位运算符、三目运算符。
算数运算符分为
+,-1*,/,%,++,- -
我们运算时需要注意的是 整数相除只会得到整数 如果想要得到小数 需要使用浮点数
/获取的是除法操作的商,%获取的是除法造作的余数,%运算结果的符号,取决于参与运算时左边的符号
++和- -的用法
自加(++)自减(–)运算
++:自加。对原有的数据进行+1
–:自减。对原有的数据进行-1
在单独使用时 放在操作数前面和后面的效果一样
而当参与运算时使用 放在操作数前面的时候 会先自增或自减,然后再参与运算,当放在操作数后面的时候,先参与运算,然后再自增或者自减。
7 Java赋值运算符的基本用法
赋值运算符分为
= += -= *= /= %=
最基本的赋值符号= 是把右边的数据赋值给左边 +=是把左边和右边做加法,然后赋值给左边
需要注意的是 赋值运算符要求左边的数据必须是一个变量才可以
8 Java关系运算符的基本用法
关系运算符分为
== != < > <= >= instanceof
注意事项 无论你的操作是简单还是复杂 结果都是boolean型(true或false)
9 Java逻辑运算符的基本用法
逻辑运算符分为
&(并且) | (或者) !(非) ^(异或) &&(短路与) ||(短路或)
需要注意的是 逻辑运算符一般用于连接boolean类型的表达式或值,在java中我们要表示一个数大于3并且小于6,不可以写成3<6<x,应该写成 x>3 & x<6 。
表达式就是把运算符常量或者变量结合起来符合Java语法的式子。
逻辑运算符的特点
&逻辑与:有false则false。
|逻辑或:有true则true。
^逻辑异或:相同为false,不同为true。
!逻辑非:非false则true,非true则false。
特点:偶数个不改变本身。
逻辑运算符&&和&的区别
最终结果都是一样的 而&&具有短路效果 如果左边是false右边就不执行了 而&会两边都执行再输出结果 所以&&会速度快很多 || 同理 所以我们开发的时候常用&&和||
10 Java位运算符的基本用法
位运算符分为
&(与),|(或),^(异或) , ~(按位取反) , <<(左移) ,>>(右移) ,>>>(无符号右移)
位运算符是直接对二进制补码进行运算
&,|,^,~ 的用法
&:有0则0
|:有1则1
^:相同则0,不同则1
~:按位取反 0变1 1变0
位异或运算符的特点
^的特点:一个数据被另一个数据位异或两次,该数本身不变。
<<:左移 空位补0,被移除的高位丢弃。
>>:右移 被移位的二进制最高位是0,右移后,空缺位补0;最高位是1,高位补1。
>>>:无符号右移 被移位二进制最高位无论是0或者是1,空缺位都用0补。
我们可以得到结论
<< : 把<<左边的数据乘以2的移动次幂
>> : 把>>左边的数据除以2的移动次幂
11 Java三元运算符的基本用法
三元运算符的格式
(关系表达式) ? 表达式1 : 表达式2;
int a=(10>20)?30:50; a=50
意思就是 如果关系表达式成立 则取第一个值 如果不成立 则取第二个值
三元运算符的执行流程
计算关系表达式的值,如果为true, 运算后的结果是表达式1;
如果为false,运算后的结果是表达式2;