Java基础_20常用类相关的东西和枚举

回顾

1.字节输入流:    FileInputStream字节输出流:    FileOutputStream字节缓冲输入流:   BufferedInputStream字节缓冲输出流:   BufferedOutputStream字符输入流:  FileReader字符输出流: FileWriter字符缓冲输入流:   BufferedReader字 符缓冲输出流:  BufferedWriter2.写入一个字符串的数据到磁盘的c:/aaa/1.txt
BufferedOutputStream bos =  new BufferedOutputStream (newFileOutputStream("c:/aaa/1.txt"));
String str = "狗蛋很性;
byte[] buf = str.getBytes();
bos.write(buf);
bos.close();3.序列化和反序列化ObjectInputStreamObjectOutputStream

今天的内容

1.常用类相关的东西

1.StringBuffer

也是和字符串相关的类

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

如,如果z是指当前内容为"start"的字符串缓冲区对象,那么方法调用z.append("le")将使字符串缓冲区包含"startle" ,而z.insert(4, "le")会将字符串缓冲区更改为包含"starlet"

package com.qf.a_stringbuffer;public class Demo1 {public static void main(String[] args) {StringBuffer sb = new StringBuffer("a");System.out.println(sb);//startsb.append("le");System.out.println(sb);//startlesb.append("startlestartiuytreew");System.out.println(sb);sb.insert(1, "9");System.out.println(sb);//a9lestartlestartiuytreew//字符串反转System.out.println(sb.reverse());//weertyuitratseltratsel9aSystem.out.println(sb.delete(1, 3));}
}

String 和String Buffer和StringBuider区别

StringStringBufferStringBuilder
String 值不可变的,导致每次操作String都会有新的对象。不仅效率低而且 占内存。字符串在处理少量的字符串的时候用String可变的,线程安全的。可变的,线程不安全的。
如果是多线程的用StringBuffer如果是单线程用StringBuilder

2.枚举类

Java中枚举类是一个特殊的类,代表是一组常量
在Java中常量:   public static final String WEEK = "星期一";
自从 JDK1.5之后枚举类开始出来
不可改变的量

定义枚举类的语法格式;

public  enum  枚举类 {常量1, 常量2,...
}
package com.qf.b_enum;enum Color {//常量RED, GREEN, BLUE
}
public class Demo1 {public static void main(String[] args) {Color red =  Color.RED;System.out.println(red);}
}

枚举一般用在switch-case中

package com.qf.b_enum;enum Color1 {RED, GREEN, BLUE
}
public class Demo2 {public static void main(String[] args) {Color1 color1 = Color1.RED;switch (color1) {case RED:System.out.println("是红色");break;case GREEN:System.out.println("是绿色");break;case BLUE:System.out.println("是蓝色");break;}}
}

枚举类的三个方法

values();  获取的枚举类中所有的值
oridinal();常量的索引的值
valueOf();是字符串常量
package com.qf.b_enum;enum Color3 {RED, GREEN, YELLOW
}
public class Demo3 {public static void main(String[] args) {Color3[] values = Color3.values();for (Color3 value : values) {System.out.println(value + "所对应索引为:" + value.ordinal());}//valueOf();字符串对应的枚举常量Color3 red = Color3.valueOf("RED");System.out.println(red);}
}

比如以后会定义很多状态量,比如:订餐支付,未支付,订单完结,派送中。

package com.qf.b_enum;enum ProductEnum {//利用有参构造方法对枚举属性进行赋值UP(0, "在架"), DOWN(1, "下架");private Integer code;private String message;//可以提供一个有参构造方法ProductEnum(Integer code, String message) {this.code = code;this.message = message;}public Integer getCode() {return code;}public void setCode(Integer code) {this.code = code;}public String getMessage() {return message;}public void setMessage(String message) {this.message = message;}
}
public class Demo5 {public static void main(String[] args) {System.out.println(ProductEnum.UP.getCode());System.out.println(ProductEnum.UP.getMessage());System.out.println(ProductEnum.DOWN.getCode());System.out.println(ProductEnum.DOWN.getMessage());}
}
package com.qf.b_enum;enum Sex {MALE(0, "未知"),FEMALE(1, "女");private Integer sexId;private String sexChar;Sex(Integer sexId, String sexChar) {this.sexId = sexId;this.sexChar = sexChar;}public Integer getSexId() {return sexId;}public void setSexId(Integer sexId) {this.sexId = sexId;}public String getSexChar() {return sexChar;}public void setSexChar(String sexChar) {this.sexChar = sexChar;}
}
class Person {private String name;private int age;private Sex sex;public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public Sex getSex() {return sex;}public void setSex(Sex sex) {this.sex = sex;}
}
public class Demo6 {public static void main(String[] args) {Person person = new Person();person.setSex(Sex.MALE);System.out.println(person.getSex().getSexId());System.out.println(person.getSex().getSexChar());}
}

3.包装类

Java八大基本类型: java 提供了与之对应的包装类。

为啥?

int a = 20; 基本数据类型是没有提供方法。int包装类是Integer 很多方法操作 int类型的数据

int===>Integer

byte===>Byte

short===>Short

long===>Long

char===>Character

float===>Float

double=-==>Double

boolean ===>Boolean

【重点】:

​ Java 中自动拆箱和自动装箱

​ 自动装箱: 将基本数据类型转为包装类

​ 自动拆箱: 将包装类转为基本数据类型

将字符串转为基本数据类型:

​ parse***();

package com.qf.c_baozhuang;public class Demo1 {public static void main(String[] args) {Integer i1 = new Integer(20);System.out.println(i1);//20int compare = Integer.compare(20, 30);System.out.println(compare);int i= 30;//基本数据类型Integer i2 = i;Integer i3 = 40;//自动装箱int i4 = i3;//自动拆箱int i5 = Integer.parseInt("12");//将字符转为int类型的数据System.out.println(i5);//12//面试题Integer a = 127;Integer b = 127;Integer c = 128;Integer d = 128;System.out.println(a == b);//trueSystem.out.println(c == d);//false}
}

4.Math类

Math类包含执行基本数字运算的方法,如基本指数,对数,平方根和三角函数。

绝对值:

最大值

最小值

向上取整

向下取整

四舍五入

随机数

package com.qf.d_math;public class Demo1 {public static void main(String[] args) {System.out.println(Math.E);System.out.println(Math.PI);double pow = Math.pow(2, 3);System.out.println(pow);//绝对值System.out.println(Math.abs(-986));//986//求两个数的最大值System.out.println(Math.max(89, Math.max(67, Math.max(2, 8))));//求两个数的最小值System.out.println(Math.min(67, 23));//向上取整   ceil  天花板System.out.println(Math.ceil(81.1));//向下取整   floor  地板System.out.println(Math.floor(89.9));//89//四舍五入System.out.println(Math.round(84.3));//返回值的是int类型的数据System.out.println(Math.round(84.8));//返回值的是int类型的数据//随机数  返回一个double值为正号,大于等于0.0 ,小于1.0System.out.println(Math.random());//随机生成一个[0, 100)整数System.out.println((int)(Math.random()*100));}
}

5.Random类

该类的实例用于生成伪随机数的流

package com.qf.e_randon;import java.util.Random;public class Demo1 {public static void main(String[] args) {Random random = new Random();System.out.println(random.nextInt());//-2^31 ~  2^31-1System.out.println(random.nextDouble());//0.4644986990282639System.out.println(random.nextGaussian());//2.4073605658546566}
}

6.System类

System类包含几个有用的类字段和方法。 它不能被实例化。

System类提供的System包括标准输入,标准输出和错误输出流;

package com.qf.f_system;import java.io.PrintStream;
import java.util.Properties;
import java.util.Scanner;public class Demo1 {public static void main(String[] args) {PrintStream out = System.out;//打印流对象out.println("狗蛋");System.out.println("狗蛋");System.err.println("嘻嘻");
//        Scanner scanner = new Scanner(System.in);
//        System.out.println("请输入一个整数:");
//        int i = scanner.nextInt();//static long	currentTimeMillis()//返回当前时间(以毫秒为单位)。
//        long start = System.currentTimeMillis();//1687162040724
//        for (int i = 0; i < 10000; i++) {
//            System.out.println("xixi");
//        }long end = System.currentTimeMillis();//System.out.println(end - start);//36ms//获取电脑 安装的一下属性Properties properties = System.getProperties();System.out.println(properties.get("os.name"));//window10System.out.println(properties.get("user.home"));//C:\Users\bowangSystem.out.println(properties.get("java.version"));//1.8.0_241}
}

7.Date

Date date = new Date();System.out.println(date);//Mon Jun 19 16:31:07 IRKT 2023//伊尔库茨克时间//以上的时间进行格式化SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String format = sdf.format(date);System.out.println(format);}
练习:
1.八大基本数据类型的包装类(自己百度)
2.Calendar
3.BigDecimal
4.LocalDate

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/814883.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【MATLAB 分类算法教程】_1遗传算法优化支持向量机SVM分类 - 教程和对应MATLAB代码

分类代码案例1:遗传算法优化支持向量机SVM分类 - MATLAB完全代码教程 1. 初始化代码2. 读取数据代码3. 数据预处理代码4. 利用遗传算法GA求解最佳的SVM参数c和g代码5. 根据最佳的参数进行SVM模型训练代码6. SVM模型预测代码7. 准确率分析以及分类结果对比作图代码本文以红酒数…

python如何保存数据和读取数据

python要保存输入的数据&#xff0c;一般会保存在模块json中&#xff0c;json中的数据可以与使用其他编程语言的人共享。 要保存数据到json&#xff0c;Python需要用到json模块 假定要保存一个序列&#xff0c;示例代码如下 from pathlib import Path import jsonnumbers[2,…

前端开发攻略---Vue实现防篡改水印的效果。删除元素无效!更改元素属性无效!支持图片、元素、视频等等。

1、演示 2、水印的目的 版权保护&#xff1a;水印可以在图片、文档或视频中嵌入作者、品牌或版权所有者的信息&#xff0c;以防止未经授权的复制、传播或使用。当其他人使用带有水印的内容时&#xff0c;可以追溯到原始作者或版权所有者&#xff0c;从而加强版权保护。 身份识…

PHP Array and string offset access syntax with curly braces is deprecated

PHP 在 7.4.0 版本中引入了关于使用大括号 {} 来访问数组和字符串的偏移量的弃用警告。这意味着虽然 PHP 7.4 之前的版本可能仍然支持这种语法&#xff0c;但在 PHP 7.4 及其后续版本中&#xff0c;当你使用大括号来访问数组或字符串的偏移量时&#xff0c;PHP 会发出弃用警告。…

流程图步骤条

1.结构 <ul class"stepUl"> <li class"stepLi" v-for"(item, index) in stepList" :key"index"> <div class"top"> <p :class"{active: currentState > item.key}">{{ item.value }}…

Gradle 实战 - 启动main函数-ApiHug准备-工具篇-012

&#x1f917; ApiHug {Postman|Swagger|Api...} 快↑ 准√ 省↓ GitHub - apihug/apihug.com: All abou the Apihug apihug.com: 有爱&#xff0c;有温度&#xff0c;有质量&#xff0c;有信任ApiHug - API design Copilot - IntelliJ IDEs Plugin | Marketplace ApiHug …

【ELK】ELK企业级日志分析系统

搜集日志&#xff1b;日志处理器&#xff1b;索引平台&#xff1b;提供视图化界面&#xff1b;客户端登录 日志收集者&#xff1a;负责监控微服务的日志&#xff0c;并记录 日志存储者&#xff1a;接收日志&#xff0c;写入 日志harbor&#xff1a;负责去连接多个日志收集者&am…

AcWing 795. 前缀和——算法基础课题解

AcWing 795. 前缀和 题目描述 输入一个长度为 n 的整数序列。 接下来再输入 m 个询问&#xff0c;每个询问输入一对 l,r,。 对于每个询问&#xff0c;输出原序列中从第 l 个数到第 r 个数的和。 输入格式 第一行包含两个整数 n 和 m。 第二行包含 n 个整数&#xff0c;表…

PCL 高斯滤波(C++详细过程版)

目录 一、概述二、代码实现三、结果展示1、滤波前2、滤波后3、对比PCL 高斯滤波(C++详细过程版)由CSDN点云侠原创,爬虫自重。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫。 一、概述 高斯滤波在PCL里有现成的调用函数,具体算法原理和实现代码见:

2路音频解码器JR-AD201

音频解码器 详细介绍 JR-AD201 2路音频解码器&#xff0c;支持RF/ASI/IP输入&#xff0c;支持DRA/AC3/EAC3/AAC/MPEG等音频&#xff0c;输出&#xff1a;2路模拟立体声&#xff0c;2路AES/EBU。 产品特点 支持多种输入方式RF/IP/ASI 接口丰富&#xff0c;AES/EBU/模拟立体声/A…

CSS盒模型(详讲)

目录 概述&#xff1a; 内容区&#xff08;content&#xff09;&#xff1a; 内边距&#xff08;paddingj&#xff09;&#xff1a; 前言&#xff1a; 设置内边距&#xff1a; 边框&#xff08;border&#xff09;&#xff1a; 前言&#xff1a; 示例&#xff1a; 外边…

Android开发——布局

LinearLayout RelativeLayout 所谓父子容器&#xff0c;就是嵌套容器时存在的关系。 根据兄弟容器定位需要传入兄弟的id。 通用属性 FrameLayout (覆盖布局&#xff09; TableLayout (表格&#xff09; GridLayout (网格) 子控件属性

【C++学习】深入理解C++异常处理机制:异常类型,捕获和处理策略

文章目录 ♫一.异常的提出♫二.异常的概念♫三.异常的使用♫3.1 异常的抛出和捕获♫3.2.异常的重新抛出♫3.3异常安全♫3.4 异常规范 ♫4.自定义异常体系♫5.C标准库的异常体系♫6.异常的优缺点 ♫一.异常的提出 之前&#xff1a; C语言传统的处理错误的方式与带来的弊端&…

win10清华源按装OPENCV和其他软件

今天按装opencv卡卡的&#xff0c;老掉线&#xff0c;想起了以前在树莓派用清华源安装opencv的时候的场景&#xff0c;那速度&#xff0c;咻咻咻的&#xff0c;苏帕快&#xff0c;于是我就果断放弃现在的&#xff0c;加上清华源的连接&#xff0c;这速度&#xff0c;超级流畅。…

Spring(三)

1. Spring单例Bean是不是线程安全的? Spring单例Bean默认并不是线程安全的。由于多个线程可能访问同一份Bean实例&#xff0c;当Bean的内部包含了可变状态&#xff08;mutable state&#xff09;即有可修改的成员变量时&#xff0c;就可能出现线程安全问题。Spring容器不会自动…

基于SpringBoot的“线上教学平台”的设计与实现(源码+数据库+文档+PPT)

基于SpringBoot的“线上教学平台”的设计与实现&#xff08;源码数据库文档PPT) 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SpringBoot 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 线上教学平台结构图 管理员登录界面图 学员管理界…

使用formio和react实现在线表单设计

formiojs 是一个开源的在线表单设计工具&#xff0c;今天看看怎样在 react js 中使用 formiojs。 首先创建一个react工程 npx create-react-app my-react-formio-app安装依赖 cd my-react-formio-app npm install formio/react npm install formio/js另外&#xff0c;考虑样…

解决moviepy保存的视频画质不清晰问题

参考&#xff1a; https://blog.csdn.net/mhack5200/article/details/128666918 https://www.cnblogs.com/LaoYuanPython/p/13643497.html moviepy 函数库很坑&#xff0c;默认值比较低&#xff0c;要提高保存图像的清晰度&#xff0c;提高bitrate就好&#xff0c;这点指定 40…

MyBatis框架使用指南

在Java开发中&#xff0c;数据库操作是常见且关键的任务。为了简化这一任务&#xff0c;我们通常会使用ORM&#xff08;对象关系映射&#xff09;框架&#xff0c;其中MyBatis就是一款非常优秀的选择。MyBatis是一款优秀的持久层框架&#xff0c;它支持定制化SQL、存储过程以及…

通信算法之205 : MSK调制解调

转载&#xff1a; MSK&#xff08;Minimum Shift Keying&#xff09;&#xff1a; MSK调制出现在上世纪六七十年代&#xff0c;因其频率间隔小、恒包络、相位连续、主瓣窄等特性&#xff0c;它在GSM等系统中得到了应用。 随着功放技术的发展及抗衰落方法的不断出现&#xff0c…