1.如何从键盘获取不同类型的变量:需要使用Scanner类
具体实现步骤:
1.导包:import java.util.Scanner;
2.Scanner的实例化:Scanner scan = new Scanner(System.in);
3.调用Scanner类的相关方法(next() / nextXxx()),来获取指定类型的变量
注意:
需要根据相应的方法,来输入指定类型的值。如果输入的数据类型与要求的类型不匹配时,会报异常:InputMisMatchException导致程序终止。
//1.导包:import java.util.Scanner;import java.util.Scanner;class ScannerTest{public static void main(String[] args){//2.Scanner的实例化Scanner scan = new Scanner(System.in);//3.调用Scanner类的相关方法System.out.println("请输入你的姓名:");String name = scan.next();System.out.println(name);}}
2.java.util.Arrays:操作数组的工具类,里面定义了很多操作数组的方法
java.util.Arrays类即为操作数组的工具类,包含了用来操作数组(比 如排序和搜索)的各种方法。
| boolean equals(int[] a,int[] b) | 判断两个数组是否相等。 |
|---|---|
| String toString(int[] a) | 输出数组信息。 |
| void fill(int[] a,int val) | 将指定值填充到数组之中。 |
| void sort(int[] a) | 对数组进行排序。 |
| int binarySearch(int[] a,int key) | 对排序后的数组进行二分法检索指定的值。 |
package com.atguigu.java;import java.util.Arrays;/** java.util.Arrays:操作数组的工具类,里面定义了很多操作数组的方法***/public class ArraysTest {public static void main(String[] args) {//1.boolean equals(int[] a,int[] b):判断两个数组是否相等。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));//3.void fill(int[] a,int val):将指定值填充到数组之中。Arrays.fill(arr1,10);System.out.println(Arrays.toString(arr1));//4.void sort(int[] a):对数组进行排序。Arrays.sort(arr2);System.out.println(Arrays.toString(arr2));//5.int binarySearch(int[] a,int key)对排序后的数组进行二分法检索指定的值。int[] arr3 = new int[]{-98,-34,2,34,54,66,79,105,210,333};int index = Arrays.binarySearch(arr3, 210);if(index >= 0){System.out.println(index);}else{System.out.println("未找到");}}}
3.随机生成某个范围内的整数
:::info
[上限,下限]
公式:(int)(Math.random() * (上限 - 下限 + 1 ) + 下限)
:::
4.JavaBean
JavaBean是一种Java语言写成的可重用组件。
:::info
所谓javaBean,是指符合如下标准的Java类:
- 类是公共的
- 有一个无参的公共的构造器
- 有属性,且有对应的get、set方法
::: 用户可以使用JavaBean将功能、处理、值、数据库访问和其他任何可以 用Java代码创造的对象进行打包,并且其他的开发者可以通过内部的JSP 页面、Servlet、其他JavaBean、applet程序或者应用来使用这些对象。用 户可以认为JavaBean提供了一种随时随地的复制和粘贴的功能,而不用关 心任何改变。
【我的理解:就是一个专门用来和数据库交互的数据,可以新建数据,设置数据,更新数据,获得数据。】
5.java.lang.Object类
:::info
1.Object类是所有Java类的根父类
2.如果在类的声明中未使用extends关键字指明其父类,则默认父类为java.lang.Object类
3.Object类中的功能(属性、方法)就具有通用性。
- 属性:无
- 方法:equals() / toString() / getClass() /hashCode() / clone() / finalize()
wait() 、 notify()、notifyAll()
4. Object类只声明了一个空参的构造器
:::
6.包装类(Wrapper)的使用
- 针对八种基本数据类型定义相应的引用类型—包装类(封装类)
- 有了类的特点,就可以调用类中的方法,Java才是真正的面向对象


基本数据类型、包装类与String三者之间如何转换?
自动装箱、自动拆箱 Integer i = 10; 基本数据类型、包装类—->String: valueOf(Xxx xx) String—->基本数据类型、包装类:parseXxx(String s)
package com.atguigu.java2;import org.junit.Test;/** 包装类的使用:* 1.java提供了8种基本数据类型对应的包装类,使得基本数据类型的变量具有类的特征** 2.掌握的:基本数据类型、包装类、String三者之间的相互转换****/public class WrapperTest {//String类型 --->基本数据类型、包装类:调用包装类的parseXxx(String s)@Testpublic void test5(){String str1 = "123";//错误的情况:// int num1 = (int)str1;// Integer in1 = (Integer)str1;//可能会报NumberFormatExceptionint num2 = Integer.parseInt(str1);System.out.println(num2 + 1);String str2 = "true1";boolean b1 = Boolean.parseBoolean(str2);System.out.println(b1);}//基本数据类型、包装类--->String类型:调用String重载的valueOf(Xxx xxx)@Testpublic void test4(){int num1 = 10;//方式1:连接运算String str1 = num1 + "";//方式2:调用String的valueOf(Xxx xxx)float f1 = 12.3f;String str2 = String.valueOf(f1);//"12.3"Double d1 = new Double(12.4);String str3 = String.valueOf(d1);System.out.println(str2);System.out.println(str3);//"12.4"}/** JDK 5.0 新特性:自动装箱 与自动拆箱*/@Testpublic void test3(){// int num1 = 10;// //基本数据类型-->包装类的对象// method(num1);//自动装箱:基本数据类型 --->包装类int num2 = 10;Integer in1 = num2;//自动装箱boolean b1 = true;Boolean b2 = b1;//自动装箱//自动拆箱:包装类--->基本数据类型System.out.println(in1.toString());int num3 = in1;//自动拆箱}public void method(Object obj){System.out.println(obj);}//包装类--->基本数据类型:调用包装类Xxx的xxxValue()@Testpublic void test2(){Integer in1 = new Integer(12);int i1 = in1.intValue();System.out.println(i1 + 1);Float f1 = new Float(12.3);float f2 = f1.floatValue();System.out.println(f2 + 1);}//基本数据类型 --->包装类:调用包装类的构造器@Testpublic void test1(){int num1 = 10;// System.out.println(num1.toString());Integer in1 = new Integer(num1);System.out.println(in1.toString());Integer in2 = new Integer("123");System.out.println(in2.toString());//报异常// Integer in3 = new Integer("123abc");// System.out.println(in3.toString());Float f1 = new Float(12.3f);Float f2 = new Float("12.3");System.out.println(f1);System.out.println(f2);Boolean b1 = new Boolean(true);Boolean b2 = new Boolean("TrUe");System.out.println(b2);Boolean b3 = new Boolean("true123");System.out.println(b3);//falseOrder order = new Order();System.out.println(order.isMale);//falseSystem.out.println(order.isFemale);//null}}class Order{boolean isMale;Boolean isFemale;}
