一、String类

概述:程序中所有的双引号字符串,都是String类的对象。(就算没有new,照样算是)

特点:

1、字符串的内容用不可变【重点】

2、因为字符串【String对象】是不可变的,所以它们可以被共享

3:字符串效果上相当于char[]字符数组 例:"abc" 效果上等效于 char[] data={ 'a' , 'b' , 'c' }

例:String str="abc"; 相当于 char data[] = {'a', 'b', 'c'}; String str = new String(data); 只是对象是由JVM自动创建的

4、用过双引号直接创建的对象存放到字符串常量池中,而通过关键字new获得的对象存放到栈内存中,两者不同

二、String类的构造方法

1、无参构造:String str = new String()

2、通过字符数组构造 String str = new String(char[] chars)

3、通过字节数组构造 String str = new String(byte[] bytes)

三、==号比较的解释

对于基本类型来说, ==是进行数值的比较

对于引用类型来说, ==是进行内存地址的比较

public class StringTest2 {
public static void main(String[] args) {
String str1="abc";
String str2="abc";
char[] chars={'a','b','c'};
String str3 = new String(chars); System.out.println(str1==str2); //true
System.out.println(str1==str3); //false
System.out.println(str2==str3); //false
}
}

四、 常用方法

       1、equals():只有参数是一个字符串且内容相同时返回true,否则返回false
2、equalsIgnoreCase():忽略大小写
3、int length () :返回字符串长度
4、char charAt (int index):根据字符串的索引找到相应的值
5、int indexOf (String str):根据字符找到相应的索引
6、String substring (int beginIndex, int endIndex):截取字符串片段
7、String concat (String str):将指定的字符串连接到该字符串的末尾。
8、char[] toCharArray ():将字符串转换为char[]型数组
9、byte[] getBytes ():将字符串转换为byte[]型数组
10、String replace (CharSequence target, CharSequence replacement):将target替换为replacement
11、String[] split(String regex):将此字符串按照给定的regex(规则)拆分为字符串数组 public class StringTest3 {
public static void main(String[] args) {
String str1="abc";
String str2="abc";
char[] chars={'a','b','c'};
String str3 = new String(chars);
String str4="ABC";
String str5="thisisworld";
String s="helloworld";
s.concat("JAVABase"); System.out.println(str1.equals(str2)); //true
System.out.println(str1.equals(str3)); //true
System.out.println(str3.equals(str4)); //false
System.out.println(str3.equalsIgnoreCase(str4)); //true
System.out.println(str1.length()); //3
System.out.println(str1.charAt(1)); //'b'
System.out.println(str1.indexOf('b')); //1
System.out.println(str5.substring(3,6)); //sis
System.out.println(s.concat("JAVABase")); //helloworldJAVABase System.out.println(".........<==>..........");
char[] chars1 = str2.toCharArray();
for (int i = 0; i < chars1.length; i++) {
System.out.println(chars1[i]);
}
String str6 = new String(chars1);
System.out.println(str6); System.out.println(".........<==>..........");
String str7="itcast itheima";
System.out.println(str7.replace("it","TT"));//TTcast TTheima System.out.println(".........<==>..........");
System.out.println("将a-b-c-d转化abcd");
String str8="a-b-c-d";
String[] splitStr = str8.split("-");
StringBuilder sb = new StringBuilder();
for (int i = 0; i < splitStr.length; i++) {
sb.append(splitStr[i]);
}
System.out.println(sb.toString());
}

五、Arrays类

1、Arrays.toString(arr):数组内容转为字符串

public class ArraysTest {
public static void main(String[] args) {
int[] arr = {1,2,4,3,7};
String string = Arrays.toString(arr);
System.out.println(string);
}
} 2、sort(int[] a):对指定的 int 型数组按数字升序进行排序
Arrays.sort(arr, Collections.reverseOrder()); 倒序,但需要将int[] 转为 interge[] public class ArraysTest1 {
public static void main(String[] args) {
int[] arr = {1,2,4,3,7};
System.out.println("....<排序前>...");
System.out.println(Arrays.toString(arr));
System.out.println("....<排序后>...");
Arrays.sort(arr);
System.out.println(Arrays.toString(arr));
}
} 3、 <T> List<T> asList(T... a):将数组转为集合
注意:
a、该方法适用于对象型数据的数组(String、Integer...),不适用于基本数据类型
b、用此方法得到的List集合长度是不可改变的,所以不支持add()、remove()、clear()等方法
例子:
public class ArraysTest {
public static void main(String[] args) {
Integer[] arr = {1,2,4,3,7};
List<Integer> list = Arrays.asList(arr);
for (Integer ints : list) {
System.out.println(ints.intValue());
}
}
} 4、int binarySearch(int[] a, int key):二分查找,输入数组的某个元素,返回其对应在数组中的相应位置

六、 Math类

        1、double abs(double a):返回 double 值的绝对值。

              double d1 = Math.abs(‐5); //d1的值为5
double d2 = Math.abs(5); //d2的值为5 2、double ceil(double a):返回大于等于参数的最小的整数 double d1 = Math.ceil(3.3); //d1的值为 4.0
double d2 = Math.ceil(‐3.3); //d2的值为 ‐3.0
double d3 = Math.ceil(5.1); //d3的值为 6.0 3、public static long round(double a):返回最接近参数的 long。(相当于四舍五入方法) long d1 = Math.round(5.5); //d1的值为6.0
long d2 = Math.round(5.4); //d2的值为5.0

七、Collections类

        public static <T> boolean addAll(Collection<T> c, T... elements) :往集合中添加一些元素。
public static void shuffle(List<?> list) 打乱顺序 :打乱集合顺序。
public static <T> void sort(List<T> list) :将集合中元素按照默认规则排序。
public static <T> void sort(List<T> list,Comparator<? super T> ) :将集合中元素按照指定规则排序。 Comparator与Comparable区别:
Comparator:自己(this)与别的(参数)比较,需要实现Comparable接口,重写接口中的compareTo()方法
Comparable: 相当于找第三方裁判(是由系统创建的匿名内部类),比较两个 例子:
public class CollectionsTest {
public static void main(String[] args) {
ArrayList<Person> arrayList = new ArrayList<>();
arrayList.add(new Person("秦问天",15));
arrayList.add(new Person("莫倾城",11));
arrayList.add(new Person("北冥幽篁",13));
System.out.println(arrayList);
/*
注意:
* sort(List<T> list)
* 被排序的集合里面的元素,必须实现Comparable接口,重写接口中的方法compareTo自定义排序顺序
* */
Collections.sort(arrayList);
System.out.println(".............");
Collections.sort(arrayList, new Comparator<Person>() {
@Override
public int compare(Person o1, Person o2) {
return o1.getAge() - o2.getAge();
}
});
}
}

java基础之String类、Math类、Arrays类、Collections类的更多相关文章

  1. Java基础之String、StringBuffer、StringBuilder浅析

    Java基础之String.StringBuffer.StringBuilder浅析 一.前言: 位于java.lang包下的String.StringBuilder.StringBuffer一般都是 ...

  2. JAVA核心技术I---JAVA基础知识(工具类Arrays和Collections类)

    一:工具类 –不存储数据,而是在数据容器上,实现高效操作 • 排序 • 搜索 –Arrays类 –Collection类 二:Arrays类(处理数组) (一)基本方法 –排序:对数组排序, sort ...

  3. Java基础进阶:APi使用,Math,Arrarys,Objects工具类,自动拆装箱,字符串与基本数据类型互转,递归算法源码,冒泡排序源码实现,快排实现源码,附重难点,代码实现源码,课堂笔记,课后扩展及答案

    要点摘要 Math: 类中么有构造方法,内部方法是静态的,可以直接类名.方式调用 常用: Math.abs(int a):返回参数绝对值 Math.ceil(double a):返回大于或等于参数的最 ...

  4. JAVA基础学习之 Map集合、集合框架工具类Collections,Arrays、可变参数、List和Set集合框架什么时候使用等(4)

    package com.itcast.test20140113; import java.util.ArrayList; import java.util.Arrays; import java.ut ...

  5. Java基础(32):String与StringBuilder、StringBuffer的区别(String类)

    在Java中,除了可以使用 String 类来存储字符串,还可以使用 StringBuilder 类或 StringBuffer 类存储字符串,那么它们之间有什么区别呢? String 类具有是不可变 ...

  6. Java 基础之 String 类

    String String 被声明为 final,因此不能被继承.(Integer 等包装类也不能被继承) 在 java8 中,String 内部使用 char 数组 来存储数据 public fin ...

  7. Java基础知识二次学习--第六章 常用类

    第六章 常用类   时间:2017年4月26日16:14:49~2017年4月26日16:56:02 章节:06章_01节~06章_06节 视频长度:20:57+1:15+8:44+1:26+11:2 ...

  8. Java 基础(三)| IO流之使用 File 类的正确姿势

    为跳槽面试做准备,今天开始进入 Java 基础的复习.希望基础不好的同学看完这篇文章,能掌握泛型,而基础好的同学权当复习,希望看完这篇文章能够起一点你的青涩记忆. 一.什么是 File 类? java ...

  9. Java基础知识笔记第八章:常用的实体类

    String类 String类位于lang包下 java会默认导入lang包下的类,所以可以直接使用,注意String是final类所以不能有子类 构造String对象: 常量对象:String常量也 ...

  10. Java基础(八)--String(源码)、StringBuffer、StringBuilder

    String源码:基于jdk1.8 public final class String implements Serializable, Comparable<String>, CharS ...

随机推荐

  1. Django环境的Linux安装(使用put方法将本地安装包导入到Linux)

    1.建立Sftp链接 2.使用put命令将本地的安装包拉取到指定目录. 3.使用tar xzvf 命令将安装包解压到创建好的目录. 4.cd Django-* 5.执行安装命令:sudo python ...

  2. XposedAPI pg walkthrough Intermediate

    nmap ┌──(root㉿kali)-[~/lab] └─# nmap -p- -A 192.168.226.134 Starting Nmap 7.94SVN ( https://nmap.org ...

  3. Vanity Intermediate 统配符提权

    nmap扫描 ┌──(root㉿kali)-[~] └─# nmap -p- -A 192.168.167.234 Starting Nmap 7.94SVN ( https://nmap.org ) ...

  4. 从找朋友到找变位词:一道趣味字符串问题的深入解析|LeetCode 438 找到字符串中所有字母异位词

    LeetCode 438 找到字符串中所有字母异位词 点此看全部题解 LeetCode必刷100题:一份来自面试官的算法地图(题解持续更新中) 生活中的算法 还记得小时候玩的"找朋友&quo ...

  5. ChatGPT 背后的英雄——AI芯片

    本文分享自天翼云开发者社区<ChatGPT 背后的英雄--AI芯片>,作者:w****n AI芯片能为人工智能应用提供所需的基础算力:按技术架构主要分为GPU.FPGA和ASIC.Chat ...

  6. 具体数学组合数习题选做(Genshining)

    8.计算 \[\sum_k\binom{n}{k}(-1)^k(1-\frac{k}{n})^n \] 解: 考虑 \[\sum_{k=0}^n\binom{n}{k}(-1)^kf(k)=(-1)^ ...

  7. Linux使用堡垒机

    一.linux系统使用 1. 安装 puttygen sudo apt-get install putty 2. 进入 pem 所在文件执行转换命令 puttygen mykey.pem -o myk ...

  8. (抄自己luogu上的博客)莫队总结

    虽然当时文风很2,但是觉得写的蛮好的,就在这里贴一下吧. 最近学了分块(太难想了 \(qwq\) )和莫队(太神奇了 \(0w0\) ),写一个阶段性总结~ 分块 总所周知,分块是一种神奇的暴力,用 ...

  9. Java微信小程序登录接口获取openid

    根据官方文档,wx.login()的回调函数中,需要我们传递生成的用户登录凭证到code2accessToken的接口中   小程序登录方法 code2accessToken的方法中要求传入如下参数 ...

  10. maven - [01] 概述

    Maven -- 项目管理及自动构建工具 001 || maven是什么   Maven 是一个由Apache软件基金会提供的项目管理及自动构建工具,主要用于Java编程.它基于项目对象模型(POM) ...