1.如何从键盘获取不同类型的变量:需要使用Scanner类

具体实现步骤:
1.导包:import java.util.Scanner;
2.Scanner的实例化:Scanner scan = new Scanner(System.in);
3.调用Scanner类的相关方法(next() / nextXxx()),来获取指定类型的变量
注意:
需要根据相应的方法,来输入指定类型的值。如果输入的数据类型与要求的类型不匹配时,会报异常:InputMisMatchException导致程序终止。

  1. //1.导包:import java.util.Scanner;
  2. import java.util.Scanner;
  3. class ScannerTest{
  4. public static void main(String[] args){
  5. //2.Scanner的实例化
  6. Scanner scan = new Scanner(System.in);
  7. //3.调用Scanner类的相关方法
  8. System.out.println("请输入你的姓名:");
  9. String name = scan.next();
  10. System.out.println(name);
  11. }
  12. }

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) 对排序后的数组进行二分法检索指定的值。
  1. package com.atguigu.java;
  2. import java.util.Arrays;
  3. /*
  4. * java.util.Arrays:操作数组的工具类,里面定义了很多操作数组的方法
  5. *
  6. *
  7. */
  8. public class ArraysTest {
  9. public static void main(String[] args) {
  10. //1.boolean equals(int[] a,int[] b):判断两个数组是否相等。
  11. int[] arr1 = new int[]{1,2,3,4};
  12. int[] arr2 = new int[]{1,3,2,4};
  13. boolean isEquals = Arrays.equals(arr1, arr2);
  14. System.out.println(isEquals);
  15. //2.String toString(int[] a):输出数组信息。
  16. System.out.println(Arrays.toString(arr1));
  17. //3.void fill(int[] a,int val):将指定值填充到数组之中。
  18. Arrays.fill(arr1,10);
  19. System.out.println(Arrays.toString(arr1));
  20. //4.void sort(int[] a):对数组进行排序。
  21. Arrays.sort(arr2);
  22. System.out.println(Arrays.toString(arr2));
  23. //5.int binarySearch(int[] a,int key)对排序后的数组进行二分法检索指定的值。
  24. int[] arr3 = new int[]{-98,-34,2,34,54,66,79,105,210,333};
  25. int index = Arrays.binarySearch(arr3, 210);
  26. if(index >= 0){
  27. System.out.println(index);
  28. }else{
  29. System.out.println("未找到");
  30. }
  31. }
  32. }

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才是真正的面向对象
  • image.png

image.png


基本数据类型、包装类与String三者之间如何转换?

自动装箱、自动拆箱 Integer i = 10; 基本数据类型、包装类—->String: valueOf(Xxx xx) String—->基本数据类型、包装类:parseXxx(String s)

  1. package com.atguigu.java2;
  2. import org.junit.Test;
  3. /*
  4. * 包装类的使用:
  5. * 1.java提供了8种基本数据类型对应的包装类,使得基本数据类型的变量具有类的特征
  6. *
  7. * 2.掌握的:基本数据类型、包装类、String三者之间的相互转换
  8. *
  9. *
  10. *
  11. */
  12. public class WrapperTest {
  13. //String类型 --->基本数据类型、包装类:调用包装类的parseXxx(String s)
  14. @Test
  15. public void test5(){
  16. String str1 = "123";
  17. //错误的情况:
  18. // int num1 = (int)str1;
  19. // Integer in1 = (Integer)str1;
  20. //可能会报NumberFormatException
  21. int num2 = Integer.parseInt(str1);
  22. System.out.println(num2 + 1);
  23. String str2 = "true1";
  24. boolean b1 = Boolean.parseBoolean(str2);
  25. System.out.println(b1);
  26. }
  27. //基本数据类型、包装类--->String类型:调用String重载的valueOf(Xxx xxx)
  28. @Test
  29. public void test4(){
  30. int num1 = 10;
  31. //方式1:连接运算
  32. String str1 = num1 + "";
  33. //方式2:调用String的valueOf(Xxx xxx)
  34. float f1 = 12.3f;
  35. String str2 = String.valueOf(f1);//"12.3"
  36. Double d1 = new Double(12.4);
  37. String str3 = String.valueOf(d1);
  38. System.out.println(str2);
  39. System.out.println(str3);//"12.4"
  40. }
  41. /*
  42. * JDK 5.0 新特性:自动装箱 与自动拆箱
  43. */
  44. @Test
  45. public void test3(){
  46. // int num1 = 10;
  47. // //基本数据类型-->包装类的对象
  48. // method(num1);
  49. //自动装箱:基本数据类型 --->包装类
  50. int num2 = 10;
  51. Integer in1 = num2;//自动装箱
  52. boolean b1 = true;
  53. Boolean b2 = b1;//自动装箱
  54. //自动拆箱:包装类--->基本数据类型
  55. System.out.println(in1.toString());
  56. int num3 = in1;//自动拆箱
  57. }
  58. public void method(Object obj){
  59. System.out.println(obj);
  60. }
  61. //包装类--->基本数据类型:调用包装类Xxx的xxxValue()
  62. @Test
  63. public void test2(){
  64. Integer in1 = new Integer(12);
  65. int i1 = in1.intValue();
  66. System.out.println(i1 + 1);
  67. Float f1 = new Float(12.3);
  68. float f2 = f1.floatValue();
  69. System.out.println(f2 + 1);
  70. }
  71. //基本数据类型 --->包装类:调用包装类的构造器
  72. @Test
  73. public void test1(){
  74. int num1 = 10;
  75. // System.out.println(num1.toString());
  76. Integer in1 = new Integer(num1);
  77. System.out.println(in1.toString());
  78. Integer in2 = new Integer("123");
  79. System.out.println(in2.toString());
  80. //报异常
  81. // Integer in3 = new Integer("123abc");
  82. // System.out.println(in3.toString());
  83. Float f1 = new Float(12.3f);
  84. Float f2 = new Float("12.3");
  85. System.out.println(f1);
  86. System.out.println(f2);
  87. Boolean b1 = new Boolean(true);
  88. Boolean b2 = new Boolean("TrUe");
  89. System.out.println(b2);
  90. Boolean b3 = new Boolean("true123");
  91. System.out.println(b3);//false
  92. Order order = new Order();
  93. System.out.println(order.isMale);//false
  94. System.out.println(order.isFemale);//null
  95. }
  96. }
  97. class Order{
  98. boolean isMale;
  99. Boolean isFemale;
  100. }