Day 2 Java基本语法

Java命名规范

  1. 包名: 多单词组成时所有字母均小写
  2. 类名、接口名:多单词组成时,所有单词首字母大写
  3. 变量名、方法名:多单词组成时,第一个单词首字母小写,从第二个单词开始每个单词首字母大写
  4. 常量名:所有字母均大写,多单词时每个单词用下划线连接

Java数据类型

数据类型
基本数据类型
引用数据类型
数值型
整型
浮点型
字符型
布尔型
接口
数组

整型:byte(1)、short(2)、int(4)、long(8)
浮点型:float(4)、double(8)
自动类型提升:特别地,byte、short、char三者之间相互运算,结果为int.(也包括相互运算:byte+byte)
强制类型转换

char c = 'a';//a:97,A:65
int num = 10;
string str = "hello";
System.out.println(c + num + str);
//107hello
System.out.println(c + str + num);
//ahello10

&与&&的异同?

  • Java中&&和&都是表示与的逻辑运算符,都表示逻辑运输符and,当两边的表达式都为true的时候,整个运算结果才为true,否则为false。
  • &:逻辑与、&&:短路与
    &&的短路功能,当第一个表达式的值为false的时候,则不再计算第二个表达式;&则两个表达式都执行。
  • &可以用作位运算符,当&两边的表达式不是Boolean类型的时候,&表示按位操作。

Scanner类:从键盘获取不同类型的变量

具体实现步骤

  1. 导包:import Java.util.Scanner;
  2. Scanner的实例化:Scanner scan = new Scanner(System.in);
  3. 调用Scanner类的相关方法,来获取指定类型的变量。
int num = scan.nextInt();//输入int型
String str = scan.next();//获取字符串
double num = scan.nextDouble();//获取浮点型
  • 对于char型的获取,Scanner没有提供对应的方法,只能获取一个字符串。

一维数组的使用

1.一维数组的声明与初始化

int[] ids;//声明
//静态初始化:数组的初始化与数组元素的赋值操作同时进行
ids = new int[]{1001,1002,1003};
//动态初始化:数组的初始化与数组元素的赋值操作分别进行
String[] ids = new String[5];

错误写法:

int[] arr1 = new int[];
int[5] arr2 = new int[];
int[] arr3 = new int[3]{1,2,3];

2.如何调用数组指定位置的元素?

通过索引调用,从0 开始,到数组长度-1结束。

3.如何获取数组长度?

数组名.length;

4.如何遍历数组元素?

for(int i = 0;i < name.length; ++i){
     System.out.println(name[i]);
     }

5. 数组元素的默认初始化值

  • 数组元素是整型(byte、short、int、long):0
  • 数组元素是浮点型:0.0
  • 数组元素是char型:0或’\u0000’(而非’ ')
  • 数组元素是bollean型:false
  • 数组元素是引用类型:null

6. 数组的内存解析

**内存的简化结构**

int[] arr = new int[]{1,2,3};
String[] arr1 = new String[4];
arr1[1] = "张三";
arr1[2] = "李四";

在这里插入图片描述

二维数组的使用

1.二维数组的声明与初始化

//静态初始化
int[][] arr1 = new int[][]{{1,2},{3,4}};
//动态初始化
String[][] arr2 = new String[3][2];
String[][] arr3 = new String[3][];

错误写法:

String[4][3] arr4 = new String[][];
String[][] arr5 = new String[][5];

2.如何调用数组指定位置的元素?

System.out.println(arr1[0][1]);//1
arr3[1] = new String[4];
System.out.println(arr3[1][0]);//null

3.如何获取数组长度?

System.out.println(arr2.length);//3
System.out.println(arr2[0].length);//2

4.如何遍历二维数组元素?

for(int i = 0;i < arr2.length; ++i){
    for(int j = 0;j < arr2[i].length; ++j){
       System.out.println(arr2[i][j]+" ");
     }
    System.out.println();
 }

5. 数组元素的默认初始化值

规定:二维数组分为外层数组的元素、内层数组的元素

int[][] arr = new int[4][3];

外层元素:arr[0],arr[1]等
内层元素:arr[0][0],arr[1][2]等

举例说明

int[][] arr = new int[4][3];
System.out.println(arr[0]);//输出地址值
System.out.println(arr[0][0]);//输出0
System.out.println(arr);//输出地址值
double[][] arr = new double[4][];
System.out.println(arr[0]);//null
System.out.println(arr[0][0]);//报错

总结:

一、针对初始化方式一:int[][] arr = new int[4][3];

  • 外层元素的初始化值:地址值
  • 内层元素的初始化值:与一维数组初始化值的情况相同

二、针对初始化方式一:int[][] arr = new int[4][];

  • 外层元素的初始化值:null
  • 内层元素的初始化值:不能调用,否则报错

数组中涉及的常用算法

  • 数组元素的赋值(杨辉三角、回形数)
  • 求数值型数组的最值、平均数
  • 数组的复制、反转、查找
  • 数组的排序算法

关于数组复制

int[] array1,array2;
array1 = new int[]{2,3,5,7};
array2 = array1;

以上并不能称为数组复制,只是指向了同一地址。array2相当于array1的快捷方式,如果更改array2中的元素值,array1中的值也会跟着改变。

真正的复制:

array2 = new int[array1.length]
for(int i = 0;i < array2.length;++i){
     array2[i] = array1[i]
     }

Arrays工具类的使用

java.util.Arrays
  1. 判断两个数组是否相等
//boolean equals(int[]a,int[]b) 
int[]arr1 = new int[]{1,2,3,4};
int[]arr2 = new int[]{1,3,2,4};
boolean isEqual = Array.equals(arr1,arr2);
System.out.println(isEqual);//false
  1. 输出数组信息
//String toString(int[] a)
System.out.println(Array.toString(arr1));//null
  1. 将指定元素填充到数组当中
//void fill(int[] a,int val)
Array.fill(arr1,10)
  1. 排序
void sort(int[] a) //从小到大排序
void sort(int[] a, int fromIndex, int toIndex)//这种形式是对数组部分排序,也就是对数组a的下标从fromIndex到toIndex-1的元素排序,注意:下标为toIndex的元素不参与排序

数组中常见异常

  • 数组角标越界的异常
  • 空指针异常
//数组角标越界异常
 int[] arr1 = new int{1,2,3,4,5};
 for(int i = 0;i < arr1.length; ++i){
      System.out.println(arr1[i]);
     }
//空指针异常

//情况一:
int[] arr2 = new int[]{1,2,3};
arr2 = null;
System.out.println(arr2[0]);

//情况二:
int[][] arr3 = new int[4][];
System.out.println(arr3[0]);//null,不是空指针
System.out.println(arr3[0][0]);//空指针

//情况三:
String[] arr4 = new String[]{"AA","BB","CC"};
System.out.println(arr4[0].toString());
arr4[0]=null;
System.out.println(arr4[0].toString());//空指针
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值