Java08-常用API

API(应用程序编程接口)

包是分门别类管理各种不同的程序,类似于文件夹,建包有利于程序的管理和维护

建包的语法格式(idea会自动洗建包的代码):
package com.sangria.javabean;
public class Student{

}
 在自己的程序中调用其他包下的程序的注意事项:
  • 当前程序中,要调用自己所在包下的程序可以直接调用
  • 当前程序中,要调用其他包下的程序,则必须在当前程序中导包,才可以访问(导包格式:米import 包名.类名)

导包这一操作,idea是可以自动导包的:
File——settings——搜索框输入(auto)——找到Auto import——选中“Add unambiquous imports on the fly”——OK

  • 当前程序中,要调用java提供的程序,要先导包才可以使用,但是java.lang包下的程序不需要导包,可以直接使用
  • 当前程序中,要调用多个不同包下的程序,而这些程序名正好一样,此时默认只能导入一个程序,另一个程序必须带包名访问

String

概述

String代表字符串,可以用来创建对象封装字符串数据,并对其进行处理

String封装字符串数据的方式:
方式一:

直接使用双引号“...”

public class StringDemo{
    public static void main(String[] args){//直接双引号得到字符串对象,封装字符串数据
String name = "Sangria";
System.out.printIn(name);
    }
}

"Sangria"——>是对象,那print后得到的应该是他的地址,但是为什么最后输出的是name中的值?

字符串中本身

方式二:

new String类,调用构造器初始化字符串对象

public class StringDemo1{
    public static void main(String[] args){
//new String创建字符串对象,并调用构造器初始化字符串
        String rs = new String();
        System.out.printIn(rs);
        //输出空白
        String rs1 = new String("sangira");
        System.out.printIn(rs1);
        //输出sangria

//以上两种方式在笔试题中可能出现,但是在实际开发中是不这样写的
    
        char chars = {'a','b','c'};
        String rs2 = new String(chars);
        System.out.printIn(rs2);

        byte[] bytes = {97,98,99};
        String rs3 = new String(bytes);
        System.out.printIn(rs3);

 

常用方法

String s1 = "天生我材必有用";
String s2 = "安得广厦千万间";

//1、length()输出字符串长度方法 
System.out.printIn(s1.length());
//输出s1长度    7

//2、charAt()提取字符串某个索引位置的字符 
Char c = s1.charAt(2);
System.out.printIn(c)
//输出为    我

//3、toCharArray()把字符串转换为字符串数组
char[] chars = s1.toCharArray()
for(int i=0;i<chars.length;i++){
    System.out.printIn(chars[i]);
}

//4、比较两个字符串内容是否一样
System.out.printIn(s1.equals(s2));   //比较s1字符串和s2字符串是否一样
//也许会想到使用==去比较两个字符串内容是否一致 但是==比较的是两个字符串对象的地址 而非内容

//5、equalsIgnoreCase()比较两个字符串内容是否一样 忽略大小写

//6、substring(int beginIndex,int endIndex)给予起始位置和末位置的字符串截取(包含前面不含后面)
String s3 = s2.substring(0,3);
System.out.printIn(s3);
//输出 安得广厦

//7、substring(int endIndex);从开头到给予的末位置字符串截取
String s4 = s2.substring(4);
System.out.printIn(s4);
//输出 安得广厦千

//8、replace(CharSequence target,CharSequence replacement);替换指定的字符串
String s5 = s2.replace("千万","**");
System.out.printIn(s5);
//输出    安得广厦**间

//9、contains(CharSequence s);判断字符串是否包含指定的字符串
System.out.printIn(s2.contains("千万"));
//因为s2字符串中有    千万   这两个字 所以返回true

//10、startWith(String s);判断某个字符串是否以字符串s开头
System.out.printIn(s2.startWith("安"));
//s2字符串的确以 安 开头 所以返回true

//11、split()把字符串按照某个指定内容分割成多个字符串
String s6 = "张三,李四,王二麻子";
String[] rs1 = s6.split(",");
//分割结果: 张三 李四 王二麻子

使用时的注意事项

  • String对象的内容不可改变,被称为不可变字符串对象

每次改变字符串对象实际上是产生了新的字符串对象,变量每次都指向了新的字符串对象,之前字符串对象的内容实际上是没有改变的,因此说String的对象是不可变的

  • 只要是以"..."方式写出的字符串对象,会存储到字符串常量池,且相同内容的字符串只存储一份

以该方式写出的字符串对象,相同的内容,他们指向的地址实际上是相同的

  • 通过new方式创建字符串对象,每new一次都会产生一个新的对象放在堆内存中
  • 在运算中的话比如s2 = "我是";s3 = s2+"老师";s2==s3————>false  字符串运算就不放在常量池而是放在堆内存中(这里是变量名,所以编译优化不产生)

String s1 = "a"+"b"+"c";

String s2 = "abc";

s1==s2——————>true

虽说字符串运算会放在堆内存中,但是java存咋编译优化机制,程序在编译时,"a"+"b"+"c"会直接编译成"abc",以提升程序的执行性能(一眼看出来是具体值)

ArrayList

ArrayList是一个集合

集合:集合是一种容器,用来装数据,类似于数组

集合大小可变

ArrayList使用的最多最常见的集合

ArrayList快速入门

ArrayList<E>

public class ArrayListDemo{
    public static void main(String[] args){
        //创建一个ArrayList的集合对象
        ArrayList list = new ArrayList();
        //add(添加的东西);        将指定的元素添加到此集合的末尾
        list.add("打底衫");
        //此时该字符串就加入到了这个集合中
        
        ArrayList<String> list1 = new ArrayList<>();  //加上<String>后该集合只能加字符串的数据
        //add(int index,E element);在此集合中的指定位置插入指定的元素
        list1.add("dsdad");
        list1.add("嗲是多少");
        //此时集合:        ["dsdad","嗲是多少"]
        list1.add(1,"mysql");
        //此时集合变成:        ["dsdad","mysql","嗲是多少"]
        
        //get()返回指定索引处的元素
        String s1 = list1.get(1);
        System.out.printIn(s1);
        //返回        mysql
        
        //size()返回集合中元素的个数
        System.out.printIn(s1.size());
        //输出 3
        
        //remove(int index);删除指定索引处的元素 返回被删除的元素

        //remove(Object o);删除指定内容的元素,返回删除是否成功
        //默认删除第一次出现和这个数据的元素
        list1.remove("mysql");
        System.out.printIn(list1);
        此时返回:        ["dsdad","嗲是多少"]
        
        //set(int index,E element);修改指定索引处的元素
        list1.set(0,"小鸭子");
        System.out.printIn(list1);
        //输出["小鸭子","嗲是多少"]
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值