Java的基础语法
1.变量与基本数据类型
1.什么是变量?
变量就是系统为程序分配的一块内存单元,用来存储各种类型的数据。由于该存储单元中的数据可以发生改变,因此得名为"变量"。
2.变量分类
按所属的数据类型划分:基本数据类型变量 ;引用数据类型变量
按被声明的位置划分:
局部变量:方法或语句块内部定义的变量
成员变量:方法外部、类的内部定义的变量
特别注意:类的外面不能有变量的声明
3.数据类型
注意字符串(string) 属于引用数据类型,因为它是一个类。
-
float类型变量在定义时,直接写的浮点数字默认是double类型,如:float i = 12.3;会出现错误,我们需要在浮点数字后面加入f,即 float i = 12.3f;
-
loog类型变量在定义时,直接写出的整形数字默认是int类型,如:loog i = 1200000000;会出现错误,我们需要在整形数字后面加入l,即 float i = 1200000000l;
-
char类型变量可以看成是数字也可以进行运算。如:
char c1 = 'A';
Systom.out.println((int)c1);
Systom.out.println(++c1);
结果是65和B。
4.类型转换
boolean 类型不能转换成任何其它数据类型。
**自动类型转换:**容量小的类型自动转换成容量大的数据类型 如:byte,short,int -> float ->long ->double
byte,short,int 不会互相转换,它们三者在计算时会转换成 int 类型。
**强制类型转换:**容量大的类型转换成容量小的数据类型时,要加上强制转换符 ,使用时有可能造成精度降低或数据溢出。
long b = 20;
int a = (int)b;
2.进制的转换
1.二进制
计算机中的数据都以二进制数字保存。 二进制:逢二进一。即只有 0、1 两个值。 如:十进制的 10 在计算机内保存为二进制的 1010。
计算机中信息的存储单位 :
-
位(Bit):表示一个二进制数码 0 或 1,是计算机存储处理信息的最基本的单位。
-
字节(Byte):一个字节由 8 个位组成。它表示作为一个完整处理单位的 8 个二进制数码。
事实上,计算机内的二进制数值是以补码形式表示的。
补码: 一个正数的补码和其原码的形式是相同的。 负数的补码是:将该数的绝对值的二进制形式,按位取反再加 1。
由此可知,二进制补码数值的最高位(最左位)是符号位:该位为 0,表示数值为正数;该位为 1,表示数值为负数。
2.十进制
二进制数转换成十进制数 :按权相加:把二进制数首先写成加权系数展开式,然后按十进制加法规则求和。
例:原码 1011.01 = 1×23+0×22+1×21+1×20+0×2-1+1×2-2
= 8+0+2+1+0+0.25
=11.25
十进制转换成二进制 :
-
整数部分:"除 2 取余,逆序排列"法
-
小数部分:"乘 2 取整,顺序排列"法
3.十六进制
二进制表示法太冗长,所以在程序中一般喜欢用十六进制。
十六进制:基数为十六,逢十六进一。它用 abcdef 表示从 0-9 之上的值。
Java 中十六进制数据要以 0x 或 0X 开头。如:0x23D
十六进制转换成二进制只需将每个十六进制数字替换为相对应的四个二进制位即可。
4.八进制
八进制:基数为八。
Java 中八进制数据要以 0 开头。如:0123
八进制转换成二进制:只需将每个八进制数字替换为相对应的三个二进制位即可。
现在的计算机系统很少用八进制的了。
3.方法
方法概念
方法用于封装一段特定的逻辑功能。方法的主要要素有:权限修饰符 方法名、参数列表和返回值。
**格式:**权限修饰符 返回值类型声明 方法名称(参数列表){
方法中封装的逻辑功能;
return 返回值;
}
访问修饰符 | 同一个类 | 同包 | 不同包,子类 | 不同包,非子类 |
---|---|---|---|---|
private | √ | |||
默认 | √ | √ | ||
protected | √ | √ | √ | |
public | √ | √ | √ | √ |
返回值详解
1.方法调用结束后可以返回一个数据,称之为返回值。
2.方法在声明时必须指定返回值的类型。
3.通过 return 语句返回,return 语句的作用在于结束方法且将数据返回。
4.如果方法没有返回值(即方法不需要返回数据),需将返回值类型声明为 void。
参数列表详解
1.方法的参数列表:在调用时传递给方法,需要被方法处理的数据。
2.在方法定义时,需要声明该方法所需要的参数变量。
3.在方法调用时,会将实际参数值传递给方法的参数变量。必须保证传递参数的类型和个数符合方法的声明
示例:
package li;
public class hh {
public static void main(String[] args) {
int num = max(10,20);
System.out.println(num);
}
public static int max(int x,int y) {
int a = x+y;
return a;
}
}
注意:方法为void时不需要return。
4.运算符的类型和使用
1.算术运算符
运算符 | 描述 | 示例 | 结果 |
---|---|---|---|
+ | 加 | 5+5 | 10 |
- | 减 | 10-5 | 5 |
* | 乘 | 5*5 | 25 |
/ | 除 | 5/2 | 2 |
% | 取模,求余 | 5/2 | 1 |
++ | 自增 | i=2;i++; | 3 |
– | 自减 | i=2;i–; | 1 |
2.赋值运算符
运算符 | 描述 | 示例 | 结果 |
---|---|---|---|
= | 赋值 | a=3; | a=3 |
+= | 加等于 | a=3;b=2;a+=b; | a=5 b=2 |
-= | 减等于 | a=3;b=2;a-=b; | a=1 b=2 |
*= | 乘等于 | a=3;b=2;a*=b; | a=6 b=2 |
/= | 除等于 | a=3;b=2;a/=b; | a=1 b=1 |
%= | 模等于 | a=3;b=2;a%=b; | a=1 b=1 |
3.关系运算符
关系运算符作用是比较两边的操作数,结果总是 boolean 型的。
运算符 | 描述 | 示例 | 结果 |
---|---|---|---|
== | 相当于 | 4==3 | false |
!= | 不等于 | 4!=3 | true |
< | 小于 | 4<3 | false |
> | 大于 | 4>3 | true |
<= | 小于等于 | 4<=3 | false |
>= | 大于等于 | 4>=3 | true |
4.逻辑运算符
逻辑运算符用于对 boolean型结果的表达式进行运算,运算结果总是 boolean 型。
运算符 | 描述 | 示例 | 结果 |
---|---|---|---|
& | 与 | false&true | false |
| | 或 | false|true | true |
^ | 异或 | false^true | true |
! | 非 | !true | false |
&& | 短路与 | false&&true | false |
|| | 短路或 | false||true | true |
运算符&和|两边都会执行,而&&左边执行判断为false右边不执行,||左边执行判断为true右边不执行。
异或两边相同为假,不同为真。
5.字符串连接运算符
String s=“He” + “llo”; 结果"Hello" 。
"+"除了可用于字符串相连接,也能将字符串与其它的数据类型相连成一个新的字符串。
如:String s=“x” + 123; 结果"x123"。
6.三目运算符
X ? Y : Z
X 为 boolean 类型表达式,先计算 x 的值,若为 true,整个三目运算的结果为表达式 y 的值,否则整个运算结果为表达式 z 的值。 例:int score = 75; String type = score >=60 ? “及格” : “不及格”;
5.命名规范
标识符 :Java 对包、类、方法、参数和变量等要素命名时使用的字符序列称为标识符。规则如下:
由字母、数字、下划线(_)和美元符号($)组成,不能以数字开头,区分大小,长度无限制,不能是 Java 中的保留关键字。
命名规范: 软性建议
类名规范:首字母大写,后面每个单词首字母大写(大驼峰式)。
方法名规范: 首字母小写,后面每个单词首字母大写(小驼峰式)。
变量名规范:全部小写。
6.转义字符
所有的ASCII码都可以用“\”加数字(一般是8进制数字)来表示。而C中定义了一些字母前加""来表示常见的那些不能
显示的ASCII字符,如\0,\t,\n等,就称为转义字符,因为后面的字符,都不是它本来的ASCII字符意思了。
转义字符 | 意义 | ASCII码值(十进制) |
---|---|---|
\n | 换行,将当前位置移到下一行开头 | 010 |
\r | 回车 ,将当前位置移到本行开头 | 013 |
\t | 水平制表(HT) (跳到下一个TAB位置) | 009 |
\ | 代表一个反斜线字符’’’ | 092 |
’ | 代表一个单引号(撇号)字符 | 039 |
" | 代表一个双引号字符 | 034 |