没有合适的资源?快使用搜索试试~ 我知道了~
Java为改善可读性和灵活性重构代码.pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 189 浏览量
2022-07-02
10:50:24
上传
评论
收藏 414KB PDF 举报
温馨提示
试读
16页
像这样的日志代码会更好: if (log.isLoggable(Level.FINE)) { log.log(Level.FINE, "I am here, and the value of X is {} and Y is {}", new Object[]{calcX(), calcY()}); } 应用的性能取决于它的代码如何编写。例如,如果程序循环遍历数组中的所有元素,JVM 就可以优化数组的边界检查,使循环更快,展开循环能提供额外的加速。但如果循环是为了找到特定元素,那目前还没有什么优化的办法,使得遍历数组和采用HashMap 的版本一样快。以数据库的性能为例,但运行环境的任何部分都可能会引起性能问题。 对于整体系统,采取结构化方法针对系统的所有方面分析性能。CPU 使用率、I/O 延迟、系统整体的吞吐量都必须测量和分析。到那时,我们才能判定到底是哪个组件导致了性能瓶颈。关于这个主题有大量优秀的资源,相关的方法和工具也不只针对Java。假定你已经完成了分析,并且判断出是运行环境中Java 组件的性能需要改善。 ——参考资料:仅个人学习,未详尽测试,请自行调试!!
资源推荐
资源详情
资源评论
“
Java 8
q
Java 8
q
Stream API
Lambda
Stream
q
Lambda
q
Lambda
q
Stream API
Lambda
Lambda
Lambda
3
Runnable
Lambda
Runnable r1 = new Runnable(){
public void run(){
System.out.println("Hello");
}
};
Runnable r2 = () -> System.out.println("Hello");
Lambda
Lambda
this
super
this
Lambda
Lambda
int a = 10;
Runnable r1 = () -> {
int a = 2;
System.out.println(a);
};
Runnable r2 = new Runnable(){
Lambda
“
Lambda
Lambda
3
Lambda
Lambda
2
Lambda
Stream
public void run(){
int a = 2;
System.out.println(a);
}
};
Lambda
Lambda
Runnable
Task
interface Task{
public void execute();
}
public static void doSomething(Runnable r){ r.run(); }
public static void doSomething(Task a){ a.execute(); }
Task
doSomething(new Task() {
public void execute() {
System.out.println("Danger danger!!");
}
});
Lambda
Runnable
Task
doSomething(() -> System.out.println("Danger danger!!"));
Task
doSomething((Task)() -> System.out.println("Danger danger!!"));
LambdaNetBeans
IntelliJ
8.1.3 Lambda
Lambda
6
Map<CaloricLevel, List<Dish>> dishesByCaloricLevel =
menu.stream()
.collect(
groupingBy(dish -> {
doSome-
thing(Runnable)
doSomething(Task)
1
2
3
4
5
10
6
12
11
13
16
14
15
if (dish.getCalories() <= 400) return CaloricLevel.DIET;
else if (dish.getCalories() <= 700) return CaloricLevel.NORMAL;
else return CaloricLevel.FAT;
}));
Lambda
groupingBy
Map<CaloricLevel, List<Dish>> dishesByCaloricLevel =
menu.stream().collect(groupingBy(Dish::getCaloricLevel));
Dish
getCaloricLevel
public class Dish{
…
public CaloricLevel getCaloricLevel(){
if (this.getCalories() <= 400) return CaloricLevel.DIET;
else if (this.getCalories() <= 700) return CaloricLevel.NORMAL;
else return CaloricLevel.FAT;
}
}
comparing
maxBy
3
inventory.sort(
(Apple a1, Apple a2) -> a1.getWeight().compareTo(a2.getWeight()));
inventory.sort(comparing(Apple::getWeight));
sum
maximum
Collectors
Lambada
int totalCalories =
menu.stream().map(Dish::getCalories)
.reduce(0, (c1, c2) -> c1 + c2);
summingInt
int totalCalories = menu.stream().collect(summingInt(Dish::getCalories));
8.1.4 Stream
Stream API
Stream API
7Stream
Lambda
7.2/
List<String> dishNames = new ArrayList<>();
for(Dish dish: menu){
if(dish.getCalories() > 300){
dishNames.add(dish.getName());
}
}
Stream API
menu.parallelStream()
.filter(d -> d.getCalories() > 300)
.map(Dish::getName)
.collect(toList());
Stream API
break
continue
return
8.1.5
23Lambda
Lambda
Predicate
Comparator
Lambda
1
Lambda
Lambda
Lambda
2.
Java
Logger
if (logger.isLoggable(Log.FINER)){
logger.finer("Problem: " + generateDiagnostic());
}
剩余15页未读,继续阅读
资源评论
小兔子平安
- 粉丝: 209
- 资源: 1940
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功