【Java】Java基础 学习笔记(一)

单词及运算符

关键字

被Java语言赋予特殊含义的单词,所有关键字均为小写。
根据用途可分为以下几类:
1.用于定义数据类型的关键字:
class interface byte short int long float double char boolean void
2.用于定义数据类型值的关键字:
true false null
3.用于定义流程控制的关键字:
if else switch case default while do for break continue return
4.用于定义访问权限修饰符的关键字:
private protected public
5.用于定义类,函数,变量修饰符的关键字:
abstract final static synchronized
6.用于定义类与类之间关系的关键字:
extend implements
7.用于建立实例,引用实例,判断实例的关键字:
new this super instanceof
8.用于异常处理的关键字:
try catch finally throw throws
9.用于包的关键字:
package import
10.其他修饰符关键字:
native strictfp transient volatile assert

标识符

是指在程序中自定义的一些名称。
由26个英文字母(大小写),数字0-9,符号_ $组成。

合法的标识符规则

1.数字不可以作为开头
2.不可以使用关键字

Java严格区分大小写。

Java中的名称规范

1.包名:多单词组成时所有字母都小写。
2.类名接口名:多单词组成时,所有单词的首字母都大写
3.变量名和函数名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写。
4.常量名:所有字母都大写,多单词时每个单词用下划线连接。

Java注释

1.单行注释:
//注释内容
2.多行注释:
/*注释内容*/
3.文档注释:

/**
注释内容
*/

常量与变量

常量

常量可分为:整数常量、小数常量、布尔型常量、字符常量、字符串常量、null常量。

变量

名称 大小 取值范围 备注
基本数据类型
byte 1字节 -2^7 ~ 2^7-1 整数类型
默认为int
定义long类型时需在变量值后加上小写l
short 2字节 -2^15 ~ 2^15-1
int 4字节 -2^31 ~ 2^31-1
long 8字节 -2^63 ~ 2^63-1
float 4字节 - 小数类型
默认为double
定义float类型时需在变量值后加上小写f
double 8字节 -
char 2字节 - -
boolean - true或false -
引用数据类型
类(class) -
接口(interface)
数组([])

运算符

算术运算符

+,-,*,/,%,++(前置),++(后置),–(前置),–(后置),+(字符串相加)

赋值运算符

=,+=,-=,*=,/=,%=

short c = 3;
c = c + 3;//编译无法通过,因为c会被提升为int类型,无法赋值给short类型
c += 3;//编译通过,+=在给c赋值时,自动完成了强转操作

比较运算符

==,!=,<,>,<=,>=,instanceof(检查是否是类的对象)

逻辑运算符

&,|,^,!,&&,||
&:两边都为true时,结果才为true。其他均为false。
|:两边都为false时,结果才为false。其他均为true。
^:两边相同结果为false,两边不同结果为true。
&&和||在进行布尔值运算时会发生短路(不满足条件时就不再运算了)。
位运算符:
<<:左移运算符,其实是乘以2的移动位数次幂
>>:右移运算符,实际是除以2的移动位数次幂
>>>:无符号右移。
>>与>>>的区别:
>>右移最高位补什么由原有数据的最高位决定。
>>>右移无论最高位补什么都补0。

public class test1 {
    public static void main(String[] args){
        System.out.println(9<<2);
        System.out.println(9>>2);
        System.out.println(9>>>2);
        System.out.println(-9<<2);
        System.out.println(-9>>2);
        System.out.println(-9>>>2);
    }
}
/*
结果是:
36
2
2
-36
-3
1073741821
*/

&:按位与运算
|:按位或运算
^:按位异或运算

//利用异或将两个变量的值互换,不借助中间变量
public class test1 {
    public static void main(String[] args){
        int m = 3,n = 8;
        System.out.println("n=" + n + ",m=" + m);
        n = n ^ m;
        m = m ^ n;
        n = n ^ m;
        System.out.println("n=" + n + ",m=" + m);
    }
}

~:该数的反码

三元运算符

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

语句

判断语句

if(条件表达式){
	执行语句块
}//以下可省略
else if(条件表达式){
	执行语句块
}
else{
	执行语句块
}

选择语句

switch语句

switch(表达式)
{
	case 数值1:
		执行语句;
		break;
	case 数值2:
		执行语句;
		break;
	...
	default:
		执行语句;
		break;
}

1.被选择表达式只接受byte,short,int,char类型结果
2.语句内case无定义顺序,执行时先从第一个定义的case语句开始执行
3.switch语句只有碰到break或者执行到右大括号才会结束

循环语句

while:
格式:

while(条件表达式)
{
	执行语句;
}

do while:
格式:

do{
	执行语句;
}while(条件表达式);

无论条件是否满足,循环体至少被执行一次。
for:
格式:

for(初始化表达式;循环条件表达式;循环后的操作表达式)
{
	执行语句;
}

其他流程控制语句

break:
结束当前循环

public class test1 {
    public static void main(String[] args){
        w:for(int i = 0;i < 3;i++){
            for(int y = 0;y < 3;y ++){
                System.out.println("i=" + i);
                break w;
            }
        }
    }
}
/*
	Java里面可以给break语句设置标记,标记跳出的循环
	运行结果为:i=0
*/

continue:
结束本次循环继续下次循环

函数

格式

修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2,…)
{
执行语句;
return 返回值;
}

重载

定义:在同一个类中,允许存在一个以上的同名函数,只要它们的参数个数或者参数类型不同即可。
特点:与返回值类型无关,只看参数列表。

public int add(int x,int y){
	return x + y;
}
public int add(int x,int y,int z){
	return x + y + z;
}

数组

同一种类型数据的集合.

一维数组

格式:

//元素类型[] 数组名 = new 元素类型[元素个数或数组长度];
int[] arr = new int[5];
//元素类型[] 数组名 = new 元素类型[]{元素,元素,元素,...};
int[] arr = new int[]{3,5,1,7};

int数组的初始化默认值为0,boolean类型的数组初始化为false,double类型数组初始化默认值为0.0。
(插播一些内存管理)
栈内存:
用于存储局部变量,当数据使用完,所占空间会自动释放。
堆内存:
数组和对象,通过new建立的实例都存放堆内存中。每一个实体都有内存地址值,实体中的变量都有默认初始化值,当它不再使用时,会被垃圾回收器回收。
上述代码在内存中的表示如图:

//对数组进行选择排序
//即每次拿数组未确定的头元素与剩下的数组元素比较
for(int i = 0;i < arr.length;i ++){
	for(int j = i + 1;j < arr.length;j ++){
		if(arr[i] > arr[j]){
        	int temp;
            temp = arr[i];
            arr[i] = arr[j];
            arr[j] = temp;
        }
	}
}

二维数组

举个栗子:
int[][] arr = new int[3][];
表示arr数组中有3个一维数组,每一个一维数组都是默认初始化值null,可以对它们分别进行初始化。

int[][] arr = new int[3][];
arr[0] = new int[3];
arr[1] = new int[1];
arr[2] = new int[2];

对于上面的代码,它在内存中的表示如图:

To be continue…

猜你喜欢

转载自blog.csdn.net/qq_41279172/article/details/102857101