问题列表 - 第48307页

在switch语句中使用"默认"情况是个好习惯吗?


当我使用交换机时(在这种情况下是Java)我通常会在需要时使用默认情况.我的一位老师告诉我,当他以前在Pascal编程时,那个案例并不存在.他说,如果它不存在于Pascal中,它应该不是一件好事.

我的问题是:

  • 使用默认情况是错误的吗?
  • 它在内部如何运作?

提前致谢.

java pascal coding-style switch-statement

10
推荐指数
2
解决办法
5620
查看次数

bootloader - 将处理器切换到保护模式

我很难理解简单的引导装载程序是如何工作的.我正在谈论的引导加载程序是麻省理工学院"操作系统工程"课程中的一个.

首先,让我向您展示BIOS执行的一段汇编代码:

[f000:fec3]    0xffec3: lidtw  %cs:0x7908
[f000:fec9]    0xffec9: lgdtw  %cs:0x7948
[f000:fecf]    0xffecf: mov    %cr0,%eax
[f000:fed2]    0xffed2: or     $0x1,%eax
[f000:fed6]    0xffed6: mov    %eax,%cr0
[f000:fed9]    0xffed9: ljmpl  $0x8,$0xffee1
Run Code Online (Sandbox Code Playgroud)

从它的外观来看,此代码设置中断表和描述符表,然后打开保护模式.

  1. 为什么我们在BIOS中进入保护模式?引导程序不应该以实模式运行(顺便说一下 - 为什么它需要在实模式下运行?)
  2. 我搜索但没有找到ljmpl指令的确切工作方式,并且它与ljmp和常规jmp之间的区别 - 如果有人指向正确的方向,我将不胜感激.
  3. 我们为什么要跳跃?这条指令的目的是什么?

转到启动加载程序代码 -

# Switch from real to protected mode, using a bootstrap GDT
# and segment translation that makes virtual addresses
# identical to their physical addresses, so that the
# effective memory map does not change during the switch.
lgdt    gdtdesc
movl    %cr0, %eax
orl …
Run Code Online (Sandbox Code Playgroud)

x86 assembly operating-system protected-mode bootloader

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

Twitter API:OAuth与xAuth

1)如果您希望自定义对话框输入Twitter用户详细信息而不能使用OAuth来执行此操作,那是真的吗?

2)我查看了MGTwitterEngine,现在我想知道是否真的需要超过20个类来发送状态更新.

3)我以前使用Basic Auth工作得很好.这是非常少的代码.有没有办法修改该代码,以便它再次工作?

非常感谢您的帮助.

iphone twitter objective-c

2
推荐指数
1
解决办法
2354
查看次数

A <T extends B>和A <?有什么区别?延伸B>?

我是一名新的java学习者.最近我正在阅读Generic编程,让我对此感到困惑......

A<T extends B> and A<? extends B>
Run Code Online (Sandbox Code Playgroud)

java generics

17
推荐指数
4
解决办法
7971
查看次数

我已经使用ssh登录后可以执行ssh端口转发吗?

我有一个Ubuntu服务器example.com,我已经ssh'ed它.但只有在我进入它之后,才能意识到我的意思ssh -L 8000:localhost:9000 example.com.有没有办法在已建立并运行的ssh连接中创建该隧道?

ssh tunnel

2
推荐指数
1
解决办法
2840
查看次数

需要查询以检查数据库中是否已存在电子邮件(Java Persistence API)

我试图弄清楚这个方法的问题是什么,它使用JPQL来验证数据库中是否已存在电子邮件,由于某种原因它不起作用.有人可以看看吗?或者给另一个替代查询更简单?

@Override
public boolean emailAlreadyExists(String value) {
    Query checkEmailExists = em.createQuery("SELECT COUNT(b.email) FROM "
            + Buyer.class.getName() + " b WHERE email = :emailparam");
    checkEmailExists.setParameter("emailparam", value);
    long matchCounter = 0;
    matchCounter = (Long) checkEmailExists.getSingleResult();
    if (matchCounter > 0) {
        return true;
    }
    return false;
}
Run Code Online (Sandbox Code Playgroud)

这是控制台输出的一部分:

引发者:异常[EclipseLink-8024](Eclipse Persistence Services - 2.0.1.v20100213-r6600):org.eclipse.persistence.exceptions.JPQLException异常描述:解析查询时出现语法错误[SELECT COUNT(b.email)FROM entities .Buyer b WHERE b.email =:emailparam],第1行,第35列:[.]处的语法错误.内部异常:MismatchedTokenException(83!= 78)

我确定它必须对语法做些什么.但是我犯了错误?

java jpa jpql java-ee java-ee-6

2
推荐指数
1
解决办法
3888
查看次数

在循环条件中使用宏

我在C++编程,我将一个变量定义为宏,我想使用宏从函数返回一个值.

由于某种原因,编译器说我有语法错误.我正在使用Linux.

#include <iostream>
#define FACTOR 10;
int dosomthing(){
    return (FACTOR/2);
}
Run Code Online (Sandbox Code Playgroud)

什么可能出错?

c++ syntax macros function

1
推荐指数
2
解决办法
236
查看次数

CoffeeScript模块的模式

在Github上查看CoffeeScript源代码时,我注意到大多数(如果不是全部)模块定义如下:

(function() {
    ...
}).call(this);
Run Code Online (Sandbox Code Playgroud)

这种模式看起来像是将整个模块包装在匿名函数中并调用自身.

这种方法的优点和缺点是什么?还有其他方法可以实现相同的目标吗?

javascript node.js coffeescript

29
推荐指数
2
解决办法
9662
查看次数

GCC/g ++ cout <<与printf()

  • 为什么printf("hello world")最终在汇编代码中使用更多的CPU指令(不考虑使用的标准库)比cout << "hello world"

对于C++,我们有:

movl    $.LC0, %esi
movl    $_ZSt4cout, %edi
call    _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc
Run Code Online (Sandbox Code Playgroud)

对于C:

movl    $.LC0, %eax
movq    %rax, %rdi
movl    $0, %eax
call    printf
Run Code Online (Sandbox Code Playgroud)
  • 什么是C++代码的第2行和来自C代码的第2,3行?

我正在使用gcc 4.5.2版

c c++ assembly gcc g++

7
推荐指数
1
解决办法
1800
查看次数

为什么我不能在C++中使用模板化的typedef?

考虑以下程序:

#include <iostream>
#include <algorithm>

using namespace std;

template<class T>
struct A {
    typedef pair<T, T> PairType;
};

template<class T>
struct B {
    void f(A<T>::PairType p) {
        cout << "f(" << p.first << ", " << p.second << ")" << endl;
    }
    void g(pair<T, T> p) {
        cout <<"g(" << p.first << ", " << p.second << ")" << endl;
    }
};

int main() {
    B<int> b;
    b.f(make_pair(1, 2));
    b.g(make_pair(1, 2));
}
Run Code Online (Sandbox Code Playgroud)

为什么不编译?它抱怨该B::f()方法的部分.它似乎没有认识到类中的typedef A<T>.如果我改为T具体类型,它可以工作.完整的错误消息如下:

g++ …
Run Code Online (Sandbox Code Playgroud)

c++ templates typedef

0
推荐指数
1
解决办法
216
查看次数