Java基础 学习1
标签(空格分隔): Java
cmd
md 创建目录,cd 进入,cd..返回,del删除文件,rd删除目录
输入函数(Scanner类)
具体实现步骤:
1、导包:import java.util.Scanner;
2、Scanner的实例化:Scanner scan = new Scanner(System.in)
3、调用Scanner类的相关方法【next() / nextXxx()】,来获取指定类型的变量
注意:
需要根据相应的方法,来输入指定的值,如果输入的数据类型与要求的类型不匹配时,会报异常:InputMisMatchException ,导致程序终止。
案例:输入一个整数
import java.util.Scanner;//导包
class study1 {
public static void main(String[] args){
Scanner scan = new Scanner(System.in);//实例化
int num = scan.nextInt();//scan.nextInt() 为输入语句
System.out.println(num);//正常输出
}
}
随机数函数【Math.random()】
注意:Math.random(),给出的随机函数的范围是[0.0,1)
公式:[a,b] : (int)(Math.random()*(b-a+1) + a)
案例:如何获取一个随机数:10 - 99
int value = (int)(Math.random()*90 + 10);//[0.0,1.0)--->[0.0,90.0)--->[10.0,100.0)--->[10,99]
class study1 {
public static void main(String[] args){
int value = (int)(Math.random()*90 + 10);//[0.0,1.0)--->[0.0,90.0)--->[10.0,100.0)--->[10,99]
System.out.println(value);
}
}
输入单个字符并输出
因为char类型不支持输入函数,所以通过字符串的输入来获取
格式:
String word = scan.next();
char ch = word.charAt(0);
数组
1、数组的声明和初始化
int[] ids;//声明
1.1 静态初始化
ids = new int[]{1001,1002,1003,1004};
1.2动态初始化
String[] names = new String[5]
2、如何调用数组的指定位置的元素:通过角标的方式调用
数组的角标(或索引)从0开始的,到数组的长度-1结束。
names[0] = "王明";
names[1] = "王贺";
names[2] = "张学良";
names[3] = "孙屠龙";
names[4] = "王宏志";
如何获取数组的长度
属性:length
语法:System.out.println(数组名.length);
示例:
System.out.println(names.length);
默认数组的初始化
数组元素是整型:0
数组元素是浮点型:0.0
数组元素是char型:0或'\000'而非'0'
数组元素是Boolean型:false
数组元素是引用数据类型:null而非'null'
二维数组的初始化
针对初始化方式一:比如:int[][] arr = new int[4][3];
外层元素的初始值为:地址值
内层元素的初始值为:与一维数组初始化情况相同
针对初始化方式二:比如:int[][] arr = new int[4][];
外层元素的初始化值为:null
内层元素的初始化值为:不能调用,否者报错
Arrays工具类的使用
1、判断两个数组是否相同
函数介绍:boolean equals(int[] a,int[] b);
示例:
public class study1 {
public static void main(String[] ages){
int[] arr1 = new int[]{1,2,3,4};
int[] arr2 = new int[]{1,3,2,4};
boolean isEquals = Arrays.equals(arr1,arr2);
System.out.println(isEquals);
}
}
2、输出数组信息
函数介绍:String toString(int[] a)
示例:System.out.println(Arrays.toString(arr1));
案例:
public class study1 {
public static void main(String[] ages){
int[] arr1 = new int[]{1,2,3,4};
int[] arr2 = new int[]{1,3,2,4};
boolean isEquals = Arrays.equals(arr1,arr2);
System.out.println(isEquals);
System.out.println(Arrays.toString(arr1));
}
}
3、将指定值填充到数组中去
函数介绍:void fill(int[] a,int 新值)
示例:Arrays.fill(arr1,10);
案例:
public class study1 {
public static void main(String[] ages){
int[] arr1 = new int[]{1,2,3,4};
int[] arr2 = new int[]{1,3,2,4};
Arrays.fill(arr1,10);
System.out.println(Arrays.toString(arr1));
}
}
4、对数值进行排序
函数介绍:void sort(int[] a);
示例:Arrays.sort(arr2);
案例:
public class study1 {
public static void main(String[] ages){
int[] arr1 = new int[]{1,2,3,4};
int[] arr2 = new int[]{1,3,2,4};
Arrays.sort(arr2);
System.out.println(Arrays.toString(arr2));
}
}
5、二分查找(只支持循序)
函数介绍:int binarySearch(int[] a,int 要查找的数)
示例:Arrays.binarySearch(arr3,4);
案例:
public class study1 {
public static void main(String[] ages){
int[] arr3 = new int[]{-98,-34,2,34,54,66,79,105,210,333};
System.out.println(Arrays.toString(arr3));
int index = Arrays.binarySearch(arr3,210);
System.out.println(index);
}else{
System.out.println("未找到");
}
6、Java中常见的异常
1、异常种类
检查型异常和非检查型异常的主要区别在于其处理方式。检查型异常都需要使用try,catch 和finally
关键字在编译器进行处理,否则会出现编译器报错。对于非检查型异常则不需要这样做。Java中所有继承 Exception
的类的异常都是检查型异常,所有继承RuntimeException 的异常都被称为非检查型异常。2、ClassCastException
类转换异常,将一个不是该类的实例转换成这个类就会抛出这个异常。
如将一个数字强制转换成字符串就会报这个异常:
Object x = new Integer(0);
System.out.println((String)x);
这是运行时异常,不需要手工捕获。
3、空指针异常NullPointerException
操作一个 null 对象的方法或属性时会抛出这个异常。
//情况一:
int[] arr1 = new int[]{1,2,3};
arr1 = null;
System.out.println(arr1[0]);
//情况二:
int[][] arr2 = new int[4][];
System.out.println(arr2[0][0]);
//情况:
String[] arr3 = new String[]{"AA","BB","CC"};
arr3[0] = null;
System.out.println(arr3[0].toString());
提示:一旦程序出现异常,未处理时,就终止执行。
内容扩展:
算术异常类:ArithmeticExecption
空指针异常类:NullPointerException
类型强制转换异常:ClassCastException
数组负下标异常:NegativeArrayException
数组下标越界异常:ArrayIndexOutOfBoundsException
违背安全原则异常:SecturityException
文件已结束异常:EOFException
文件未找到异常:FileNotFoundException
字符串转换为数字异常:NumberFormatException
操作数据库异常:SQLException
输入输出异常:IOException
方法未找到异常:NoSuchMethodException