zoukankan      html  css  js  c++  java
  • 二,常用类

    常用的类
    一,概念;
    String是我们最常用的;可以直接赋字符串常量
    properties文件操作类
    System运行的平台
    二,System类
    1,System类
    1,System.in;代表当前提供的标准输入流;往往特指控制台输入
    用法在创建Scanner(System.in).
    2,System.out 代表当前系统提供的标准输入流;往往特指控制台输出
    3,System.err 代表当前系统提供的错误流,也是指代控制台输出,红色字符表示错误
    2,方法
    1,System.gc() 召唤垃圾回收,不是操控只能是招呼
    2,System.arraycopy(src,srcpos,dest,destpos,length) 完成数组拷贝
    3,System.exit(0); 完成关闭虚拟机,参数表示结束的状态,非0就是异常结束!
    4,System.currentimemillis() 返回的是当前毫秒数(1秒等于1000毫秒)
    5,System.getProperty()一个参数,String类型的,获取系统属性!
    6,String a=System.getproperty("file.separator") 斜杠转换不同系统转换
    3,系统属性
    1,String javaHome = System.getProperty("java.home");
    java运行环境的安装目录
    System.out.println(javaHome);
    2,String javaVersion = System.getProperty("java.version");
    Java运行环境的版本
    System.out.println(javaVersion);
    3,String osName = System.getProperty("os.name");
    操作系统名称
    System.out.println(osName);
    4,String fs = System.getProperty("file.separator");
    文件分隔符
    String file = "D:"+fs+"hello"+fs+"work.txt";
    三,runtime类
    1,Runtime rt=Runtime.getRuntime(); 获得当前运行环境绑定的运行对像
    1,System.out.println("当前内存总数:" + rt.totalMemory());
    2,System.out.println("当前空闲内存:" + rt.freeMemory());
    3,System.out.println("当前处理器数量:" + rt.availableProcessors());
    四,字符串;
    1,概念;
    1,String 是Java中表示字符串的一种类型;是我们用的最多的一种字符串类型;
    2,所有的输入输出都是针对字符串,类型的变化是程序内部的需要,
    3,因为String是用的最多的数据类型,所以Java中有许多针对它的特殊设计
    4,语法上,他是一个可以直接赋常量值的引用数据类型
    5,String常量在内存中有特殊处理,
    1,String常量是对象
    2,String常量在加载时已经写入内存中(数据段的字符串常量池)
    6,String对象内容不可变,对String对象做任何内容改变都是得到一个新的String对象
    7,String提供了非常丰富的API.
    2,常见的API;
    1,String与字符数组相关的操作
    String str = "Abaacd";
    1,char[] array = str.toCharArray();
    //把String转换成char[]数组
    2,int length = str.length();
    //得到String的长度;
    3,char c = str.charAt(0);
    //根据下标得到String的第几个字符;
    4,int postion = str.indexOf('a');
    //根据下标得到字符在String中首次出现的位置,没有返回-1
    5,postion = str.lastIndexOf('a');
    //根据下标得到字符在String中最后出现的位置,没有返回-1
    6,String subStr = str.substring(2,5);
    //根据位置截取字串,开关区间!
    7,subStr = str.substring(2);
    //重载方法,只给起始位置,一直截取到最后
    2,String与比较操作相关的
    1,System.out.println("Hello".equals(str));
    //比较的是类容
    2,System.out.println("Hello".equalsIgnoreCase(str));
    //忽略大小比较!
    System.out.println(str.compareTo("HHHHHH"));//区分大小写
    System.out.println(str.compareToIgnoreCase("hhhhhhh"));//不区分大小写
    //字符串是可以比较大小的,使用的是字典顺序
    //特点;结果是第一个字符串减去第二个字符串的差值,
    得到正数说明第一个数比第二个大,得到负数说明第二个数比第一个大;
    //差值首先是返回第一个比较返回的ASCII之差,如果某个字符串比较完了,
    他的每个字符都和对象相同,则在返回两个字符串的长度之差;
    //只要当字符串都一样长度也一样才返回0
    3,//与字符串内容相关的
    1,String upStr=str.toUpperCase();//把String转换成全大写
    2,String dnStr = "WorLd".toLowerCase();//把String转全小写
    3,String newStr=str.replace('a', 'A');//替换字符串中的某个字符为另一个字符
    4,newStr="abc".replace("a", "fuck");//替换字符串中的某个字符为另一个字符串
    5,newStr="abc".replaceAll("i[od]", "fuck");//根据正则表达式进行替换
    6,String hi="Holle".concat("ninin");//把一个字符串拼接到另一个的末尾
    7,System.out.println(hi.contains("ni"));//查看一个字符串是否在另一个当中
    4,三个特殊方法
    1,trim();--去掉字符串前后的空格,应该养成习惯
    在比较的时候需要用
    2,split();-----支付串拆分
    返回一个字符串数组
    如果以分隔符开头,都会正常拆分,如果以分隔结尾,后面都不会拆分,
    分隔符可以用正则表达式表示
    3,matches();--正则表达式
    正则表达式(regex);用来规定一个字符串样式的模板,其本身也是字符串形式!
    任何一个字符串都是一个正则表达式!
    1,[]一个[]表示一个字符,里面填上这个字符所允许的符号,
    ^异或符号在正则表达式中相当于取返
    2,{m,n}表示前面表达式最少出现m次,最多n次,没有n表示不限,
    只有m表示只能出现几次;
    ?;0-1
    +;1-n
    *;0-n
    3,(表达式1|表达式2|表达式3)可选表达式
    4,例
    String a=new Scanner(System.in).nextLine();
    if(a.matches("(1[0-9]|200|[0-9]){2}00|[0-9]00")){
    System.out.println("输入正确");
    }else{
    System.out.println("输入错误");
    }
    5,StringBuilder
    1,字符串最大的问题内容不可变;StringBuilder内容可变
    2,当需要操作到大量的字符串拼接时,String就会对性能产生影响
    3,由此提出StringBuilder;也是jdk中提供的字符串类型,
    专门用来解决内容不可变的问题;
    4,它与String没有任何继承关系
    5,StringBuilder不能做+号的拼接,只能支持它直接的方法
    6,append();在尾部进行拼接
    7,insert(5,"");在中间进行拼接
    8,当我们做大量的String拼接时会出现性能消耗(String了内容不可变),
    因此我们使用StringBuilder调用他的append()方法或insert()方法来进行替换
    6,StringBuffer
    1,跟StringBuilder一样,内容可变,用来解决String拼接的问题
    2,两个提供的API都是一样的。
    3,StringBuffer是线程安全的
    4,StringBuffer是线程不安全的
    5,凡是线程安全的由于执行了同步动作,导致效率低,
    凡是线程不安全的表示他没有使用同步操作,效率高
    6,线程安全性问题只会在多线程的特殊情况下才会出现,不是说多线程一定会出现,
    所以没有安全问题的多线程或单线程优先使用StringBuilder
    3,注意
    String st=new String("NIHAO");//产生了两个String对象,一共产生了三个对象
    五,包装类
    1,用来做基本数据类型和引用数据类型之间转换
    int转Ineger new Ineger()参数就是int
    Ineger转int in.intValue();
    Ineger转String in.toString();
    String转Ineger new Ineger()参数是String
    int转String Integer.toString();参数是int型,返回一个String
    String转int Integer.parseInt();参数是字符串类型,返回一个int
    Integer in=12;//自动封箱
    int nem = in;  //自动拆箱
  • 相关阅读:
    HDU4529 郑厂长系列故事——N骑士问题 —— 状压DP
    POJ1185 炮兵阵地 —— 状压DP
    BZOJ1415 聪聪和可可 —— 期望 记忆化搜索
    TopCoder SRM420 Div1 RedIsGood —— 期望
    LightOJ
    LightOJ
    后缀数组小结
    URAL
    POJ3581 Sequence —— 后缀数组
    hdu 5269 ZYB loves Xor I
  • 原文地址:https://www.cnblogs.com/zpcbk/p/6431716.html
Copyright © 2011-2022 走看看