java重点难点_java 重难点

Java 重难点:

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

import java.io.*;import java.util.*;classtest

{public static void main (String[] args) throwsjava.lang.Exception

{

Map map = new HashMap();

map.put("aa", "good\n\n\n\n\n");

System.out.println(map.get("aa"));

System.out.println("test");

}

}

输出结果如下所示:

57a54e5736355d51eace3ccb33b0e8ba.png

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

import java.io.*;import java.util.*;classtest

{public static void main (String[] args) throwsjava.lang.Exception

{

Map map= newHashMap();

map.put("aa", "good\n\n\n\n\n");

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");

}

}

输出结果:

84dcc93ee199d8813da7e7cf72cb55ff.png

3、mvn仓库

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=10log4j.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测试代码:

packagecom.w3cschool.ide;importorg.apache.log4j.Logger;public classApp{final static Logger logger = Logger.getLogger(App.class);public static voidmain(String[] args) {

App obj= newApp();

obj.runMe("w3cschool");

}private voidrunMe(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);

}

}

importorg.apache.log4j.Logger;public classApp {final static Logger logger = Logger.getLogger(App.class);public static voidmain(String[] args) {

App obj= newApp();try{

obj.divide();

}catch(ArithmeticException ex) {

logger.error("Sorry, something wrong!", ex);

}

}private voiddivide() {int i = 10 / 0;

}

}

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

log4jConfigLocation

/WEB-INF/classes/log4j.properties

5、return 语句

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

多重return语句返回:

import java.io.*;import java.util.*;classtest

{static int a = 1;public static void main (String[] args) throwsjava.lang.Exception

{for(int i=0;i<1;i++) {

System.out.println(getInt());

}

}private static intgetInt() {try{

a= a/0;return 1;

}catch(Exception e) {

System.out.println(a);return ++a;

}finally{

System.out.println(a);return a++;

}

}

}

最后,返回结果是:

8554c059b5a851bc03db646ddb6ac99e.png

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

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

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

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

6、

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值