【Java】 基础部分中相较于C的新知识

本文档主要记录相比于C语言,Java 基础部分中出现的新知识或是不同之处。

参考资料:《零基础学Java》——明日科技 编著


说明:文中代码框中的内容都应该填写在下面的<content>处:

//类的导入语句要写在开头这里
public class Name{
    public static void main(String args[]){
        <content>
    }
}

1. Java语言基础

1.1 输入输出

  • 输出方式:

    System.out.println(<输出内容>);
    
  • 输入方式:分为三步

    1. 引入Scanner类,创建扫描器,获取控制台输入的值:

      import java.util.Scanner;//写在开头
      
      Scanner sc = new Scanner(System.in);
      
    2. 获取输入内容:<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();//这个与上面的不太相同
      
    3. 最后要关闭扫描器: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 新的基本数据类型

  1. boolean:布尔类型,只有truefalse两种类型。布尔值不能与整数类型进行转换。
  2. 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】字符串

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值