相关疑难解决方法(0)

Bash的隐藏功能

Shell脚本通常用作粘合剂,用于自动化和简单的一次性任务.您最喜欢的Bash shell /脚本语言的"隐藏"功能有哪些?

  • 每个答案一个功能
  • 举一个示例和该功能的简短描述,而不仅仅是文档的链接
  • 使用粗体标题作为第一行标记要素

也可以看看:

bash shell scripting hidden-features

72
推荐指数
23
解决办法
4万
查看次数

为什么Java允许在源代码中转义unicode字符?

最近了解到,Java源代码中的Unicode不仅可以作为Unicode字符(例如double ? = Math.PI;),还可以作为转义序列(例如double \u03C0 = Math.PI;).

第一个变体对我有意义 - 它允许程序员用他们选择的国际语言命名变量和方法.但是,我没有看到第二种方法的任何实际应用.

以下是一些用于说明用法的代码,使用Java SE 6和NetBeans 6.9.1进行了测试:

此代码将打印出3.141592653589793

public static void main(String[] args) {
    double ? = Math.PI;
    System.out.println(\u03C0);
}
Run Code Online (Sandbox Code Playgroud)

说明:π和\ u03C0是相同的Unicode字符

此代码不会打印任何内容

public static void main(String[] args) {
    double ? = Math.PI; /\u002A
    System.out.println(?);

    /* a comment */
}
Run Code Online (Sandbox Code Playgroud)

说明:上面的代码实际编码:

public static void main(String[] args) {
    double ? = Math.PI; /*
    System.out.println(?);

    /* a comment */
}
Run Code Online (Sandbox Code Playgroud)

哪个评论打印出来的声明.

仅从我的示例中,我注意到此语言功能存在许多潜在问题.

首先,一个糟糕的程序员可以使用它来秘密注释掉一些代码,或创建多种识别相同变量的方法.也许还有其他可怕的事情可以做,我没有想过.

其次,IDE之间似乎缺乏支持.NetBeans和Eclipse都没有为示例提供正确的代码突出显示.实际上,NetBeans甚至标记了语法错误(尽管编译不是问题).

最后,此功能的记录很少,并且不被普遍接受.为什么程序员会在他的代码中使用其他程序员无法识别和理解的东西?事实上,我甚至在Hidden Java Features问题上找不到这个. …

java unicode language-features

64
推荐指数
2
解决办法
9849
查看次数

字段初始化中未处理的异常

Java是否有任何语法来管理在声明和初始化类的成员变量时可能抛出的异常?

public class MyClass
{
  // Doesn't compile because constructor can throw IOException
  private static MyFileWriter x = new MyFileWriter("foo.txt"); 
  ...
}
Run Code Online (Sandbox Code Playgroud)

或者这些初始化总是必须移动到一个方法,我们可以throws IOException在try-catch块中声明或包装初始化?

java initialization exception

27
推荐指数
1
解决办法
6674
查看次数

与Java中的Exception vs Throwable相关联的开销

我知道

throw new Exception();
Run Code Online (Sandbox Code Playgroud)

有一个相当大的开销,因为它创建了一个完整的堆栈跟踪等
是否

throw new Throwable();
Run Code Online (Sandbox Code Playgroud)

出现同样的问题?这种行为是继承的,还是抛出Throwable有一个较小的(o no)开销?

编辑
分析师的角度来看,插入错误密码的用户是程序正常执行顺序的例外.所以,如果我有:

public Session newSession() {  
  validate_user_and_password();   
}
Run Code Online (Sandbox Code Playgroud)

分析师的角度来看,抛出UserNotValidException听起来是正确的.如果您的代码具有相当好的抽象,则
返回null或者0听起来不正确.我只是想知道我是否可以在代码中实现这一点,或者如果我不得不将它留给理论.

编程视点异常与分析师视点异常之间存在很大差异.

注意:我给出了一个非常简单而愚蠢的例子,这不是我的情况.
注2:我知道返回null将是普通的事情,但我需要有适当的抽象和OO代码,而且,就个人而言,我认为没有任何损害.

java exception throwable

27
推荐指数
2
解决办法
5万
查看次数

Clojure的隐藏功能

您发现自己使用哪些鲜为人知但有用的Clojure功能?随意分享小技巧和习语,但试着限制你自己的核心和贡献.

我在这些类似问题的答案中找到了一些非常有趣的信息:

对于其他语言,还有更多的"隐藏功能"问题,所以我认为为Clojure设置一个也很好.

clojure

27
推荐指数
5
解决办法
2万
查看次数

Java noob的缺陷是什么?

我在SO上经历了一些Java问题.我必须说这里的内容写得非常好,SO上的Java人员可以真正抽出答案.

但我总是找到Java人的Java答案.这本身就很棒,但我是一个Java菜鸟.所以我并不关心"类型参数方差联合联合"的运作方式.它可能很方便,但现在......它不是.

Java for a noob(来自PHP和Python)什么是cheatcodes?

如果你可以链接到一个SO答案(可能在那里但我找不到)或者写出Java与其他语言不同的东西是什么?(在基础水平上)

有些人可能称之为Java Gotchas(虽然我找不到官方的)

java

23
推荐指数
16
解决办法
3515
查看次数

有什么好的模式/技术可以减少Java的冗长

可能有点烦人的事情之一是表达概念所需的代码量.我相信"代码更少更好"的理念,而且我想知道如何编写Java而不会如此令人沮丧地冗长.最近,我阅读了Java问题的隐藏特性,并介绍了使用双括号初始化来模拟List或Map文字.当然,使用这种方法有一些缺点,但它确实允许你用明显更少的字符做某些事情(如果你正确格式化),使代码更清晰,更清晰.我想知道是否没有其他聪明的技巧和鲜为人知的语言功能可以使我的代码更简洁.

我希望通过对该技术的解释,更换的更冗长的方式以及使用该技术的任何潜在缺点来看到答案.

java design-patterns coding-style

21
推荐指数
3
解决办法
5090
查看次数

素数计算的乐趣

我们在工作中有点乐趣.这一切都始于其中一个设置Hackintosh的人,我们想知道它是否比我们拥有的(几乎)相同规格的Windows Box更快.所以我们决定为它写一点测试.只是一个简单的Prime数字计算器.它是用Java编写的,它告诉我们计算前n个Prime数字所需的时间.

下面的优化版本 - 现在需要~6.6秒

public class Primes {

    public static void main(String[] args) {
        int topPrime = 150000;
        int current = 2;
        int count = 0;
        int lastPrime = 2;

        long start = System.currentTimeMillis();

        while (count < topPrime) {

            boolean prime = true;

            int top = (int)Math.sqrt(current) + 1;

            for (int i = 2; i < top; i++) {
                if (current % i == 0) {
                    prime = false;
                    break;
                }
            }

            if (prime) {
                count++;
                lastPrime = current; …
Run Code Online (Sandbox Code Playgroud)

java primes

15
推荐指数
4
解决办法
2万
查看次数

为什么main方法在java中是静态的

我听到有人说"如果main不是静态的,那么JVM可以创建一个包含main的类的对象,并通过对象调用main.
但问题是JVM如何知道在重载构造函数的情况下调用哪个构造函数,或者即使有只有一个参数化的构造函数,然后才能通过."

这是正确的理由吗?
因为如何在不进入主函数的情况下创建类的对象?
请就此发表意见.如果这不是正确的理由,那么正确的原因是什么?

java static program-entry-point

13
推荐指数
2
解决办法
4377
查看次数

Greasemonkey的隐藏功能

人们在他们的Greasemonkey脚本中使用了哪些鲜为人知但有用的功能和技术?

(请注意,每个答案只有一个功能.)

类似主题:

javascript greasemonkey

12
推荐指数
5
解决办法
3659
查看次数