首页 > 编程语言 >大数据学习记录,Java基础(5)

大数据学习记录,Java基础(5)

时间:2025-01-17 11:59:55浏览次数:3  
标签:Java String 记录 int StringBuffer System 学习 println out

常用类

object

object类是Java中所有类的共同父类

Object类的方法
1.toString()
  • 默认情况下,toString()返回的是“对象的运行时类型 @ 对象的hashCode值的十六进制形式"
  • 如果我们直接System.out.println(对象),默认会自动调用这个对象的toString(),打印的是地址值
  • 可以根据需要在用户自定义类型中重写toString()方法,如String 类重写了toString()方法,返回字符串的值。
s1="hello";
System.out.println(s1);//相当于System.out.println(s1.toString());
2.equals()
  • equals()只能比较引用类型,其作用与“==”相同,比较是否指向同一个对象。

  • equals()如果没有被重写过默认也和==一样是比较地址值,只有在一些重写过equals()方法的类中才是比较内容值.

hashCode()
  • 返回每个对象的hash值。

  • 若将来希望根据成员变量值计算哈希值,需要进行重写,如果重写equals,那么通常会一起重写hashCode()方法

clone()
  • 只有类实现了cloneable接口的对象,才可以进行克隆,浅拷贝

String

概述:

字符串是由若干个字符构成的字符序列,每一个字符位置是固定的,一旦被创建,就不能被修改,处于常量池中。

在java中,提供了一个类来表示字符串:String。Java程序中的所有字符串文字(例如"abc" )都被实现为此类的实例【对象】。

因为String对象是不可变的,它们可以被共享。

String类中的构造方法:
public static void main(String[] args) {
    //public String(byte[] bytes)  将字节数组转成一个字符串
    byte[] bytes = {97,65,48,98,99};
    String s2 = new String(bytes);
    System.out.println("s2: "+s2);//s2: aA0bc
    System.out.println("-----------------------");
    
    //public String(byte[] bytes,int index,int length)截取字节数组一部分转成字符串
    String s3 = new String(bytes, 1, 3);
    System.out.println("s3: "+s3);//s3: A0b
    System.out.println("-----------------------");
    
    //public String(char[] value) 将字符数组转成一个字符串
    char[] chars = {'我','爱','刘','亦','菲'};
    String s4 = new String(chars);
    System.out.println("s4: "+s4);//s4: 我爱刘亦菲
    System.out.println("-----------------------");
    
    //public String(char[] value,int offset,int count)截取字符数组一部分转成字符串
    String s5 = new String(chars,2,3);
    System.out.println("s5: "+s5);//s5: 刘亦菲
    
    System.out.println("-----------------------");
    //public String(String original)
    String s6 = new String("hello");
    System.out.println("s6: "+s6);//s6: hello
    
    System.out.println("-----------------------");
    String s = new String("hello");
    String s7 = "hello";
    System.out.println(s==s7);//false

}
字符串String类中的判断功能:
public static void main(String[] args) {
    String s1 = "hello";
    String s2 = "world";
    
    //boolean equals(Object obj) 比较两个字符串内容是否相同,区分大小写
    System.out.println(s1.equals(s2));//false
    
    //boolean equalsIgnoreCase(String str) 忽略大小写比较两个字符串内
    String s3 = "HelLo";
    System.out.println(s1.equalsIgnoreCase(s3));//true
    
    //boolean contains(String str) 判断一个字符串中是否包含另一个字符串
    String s4 = "今天的天气有点凉,不太适hello合出去郊游";
    System.out.println(s4.contains(s1));//true
    
    //boolean startsWith(String str) 判断某一个字符串是否以某个字符串开头
    System.out.println(s4.startsWith("今天我"));//false
    
    // boolean endsWith(String str) 判断某一个字符串是否以某个字符串结尾
    System.out.println(s4.endsWith("不去郊游"));//false
    
    // boolean isEmpty() 判断一个字符串是否是空字符串
    String s5 = "hello";
    System.out.println(s5.isEmpty());//false
}
字符串String类中的获取功能:
public static void main(String[] args) {
    String s1 = "hello";
    
    //int length() 获取字符串中的字符个数
    System.out.println(s1.length());//5
    
    //char charAt(int index) 根据索引获取对应位置上的字符
    System.out.println(s1.charAt(1));//e
    
    //int indexOf(int ch) 根据字符对应ASCII码数值获取对应字符的位置索引
    System.out.println(s1.indexOf(101));//1
    
    //int indexOf(String str) 获取大字符串中小字符串的第一个字符的位置,r若不包含返回-1
    String bigStr = "dwqsredhelloqjion";
    String smallStr = "world";
    System.out.println(bigStr.indexOf(smallStr));//-1
    
    //int indexOf(int ch,int fromIndex) 从指定索引开始查找对应的字符
    String s2= "dwqrewqrffqewrfdwqqrfwqfwq";
    System.out.println(s2.indexOf(101,5));//11
    
    //String substring(int start) 从指定索引开始截取字符串到某尾
    String s3 = "数加科技欢迎大家的到来";
    String s4 = s3.substring(4);
    System.out.println("s3: "+s3);//s3: 数加科技欢迎大家的到来
    System.out.println("s4: "+s4);//s4: 欢迎大家的到来
    
    //String substring(int start,int end) 指定开始索引和结束索引截取字符串的一部分
    String s5 = s3.substring(4, 8);
    System.out.println("s5: "+s5);//s5: 欢迎大家
}
字符串String类中的替换功能:
public static void main(String[] args) {
    String s1 = "今天是20205年1月4日,hello今年是蛇年hellodsaqwwdq";
    //String replace(char old,char new) 使用新字符替换所有的旧字符
    String s2 = s1.replace('h', '_');
    System.out.println("s1: "+s1);//s1: 今天是20205年1月4日,hello今年是蛇年hellodsaqwwdq
    System.out.println("s2: "+s2);//s2: 今天是20205年1月4日,_ello今年是蛇年_ellodsaqwwdq
    System.out.println("--------------------");
    
    //String replace(String old,String new) 使用新的字符串替换旧字符串
    String s3 = s1.replace("hello", "flinkspark");
    System.out.println("s1: "+s1);//s1: 今天是20205年1月4日,hello今年是蛇年hellodsaqwwdq
    System.out.println("s3: "+s3);//s3: 今天是20205年1月4日,flinkspark今年是蛇年flinksparkdsaqwwdq
    
    System.out.println("--------------------");
    String s4 = "    hello world    ";
    System.out.println(s4.trim());//hello world
    
    System.out.println("--------------------");
    String s5 = "hello";
    String s6 = "world";
    String s7 = "hel";
    System.out.println(s5.compareTo(s6)); // -15
    System.out.println(s5.compareTo(s7)); // 2
    // "hello","apple","world","flink","hadoop"
}

StringBuffer

因为String对象是不可变对象,虽然可以共享常量对象,但是对于频繁字符串的修改和拼接操作,效率极低,空间消耗也比较高。因此,java提供了可变字符序列StringBuffer类型。

StringBuffer:
线程安全,可变的字符序列。 字符串缓冲区就像一个String ,但可以修改。
在任何时间点,它包含一些特定的字符序列,但可以通过某些方法调用来更改序列的长度和内容。

构造方法:
public StringBuffer()
public StringBuffer(int capacity)
public StringBuffer(String str)

StringBuffer基本功能

public static void main(String[] args) {
    StringBuffer sb1 = new StringBuffer();
    System.out.println("sb1: " + sb1);	//sb1: 
    
    // 获取StringBuffer容量大小
    System.out.println(sb1.capacity());//16
    
    // 获取实际的字符个数
    System.out.println(sb1.length());//0
    System.out.println("----------------");
    
    //public StringBuffer(int capacity) 指定容量大小
    StringBuffer sb2 = new StringBuffer(100);
    
    // 获取StringBuffer容量大小
    System.out.println(sb2.capacity());//100
    
    // 获取实际的字符个数
    System.out.println(sb2.length());//0
    System.out.println("----------------");
    
    //public StringBuffer(String str)  创建StringBuffer对象的时候,放入一个初始字符串
    StringBuffer sb3 = new StringBuffer("hello");
    System.out.println(sb3.capacity()); // 21
    
    // 获取实际的字符个数
    System.out.println(sb3.length());//5
    System.out.println("----------------");
}
public static void main(String[] args) {
    StringBuffer sb = new StringBuffer();
    
    //public StringBuffer append(String str) 末尾处追加
    sb.append(10);
    sb.append(12.34);
    sb.append(true);
    sb.append("hello");
    sb.append('w');
    System.out.println("sb: "+sb);//sb: 1012.34truehellow
    
    //1012.34truehellow
    //public StringBuffer insert(int offset,String str) 指定索引插入元素
    sb.insert(5,"java");
    System.out.println("sb: "+sb);//sb: 1012.java34truehellow
    
    //1012.java34truehellow
    //public StringBuffer deleteCharAt(int index) 根据索引删除元素
    sb.deleteCharAt(7);
    System.out.println("sb: "+sb);//sb: 1012.jaa34truehellow
    
    //1012.jaa34truehellow
    //public StringBuffer delete(int start,int end) 指定开始和结束索引删除一部分字符
    sb.delete(7,11);
    System.out.println("sb: "+sb);//sb: 1012.jaruehellow
    
    //1012.jaruehellow
    //public StringBuffer replace(int start,int end,String str)  替换StringBuffer一部分字符序列
    sb.replace(7,10,"flink");
    System.out.println("sb: "+sb);//sb: 1012.jaflinkhellow
    
    //public StringBuffer reverse() 将StringBuffer中的字符序列反转
    StringBuffer sb2 = new StringBuffer("hello");
    sb2.reverse();
    System.out.println("sb2: "+sb2);//sb2: olleh
    
    //public String substring(int start)
    StringBuffer sb3 = new StringBuffer("世界很大,我想去看看!");
    String s1 = sb3.substring(5);
    System.out.println("sb3: "+sb3);//sb3: 世界很大,我想去看看!
    System.out.println("s1: "+s1);//s1: 我想去看看!
    String s2 = sb3.substring(5,8);
    System.out.println("sb3: "+sb3);//sb3: 世界很大,我想去看看!
    System.out.println("s1: "+s2);//s1: 我想去
}

Arrays

Arrays是jdk针对数组做操作的一个工具类

成员方法:

public static String toString(int[] a) 以指定格式查看任意类型元素的数组
public static void sort(int[] a) 快速排序一个数组,从小到大
public static int binarySearch(int[] a,int key) 二分查找,返回所查找元素的索引,前提该序列要有序

public static void main(String[] args) {
    int[] arr = {123,5432,67,2,64,8443};
    System.out.println("排序前:"+Arrays.toString(arr));
    //排序前:[123, 5432, 67, 2, 64, 8443]
    Arrays.sort(arr);
    System.out.println("排序后:"+Arrays.toString(arr));
    //排序后:[2, 64, 67, 123, 5432, 8443]
    System.out.println(Arrays.binarySearch(arr,99)); // -4
}

标签:Java,String,记录,int,StringBuffer,System,学习,println,out
From: https://blog.csdn.net/qqeqraw/article/details/145181526

相关文章

  • 大数据学习记录,Java基础(6)
    集合Java集合框架体系Java集合可分为Collection和Map两种体系:Collection接口:单列数据,定义了存取一组对象的方法的集合List:元素有序、可重复的集合Set:元素无序、不可重复的集合Map接口:双列数据,保存具有映射关系“key-value对”的集合Collection接口的方......
  • 基于JAVA中的spring框架和jsp实现大学生综合测评系统项目【内附项目源码+论文说明】
    摘要大学生综合测评系统是一款以大学生德智体等综合成绩进行评测的系统, 其开发基于B/S模式的网上评测的实现,采用的是JSP+sqlserver数据库为主要模式。在线评测平台是凌架于互联网系统上的一个评测平台,是地面评测系统的一种延伸和互补,也是实现无纸化评测的主要工具。当下在......
  • Java中String类常用的各种方法
    Java中String类常见的方法以下介绍字符串常见的几个方法。介绍String类在Java中,String类是一个代表字符串的类,具有以下特性:不可变性:String对象一旦被创建就是不可变的,即它们的值在创建后不能被更改。任何对String对象的修改操作实际上会创建一个新的String对象。......
  • 原根学习笔记+BSGS复习笔记
    学原根发现拔山盖世算法忘光了,干脆一块儿写了吧。\(BSGS\)算法\(BSGS\)算法,又名拔山盖世算法、北上广深算法。他解决的问题如下:求解最小的可行的\(k\),满足\(a^k\equivb(\bmodp)\),其中保证\(\gcd(a,p)=1\)。容易想到暴力枚举,时间复杂度\(O(p)\),但是巨劣,考虑优化。......
  • Java百万数据导出Excel性能优化[读(并发)写分离/流式查询]
    参考:https://www.zhihu.com/tardis/bd/art/533753443?source_id=1001 Java百万数据导出Excel性能优化[读(并发)写分离/流式查询]结果测试:104万数据,导出excel用时由59秒优化到19秒问题列表:1、导出过程中会较多占用CPU、内存、磁盘,需全局对Excel导出限流,防止同时对大量数......
  • 【人工智能学习之聚类分析算法DBSCAN】
    【人工智能学习之聚类分析算法DBSCAN】什么是DBSCAN详细介绍对比DBSCAN和K-Means聚类算法的优缺点DBSCAN的实际应用DBSCAN调用方法具体代码示例:人群密度测算修改参数什么是DBSCANDBSCAN(Density-BasedSpatialClusteringofApplicationswithNoise),即基于密度的......
  • JAVA开源免费项目 基于Vue和SpringBoot的城镇保障性住房管理系统(附源码)
    本文项目编号T122,文末自助获取源码\color{red}{T122,文末自助获取源码}......
  • JAVA开源免费项目 基于Vue和SpringBoot的多维分类的知识管理系统(附源码)
    本文项目编号T121,文末自助获取源码\color{red}{T121,文末自助获取源码}......
  • Java基于SpringBoot+Vue的常见病中医食疗平台设计与实现
    所需该项目可以在最下面查看联系方式,为防止迷路可以收藏文章,以防后期找不到项目介绍Java基于SpringBoot+Vue的常见病中医食疗平台设计与实现系统实现截图技术栈介绍JDK版本:jdk1.8+编程语言:java框架支持:springboot数据库:mysql版本不限数据库工具:Navicat/......
  • Java基于SpringBoot+Vue的百草园化妆服务平台系统 微信小程序
    所需该项目可以在最下面查看联系方式,为防止迷路可以收藏文章,以防后期找不到项目介绍Java基于SpringBoot+Vue的百草园化妆服务平台系统的设计和实现系统实现截图技术栈介绍JDK版本:jdk1.8+编程语言:java框架支持:springboot数据库:mysql版本不限数据库工具......