zoukankan      html  css  js  c++  java
  • Java语法清单-快速回顾(开发)

    Java CheatSheet

    01.基础

    hello,world!

    public static void main(String[] args) {
        System.out.println("Hello,World");
    }

     

    if-else

    if (income < 0) rate = 0.00;
    else if (income < 8925) rate = 0.10;
    else if (income < 36250) rate = 0.15;
    else if (income < 87850) rate = 0.23;
    else if (income < 183250) rate = 0.28;
    else if (income < 398350) rate = 0.33;
    else if (income < 400000) rate = 0.35;
    else rate = 0.396;

    loops:

    /**
     * compute the largest
     * power of 2
     * less than or equal to n
     */
    public static void test2(int n){
        int power = 1;
        while (power < n/2)
            power = 2 * power;
        System.out.println(power);
    }
    /**
     * compute a finite sum
     * (1+2+...+n)
     */
    public static void test3(int n){
        int sum = 0;
        for(int i=0; i <= n; i++)
            sum += i;
        System.out.println(sum);
    }
    /**
     * compute a finite product
     * (n! = 1*2*...*n)
     */
    public static void test4(int n){
        int product = 1;
        for(int i=1; i <= n; i++)
            product *= i;
        System.out.println(product);
    }
    /**
     * compute the ruler function
     */
    public static void test6(int n){
        StringBuilder ruler = new StringBuilder("1");
        for(int i=2; i <= n; i++)
            ruler.append(" ").append(i).append(" ").append(ruler);
        System.out.println(ruler);
    }

    do-while:

    //do-while
    public static void test7(){
        int count = 0;
        do {
            System.out.println("count is:"+ count);
            count++;
        }while (count<11);
    }

     switch-case:

    //switch-case
    public static void test8(int day){
        switch(day){
            case 0: System.out.println("Sun");break;
            case 1: System.out.println("Mon");break;
            case 2: System.out.println("Tue");break;
            case 3: System.out.println("Wed");break;
            case 4: System.out.println("Thu");break;
            case 5: System.out.println("Fri");break;
            case 6: System.out.println("Sat");break;
        }
    }

     

    02.字符串操作

    字符串比较:

    boolean result = str1.equals(str2);
    boolean result = str1.equalsIgnoreCase(str2);//忽略大小写

     

    搜索与检索:

    int result = str1.indexOf(str2);
    int result = str1.indexOf(str2,5);
    String index = str1.substring(14);

     

    字符串反转:

    //字符串反转
    public static void test11(){
        String str1 = "whatever string something";
        StringBuffer buffer = new StringBuffer(str1);
        String reverse = buffer.reverse().toString();
        System.out.println(reverse);
    }

     

    按单词的字符串反转:

    //按单词的字符串反转
    public static void test12(){
        String str1 = "reverse this string";
        Stack<Object> stack = new Stack<>();
        StringTokenizer tokenizer = new StringTokenizer(str1);
        while (tokenizer.hasMoreElements())
            stack.push(tokenizer.nextElement());
        StringBuffer buffer = new StringBuffer();
        while (!stack.isEmpty()){
            buffer.append(stack.pop());
            buffer.append(" ");
        }
        System.out.println(buffer);
    }

     

    大小写转化:

    String strUpper = str1.toUpperCase();
    String strLower = str1.toLowerCase();

     

    首尾空格移除:

    String str1 = "     asdfsdf   ";
    str1.trim(); //asdfsdf

     

    空格移除:

    str1.replace(" ","");

     

    字符串转化为数组:

    String str = "tim,kerry,timmy,camden";
    String[] results = str.split(",");

     

    03.数据结构

    重置数组大小:

    int[] myArray = new int[10];
    int[] tmp = new int[myArray.length + 10];
    System.arraycopy(myArray, 0, tmp, 0, myArray.length);
    myArray = tmp;

     

    集合遍历:

    Map<String,Object> map = new HashMap<>();
    map.put("1","zhangsan");
    map.put("2","lisi");
    map.put("3","wangwu");
    for (Map.Entry<String, Object> next : map.entrySet()) {
        System.out.println(next.getKey() + ":" + next.getValue());
    }

     

    数组排序:

    int[] nums = {1,4,7,324,0,-4}; 
    Arrays.sort(nums);
    System.out.println(Arrays.toString(nums));

     

    列表排序:

    List<String> unsortList = new ArrayList<>();
    
    unsortList.add("CCC");
    unsortList.add("111");
    unsortList.add("AAA");
    Collections.sort(unsortList);

     

    列表搜索:

    int index = arrayList.indexOf(obj);

     

    finding an object by value in a hashmap:

    hashmap.containsValue(obj);

     

    finding an object by key in a hashmap:

    hashmap.containsKey(obj);

     

    二分搜索:

    int[] nums = new int[]{7,5,1,3,6,8,9,2};
    Arrays.sort(nums);int index = Arrays.binarySearch(nums,6);
    System.out.println("6 is at index: "+ index);

     

    arrayList 转化为 array:

    Object[] objects = arrayList.toArray();

     

    将 hashmap 转化为 array:

    Object[] objects = hashmap.entrySet().toArray();

     

    04.时间与日期类型(开发推荐使用org.apache.commons.lang3.time.DateUtils 或者 Java8新的日期工具类,切勿重复造轮子!)

    打印时间与日期:

    Date todaysDate = new Date(); //todays date
    SimpleDateFormat formatter = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss"); //date format
    String formattedDate = formatter.format(todaysDate);
    System.out.println(formattedDate);

     

    将日期转化为日历:

    Date mDate = new Date();
    Calendar mCal = Calendar.getInstance();
    mCal.setTime(mDate);

     

    将 calendar 转化为 date:

    Calendar mCal = Calendar.getInstance();
    Date mDate = mDate.getTime();

     字符串解析为日期格式:

    public void StringtoDate(String x) throws ParseException{
        String date = "March 20, 1992 or 3:30:32pm";
        DateFormat df = DateFormat.getDateInstance();
        Date newDate = df.parse(date);    
    }

     

    date arithmetic using date objects:

    Date date = new Date();
    long time = date.getTime();
    time += 5*24*60*60*1000; //may give a numeric overflow error on IntelliJ IDEA
    
    Date futureDate = new Date(time);
    System.out.println(futureDate);

     

    date arithmetic using calendar objects:

    Calendar today = Calendar.getInstance();
    today.add(Calendar.DATE,5);

     

    difference between two dates:

    long diff = time1 - time2; diff = diff/(1000*60*60*24);

    comparing dates:

    boolean result = date1.equals(date2);

     

    getting details from calendar:

    Calendar cal = Calendar.getInstance();
    cal.get(Calendar.MONTH);
    cal.get(Calendar.YEAR);
    cal.get(Calendar.DAY_OF_YEAR);
    cal.get(Calendar.WEEK_OF_YEAR);
    cal.get(Calendar.DAY_OF_MONTH);
    cal.get(Calendar.DAY_OF_WEEK_IN_MONTH);
    cal.get(Calendar.DAY_OF_MONTH);
    cal.get(Calendar.HOUR_OF_DAY);

     

    calculating the elapsed time:

    long startTime = System.currentTimeMillis();//times flies by..
    
    long finishTime = System.currentTimeMillis();
    long timeElapsed = startTime-finishTime;
    System.out.println(timeElapsed);

     

    05.正则表达式

    使用 REGEX 寻找匹配字符串:

    String pattern = "[TJ]im";      
    Pattern regPat = Pattern.compile(pattern,Pattern.CASE_INSENSITIVE); 
    String text = "This is Jim and that's Tim";
    Matcher matcher = regPat.matcher(text);       
    if (matcher.find()){           
        String matchedText = matcher.group();
        System.out.println(matchedText);
    }

     

    替换匹配字符串:

    String pattern = "[TJ]im";
    Pattern regPat = Pattern.compile(pattern,Pattern.CASE_INSENSITIVE); 
    String text = "This is jim and that's Tim";
    Matcher matcher = regPat.matcher(text);
    String text2 = matcher.replaceAll("Tom");
    System.out.println(text2);

     

    使用 StringBuffer 替换匹配字符串:

    Pattern p = Pattern.compile("My");
    Matcher m = p.matcher("My dad and My mom");
    StringBuffer sb = new StringBuffer();
    boolean found = m.find();       
    while(found){
          m.appendReplacement(sb,"Our");
          found = m.find();
    }
    m.appendTail(sb);
    System.out.println(sb);

     

    打印所有匹配次数:

    String pattern = "\sa(\w)*t(\w)*"; //contains "at"Pattern regPat = Pattern.compile(pattern);
    String text = "words something at atte afdgdatdsf hey";
    Matcher matcher = regPat.matcher(text);
    while(matcher.find()){     
         String matched = matcher.group();
          System.out.println(matched);
    }

     

    打印包含固定模式的行:

    String pattern = "^a";      
    Pattern regPat = Pattern.compile(pattern);
    Matcher matcher = regPat.matcher("");
    BufferedReader reader = new BufferedReader(new FileReader("file.txt"));
    String line;        
    while ((line = reader.readLine())!= null){
        matcher.reset(line);
             if (matcher.find()){
                 System.out.println(line);
            }
    }     

     

    匹配新行:

    String pattern = "\d$"; //any single digitString text = "line one
     line two
     line three
    ";     
    Pattern regPat = Pattern.compile(pattern, Pattern.MULTILINE);
    Matcher matcher = regPat.matcher(text);
    while (matcher.find()){
        System.out.println(matcher.group());
    }

     

    regex:

    beginning of a string: ^
    end of a string: $
    0 or 1 times: ?
    0 or more times: (*) //without brackets
    1 or more times: +
    alternative characters: [...]
    alternative patterns: |
    any character: .
    a digit: d
    a non-digit: D
    whitespace: s
    non-whitespace: S
    word character: w
    non word character: W

     

    06.数字与数学操作处理

    内建数据类型:

    byte: 8bits, Byte
    short: 16bits, Short
    long: 64bits, Long
    float: 32bits, Float

     判断字符串是否为有效数字:

    String str = "dsfdfsd54353%%%"; 
    try{    
         int result = Integer.parseInt(str);
    }catch (NumberFormatException e){
        System.out.println("not valid");
    }

     

    比较 Double:

    Double a = 4.5; 
    Double b= 4.5;
    boolean result = a.equals(b);
    if (result) System.out.println("equal");

    rounding:

    double doubleVal = 43.234234200000000234040324;
    float floatVal = 2.98f;
    long longResult = Math.round(doubleVal);
    int intResult = Math.round(floatVal);
    System.out.println(longResult + " and " + intResult); // 43 and 3

     格式化数字:

    double value = 2343.8798;
    NumberFormat numberFormatter;        
    String formattedValue;
    numberFormatter = NumberFormat.getNumberInstance();
    formattedValue = numberFormatter.format(value);
    System.out.format("%s%n",formattedValue); //2.343,88

     格式化货币:

    double currency = 234546457.99;
    NumberFormat currencyFormatter;       
    String formattedCurrency;
    currencyFormatter = NumberFormat.getCurrencyInstance();
    formattedCurrency = currencyFormatter.format(currency);
    System.out.format("%s%n",formattedCurrency); // $ 234.546.457,99

     二进制、八进制、十六进制转换:

    int val = 25;
    String binaryStr = Integer.toBinaryString(val);
    String octalStr = Integer.toOctalString(val);
    String hexStr = Integer.toHexString(val);

    随机数生成:

    double rn = Math.random();        
    int rint = (int) (Math.random()*10); // random int between 0-10
    System.out.println(rn);
    System.out.println(rint);

     计算三角函数:

    double cos = Math.cos(45);
    double sin = Math.sin(45);        
    double tan = Math.tan(45);

     计算对数

    double logVal = Math.log(125.5);

    07.输入输出操作

    从输入流读取:

    //throw IOexception first
    BufferedReader inStream = new BufferedReader(new InputStreamReader(System.in));
    String inline ="";
    while (!(inline.equalsIgnoreCase("quit"))){
          System.out.println("prompt> ");   
          inline=inStream.readLine();
    }

     格式化输出:

    StringBuffer buffer = new StringBuffer();
    Formatter formatter = new Formatter(buffer, Locale.US);
    formatter.format("PI: "+Math.PI);
    System.out.println(buffer.toString());

     

     打开文件:

    BufferedReader br = new BufferedReader(new FileReader(textFile.txt)); //for reading
    BufferedWriter bw = new BufferedWriter(new FileWriter(textFile.txt)); //for writing

     

    读取二进制数据:

    InputStream is = new FileInputStream(fileName);
    int offset = 0;    
    int bytesRead = is.read(bytes, ofset, bytes.length-offset);

     文件随机访问:

    File file = new File(something.bin);
    RandomAccessFile raf = new RandomAccessFile(file,"rw");
    raf.seek(file.length());

     

    读取 Jar/zip/rar 文件:

    ZipFile file =new ZipFile(filename);
    Enumeration entries = file.entries();    
    while(entries.hasMoreElements()){ 
        ZipEntry entry = (ZipEntry) entries.nextElement();
       if (entry.isDirectory()){
            //do something
       } else{            
            //do something
       }
    }
    file.close();

     

    08.文件与目录

    创建文件:

    File f = new File("textFile.txt");
    boolean result = f.createNewFile();

     

    文件重命名:

    File f = new File("textFile.txt");
    File newf = new File("newTextFile.txt");
    boolean result = f.renameto(newf);

    删除文件:

    File f = new File("somefile.txt");
    f.delete();

    改变文件属性:

    File f = new File("somefile.txt");
    f.setReadOnly(); // making the file read only
    f.setLastModified(desired time); 

    获取文件大小:

    File f = new File("somefile.txt");
    long length = file.length();

     

    判断文件是否存在:

    File f = new File("somefile.txt");
    boolean status = f.exists();

     

    移动文件:

    File f = new File("somefile.txt");
    File dir = new File("directoryName");
    boolean success = f.renameTo(new File(dir, file.getName()));

    获取绝对路径:

    File f = new File("somefile.txt");
    File absPath = f.getAbsoluteFile();

    判断是文件还是目录:

    File f = new File("somefile.txt");
    boolean isDirectory = f.isDirectory();
    System.out.println(isDirectory); //false

    列举目录下文件:

    File directory = new File("users/ege");
    String[] result = directory.list();

    创建目录:

    boolean result = new File("users/ege").mkdir();

     

    09.网络客户端

    服务器连接:

    String serverName = "www.egek.us";
    Socket socket = new Socket(serverName, 80);
    System.out.println(socket);

    网络异常处理:

    try {
            Socket sock = new Socket(server_name, tcp_port);
            System.out.println("Connected to " + server_name);
            sock.close(  );
    
        } catch (UnknownHostException e) {
            System.err.println(server_name + " Unknown host");  
            return;
        } catch (NoRouteToHostException e) {
            System.err.println(server_name + " Unreachable" );
            return;
        } catch (ConnectException e) {
            System.err.println(server_name + " connect refused");
            return;
        } catch (java.io.IOException e) {
            System.err.println(server_name + ' ' + e.getMessage(  )); 
            return;
        }

     

    10.包与文档

    创建包:

    package com.ege.example;

    使用 JavaDoc 注释某个类:

    javadoc -d homehtml
        -sourcepath homesrc
        -subpackages java.net

     

    Jar 打包:

    jar cf project.jar *.class

     

    运行 Jar:

    java -jar something.jar

     

    排序算法

    各种排序算法总结和比较

  • 相关阅读:
    赵炯博士《Linux内核完全注释》
    0.11内核rd_load@ramdisk.c中memcpy函数好像有bug
    Can't find kernel text map area from kcore
    Could not allocate 40960 bytes percpu data
    镜像
    H3C S6800交换机 BCM shell命令
    Bean的作用域
    Bean之间的关系
    Bean的自动装配
    Java8 Hash改进/内存改进
  • 原文地址:https://www.cnblogs.com/ixan/p/9943019.html
Copyright © 2011-2022 走看看