• java 重难点


    Java 重难点:

    1、Map类型的对象中的键值 支持转义字符  

    import java.io.*;
    import java.util.*;
    class test  
    {
        public static void main (String[] args) throws java.lang.Exception
        {
            Map<String,String> map = new HashMap<String,String>();
            map.put("aa", "good
    
    
    
    
    ");
            System.out.println(map.get("aa"));
            System.out.println("test");
        }
    }

    输出结果如下所示:

    2、JSON字符串中 Boolean 类型值的存取

    import java.io.*;
    import java.util.*;
    class test  
    {
        public static void main (String[] args) throws java.lang.Exception
        {
            Map map = new HashMap();
            map.put("aa", "good
    
    
    
    
    ");
            map.put("bool", true);
            if((Boolean)map.get("bool")) {
                System.out.println("正确");
            } else {
                System.out.println("错误");
            }
            System.out.println(map.get("aa"));
            System.out.println("test");
        }
    }

    输出结果:

    3、mvn仓库 

      http://www.mvnrepository.com/artifact/net.sf.json-lib/json-lib/2.2.3

     4、Log4j

      log4j.properties 配置:

    # Root logger option
    log4j.rootLogger=DEBUG, stdout, file
     
    # Redirect log messages to console
    log4j.appender.stdout=org.apache.log4j.ConsoleAppender
    log4j.appender.stdout.Target=System.out
    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
    log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
     
    # Redirect log messages to a log file, support file rolling.
    log4j.appender.file=org.apache.log4j.RollingFileAppender
    log4j.appender.file.File=C:\log4j.log
    log4j.appender.file.MaxFileSize=5MB
    log4j.appender.file.MaxBackupIndex=10
    log4j.appender.file.layout=org.apache.log4j.PatternLayout
    log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

    上述配置文件配置了控制台输出 和 文件输出(C:\log4j.log),%-5p 配置了日志记录优先级(DEBUG 或 ERROR等),$c{1} 配置了 通过Logger.getLogger(AppClass.class) 信息, %L 配置了日志记录请求的行号, %m%n 配置日志记录后添加换行符

    log4j测试代码:

    package com.w3cschool.ide;
     
    import org.apache.log4j.Logger;
     
    public class App{
     
      final static Logger logger = Logger.getLogger(App.class);
     
      public static void main(String[] args) {
     
        App obj = new App();
        obj.runMe("w3cschool");
     
      }
     
      private void runMe(String parameter){
     
        if(logger.isDebugEnabled()){
          logger.debug("This is debug : " + parameter);
        }
     
        if(logger.isInfoEnabled()){
          logger.info("This is info : " + parameter);
        }
     
        logger.warn("This is warn : " + parameter);
        logger.error("This is error : " + parameter);
        logger.fatal("This is fatal : " + parameter);
     
      }
     
    }
    import org.apache.log4j.Logger;
    
    public class App {
    
      final static Logger logger = Logger.getLogger(App.class);
    
      public static void main(String[] args) {
    
        App obj = new App();
    
        try {
          obj.divide();
        } catch (ArithmeticException ex) {
          logger.error("Sorry, something wrong!", ex);
        }
      }
    
      private void divide() {
        int i = 10 / 0;
    
      }
    
    }

    log4j.propertis 放在 WEB-INF/classes 目录下,需要在 web.xml 配置文件中添加配置

    <context-param>
         <param-name>log4jConfigLocation</param-name>
         <param-value>/WEB-INF/classes/log4j.properties</param-value>
     </context-param>

    5、return 语句 

    return语句后不能再写有效语句,否则编译报错。

    多重return语句返回:

    import java.io.*;
    import java.util.*;
    class test  
    {
        static int a = 1;
        public static void main (String[] args) throws java.lang.Exception
        {
            for(int i=0;i<1;i++) {
                System.out.println(getInt());
            }
        }
        
        private static int getInt() {
            try {
                a = a/0;
                return 1;
            } catch(Exception e) {
                System.out.println(a);
                return ++a;
            } finally {
                System.out.println(a);
                return a++;
            }
        }
    }

    最后,返回结果是:

    分析: 优先级方面,finally中的return语句、catch中的return语句、try中的return语句的优先级逐渐降低,高优先级的return语句会覆盖掉低优先级的return语句

                 return ++a; 会先将a值+1,然后将+1后的值保存起来工返回。如果还有其他代码的话,继续进行其他代码,最后返回保存的返回值。

        return a++; 会先将a值保存在返回值的区域,然后进行+1操作。随后返回保存的旧值。

        如果try语句中有运行错误,那么try语句块中该错误之后的代码都不再运行,即使有return语句,也不执行

    6、

  • 相关阅读:
    向linux内核中添加外部中断驱动模块
    uboot中添加FIQ中断及相关问题
    访问内存中一个绝对地址
    ftp & tftp & vsftpd
    selinux基础
    ssh & screen
    Python自动化测试-unittest
    firewalld基础
    oracle体系结构-逻辑存储结构
    Oracle体系结构
  • 原文地址:https://www.cnblogs.com/maxiaoshuai/p/6970341.html
Copyright © 2020-2023  润新知