StackOverflow:7个你从未见过的Java问题最佳答案

StackOverflow:7个你从未见过的Java问题最佳答案

ID:42562582

大小:99.70 KB

页数:6页

时间:2019-09-17

StackOverflow:7个你从未见过的Java问题最佳答案_第1页
StackOverflow:7个你从未见过的Java问题最佳答案_第2页
StackOverflow:7个你从未见过的Java问题最佳答案_第3页
StackOverflow:7个你从未见过的Java问题最佳答案_第4页
StackOverflow:7个你从未见过的Java问题最佳答案_第5页
资源描述:

《StackOverflow:7个你从未见过的Java问题最佳答案》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、StackOverflow:7个你从未见过的Java问题最佳答案对开发人员来说,StackOverflow就像一个金矿。对具体的问题,它能帮我们找到最有用的答案,并且我们也可以从上面学习新的知识。下面的内容,通过这些最常见的JAVA问题与答案,并着重的标记出我们找到的精华问题。即便你是一个经验丰富的开发人员,这些也是值得去学习的。JAVA问题纵览JAVA是StackOverflow上 第二流行的标签 ,有超过100万个问题与JAVA有关。仅在上个礼拜,就有4600个问题被提出,毫无疑问这里是开发者们最大也是最

2、为活跃的线上社区。此信息同样也出自StackOverflow 2016年的开发者调查中 ,56033名开发者被问到关于开发语言的选择,JAVA是第三位。因为在市场上JAVA占据着主导,因此我们估计读者也曾经有那么一两次的去访问StackOverflow来寻找答案。但是,即使你随意的在StackOverflow上闲逛,也会发现很多有趣的问题,下面让我们来看看这些精心选出的问题。分支预测在StackOverflow上最经常被问到的一个问题就是” 为什么处理一个排序过的数组比一个未排序的数组要快?”回答这样的问题,

3、你得了解分支预测。分支预测是一种期望可以提升应用流程的架构,旨在一条路径在真正被执行前就可以被提前的猜出。当然它不仅仅是一个完全意义上的猜测,而是一个有目的性的猜测。分支在这里就是一个“IF语句”。在此情况下,如果数组是排序过的,分支预测将起作用,不然则无法工作。 Mysticial 试着用一种简单的方式来解释这个问题,以铁路和火车为例子。想像一下,你驾驶火车来到一个交汇点,接下来你需要决定火车走哪条线。你会选择左还是右?当然,你也可以停下火车问问司机哪一条路是正确的,但是这却会降低整个火车运行的速度,并让火

4、车的行进过程变的更加复杂。你也可以猜一下,但是你如何确保你猜的一定是对的呢?了解下这趟火车之前的司机都是怎么做的,并且知道在此之前他们都是如何选择道路的,这是一个非常好的主意。这就是分支预测:找到模式并且使用他们。不幸的是,多数情况下能问出这样问题的多半是一个失效的分支预测的受害者。由于分支没有可识别的模式,想要去猜测就真的只能是一个随机的猜测了。JAVA的安全性另一个流行的JAVA问题是“为什么在JAVA的密码管理中,更倾向去使用char[]而不是String?”更具体一些的问法是:为什么在JAVASwin

5、g中的密码输入框方法是:getPassword(returnchar[]),而不是getText(returnString)毫无意外的,这里是一个安全问题。因为String是不可变的,这意味着你一旦创建了它则无法修改。同样也意味着在GC前你无法彻底的删除掉它。在某些情况下,如果有人黑进了你的内存,那么被保存成String的密码则可以被人获取的。这就是为什么你需要使用字符数组。你可以在使用完后显式的清除它,或者你也可以用其他的别的东西去覆盖它。这样敏感的信息就不会在系统的其他地方出现,即使此时GC还没有启动。异

6、常即使有很多开发人员会忽略异常检查,但是依然有很多问题是关于JAVA异常的。在你的代码中这是一个值得引起你注意的问题,忽略它并不能使它消失。最常见的一个问题是“什么是NullPointerException,并如何消除它“,看到这样的问题有如此多的人问,我们毫不惊奇。在JAVA的生产环境中,空指针异常也确实是排名第一的异常类型。Takipi介绍了一种检查空指针异常或者其他异常的一种新的方法。一些有趣的问题StackOverflow上总有些有趣的问题可以教授你一些新的知识。我们选了如下内容为何如下代码可以使用R

7、andomString来打印出”HelloWorld”?如果是一组选择好的随机数,那么事实上他们并不是真正随机的。随机数的算法是根据种子参数来进行计算的,(当前则是-229985452或者-147909649)。每一次当申请一个随机数的时候,它会根据相同的随机数种子来生成一个相同的值–打印出”helloworld”。前六个随机数是:8,5,12,12,15,0.前六个随机数是:23,15,18,12,4,0当你将这些数字转换成字符的时候  104–>h  101–>e  108–>l  108–>l  111

8、–>o 119–>w  111–>o  114–>r  108–>l  100–>d你将获得helloworld为何两个相差一秒的时间相减会有奇怪的结果Javaversion:Timezone(TimeZone.getDefault()):输出结果是353(译者注:在JDK1.8上未能重现这个问题,原题注的JAVA版本是1.6)很显然只有一秒的差距,但是得到的结果确实353,一个最基本的解释是:时区

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。