本文档主要记录相比于C语言,Java 基础部分中出现的新知识或是不同之处。
参考资料:《零基础学Java》——明日科技 编著
文章目录
说明:文中代码框中的内容都应该填写在下面的<content>
处:
//类的导入语句要写在开头这里
public class Name{
public static void main(String args[]){
<content>
}
}
1. Java语言基础
1.1 输入输出
-
输出方式:
System.out.println(<输出内容>);
-
输入方式:分为三步
-
引入
Scanner
类,创建扫描器,获取控制台输入的值:import java.util.Scanner;//写在开头 Scanner sc = new Scanner(System.in);
-
获取输入内容:
<type> variable = sc.next<Type>();
注意:<type>
要替换成变量的类型,后面的要大写首字母(String类型的略有不同,见下面的例子)。例:import java.util.Scanner; Scanner sc = new Scanner(System.in); int num1 = sc.nextInt(); double num2 = sc.nextDouble(); String str = sc.nextLine();//这个与上面的不太相同
-
最后要关闭扫描器:
sc.close();
import java.util.Scanner; Scanner sc = new Scanner(System.in); int password = sc.nextInt(); //这里略去其他代码 sc.close();
-
1.2 文档注释
/**...*/
为文档注释标记。省略号部分即为文档注释内容(可跨行)。
/**
这部分是文档注释标记
*/
当文档注释出现在声明(如类的声明、类的成员变量声明、类的成员方法声明等)之前时,会被 Javadoc 文档工具读取作为 Javadoc 文档内容。
1.3 编写Java代码的命名规范
(1)类名:通常使用名词,第一个单词首字母必须大写,后续单词首字母大写。
(2)方法名:通常使用动词,第一个单词首字母小写,后续首字母大写。
(3)变量:第一个单词首字母小写,后续单词首字母大写。
(4)常量:所有字母均大写
(5)单词的拼接:通常使用 userLastNmae
方式拼接单词,而不是user_last_name
(这在Python中很常见)。
1.4 常量的声明
使用final
关键字。例:
final double PI = 3.1415926;
1.5 新的基本数据类型
- boolean:布尔类型,只有
true
和false
两种类型。布尔值不能与整数类型进行转换。 - byte:byte型也是一种整数类型,但只有一个字节,取值范围为-128~127。
注:String类型不是Java中的基本数据类型。
1.6 位移运算符
Java中的位移运算符和C中的其实是一样的。
有一篇讲述位移运算符的文章挺不错的(来自CSDN博主“幻欢子”):妙用位移运算符
- 左移运算符:
result = variable << n;
得到的result
等于variable * 2^n
- 右移运算符:
result = variable >> n;
得到的result
等于variable / 2^n
(取整)
位移运算符可以用来对密码加密。
1.7 变量初始化问题
Java中的变量包括成员变量和局部变量。其中,成员变量声明之后,不论是否对其进行初始化,Java虚拟机都会将其初始化为默认值(数一般都是0,布尔类型的是false);局部变量声明之后,Java虚拟机不会将其初始化为默认值,此时开发人员必须对其进行显式的初始化。
2.流程控制
2.1 条件语句
switch
多分支语句中参数必须是整型、字符型、枚举类型或字符串类型,case
后面的常量值必须是与参数兼容的数据类型。
2.2 循环语句
foreach
语句是for
语句的特殊简化版本,但是**foreach
语句并不能完全取代for
语句,不是任何foreach
语句都可以改写成for
语句版本。**但请注意,foreach
并不是一个关键字!
语法如下:
for(循环变量x : 遍历对象obj){
引用了x的java语句;//这会将obj遍历读取出的值赋给x
}
3. 数组
3.1 创建一维数组
声明数组:
/*
格式1:数组元素类型 数组名字[];
格式2:数组元素类型[] 数组名字
*/
//例子:
int arr[];//等价于 int[] arr;
double dou[];//等价于 double[] dou;
声明数组后还需要为它分配内存空间,否则无法使用。
/*
格式:数组名字 = new 数组元素类型[数组元素的个数]
*/
//例子:
arr = new int[5];
也可以将上面两个步骤合二为一:
int arr[] = new int[12];
3.2 一维数组初始化
/*共有三种方式
法一:直接在声明数组的时候赋初值,这时数组长度自动指定为初值列表的长度
法二:不方便叙述,见下例
法三:给数组分配完空间之后,逐个赋值
*/
//法一:
int a[] = {1, 2, 3};
//法二:
int b[] = new int[]{1, 2, 3};
//法三:
int c[] = new int[3];
c[0] = 1;
c[0] = 2;
c[0] = 3;
3.3 获取一维数组长度
//使用数组对象自带的length属性:
len = arr.length;//len中存的便是数组arr的长度
3.4 创建二维数组
声明数组:
/*也有两种方式:
方式1:数组元素类型 数组名字[][];
方式2:数组元素类型[][] 数组名字;
*/
//例子:
int tdarr1[][];
char[][] tdarr2;
同样需要分配内存。
/*有两种方式
法一:直接分配行列
法二:先分配行,不分配列,然后再单独给每一行分配列
注意:先分配列不分配行是错误的,如 int a[][] = new int[][2];
当然,这个也是错误的:int a[][] = new int[][];
*/
//例子:
int a[][];
a = new int[2][4];
int b[][];
b = new int[2][];
b[0] = new int[2];
b[1] = new int[2];//列长度可以不同
3.5 二维数组初始化
/*共有三种方式:
方式1:直接赋值,大括号内还有大括号
方式2:使用new,与一维数组类似
方式3:在分配内存空间后,可以给某一行直接赋一个一维数组,也可以给某一行的每一个元素分别赋值
*/
//例子:
//方式1:
int tdarr1[][] = {{1, 3, 5}, {2, 4, 6}};
//方式2:
int tdarr2[][] = new int[][]{{1, 3, 5}, {2, 4, 6}};
//方式3:
int tdarr3[][] = new int[2][3];
tdarr3[0] = new int[]{1, 3, 5};//给一行直接赋一个一维数组
tdarr3[1][0] = 2;
tdarr3[1][1] = 4;
tdarr3[1][2] = 6;
3.6 不规则数组
不规则数组在C语言是不存在的,而Java是支持不规则数组的。
int a[][] = new int[3][];
a[0] = new int[5];
a[1] = new int[3];
a[2] = new int[4];
//这里我们可以用length来测验一下:
System.out.println(a.length);//输出二维数组行数
ystem.out.println(a[0].length);//输出第一行的列数
ystem.out.println(a[1].length);//输出第二行的列数
ystem.out.println(a[2].length);//输出第三行的列数
/*输出结果:
3
5
3
4
*/
3.7 数组的基本操作——填充和批量替换数组元素
使用Arrays
类的静态方法fill()
方法来对数组中的元素进行分配,起到填充和替换的效果。fill()
方法可将指定的 int 值分配给 int 型数组的每个元素。
语法如下:
//a是要进行元素分配的数组,value是要存储数组中所有元素的值
Arrays.fill(int[] a, int value)
注意使用时要在开头导入Arrays
类。
例子:
import java.util.Arrays;//写在开头
int arr[] = new int[5];
Arrays.fill(arr, 8);//数组中元素全填为8
基础部分的不同总结完了,下面就是Java中的新内容了。
下篇预告:【Java】字符串
链接指路:
下一篇:【Java】字符串