个人笔记 —— 应用程序接口,工具-类,static

Day Five

类中:

  • 成员变量 -> field
  • 成员方法 -> method

控制台输入类Scanner:

new Scanner(System.in)
nextLine() (获取控制台输入的一行字符串,以回车键结束)
next() (获取控制台输入的一个字符串,以回车或空格结束)
nextInt() (获取控制台输入的一个整型变量)
nextDouble() (获取控制台输入的一个Double型变量)

JDK中提供的类 API -> 应用程序接口,工具-类

  • 学习类,就是学习:

    构造方法 —> 如何创建对象
    成员变量 —> 基本可以忽略
    成员方法 —> 实现的功能

  • 接触过的类:

    System: java.lang.System
    Scanner: java.util.Scanner
    Math: java.lang.Math
    String: java.lang.String
    Arrays: java.util.Arrays

  • 程序中,默认已经导入的 import 的软件包是 java.lang

  • 软件包 package:

    java.lang: 常用类(例:Math)
    java.util: 工具类(例:Arrays)
    java.io: 输入输出相关类
    java.sql: 数据库相关
    java.net: 网络相关
    java.text: 格式化相关

  • 常用类[一]

  1. Random: — 随机数 —

    构造方法: new Random()
    int nextInt(): 产生一个随机整数
    int nextInt(int n): 产生一个0~n的随机数

    比较Math.random()Random 的使用

    1. Math.random() —> 不需要对象,直接调用
      Random —> 需要创建对象
    2. Math.random() —> 返回double类型,范围固定0~1
      Random中的nextInt() —> 返回int类型,范围可指定
  2. String — 字符串 —

    字符数组直接打印, 会直接连接字符数组中的字符,打印出一个字符串 —> JVM自动转换
    字符串特点:

    1. 直接赋值的字符串, 都存在字符串常量池中(堆中存储的优化)
    2. 字符串本身不可变
    3. 字符串不能用 == 来比较
  • 构造方法

    String s = “hello”;
    String()
    String(String)
    String(char[])
    String(char[], int offset, int count)
    String(byte[])
    String(byte[], int offset, int length)

  • 常用API:

    char charAt(int index)
    char[] toCharArray()
    boolean equals(String)

    String substring(int start, int end) —>从start位置开始截取字符串到end位置结束不包括end
    String substring(int start)

    boolean startsWith(String)
    boolean startsWith(String, int offset) —> 从offset位置开始, 是否以指定字符串打头
    boolean endsWith(String)

    int indexOf(char)
    int indexOf(String)
    int indexOf(char, int fromIndex) —> 从fromIndex开始往后, 第一次出现char的位置
    int indexOf(String, int fromIndex)

    int length()

    boolean equalsIgnoreCase(String)

    String trim() — 去掉字符串左右两边的空白字符

       public static void main(String[] args){
       		String a="   asfsaf  ";
       		System.out.println(a);
       		System.out.println(a.trim());
       }
       
       结果:
         asfsaf  
       asfsaf
    

    concat

    toUpperCase
    toLowerCase —>字母大小写转换

    contains —>连接

    replace —>替换

  • Scanner

Scanner console = new Scanner(System.in);

内存图(不同构造方法下的变量初始化,以及字符串连接):

String s6="he";
String s7=s6+"llo";

在这里插入图片描述

static: 修饰词静态的

(有一些类的方法在使用时, 不需要创建对象)

  1. 修饰成员变量
    属于类的, 所有对象共用
    通过类名.调用
    只有一个

  2. 修饰方法

  3. 修饰代码块
    静态代码块 -> 给类初始化
    在类加载时执行的
    作用: 用来执行消耗比较大的代码

  • xx.java -> xx.class -> 类加载 -> JVM方法区中
    静态的成员变量是和类一起加载到方法区中的
    结论: 当使用静态成员变量时, 对象不一定存在

  • 类什么时候会加载?

    第一次使用类会加载, 并且只加载一次
    使用类的情况:

    1. 创建对象
    2. 调用类的静态成员变量
    3. 调用类的静态方法
      类加载会执行什么代码?
      1.静态代码块
      2.静态成员变量

内存图(Child类中定义了static变量money):
在这里插入图片描述
java.lang.Math:

double Math.random(): 返回0.0~1.0 之间的随机数
double Math.pow(double a, double b): 返回 a 的 b 次幂

java.util.Arrays:

String Arrays.toString(数组): 以[元素1, 元素2]格式打印数组

例如:在数组 [1,2,3,4,5], 添加一个 6

  1. 数组扩容: 创建新的数组

    int[] arr = {1,2,3,4,5};
    arr = new int[6]; // [1,2,3,4,5,0]
    
  2. 将原来的元素复制到新数组中

数组复制:

void System.arraycopy(src, srcPos, dest, destPos, count)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值