java常用类

Object超类

  • equals() ==
  • toString 类名@地址

包装类

数据类型包装类取值范围占用字符
byteByte-128~1271
shortShort-32768~-327672
intInteger-2147483648~-21474836474
longLong-263 ~-263-18
floatFloat-231 ~-231-14
doubleDouble-263 ~-263-18
booleanBoolean1
charCharacter0~655352

Integer

  • public static final int MIN_VALUE 最小值
  • public static final int MAX_VALUE 最大值
  • public static Integer valueOf(String s)返回Integer类型
  • public static int parseInt(String s)字符串装换为int

System类

  • System.exit(0);  终止java虚拟机 (0正常结束 非零状态异常终止)
  • public static native long currentTimeMillis();  放回值的时间单位为毫秒(当前时间与1970年1月1日之间的毫秒值)
  • public final static InputStream in   输入流
  • public final static PrintStream out = null; 输出流

Scanner 键盘接受器

Scanner a =new Scanner(System.in);
  • public int nextInt()
  • public String next()
    遇见空格键(tab键)enter键会自动取消获取字符
  • public String nextLine()
    只有遇见entre键才会自动取消获取字符 可以接受空格

String字符串

底层原理字节数组 byte []

构造方法

  • new String();
  • new String(char [ ]);
  • new String(byte [ ]);(97->a)使用默认字符集UTF-8
  • new String(byte [ ],“GBK”);指点字符集
  • public String(byte bytes[], int offset(起始下标), int length(长度))

方法

  • length 长度
  • public String toUpperCase()字符串转大写
  • startsWith(“ ”)特定字符开始
  • endsWith(“ ”)特定字符结束
  • public String substring(int beginIndex, int endIndex) 从beginIndex开始到endIndex结束
  • public byte[] getBytes() 返回字符串对应的字节数组(使用默认的字符编码UTF-8)
  • public byte[] getBytes(String charsetName)可以指定字符集
    (汉字 GBK->2个字节 UTF-8->3个字节)
  • public String[] split(String regex) 通过regex分割形成String数组

StringBuilder可变字符串

构造

  • StringBuilder()
  • StringBuilder(String str)

方法

-append() 添加字符
-reverse() 反转
-tostring()转化为string

Math基本数字的运算

静态方法

代码作用
public static int abs()返回绝对值
public static int max(int a, int b)返回两个int值中的较大值
public static int min(int a, int b)放回量个int值中的较小值
public static double ceil(double a)返回大于或等于参数的最小double值,等于一个整数
public static double floor(double a)返回大于或等于参数的最大double值,等于一个整数
public static int round(float a)按四舍五入返回最接近参数的int
public static double pow(double a, double b)返回a的b次幂
public static double random()返回大于等于 0 小于 1 的一个随机数

随机数 Random

Random r=new Random();
int a=r.nextlnt(100);取[0,100)

日期类Date类

构造方法

  • 无参构造
    date()
  • 带参构造
    -public Date(long date)填入的是毫秒值 1970年1月1日往后date毫秒

方法

  • public long getTime() 获取1970年1月1日到现在的毫秒值
  • public void setTime(long time) 填入的是毫秒值 1970年1月1日往后time毫秒

SimpleDateFormat日期格式化和解析

  • 构造
    public SimpleDateFormat(String pattern)
    y年 M月 d日 H时 m分 s秒
  • 方法
  • public final String format(Date date) date转化为String 传入一个日期按照指定格式返回一个String
  • public Date parse(String source) (抛异常) String转化为date 传入一个String按照指定格式放回一个date
 Date a = new Date();
        System.out.println(a);//重写了toString Mon Jul 12 18:04:20 CST 2021
        System.out.println(a.getTime());//获取1970年1月1日到现在的毫秒值 1626084260206 
        a.setTime(10000);//设定时间 填入的是毫秒值 1970年1月1日往后10000毫秒
        System.out.println(a);//Thu Jan 01 08:00:10 CST 1970
        System.out.println(a.getTime());//10000

        a = new Date(10000);
        System.out.println(a);//Thu Jan 01 08:00:10 CST 1970
        System.out.println(a.getTime());//10000

        SimpleDateFormat b = new SimpleDateFormat("YYYY");//设置格式
        String s = b.format(a);//传入一个日期按照指定格式返回一个String
        System.out.println(s);
        Date date = b.parse("1234");//传入一个String按照指定格式放回一个date
        System.out.println(date);

日历类Calendar(抽象类)

子类GregorianCalendar

  • (构造)public static Calendar getInstance() 获取Calendar对象(使用当前日期和时间初始化)

  • 对象.get(Calendar.YEAR)获取当前对象的年 MONTH月(从0开始算的) DATE日
    public int get(int field) field获取的字段

  • set(int field,int value):将指定的字段值设置指定的值,字段在类中的都是静态最终常量

  • public final void set(int year, int month, int date) 设置当前对象的年月日

  • abstract public void add(int field, int amount); 对指定的时间量进行添加与减去给定的时间
    field 获取的字段 amount进行加减
    Calendar.YEAR 表示年
    Calendar.MONTH 表示月

字段意思字段意思字段意思
YEARMINUTEDAY_OF_WEEK_IN_MONTH某月中第几周
MONTHSECOND/MILLISECOND秒/毫秒WEEK_OF_MONTH日历式的第几周
DATEDAY_OF_MONTH和DATE一样DAY_OF_YEAR一年的第多少天
HOUR_OF_DAYDAY_OF_WEEK周几WEEK_OF_YEAR一年的第多少周
 Calendar c = Calendar.getInstance();//获取Calendar对象(使用当前日期和时间初始化)
        System.out.println(c);
 //ZoneInfo[id="Asia/Shanghai",offset=28800000,dstSavings=0,useDaylight=false,transitions=19,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2021,MONTH=6,WEEK_OF_YEAR=29,WEEK_OF_MONTH=3,DAY_OF_MONTH=12,DAY_OF_YEAR=193,DAY_OF_WEEK=2,DAY_OF_WEEK_IN_MONTH=2,AM_PM=1,HOUR=8,HOUR_OF_DAY=20,MINUTE=13,SECOND=18,MILLISECOND=970,ZONE_OFFSET=28800000,DST_OFFSET=0]

        System.out.println(c.get(Calendar.YEAR)+""+c.get(Calendar.MONTH)+""+c.get(Calendar.DATE));
//2021612 获取当前对象的年月日
        c.set(2048,2,1);//设置当前对象的年月日
        System.out.println(c.get(Calendar.YEAR)+"  "+(c.get(Calendar.MONTH)+1)+"  "+c.get(Calendar.DATE));//2048  3  1
        c.add(Calendar.DATE,-1);
        System.out.println(c.get(Calendar.YEAR)+"  "+(c.get(Calendar.MONTH)+1)+"  "+c.get(Calendar.DATE));

集合类Collection接口

  • add()添加
  • isEmpty 判断集合里面是否有元素
  • remove() 删除元素
  • contains()集合里是否有这个元素
  • size() 集合个数
  • clear() 清空集合

迭代器Iterable

  • .iterator()方法
  • .hasNext()是否有下一个元素
  • .next获取当前元素
  • .remove删除元素

List集合

  • add(下标,元素) 指定下标插入元素
  • remove(下标) 根据下标删除元素
  • set(下标,元素) 修改指定下标处的元素
  • get(下标) 根据下标删除元素
  • indexof(元素)元素第一次出现的下标、
  • lastindexof(元素)元素最后一次出现的下标

ArrayList(数组)

LinkdList(链表)

  • getFirst()第一个元素
  • getLast()最后一个元素
  • addFirst() 添加第一个元素
  • addLast() 添加最后一个元素
  • removeFirst() 删除第一个元素
  • removeLast()删除最后一个元素
Listlterator
  • add()指定位置加入元素
  • hasPrecious() 判断前面是否还有元素
  • nextIndex() 元素下标

set接口

没有重复值(保证元素的唯一性)(底层equals与hashcode)

HashSet(无序,hash表)

TreeSet(自动排序,红黑树)

构造方法

  • 1 TreeSet()
  • 2 TreeSet set = new TreeSet(new Comparator() {
    @Override
    public int compare(String o1, String o2) {
    return o1.compareTo(o2);
    }
    });
Comparable接口

1自己编写的类实现此接口 重写compare方法 等于0时表示相同
2利用内部类的方式

TreeSet<String> set = new TreeSet<String>(new Comparator<String>() {
            @Override
            public int compare(String o1, String o2) {
                return o1.compareTo(o2);
            }
        })

Map集合

  • put()添加元素
  • get(key) 返回指定key对应的value
  • clear()删除该map对象中所以键值对
  • containsKey(key) 是否包含指定的key
  • containsValue(value)是否包含指定的value
  • isEmpty()该map集合是否为空 为空返回true
  • KeySet()返回Map中所有key组成的set集合
  • remove(key,value)删除指定键值对
  • remove(key)
  • values()返回该map所有value组成的callection
  • entrySet()返回map中包含的键值对所组成的Set集合,每个集合都是Map.Entry对象
  • size()集合长度

HashMap

Treemap

集合工具类 Collections

  • Collections.sort(List list); 按照指定顺序 升序排列
  • Collections.sort(List list, Comparator c); 自己加入自动排序
  • Collections.shuffle(List<?> list);将元素随机进行排序
  • Collections.reverse(List list); 反转指定列表中元素的顺序

数据流 File文件

File文件(java.io)

文件和路径目录名的抽象表示

  1. 文件和目录通过File封装成对象
  2. 对于File而言,封装的只是一个路径(可以存在也可以不存在)
    默认地址在与当前模块同级别

构造方法

// public File(String pathname)传入一个字符串
File f = new File("E:\\java\\java.txt");
System.out.println(f);//E:\java\java.txt

//public File(String parent, String child)  parent目录
File f1 = new File("E:\\java","java.txt");
System.out.println(f1);//E:\java\java.txt

//public File(File parent, String child)
File f2 = new File("E:\\java");
File f3 = new File(f2,"java.txt");
System.out.println(f3);//E:\java\java.txt

File类创建功能

  • public boolean createNewFile() throws IOException 以文件新建
    当文件夹找不到时报 java.io.IOException: 系统找不到指定的路径。
  • public boolean mkdir() 以文件夹新建
  • public boolean mkdirs() 以多级目录(文件夹)的形式兴建
    当文件夹的名字与文件名相同时会创建失败

删除功能

  • public boolean delete()删除文件或目录
    如果目录下有内容则无法删除 返回false 不回报错

判断与获取

  • public boolean isDirectory() 测试此抽象路径名表示的File是否为目录(文件夹)
  • public boolean isFile() 测试此抽象路径名表示的File是否为文件
  • public boolean exists() 测试测抽象路径名表示的File是否存在
  • public String getAbsolutePath() 放回此抽象路径名的绝对路径名字符串
  • public String getPath() 将测抽象路径名装换为路径名字符串(File里面写什么就是什么
  • public String getName() 返回此抽象路径名表示的文件或目录的名称
  • public String[] list() 放回此抽象路径名表示的目录中文件目录名称字符串数组
  • public File[] listFiles() 返回此抽象路径名表示的目录中的文件和目录的File对象数组
  • public String toString() {return getPath();}File里面写什么就是什么

IO流

数据在设备间的传输
数据的流向:输入流 输出流
数据的类型:字节流(万能的) 字符流(用记事本打开可以读懂内容的)

字节输出流OutputStream

  • public abstract class OutputStream字节输出流的超类

FileOutputStream

构造方法
  • public FileOutputStream(String name) throws FileNotFoundException传入一个地址
  • public FileOutputStream(File file) throws FileNotFoundException传入一个File对象
  • public FileOutputStream(String name, boolean append)append为true表示追加字符 而不去每一次写入都清空
  • public FileOutputStream(File file, boolean append)

执行的操作

  1. 调用系统功能创建文件
  2. 创建了字节输出的对象
  3. 让字节输出流对象指向创建好的文件
写的方法
  • public void write(int b) throws IOException将指定字节写入此文件输入流 97->a
  • public void write(byte b[]) throws IOException 一次性写入一个数组
  • public void write(byte b[], int off, int len) off开始位置 len长度 指定数组中的内容
  • public void close() throws IOException关闭数据流 每一次使用完数据流时 都要关闭数据流 不浪费资源
抛异常
  1. 平常使用
  • 在外部定义
  • 判断是否为空
  • 不为空则关闭数据流
  1. 结束时会自动关闭数据流
 try (FileOutputStream fileOutputStream = new FileOutputStream("jasdasdava.txt",true)){
            byte[] a={65,66,67,68,69};
            fileOutputStream.write(a,2,2);
        }catch( Exception e){
            e.printStackTrace();
        }
字节缓冲流BufferedOutputStream
  • public BufferedOutputStream(OutputStream out)
 BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(new FileOutputStream("jasdasdava.txt",true));
        bufferedOutputStream.write(123);
        bufferedOutputStream.close();

字节输入流 InputStream

  • public abstract class InputStream 字节输入流的超类

FileInputStream

  • public FileInputStream(String name)
构造方法
  • public FileInputStream(String name) throws FileNotFoundException 传入一个字符串
  • public FileInputStream(File file) throws FileNotFoundException传入一个File类
读的方法
  • public int read()
    返回为当前字节 当没有字节的时候则放回为-1
 FileInputStream inputStream = new FileInputStream("jasdasdava.txt");
        int r;
       while (( r=inputStream.read()) != -1 ){
           System.out.print(r);
        }//95656667686967686768
 FileInputStream inputStream = new FileInputStream("jasdasdava.txt");
        int r;
        while (( r=inputStream.read()) != -1 ){
            System.out.print((char) r);//_ A B C D E C D C D 
        }
  • public int read(byte b[])
    放回读取的个数 不可读时返回-1
FileInputStream inputStream = new FileInputStream("jasdasdava.txt");
        byte[] a=new byte[2];
        int r;
       while (( r=inputStream.read(a)) != -1 ){
           System.out.print(new String(a,0,r));

        }
字节缓冲流BufferedInputStream

public BufferedInputStream(InputStream in)

BufferedInputStream bufferedInputStream = new BufferedInputStream(new FileInputStream("jasdasdava.txt"));
        int a;
        while ((a=bufferedInputStream.read())!=-1){
            System.out.println((char)a);
        }

字符流

只能复制文本数据
出现的原因 汉字使用字节流读取会出现乱码 (字节流读取不方便)
字节流复制文本文件时:文本文件中也有中文,但没有问题,因为底层操作自动进行字符串拼接成中文
如何识别中文:无论哪种编码存储,第一个字节都是负数。

字符输出流Writer

public abstract class Writer 字符输出流的抽象类

OutputStreamWriter(可指定字符集)

public class OutputStreamWriter extends Writer
可以指定字符集

构造方法
  • public OutputStreamWriter(OutputStream out)
  • public OutputStreamWriter(OutputStream out, String charsetName) charsetName指定字符集 默认utf-8
写的方法

与字节流一样
有的时候只是写入一个字符时有可能在缓冲区中没有写出来,需要使用flush刷新一下

  • public void write(int c) 写入一个字符
  • public void write(char cbuf[]) 写入一个数组
  • public void write(char cbuf[], int off, int len)off开始 len长度
  • public void write(String str) 写入一个字符串
  • public void write(String str, int off, int len) 底层把string转化为了char[]
  • public void close() 关闭数据流(先刷新在关闭)
  • public void flush() 刷新
FileWriter(无法指定字符集)

优点 可以快速的使用
public class FileWriter extends OutputStreamWriter

构造方法
  • public FileWriter(String fileName) 写路径
  • public FileWriter(String fileName, boolean append)为true时进行添加
  • public FileWriter(File file)
  • public FileWriter(File file, boolean append)

BufferedWriter

字符输出流

构造方法
  • public BufferedWriter(Writer out)
  • public BufferedWriter(Writer out, int sz) sz指定容量大小
特有方法
  • public void newLine() 写一个行分割符 会根据系统的不同从而进行调整
  • 使用 1 write读 2 newline换行 3 flush刷新

字符输入流Reader

public abstract class Reader字符输入流的抽象类

InputStreamReader(可指定字符集)

构造方法
  • public InputStreamReader(InputStream in)
  • public InputStreamReader(InputStream in, String charsetName)指定字符集
读的方法

与字节流一样

  • public int read()
  • public int read(char cbuf[], int offset, int length)
FileReader(无法指定字符集)

public class FileReader extends InputStreamReader
可以直接构造 使用的长度减少了

构造方法
  • public FileReader(String fileName)
  • public FileReader(String fileName)

BufferedReader 字符缓冲流

public class BufferedReader extends Reader

构造方法
  • public BufferedReader(Reader in)
  • public BufferedReader(Reader in, int sz) sz指定容量大小
特有方法
  • public String readLine() 读取一行文字 (不包含结尾的换行符)如果数据流到达结尾则为null

打印流

只负责输出数据,不负责读取数据,有自己特有的方法

字节打印流 PrintStream

  • public class PrintStream extends FilterOutputStream

构造方法

  • public PrintStream(String fileName)
  • public PrintStream(File file)

方法

  • public void write(int b) (会进行转码 97->a)
  • public void print(int i) (不会转码)
  • public void println(int x)(不会转码)

字符打印流PrintWriter

  • public class PrintWriter extends Writer

构造方法

  • public PrintWriter(String fileName)
  • public PrintWriter(File file)
  • public PrintWriter (Writer out)
  • public PrintWriter(Writer out, boolean autoFlush) boolean为true时print方法println方法format方法将刷新输出缓冲区(自动刷新flush)

方法

  • public void write(int c)
  • public void print(int i)
  • public void println()

对象序列化

将对象保存到磁盘中或者在网络中传输对象
需要实现public interface Serializable {}(标识接口 里面没有任何方法 序列化必须实现此接口)
private static final long serialVersionUID=0;、
序列化码 一个无关字母发生变化导致序列化码不同 从而反序列化失败 (所以建议自动写出来)

对象序列化流ObjectOutputStream

  • protected ObjectOutputStream()
  • public ObjectOutputStream(OutputStream out)
  • public final void writeObject(Object obj) 将对象写出

对象反序列化流ObjectInputStream

  • protected ObjectInputStream()
  • public ObjectInputStream(InputStream in)
  • public final Object readObject() 读取对象

如何不被序列化

private transient int age;原来数据被隐藏 变成初始值 0

Properties(无泛型)

public class Properties extends Hashtable<Object,Object>
a==b 写入到里面

  1. map体系的集合
  2. 可以保存到流中或从流中加载

特有方法

  • public synchronized Object setProperty(String key, String value) 添加元素
  • public String getProperty(String key)通过key获取value
  • public Set stringPropertyNames() 将key生成一个set集合

IO流的结合

  • public synchronized void load(InputStream inStream)读

  • public synchronized void load(Reader reader)

  • public void store(Writer writer, String comments)写

  • public void store(OutputStream out, String comments)comments描述信息 不想写可以写null

FileWriter fileWriter = new FileWriter("untitled\\java\\2.txt");
porp.store(fileWriter, null);

FileInputStream inputStream = new FileInputStream("untitled\\java\\2.txt");
porp.load(inputStream);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值