• java复习【笔试可能常见】


    • String的装箱拆箱
    String str1 ="abc";
               String str2 ="abc";
               System.out.println(str2==str1);  //输出为 true 
    System.out.println(str2.equals(str1));  //输出为 true 
                
               String str3 =new String("abc");
               String str4 =new String("abc"); 
               System.out.println(str3==str4);  //输出为 false 
    System.out.println(str3.equals(str4));  //输出为 true
    String d ="2"; 
    2 String e ="23";
    3 e = e.substring(0, 1);
    4 System.out.println(e.equals(d)); //输出为 true 
    5 System.out.println(e==d); //输出为 false


    public enum Data
    {
    INTEGER("Integer"), STRING("String"), LONG("Long"), BYTE("Byte");
    private String type;

    private Data(String type)
    {
    this.type = type;
    }
    }

    特性:不可继承的final类,构造方法只能是私有构造方法

    继承的Enum类的方法

     (1)  ordinal()方法: 返回枚举值在枚举类种的顺序。这个顺序根据枚举值声明的顺序而定。
                     Color.RED.ordinal();  //返回结果:0
                     Color.BLUE.ordinal();  //返回结果:1
           (2)  compareTo()方法: 比较象与指定对象的顺序。Enum中的compareTo返回的是两个枚举值的顺序之差。当然,前提是两个枚举值必须属于同一个枚举类,否则会抛出ClassCastException()异常。
                     Color.RED.compareTo(Color.BLUE);  //返回结果 -1
           (3)  values()方法: 静态方法,返回一个包含全部枚举值的数组。
                     Color[] colors=Color.values();
                     for(Color c:colors){
                            System.out.print(c+","); 
                     }//返回结果:RED,BLUE,BLACK YELLOW,GREEN,
           (4)  toString()方法: 返回枚举常量的名称。
                     Color c=Color.RED;
                     System.out.println(c);//返回结果: RED
           (5)  valueOf()方法:得到枚举常量。
                     Color.valueOf("BLUE");   //返回结果: Color.BLUE
           (6)  equals()方法: 比较两个枚举类对象的引用。

    可根据valueOf和switch得到所想要的枚举值

     【java常用类】

    String没有Insert方法,也没有delete方法虽然和subString很像,字符串常量是编译器可以设置成共享的【对项目来讲并没有什么用处】

    RunTime类

    Runtime类封装了运行时的环境。每个 Java 应用程序都有一个 Runtime 类实例,使应用程序能够
    与其运行的环境相连接。一般不能实例化一个Runtime对象,应用程序也不能创建自己的 Runtime 类
    实例,但可以通过 getRuntime 方法获取当前Runtime运行时对象的引用。 一旦得到了一个当前的
    Runtime对象的引用,就可以调用Runtime对象的方法去控制Java虚拟机的状态和行为。
    常见的应用有 1:执行外部程序(调用外部命令) 举例:用java调用外部mcl数据分析工具(之前我已经把mcl安装的bin目录导入到了PATH中) String [] cmd={"cmd","/C","mcl D:\input.txt --abc -o D:\output.txt -I 1 -scheme 7"}; Process proc =Runtime.getRuntime().exec(cmd);
    注意目录中用“\”代替""。 如果外部命令过于复杂可以自己写一个bat或shell脚本然后调用 如下 String [] cmd={"cmd","/C","E:\test3.bat"}; Process proc =Runtime.getRuntime().exec(cmd);
    下面对Runtime.exec()做个总结
     

    Windows下调用系统命令

    String [] cmd={"cmd","/C","copy exe1 exe2"};
    Process proc =Runtime.getRuntime().exec(cmd);

    Linux下调用系统命令就要改成下面的格式

    String [] cmd={"/bin/sh","-c","ln -s exe1 exe2"};
    Process proc =Runtime.getRuntime().exec(cmd);

    Windows下调用系统命令并弹出命令行窗口

    String [] cmd={"cmd","/C","start copy exe1 exe2"};
    Process proc =Runtime.getRuntime().exec(cmd);

    Linux下调用系统命令并弹出终端窗口就要改成下面的格式

    String [] cmd={"/bin/sh","-c","xterm -e ln -s exe1 exe2"};
    Process proc =Runtime.getRuntime().exec(cmd);

    还有要设置调用程序的工作目录就要

    Process proc =Runtime.getRuntime().exec("exeflie",null, new File("workpath"));
    2:内存管理
    Java提供了无用单元自动收集机制。通过totalMemory()和freeMemory()方法可以知道对象的堆内存有多大,还剩多少。
    Java会周期性的回收垃圾对象(未使用的对象),以便释放内存空间。但是如果想先于收集器的下一次指定周期来收集废弃的对象,可以通过调用gc()方法来根据需要运行无用单元收集器。
    一个很好的试验方法是先调用gc()方法,然后调用freeMemory()方法来查看基本的内存使用情况,接着执行代码,然后再次调用freeMemory()方法看看分配了多少内存。

     得到的freeMemory是根本就没法通过创建的对象大小具体算出,只能通过前后相减得到

    Runtime run = Runtime.getRuntime() ; // 取得Runtime类的实例化对象
    Process p = null ; // 定义进程变量
    try{
    p = run.exec("notepad.exe") ; // 调用本机程序,此方法需要异常处理
    }catch(Exception e){
    e.printStackTrace() ; // 打印异常信息
    // System.out.println(e) ;
    }
    try{
    Thread.sleep(5000) ; // 让此线程存活5秒
    }catch(Exception e){
    }
    p.destroy() ; // 结束此进程
    }

    java国际化

    Locale zhLoc = new Locale("zh","CN") ;        // 表示中国地区
            Locale enLoc = new Locale("en","US") ;        // 表示美国地区
            Locale frLoc = new Locale("fr","FR") ;        // 表示法国地区
            // 找到中文的属性文件,需要指定中文的Locale对象
            ResourceBundle zhrb = ResourceBundle.getBundle("Message",zhLoc) ;
            // 找到英文的属性文件,需要指定英文的Locale对象
            ResourceBundle enrb = ResourceBundle.getBundle("Message",enLoc) ;
            // 找到法文的属性文件,需要指定法文的Locale对象
            ResourceBundle frrb = ResourceBundle.getBundle("Message",frLoc) ;
            // 依次读取各个属性文件的内容,通过键值读取,此时的键值名称统一为info
            String str1 = zhrb.getString("info") ;
            String str2 = enrb.getString("info") ;
            String str3 = frrb.getString("info") ;
            System.out.println("中文:" + MessageFormat.format(str1,"李兴华")) ;
            System.out.println("英语:" + MessageFormat.format(str2,"LiXingHua")) ;
            System.out.println("法语:" + MessageFormat.format(str3,"LiXingHua")) ;

    国际化获得配置文件的,不使用Properties

    Calendar类是一个抽象类,在实际使用时实现特定的子类的对象,创建对象的过程对程序员来说是透明的,只需要使用getInstance方法创建即可。【月份要+1】  

    clone

    class Employee implements Cloneable

    {
    public Object clone() throws CloneNotSupportedException
    {
    Employee cloned = (Employee) super.clone();
    cloned.hireDay = (Date) hireDay.clone()
    return cloned;
    }
    }

    正则表达式:

    字符串的split是根据正则表达式去分割,而Pattern执行compile实例化正则表达式,然后spilt所需要的字符串

    得到的字符串可根据Arrays工具类的equals方法判断数组是否相等!

  • 相关阅读:
    WPF FAQ (from Syncfusion)
    父窗口与子窗口的层次关系
    [WPF疑难]如何禁用WPF窗口的系统菜单(SystemMenu)
    【讨论】不得不重视的问题:信息太多!信息太杂!
    javaScript系列 [08]javaScript和JSON (进阶)
    javaScript系列 [11]Canvas绘图(路径)
    javaScript系列 [10]Canvas绘图(基础)
    Hexo + Github搭建个人博客
    javaScript系列 [07]日期类型和计时器
    javaScript系列 [09]javaScript和JSON (拓展)
  • 原文地址:https://www.cnblogs.com/chenxuezhouLearnProgram/p/5712630.html
Copyright © 2020-2023  润新知