首页 > 编程语言 >Java学习笔记——第八天

Java学习笔记——第八天

时间:2024-03-07 12:35:00浏览次数:24  
标签:Java String 第八天 对象 ArrayList 程序 笔记 字符串 public

常用API(String、ArrayList部分)

API

API是什么

API ( Application Programming Interface,应用程序编程接口)就是别人写好的一些程序,给程序员直接拿去调用即可解决问题。

API文档是什么

Java提供的API使用说明书。

包是什么

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

建包的语法格式

package 包名;

在自己程序中调用其他包下的程序的注意事项

  • 如果当前程序中,要调用自己所在包下的其他程序,可以直接调用。(同一个包下的类,互相可以直接调用)
  • 如果当前程序中,要调用其他包下的程序,则必须先在当前程序中导包才可以访问。导包格式:import 包名.类名;
  • 如果当前程序中,要调用Java提供的程序,也需要先导包才可以使用。但是Java.lang包下的程序不需要我们导包,可以直接使用。
  • 如果当前程序中,要调用多个不同包下的程序,而这些程序名正好一样,此时默认只能导入一个程序,另一个程序必须带包名访问。

String

String是什么

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

String创建对象的方式

方式一:Java 程序中的所有字符串文字(例如“abc”)都为此类的对象。

String 变量名 = "字符串";

方式二:调用String类的构造器初始化字符串对象。

构造器 说明
public String() 创建一个空白字符串对象,不含有任何内容
public String(String original) 根据传入的字符串内容,来创建字符串对象
public String(char[] chars) 根据字符数组的内容,来创建字符串对象
public String(byte[] bytes) 根据字节数组的内容,来创建字符串对象

String的常用方法

常用方法名 说明
public int length() 获取字符串的长度返回(就是字符个数)
public char charAt(int index) 获取某个索引位置处的字符返回
public char[] toCharArray(): 将当前字符串转换成字符数组返回
public boolean equals(Object anObject) 判断当前字符串与另一个字符串的内容一样,一样返回true
public boolean equalsIgnoreCase(String anotherString) 判断当前字符串与另一个字符串的内容是否一样(忽略大小写)
public String substring(int beginIndex, int endIndex) 根据开始和结束索引进行截取,得到新的字符串(包前不包后)
public String substring(int beginIndex) 从传入的索引处截取,截取到末尾,得到新的字符串返回
public String replace(CharSequence target, CharSequence replacement) 使用新值,将字符串中的旧值替换,得到新的字符串
public boolean contains(CharSequence s) 判断字符串中是否包含了某个字符串
public boolean startsWith(String prefix) 判断字符串是否以某个字符串内容开头,开头返回true,反之
public String[] split(String regex) 把字符串按照某个字符串内容分割,并返回字符串数组回来
  • ==在8种基本数据类型的比较中的作用是比较对应变量的数值是否相等
  • ==在对象类型的比较中的作用是比较对应对象在堆内存中的地址是否相等

String在使用时的注意事项

注意事项一

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

  • 不可变数据类型:值改变,地址不变的数据类型。

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

注意事项二

  • 以“...”方式写出的字符串对象,会存储到字符串常量池,且相同内容的字符串只存储一份。
  • 通过new方式创建字符串对象,每new一次都会产生一个新的对象放在堆内存中。

注意事项三

Java存在编译优化机制,程序在编译时: “a” + “b” + “c” 会直接转成 “abc”,以提高程序的执行性能。

String s1 = "abc";
String s2 = "a" + "b" + "c";
System.out.println(s1 == s2);

输出为:

true

字符串常量池

  • 以“...”方式写出的字符串对象,会存储到字符串常量池,且相同内容的字符串只存储一份,之后所有变量值为字符串常量池里有的变量都会指向该常量池里的变量。
  • Java设计字符串常量池的目的是节约内存。

ArrayList

集合

集合是什么

集合是一种容器,用来装数据的,类似于数组,但是集合的大小可以动态变化。

集合有哪些种类

List、Map、Set、LinkedList、ArrayList、HashMap、TreeMap、HashSet、TreeSet、LinkedHashMap、LinkedHashSet等。

集合的特点

大小可变;类型可以不固定;功能比数组更强大;适合于元素个数不确定,同时存在增删改查的业务场景。

ArrayList是什么

是用的最多、最常见的一种集合,其元素存在索引且可以重复。

如何创建ArrayList对象

public ArrayList(); //ArrayList的构造器
ArrayList 变量名 = new ArrayList(); //创建ArrayList对象

泛型

  • 集合都是支持泛型的,即可以存储任意类型的变量,并且可以指定实例化对象只能存储某一种类型的变量。

  • 集合和泛型都不支持基本数据类型,只支持引用数据类型。

  • 定义集合都应该采用泛型。

  • ArrayList是泛型类,可以约束存储的数据类型。格式为:

ArrayList<类名> 变量名 = new ArrayList<类名>(); //完整格式
ArrayList<类名> 变量名 = new ArrayList<>(); //从JDK1.7开始有的简化格式
  • 不约束数据类型的格式为:
ArrayList 变量名 = new ArrayList();
ArrayList<Object> 变量名 = new ArrayList<>(); //推荐
  • ArrayList可以存储自定义类型的对象:
ArrayList<自定义类型> 变量名 = new ArrayList<>();
//此时集合容器中存储的是每个对象在堆内存中的地址

ArrayList的常用方法

常用方法名 说明
public boolean add(E e) 将指定的元素添加到此集合的末尾
public void add(int index,E element) 在此集合中的指定位置插入指定的元素
public E get(int index) 返回指定索引处的元素
public int size() 返回集合中的元素的个数
public E remove(int index) 删除指定索引处的元素,返回被删除的元素
public boolean remove(Object o) 删除指定的元素,返回删除是否成功,只删除匹配到的索引最小的一个
public E set(int index,E element) 修改指定索引处的元素,返回被修改的元素

从集合中遍历元素,并筛选出元素删除它,应该如何操作才能不出bug

  • 方式一:每次删除一个数据后,索引-1。
  • 方式二:从集合末尾开始遍历然后删除。

标签:Java,String,第八天,对象,ArrayList,程序,笔记,字符串,public
From: https://www.cnblogs.com/zgg1h/p/18058606

相关文章

  • Vue学习笔记37--内置关系
    示例一:<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>一个重要的内置关系</title>......
  • Java自定义异常和全局异常处理
    1、自定义异常:自定义异常类 BusinessExceptionextendsRuntimeException:RuntimeException是Java提供的一个运行时异常类。publicclassBusinessExceptionextendsRuntimeException{privateintcode;//使用枚举构造publicBusinessException(HttpCodeEn......
  • JavaScript 最新动态:2024 年新功能
    前言随着Web技术的日新月异,JavaScript也在不断地吸收新的特性和技术,以满足日益复杂和多样化的开发需求。在2024年,JavaScript迎来了一系列令人瞩目的新功能,这些功能不仅提升了开发者的效率,也极大地丰富了Web应用的表现力和交互性。在接下来的内容中,我们将逐一介绍这些新......
  • java mysql事物特性记录,在同一事物中更新执行后,立即查询得到的是新数据还是旧数据?
    在Java中,如果你使用MySQL,并且你在一个事务方法中执行了更新操作,那么在这个事务结束并提交之前,其他事务或查询(非同一事务内的)是看不到你的更新结果的。这是数据库事务的隔离性所保证的。 但是,如果你在同一事务中立即执行查询,你将看到更新后的数据。因为查询和更新都在同一个事务......
  • javascript如何循环遍历对象
    在JavaScript中有多种循环遍历对象的方法,下面本篇文章就来给大家介绍一下使用JavaScript循环遍历对象的方法,希望对大家有所帮助。1、使用for循环for循环是js中最常用的一个循环工具,经常用于数组的循环遍历。letarr=[1,2,3];for(leti=0;i<arr.length;i++){co......
  • Java开发者的Python快速进修指南:掌握T检验
    前言T检验是一种用于比较两个独立样本均值差异的统计方法。它通过计算T值和P值来判断样本之间是否存在显著性差异。通常情况下,我们会有两组数据,例如一组实验组和一组对照组。T检验的原假设是两组样本的均值相等,备假设是两组样本的均值不相等。T检验会计算一个T值,表示两组样本均......
  • Go学习笔记(一)
    Go学习日记Go的数据类型bool:true和falseint:int8,int16,int32(int),int64uint:uint8,uint16,uint32(uint),uint64float:float32,float64byte字节类型,本质是uint8,对应的操作包是bytesGolang的数值类型明确的制定了长度、有无符号Golang不会做类型转换......
  • 企业级应用于架构设计笔记
    课堂笔记-主要是给自己复习的第一节课课程结构:架构定义:用一致认可方式从多个角度对系统的组成部分及各部分之间的协作关系所做的描述。软件架构的定义(软件体系结构SoftwareArchitecture):用开发团一致认可的方式从多个角度(业务、开发、运维等)对软件的组成部分及各部分之间的协......
  • 面试高频题:Java并发包有些什么?
    面试过Java研发岗位的同学,相信很多都碰到过面试官问这么一道题:Java并发包有些什么?Java并发包,就是java.util.concurrent包下的类和子包。大体分为三类:一:线程池工具 核心类为ThreadPoolExecutor,通过这个类,可以构建出各种线程池。二:原子工具如AtomicInteger、AtomicLong等,通......
  • 推荐系统学习笔记(一)
    好的推荐系统疑问:推荐系统的主要任务,推荐系统和分类目录以及与搜索引擎的区别等什么是推荐系统如果对象数目巨大,用户只能通过搜索引擎找到自己需要的目标如果用户没有明确需求时,需要一个工具帮助筛选,给出一些建议,这个工具就是推荐系统推荐系统的任务联系用户和信息,一方......