黑马程序员——Java基础语法

时间:2023-02-11 00:46:25

———-android培训java培训、期待与您交流! ———-

关键字

 关键字是指被Java语言赋予特定含义的单词,如this、super、class等,关键字中所有的字母都是小写。另外现还有Java版本尚未使用但以后版本可能会作为关键字使用如goto、const等。

标识符

    标识符就是给类,接口,方法,变量等起名字时使用的字符序列。可由任意顺序的大小写字母、数字字符、_和$组成。
注意事项:
A:不能以数字开头。
B:不能包含除_、$以外的特殊符号。
C:不能是Java中的关键字。
D:Java严格区分大小写。
命名规则 为了提高阅读性,做到见名知意 。
包:其实就是文件夹,用于把不同的类名进行区分。全部小写,多级包名用.隔开。如com.baidu
类或者接口:每个单词的首字母必须大写。如HelloWorld
方法或者变量:一个单词:单词的首字母小写。多个单词:从第二个单词开始,每个单词的首字母大写。如helloWorld
常量:单词的每个字母都大写,多个单词用_隔开,如STUDENT_MAX_AGE

注释

    注释就是用于说明解释程序的文本,可以提高代码的阅读性,帮助我们调试代码。可以先写注释再写代码。将自己的思想通过注释先整理出来,在用代码去体现。因为代码仅仅是思想的一种体现形式而已。
A. 单行注释 可以嵌套使用。
格式: //注释文字
B. 多行注释 可以在程序内部使用,不可以嵌套多行注释。
格式: /* 注释文字 */
C. 文档注释 注释内容可以被javadoc解析,生成一套以网页文件形式体现的该程序的说明文档。
格式:/** 注释文字 */

常量

    常量是指在程序执行的过程中其值不可以发生改变。
常量的分类:
A:字符串常量 用双引号括起来的内容。如"helloworld"、"a"
B:整数常量 所有的整数。
C:小数常量 所有的小数。
D:字符常量 单引号括起来的内容。如'a'
E:布尔常量 比较特殊 只有true和false
F:空常量 null
Java针对整数常量提供了4中表现形式
二进制、八进制、十进制、十六进制
规则:进制越大,表现形式越短。
数据组长:
二进制:由0,1组成。以0b开头。
八进制:由0,1,...7组成。以0开头。
十进制:由0,1,……9组长。整数默认是十进制的。
十六进制:由0,1,……9,a,b,c,d,e,f(大小写均可)组成。以0x开头。
有符号的数据表示法:
在计算机内,有符号数有3种表示法:原码、反码和补码。所有数据的运算都是采用补码进行的。
原码:
就是二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。
反码:
正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。
补码;
正数的补码与原码相同,负数的补码是在其反码的末位加1。

变量

    变量值在程序执行过程中,在某个范围内其值可以发生改变的量。只有是数据不确定的时候,就可以定义变量。
定义格式:
数据类型 变量名 = 初始化值
注意:
A:格式是固定的,记住格式,以不变应万变。
B:变量的作用范围(一对{}之间有效),并且,在同一个大括号内不能同时定义同名的变量。
C:变量只能存放某一个类型的数据。
D:初始化。没有初始化值的变量不能直接使用。你只要在使用前给值就行,不一定非要在定义的时候立即给值。最好在定义时给值。
变量的作用域:作用域从变量定义的位置开始,到该变量所在的那对大括号结束。
生命周期:变量从定义的位置开始就在内存中活了;变量到达它所在的作用域的时候就在内存中消失了。

数据类型:Java语言是强类型语言,针对每一种数据都定义了明确的数据类型。
数据类型分类 4类8种

基本数据类型 占用字节数
整数
byte 1
short 2
int 4
long 8
浮点数
float 4
double 8
字符
char 2
布尔
boolean 1
  • 整数默认是int类型,浮点数默认是double类型,double类的小数精度比float类型的小数更高。
  • 长整型后缀用L或者l标记,建议使用L;单精度浮点数用F或者f标记,建议使用F。

引用数据类型包括类、接口和数组。

类型转换

    简单来说,类型转换就是不同类型之间相互的转化。类型转换可分为两种,默认类型转换和强制类型转换。一般来说,我们在运算的时候,要求参与运算的数据必须一致。
注意:boolean不能转换成其他的数据类型
默认转换 从小的数据类型到大的数据类型,数据类型自动提升。
A:byte short char-->int-->long-->float-->double
B:byte,short,char相互之间不转换,他们参与运算首先转换为int类型。
强制转换 从大的数据类型到小的数据类型
格式:目标数据类型 变量 = (目标数据类型)(被转换的数据);

运算符

    运算符就是对常量和变量进行操作的符号。
分类:算术运算符,赋值运算符,比较运算符,逻辑运算符,位运算符,三目运算符。

算术运算符:

+,-,*,/,%,++,--     
++,--运算符的使用:
单独使用:
放在操作数的前面和后面效果一样。
参与运算使用:
放在操作数的前面,先自增或者自减,然后在参与运算。
放在操作数的后面,先参与运算,在自增或者自减。
作用:就是对变量进行自增或者自减。
%:取模。5%2=1;负数对正数取模结果为负数,正数对负数取模结果为正数。
+:还可以做为连接符使用。

赋值运算符:

基本的赋值运算符:=
把=右边的数据赋值给左边。
扩展的赋值运算符:+=,-=,×=,%=
+=把左边和右边做加法,然后赋值给左边,其他的同理。
扩展的赋值运算符隐含了一个强制类型转换。如short s=1; s=s+1;就会报错,因为s+1后类型被默认提升为int类型,不能赋值给short类型的s;而short s=1; s += 1;就没有问题。

比较运算符:

==,!=,>,>=,<,<=
特点:
无论你的操作是简单还是复杂,结果都是boolean类型。
注意:
"=="不能写成"=".

逻辑运算符:

    &,|,^,!
&&,||
逻辑运算符用于连接布尔类型表达式或值,在java中不可以写成3<x<6,要写成3<x&x<6;
表达式:就是用运算符把常量或者变量连接起来的符合java语法的式子。
算术表达式:a+b
比较表达式:a==b
结论:
逻辑与&;有false则false。
逻辑或|;有true则true。
逻辑异或^;相同为false,不同为true。
逻辑非!;非false则true,非true则false。偶数个不改变自身。

&&和&的区别?同理||和|的区别?
A:最终结果一样。
B:&&具有短路效果,左边false,右边不执行。
开发中常用的逻辑运算符:
&&,||,!

位运算符:要做位运算,首先要把数据转换为二进制。

    &,|,^,~
<<,>>,>>
<<:空位补0,被移除的高位丢弃。//把<<左边的数据*(2的移动次幂)。如:3<<2=3*2^2=12;效率最高。
>>: 被移位的二进制最高位是0,右移后,空缺位补0;//同理。把>>左边的数据/(2的移动次幂).如:24>>2=24/(2*2)=6。最高位是1,最高位补1。
>>>:无符号右移,被移位二进制最高位无论是0或者是1,空缺位都用0补。
&:如果二进制位和0进行&运算,结果是0;和1进行&运算结果是原值。
|:任何二进制位和0进行|运算,结果是原值;和1进行|运算结果是1。
^: 任何相同二进制位进行^运算,结果是0;不同二进制位^运算结果是1。
^的特点:一个数据对另一个数据位异或两次,该数本身不变。此特点可以用于不借助第三方变量的值互换。
/*
对两个整数变量的值进行互换
*/

public class Demo {

public static void main(String[] args) {
int a = 3, b = 5;

change1(a, b);
change2(a, b);
change3(a, b);
}

private static void change3(int a, int b) {
System.out.println("a:" + a + "---b:" + b);
a = a ^ b;
b = a ^ b;
a = a ^ b;
System.out.println("a:" + a + "---b:" + b);
}

private static void change2(int a, int b) {
System.out.println("a:" + a + "---b:" + b);
a = a + b;
b = a - b;
a = a - b;
System.out.println("a:" + a + "---b:" + b);
}

private static void change1(int a, int b) {
int c;
System.out.println("a:" + a + "---b:" + b);
c = a;
a = b;
b = c;
System.out.println("a:" + a + "---b:" + b);
}

}

三目运算符

格式:(比较表达式)?表达式1:表达式2
如果条件为true,运算后的结果是表达式1
如果条件为false,运算后的结果是表达式2