本文主要是介绍没有黑眼圈的小浣熊初学Java基础的笔记(一),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
标题@没有黑眼圈的小浣熊初学Java基础的笔记(一)
注释、标识符、关键字
注释
·单行注释 //
·多行注释 /* */
·文档注释 /** */
数据类型
**java是强类型语言:**要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用
java的数据类型分为2大类
基本类型(primitive type)
Byte
short
char
int
long
float
double
boolean
引用类型 : 类 、 接口、数组
类型转换
由于Java是强类型语言,所以要进行有些运算的时候,需要用到类型转换
低---------------------------------------------------------------->高
byte,short,char->int->long->float->double (低到高,自动转换)
高到低,强制转换
int a = 3; double b = 13.88;int a = (double)b;
但是如果是以下方式运算时,不改变变量类型,仍然可以计算
short i = 3;
i = i + 3; //(编译不通过),此时i+3应该为int型,如需编写,应当改为i = (short)i+3
i += 3; //编译正确,此方法计算时不会改变变量类型,仍为short类型
byte\char short三者之间做运算,结果应该为int型数
变量、常量
变量就是可变化的量!
Java变量时程序中最基本的存储单元,其要素包括变量名,变量类型,和作用域。
type varName [=value] [,varName{=value}];
//数据类型 变量名 = 值;可以使用都考隔开来声明多个同类型变量。
常量
变量的命名与规范
所有变量、方法、类名:见名知意
类成员变量:首字母小写和驼峰原则:moneySalary ,除了第一个单词小写以外,后面的单词首字母大写 例:lastName;
局部变量:首字母小写和驼峰原则;
常量:大写字母和下换线:MAX_VALUE;
类名:首字母大写和驼峰原则:Man,GoodMan;
方法名:首字母小写和驼峰原则:run(),runRun();
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ouLhQtYb-1605917989758)(C:\Users\Wyy1998\Desktop\命名规范.png)]
运算符
Java语言支持如下运算符
算数运算符
表1
运 算 符 | 名 称 | 说 明 | 例 子 |
---|---|---|---|
- | 取反符号 | 取反运算 | b=-a |
++ | 自加一 | a++:先取值再加一,或++a:先加一再取值 | a++ 或 ++a |
– | 自减一 | a–:先取值再减一,或–a:先减一再取值 | a-- 或 --a |
+ | 加 | 求 a 加 b 的和,还可用于 String 类型,进行字符串连接操作 | a + b |
- | 减 | 求 a 减 b 的差 | a - b |
* | 乘 | 求 a 乘以 b 的积 | a * b |
/ | 除 | 求 a 除以 b 的商 | a / b |
% | 取余(取模) | 求 a 除以 b 的余数 a % b | a % b |
表 1 中,-a 是对 a 取反运算,a++ 或 a-- 是在表达式运算完后,再给 a 加一或减一。而 ++a 或 --a 是先给 a 加一或减一,然后再进行表达式运算。
int a = 12;
System.out.println(-a);
int b = a++;
System.out.println(b);
b = ++a;
System.out.println(b);
上述代码第 2 行是 -a,是把 a 变量取反,结果输出是 -12。第 4 行代码是先把 a 赋值给 b 变量再加一,即先赋值后 ++,因此输出结果是 12。第 6 行代码是把 a 加一,然后把 a 赋值给 b 变量,即先 ++ 后赋值,因此输出结果是 14。
赋值运算符
赋值运算符是指为变量或常量指定数值的符号。赋值运算符的符号为“=”,它是双目运算符,左边的操作数必须是变量,不能是常量或表达式。
扩展赋值运算符
运算符 | 含义 | 实例 | 结果 |
---|---|---|---|
+= | 将该运算符左边的数值加上右边的数值, 其结果赋值给左边变量本身 | int a=5; a+=2; | a=7 |
-= | 将该运算符左边的数值减去右边的数值, 其结果赋值给左边变量本身 | int a=5; a-=2; | a=3 |
*= | 将该运算符左边的数值乘以右边的数值, 其结果赋值给左边变量本身 | int a=5; a*=2; | a=10 |
/= | 将该运算符左边的数值整除右边的数值, 其结果赋值给左边变量本身 | int a=5; a/=2; | a=2 |
%= | 将该运算符左边的数值除以右边的数值后取余,其结果赋值给左边变量本身 | int a=5; a%=2; | a=1 |
example:
int x, y, z; // 定义3个整型的变量
x = y = z = 5; // 为变量赋初值为5
x += 10; // 等价于x=x+10,结果x=15
y -= 3; // 等价于y=y-3,结果y=2
z *= 5; // 等价于z=z*5,结果z=25
x /= 4; // 等价于x=x/4,结果x=3
z %= x; // 等价于z=z%x,结果z=1
关系运算符
关系运算符(relational operators)也可以称为“比较运算符”,用于用来比较判断两个变量或常量的大小。关系运算符是二元运算符,运算结果是 boolean 型。当运算符对应的关系成立时,运算结果是 true,否则是 false。
运算符 | 含义 | 说明 | 实例 | 结果 |
---|---|---|---|---|
> | 大于运算符 | 只支持左右两边操作数是数值类型。如果前面变量的值大于后面变量的值, 则返回 true。 | 2>3 | false |
>= | 大于或等于运算符 | 只支持左右两边操作数是数值类型。如果前面变量的值大于等于后面变量的值, 则返回 true。 | 4>=2 | true |
< | 小于运算符 | 只支持左右两边操作数是数值类型。如果前面变量的值小于后面变量的值,则返回 true。 | 2<3 | true |
<= | 小于或等于运算符 | 只支持左右两边操作数是数值类型。如果前面变量的值小于等于后面变量的值, 则返回 true。 | 4<=2 | false |
== | 相等运算符 | 如果进行比较的两个操作数都是数值类型,无论它们的数据类型是否相同,只要它们的值相等,也都将返回 true。 如果两个操作数都是引用类型,只有当两个引用变量的类型具有父子关系时才可以比较,只要两个引用指向的不是同一个对象就会返回 true。 Java 也支持两个 boolean 类型的值进行比较。 | 44 97’a’ 5.05 truefalse | true true true false |
!= | 不相等运算符 | 如果进行比较的两个操作数都是数值类型,无论它们的数据类型是否相同,只要它们的值不相等,也都将返回 true。 如果两个操作数都是引用类型,只有当两个引用变量的类型具有父子关系时才可以比较,只要两个引用指向的不是同一个对象就会返回 true。 | 4!=2 | true |
逻辑运算符
逻辑运算符把各个运算的关系表达式连接起来组成一个复杂的逻辑表达式,以判断程序中的表达式是否成立,判断的结果是 true 或 false。
逻辑运算符的用法、含义及实例
运算符 | 用法 | 含义 | 说明 | 实例 | 结果 |
---|---|---|---|---|---|
&& | a&&b | 短路与 | ab 全为 true 时,计算结果为 true,否则为 false。 | 2>1&&3<4 | true |
|| | a||b | 短路或 | ab 全为 false 时,计算结果为 false,否则为 true。 | 2<1||3>4 | false |
! | !a | 逻辑非 | a 为 true 时,值为 false,a 为 false 时,值为 true | !(2>4) | true |
| | a|b | 逻辑或 | ab 全为 false 时,计算结果为 false,否则为 true | 1>2|3>5 | false |
& | a&b | 逻辑与 | ab 全为 true 时,计算结果为 true,否则为 false | 1<2&3<5 | true |
^ | a^b | 异或 | ab相同时为false,ab不同时为true |
-
&& 与 & 区别:
&&运算:如果 a 为 false,则不计算 b(因为不论 b 为何值,结果都为 false)
-
|| 与 | 区别:
||运算:如果 a 为 true,则不计算 b(因为不论 b 为何值,结果都为 true)
位运算符
位运算符主要用来对操作数二进制的位进行运算。按位运算表示按每个二进制位(bit)进行计算,其操作数和运算结果都是整型值。
首先了解一下二进制的原码、反码和补码
反码:
-
正数的反码还是等于原码
-
负数的反码就是他的原码除符号位外,按位取反。
补码:
- 正数的补码等于他的原码
- 负数的补码等于反码+1。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vurWSzwA-1605917989762)(C:\Users\Wyy1998\Desktop\二进制补码.png)]
位逻辑运算符
运算符 | 含义 | 实例 | 结果 |
---|---|---|---|
& | 按位进行与运算(AND) | 4 & 5 | 4 |
| | 按位进行或运算(OR) | 4 | 5 | 5 |
^ | 按位进行异或运算(XOR) | 4 ^ 5 | 1 |
~ | 按位进行取反运算(NOT) 正数取反:各二进制码按补码各位取反 负数取反:各二进制码按补码各位取反 | ~ 4 | -5 |
» | 右移位运算符 | 8»1 | 4 |
« | 左移位运算符 | 9«2 | 36 |
>>> | 无符号右移 | 3>>>1 | 1 |
<<< | 无符号左移 |
example:
int i=10;
System.out.printf("%x \n",~i);
System.out.printf("%d \n",~i);
可以看到输出结果为 fff5和-11,前者将它转换为二进制是 1111111111110101。这个二进制数的最高位为 1,表示这个数为负数。除最高位外,按位取反再加 1,即得到二进制原码 1000000000001011,用十进制数表示即为 -11。
左位移运算符
左移位运算符为«
,其运算规则是:按二进制形式把所有的数字向左移动对应的位数,高位移出(舍弃),低位的空位补零。
例如,将整数 11 向左位移 1 位的过程如图 6 所示。
图 6 对11左移1位运算过程
从图 6 中可以看到,原来数的所有二进制位都向左移动 1 位。原来位于左边的最高位 0 被移出舍弃,再向尾部追加 0 补位。最终到的结果是 22,相当于原来数的 2 倍。(左移n位,相当于*2的n次幂)
右位移运算符
右位移运算符为»
,其运算规则是:按二进制形式把所有的数字向右移动对应的位数,低位移出(舍弃),高位的空位补零。
例如,将整数 11 向右位移 1 位的过程如图 7 所示
从图 7 中可以看到,原来数的所有二进制位都向右移动 1 位。原来位于右边的最低位 1 被移出舍弃,再向最高位追加 0 补位。最终到的结果是 5,相当于原数整除 2 的结果。(右移n位,相当于*(1/2)的n次幂)
复合位赋值运算符
运算符 | 含义 | 实例 | 结果 |
---|---|---|---|
&= | 按位与赋值 | num1 &= num2 | 等价于 num 1=num 1 & num2 |
|= | 按位或赋值 | num1 |= num2 | 等价于 num 1=num 1 | num2 |
^= | 按位异或赋值 | num1 ^= num2 | 等价于 num 1=num 1 ^ num2 |
-= | 按位取反赋值 | num1 ~= num2 | 等价于 num 1=num 1 ~ num2 |
«= | 按位左移赋值 | num1 «= num2 | 等价于 num 1=num 1 « num2 |
»= | 按位右移赋值 | num1 |
List item
»= num2 | 等价于 num 1=num 1 » num2 |
条件运算符
Java 提供了一个特别的三元运算符(也叫三目运算符)经常用于取代某个类型的 if-then-else 语句。条件运算符的符号表示为“?:”,使用该运算符时需要有三个操作数,因此称其为三目运算符。使用条件运算符的一般语法结构为:
result = <expression> ? <statement1> : <statement3>;`
其中,expression 是一个布尔表达式。当 expression 为真时,执行 statement1, 否则就执行 statement3。此三元运算符要求返回一个结果,因此要实现简单的二分支程序,即可使用该条件运算符。
运算符优先级
优先级 | 运算符 | 结合性 |
---|---|---|
1 | ()、[]、{} | 从左向右 |
2 | !、+、-、~、++、– | 从右向左 |
3 | *、/、% | 从左向右 |
4 | +、- | 从左向右 |
5 | «、»、>>> | 从左向右 |
6 | <、<=、>、>=、instanceof | 从左向右 |
7 | ==、!= | 从左向右 |
8 | & | 从左向右 |
9 | ^ | 从左向右 |
10 | | | 从左向右 |
11 | && | 从左向右 |
12 | || | 从左向右 |
13 | ?: | 从右向左 |
14 | =、+=、-=、*=、/=、&=、|=、^=、~=、«=、»=、>>>= | 从右向左 |
ex:
--y || ++x && ++z;
这个表达式中包含了算术运算符和逻辑运算符。根据表 1 中列出的优先级,可以确定它的执行顺序如下:
① 先计算 y 的自减运算符,即 --y。
② 再计算 x 的自增运算符,即 ++x。
③ 接着计算 z 的自增运算符,即 ++z。
④ 由于逻辑与比逻辑或的优先级高,这里将 ② 和 ③ 的结果进行逻辑与运算,即 ++x && ++z。
⑤ 最后将 ④ 的结果与 ① 进行逻辑或运算,即 --y||++x&&++z。
作业:
1、在java中将60转换为二进制、8进制、16进制数
包机制、java DOS
package pkg1[·pkg2[·pkg3…]];
一般利用公司域名倒置作为包名:com.baidu.www
为了能够使用某一个包的成员,我们需要在Java程序中明确导入该包,使用“import”语句即可完成此功能
import package1[.package2…].(classname|*);
这篇关于没有黑眼圈的小浣熊初学Java基础的笔记(一)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!