当前位置: 首页 > news >正文

Day16-C:\Users\Lenovo\Desktop\note\code\JavaSE\Basic\src\com\classlei

Random()

  1. java.lang.Math.Random

    调用这个Math.Random()能返回带正号的double值,该值[0.0,1.0),该返回值是一个伪随机选择的数,在该范围内近似均匀分布

    public class random {public static void main(String[] args) {System.out.println("Math.Random()="+Math.random());int num =(int) (Math.random()*3);//Math.random()返回值是double所以要强制转换System.out.println("num="+num);//结果为0或1}
    }
    
  2. java.util.Random

    import java.util.Random;public class random {public static void main(String[] args) {System.out.println("Math.Random()="+Math.random());int num =(int) (Math.random()*3);//Math.random()返回值是double所以要强制转换System.out.println("num="+num);Random random = new Random();int i = random.nextInt(1000);//边界为1000,生成一个[0,1000)的整数System.out.println("i="+i);Random rand = new Random(10);for(int j=0;j<10;j++){System.out.println(rand.nextInt(100));}System.out.println();//最后额外输出一个空行}
    }
    

    Random():创建一个随机数的生成器

    Random(long seed):使用单个long种子创建一个新的随机数生成器,对于种子相同的Random对象,生成的随机数序列是一样的

Date()

Date()提供了两个构造函数来实例化Date对象

  1. 构造函数使用当前日期和时间来初始化对象

  2. 构造函数接收一个参数,该参数是自1970年1月1日起的毫秒数

  3. import java.util.Date;//不建议
    import java.time.LocalDateTime;//建议使用这个public class date {public static void main(String[] args) {Date currentdate = new Date();//import java.util.Date;初始化Date对象//date date = new date();System.out.println(currentdate);System.out.println(currentdate.getTime());//返回毫秒值System.out.println(currentdate.getTime()-8640000);//返回毫秒值Date pastDate = new Date(System.currentTimeMillis() - 86400000);// 一天前的时间(86400000毫秒=1天)//System.currentTimeMillis() 用于获取当前系统时间的毫秒数(时间戳,从 1970 年 1 月 1 日 00:00:00 UTC 开始计算)。boolean isafter = pastDate.after(currentdate);//布尔值比较,返回布尔值对Date类的pastDate使用after方法System.out.println(isafter);}
    }

Calendar()

public class Calendar {static java.util.Calendar calendar= java.util.Calendar.getInstance();static java.util.Calendar calendar1= java.util.Calendar.getInstance();public static void main(String[] args) {SimpleDateFormat d = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");//实例化SimpleDateFormat,简便日期格式类System.out.println(d.format(calendar.getTime()));//调用简便日期格式类中的format方法System.out.println(Calendar.calendar);calendar1.set(2025,10,18);System.out.println(calendar1);}
}

String()

String str = "hello"直接赋值法创建对象在方法区的常量池

String str1= new String(“hello”)通过构造方法创建字符对象储存在堆内存

str储存在在栈内存中,hello储存在堆内存中

public class Stringg {public static void main(String[] args) {java.lang.String str1 = "David";//只开辟一块内存空间,自动入池,不产生垃圾,享元模式java.lang.String str2 = new java.lang.String("David");//开辟两块堆内存空间,其中一块变成垃圾,且不能自动入池,需要通过public String intern();入池java.lang.String str3 = str2;java.lang.String str4 = "David";System.out.println(str1==str2);System.out.println(str1==str3);System.out.println(str2==str3);System.out.println(str1==str4);System.out.println("=============");System.out.println(str1.equals(str2));//Object类中的equals是比较地址的,但是String类重写了之后仅比较内容String str5 = "1,2,3,4";String[] str6 = str5.split(",");for (String str7 : str6) {//for-each循环遍历打印System.out.println(str7);}String str8 = new java.lang.String("Davis");//创建了两个对象//首先出现了字面量“Davis”,先去String Pool中查找是否有相同字符串存在,由于该程序只有一行,自然是没有的,那么会在Java Heap中用字面量"hello"创建一个String对象//接着new java.lang.String("Davis"),关键字new有在Java Heap中创建了一个对象,然后调用接收String参数的构造器进行了初始化,最终引用这个对象}
}

String Builder和StringBuffer

String Builder和StringBuffer都继承了AbstractStringBuilder,前者是非线程安全的,后者是线程安全的。都是可变的字符串容器,可以直接在原有对象上修改内容(如拼接、插入、删除等),避免频繁创建新对象,从而提升性能。

public class StringBuilderandStringBuffer {public static void main(String[] args) {StringBuilder sb = new StringBuilder();sb.append("Hello");       // 拼接:"Hello"sb.append(" ");           // 拼接:"Hello "sb.append("World");       // 拼接:"Hello World"sb.insert(6, "Java ");    // 插入:"Hello Java World"sb.delete(5, 6);          // 删除空格:"HelloJava World"sb.reverse();             // 反转:"dlroW avaJolleH"String result = sb.toString();  // 转为String:"dlroW avaJolleH"System.out.println(result);StringBuffer sb2 = new StringBuffer("Hello");sb2.append("World");sb2.insert(5, "Java ");//5这个位置插入Java后,将后面的字符串后移(从0位开始)sb2.insert(5, new StringBuffer("fucking"),0,7);//在5位将fucking从0位到6位插入,左闭右开System.out.println(sb2.toString());sb2.replace(5,12,"nb");//将5到11位替换为nbSystem.out.println(sb2.toString());sb2.delete(5,7);//将5到6位删除System.out.println(sb2.toString());sb2.reverse();String result2 = sb2.toString();System.out.println(result2);StringBuilder hello = new StringBuilder("Hello Java!I love you!");int i1 = hello.indexOf("Hello");System.out.println("Hello首次出现的位置"+i1);int i2 = hello.indexOf("love");System.out.println("love首次出现的位置"+i2);int i3 = hello.indexOf("o",5);System.out.println("o从5位开始首次出现的位置"+i3);int i4 = hello.indexOf("o");System.out.println("o首次出现的位置"+i4);int i5 = hello.indexOf("Python");System.out.println("Python首次出现的位置"+i5);//-1int i6 = hello.lastIndexOf("o");System.out.println("o从后往前数首次出现的位置"+i6);//19}}

在 Java 中,indexOf() 是字符串(String)、StringBuilderStringBuffer 等类中用于查找指定字符或子字符串首次出现位置的方法,类似地还有 lastIndexOf() 用于查找最后一次出现的位置

速度上StringBuilder>StringBuffer>String

http://www.hskmm.com/?act=detail&tid=33247

相关文章:

  • 一个实用的短视频脚本创作指令分享
  • 字典树 Trie 乱讲
  • redis和mysql之间的数据一致性
  • ubuntu允许root登录桌面系统
  • 24. 两两交换链表中的节点
  • AI协科学家:技术革命还是安全噩梦?
  • 一个决定
  • 10月17日
  • npm镜像配置
  • 一些特性
  • ubuntu安装mysql
  • 计算机视觉技术与应用深度解析
  • AGC 板刷记录1
  • 2025.10.17总结
  • 记Windows 11环境Rust下载安装配置流程
  • K8s学习笔记(九) job与cronjob - 教程
  • [HZOI]CSP-S模拟33
  • [PaperReading] VLM2Vec-V2: Advancing Multimodal Embedding for Videos, Images, and Visual Documents
  • ShandongCCPC2024
  • 标悬浮展开多级菜单
  • Nimble:让SwiftObjective-C测试变得更优雅的匹配库 - 指南
  • 2025.10.17总结 - A
  • Ubuntu创建python桌面图标
  • 深入解析Pure恶意软件家族:从RAT到构建器再到开发者
  • Ubuntu上配置Flask应用程序的Nginx和uWSGI
  • 实验一 现代c++基础课程
  • 平均融资利率求法及ORACLE语法解析
  • [Linux]如何列出被软链接的文件,列出被链接位置
  • 10.13课后作业
  • 【Linux】基础 I/O - 指南