隔叶黄莺 Yanbin's Blog - 软件编程实践
open-menu closeme
Home
Archives
Links icon
LinkedIn X
留言
关于
github twitter linkedin rss
  • 拾谈"用最有效率的方法算出2乘以8等於几?"

    calendar Jun 18, 2006 · 2 min read · compile  ·
    Share on: twitter facebook linkedin copy
    这是网上流传的"变态级JAVA程序员面试32问"的其中一题(二十八题),然后下面给出来的答案是

    第二十八,编程题: 用最有效率的方法算出2乘以8等於几?
    有C背景的程序员特别喜欢问这种问题。

    2 << 3

    粗看似乎很在理,大致想来2<<3会是移位操作,在Java的字节码中移位指令是ishl(右移),而在CPU上的硬件指令可能就会是shl(算术右移指令)。其实不然,如果熟悉汇编语言,还考虑过编译优化,2<<3根本不会使用移位操作,而是在编译时就优化计算出16来了。

    但如果是写成这样的方式(int i = 2; int j = i<<2;),又是不一样的,大家可以从代码不同写法生成的Java操作指令或汇编指令看出个端倪。 Read More

Yanbin Qiu

长年奋斗在软件编程第一线的从业人员,以写日志的形式帮助自己记忆与深入探索,文章若对大家有所帮助,实属敝人之荣幸。
Read More

Featured Posts

  • Rust 调用 C/Rust 生成的动态库
  • AWS 上 Java Lambda 应用记要
  • Apache 配置 SSL(HTTPS) 并整合 Tomcat
  • My First Post
  • Markdown Syntax Guide

Recent Posts

  • 学习 Rust 的工作空间, 包, Crate 和模块管理
  • 《100 Java Mistakes and How to Avoid Them》笔记 3
  • 《100 Java Mistakes and How to Avoid Them》笔记 2
  • 《100 Java Mistakes and How to Avoid Them》笔记 1
  • AWS Lambda 中使用 Python 并发编程
  • AWS Lambda 重试与死信队列(DLQ)
  • AWS Lambda 按序处理同一个 Kinesis Shard 中的消息
  • AWS Java Lambda 与环境变量

Categories

JAVA/JEE 11 AWS 6 CLOJURE 3 JVM 3 READINGNOTES 3 MID-WARE 2 RUST 2 SYNTAX 2 C++/VB 1 LINUX/UNIX 1 PYTHON 1 TECHNOLOGY 1 THEMES 1 WEB/JS 1

Series

THEMES GUIDE 2

Tags

JAVA 7 LAMBDA 5 ANT 4 CLOJURE 3 GC 3 JVM 3 HTTPS 2 JAVABEAN 2 MARKDOWN 2 RUST 2 TOMCAT 2 ANGULARJS 1 APACHE 1 AWS 1
All Tags
ANGULARJS1 ANT4 APACHE1 AWS1 CLOJURE3 COMPILE1 CSS1 DLQ1 EMOJI1 FEATURED1 GC3 HTML1 HTTPS2 HUGO1 INDEX1 JAVA7 JAVABEAN2 JAVASCRIPT1 JUNIT1 JVM3 KINESIS1 LAMBDA5 MARKDOWN2 NOTES1 PRIVACY1 PROCESS1 REPORT1 RUST2 SCP1 SHARED LIBRARY1 SHORTCODES1 SSH1 TAG_NAME11 TAG_NAME21 TEXT1 THEMES1 TOMCAT2 WEBSPHERE1 云服务1 自动化1
[A~Z][0~9]
Yanbin 隔叶黄莺

Copyright 2010-  YANBIN 隔叶黄莺. All Rights Reserved

to-top