V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  guyeu  ›  全部回复第 22 页 / 共 32 页
回复总数  622
1 ... 18  19  20  21  22  23  24  25  26  27 ... 32  
bad question。
2019-12-31 14:10:15 +08:00
回复了 sandman511 创建的主题 程序员 Java :如何处理空指针?
String result = switch (Objects.requireNonNullElse(code, 0)) {
case 0 -> null;
case 1 -> "你好";
case 2 -> "你好好";
case 3 -> "你好好好";
default -> throw new UnsupportedOperationException();
};
2019-12-31 10:54:37 +08:00
回复了 rizon 创建的主题 程序员 java8 stream 语法糖的几个使用技巧分享: list 转 map、reduce 等
你对语法糖可能有一些误解。。。lambda 或许是个语法糖,try-resource 是个语法糖,泛型算半个语法糖。。。但是 stream 真不是语法糖,它是函数式编程工具包,和语法没关系。
其实我是想知道反射调那个原始参数的方法为什么会抛异常。。。
2019-12-24 20:25:40 +08:00
回复了 manami 创建的主题 程序员 还有人在用 NetBeans 这个开发工具吗?
上学的时候用,恕我直言,比 eclipse 好用。
大佬教教我动态库是啥。。DDL 吗。。
2019-12-13 15:46:32 +08:00
回复了 zzlit 创建的主题 JavaScript 关于对象里面有很多参数需要处理的问题
有一大堆名称很像的工具库:BeanUtils,其实没办法解决真正的痛点。。。
2019-12-13 14:39:56 +08:00
回复了 kickcandy 创建的主题 程序员 码农们,测试人员和你们相处的怎么样?
认识我之前,他王者荣耀王者三十⭐️️。
2019-12-12 10:26:05 +08:00
回复了 kidlj 创建的主题 Java Apache Software Foundation 对于 Java 生态的意义
正确。
2019-12-11 21:00:37 +08:00
回复了 Febers 创建的主题 Java Java 中通过 ClassName.super 获取直接父类的引用范围的疑惑
因为不存在父类的实例这么个东西,你实例化一个类的时候,实例化出的就是一个对象,并不是父类有个对象子类有个对象。
但是在类内部有需求访问这个类继承自父类的方法、属性,所以有了 super 这么个关键字,用来区分当前类和它的父类,不会引起混淆的情况下你省略这个关键字也没关系。
但是在类外面不能使用这个关键字,这会破坏对象的封装和继承。
2019-11-19 20:44:18 +08:00
回复了 KunMinX 创建的主题 Android 真香警告:即使不用云音乐听曲儿,也请务必收藏好该库!
不能点反对+没有帮助。。
我猜一下哈。。监控系统每两分钟采集一次数据,而采集数据的时间是差不多一样的?
2019-11-18 18:23:39 +08:00
回复了 D0NG 创建的主题 Java 后端处理富文本数据
图片和视频只处理索引。
2019-11-18 14:54:30 +08:00
回复了 Simle100 创建的主题 Java 方式 1 和方式 2 的却别到底在哪里?
@wysnylc #33 同意你的大部分内容,但是绝对不同意应该用异常来实现逻辑。
比如 b/a 这个场景,不要傻乎乎得直接除+捕捉除 0 异常,应该检查传入参数,
if (a == 0) throw new IllegalArguementsException("a cannot be zero.");

滥用异常来实现逻辑一方面大量的异常会造成效率损失,另一方面 try catch 块的确会侵入正常逻辑造成可读性变差。
另外,大多数开发者的能力并不足以驾驭实现这样的异常处理逻辑,所以,防御式编程,在发现问题之后抛出异常,但是不要制造问题。
2019-11-16 16:26:46 +08:00
回复了 Simle100 创建的主题 Java 方式 1 和方式 2 的却别到底在哪里?
@wysnylc #28
@sunznx #30
爬了一下楼,二位想必是知道捕捉异常比条件判断慢的,的确是慢在了收集堆栈信息上,或许可以通过重写 Exception 父类的内容来避免,但是更合理的当然是使用条件判断而不是处理异常。
这个慢是数量级的慢,“只差几毫秒”?无数计算机科学家绞尽脑汁,无数材料化学家物理学家费尽心血,让现在的 CPU 可以在毫秒级里执行几百万次这样的逻辑,不是给你这种睿智这么浪费的。

异常就是异常,它代表程序的错误,而不是逻辑的一部分,不要用异常来实现逻辑。
2019-11-16 15:53:32 +08:00
回复了 Simle100 创建的主题 Java 方式 1 和方式 2 的却别到底在哪里?
@wysnylc #22
@felixlong #25
用异常来实现逻辑毫无疑问是错的,我写了一个小例子,异常比条件判断慢 100 倍以上:

```java
public static void main(String[] args) {
long cur = System.currentTimeMillis();
final int LOOP = 100_000;
for (int i = 0; i < LOOP; i++) {
try {
int b = 0;
int a = i / b;
} catch (ArithmeticException ignored) { }
}
long cost = System.currentTimeMillis() - cur;
System.out.println("cost1: " + cost);

cur = System.currentTimeMillis();
for (int i = 0; i < LOOP; i++) {
int b = 0;
int a;
if (b != 0) {
a = i / b;
}
}
cost = System.currentTimeMillis() - cur;
System.out.println("cost2: " + cost);
}
```

输出如下:

```
cost1: 1199
cost2: 4
```
2019-11-16 15:37:46 +08:00
回复了 wysnylc 创建的主题 Java 为什么不建议用 try catch?
@wysnylc #4
@zunceng #8
java 的异常设计优势是让程序的各种无法预期的错误可以不影响代码结构,这一点比楼主提的 2 和 3 都好。go 的设计也是为了这个目标,但是实现得很愚蠢,java 里可以很容易得把异常抛给上层去处理。
Wrap 和 Unwrap 其实很大程度上是 java 的 Cause by 和 Supressed 的翻版。
就现在而言,个人认为 java 的这个异常方案可以说是最接近最优解的了,然而无论在哪里,处理异常只要把握住以下两点就可以了:
1. 不要丢失信息,包括异常树和异常堆栈;
2. 简洁,不要侵犯正常逻辑。
2019-11-16 14:31:51 +08:00
回复了 wysnylc 创建的主题 Java 为什么不建议用 try catch?
了解一下 go 语言
result, error := func()
if error != nil {
...
}
1 ... 18  19  20  21  22  23  24  25  26  27 ... 32  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1267 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 29ms · UTC 23:21 · PVG 07:21 · LAX 15:21 · JFK 18:21
Developed with CodeLauncher
♥ Do have faith in what you're doing.