拾谈“用最有效率的方法算出2乘以8等於几?”

Java面试高频题:用最优解法算出2乘以8! 直接写出答案:2 * 8 或 2 阅读详情

这是网上流传的“变态级JAVA程序员面试32问”的其中一题(二十八题),然后下面给出来的答案是

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

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

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

Java代码对应的字节码指令说明
int i = 2 << 3;0:   bipush  16编译时就把2左移3位的置算出来了,可以说降低了编译时效率
栈中弹出int型值,存到位置为1的局部变量中
int i = 2 * 8;与上同
int i = 2;
int j = i * 8;
0:   iconst_2
1:   istore_1
2:   iload_1
3:   iconst_3 
4:   ishl  
6:   istore_2
常量2压栈
栈中弹出int型值,存到位置为1的局部变量中
位置为1的int型局部变量压栈
常量3压栈
左移位操作,结果值压栈
栈中弹出int型值,存到位置为2的局部变量中
int i = 2;
int j = i * 8;
0:   iconst_2
1:   istore_1
2:   iload_1
3:   bipush  8
5:   imul  
6:   istore_2
javac 生成的字节码操作指令是 imul,javac未作优化

所以把代码写成 int i = 2 << 3,和写成 int i = 16; 是一样的,前者还有降低了编译时效率

下面再举例说明一下,VC++编译器,其实也会作这样的优化

C++ 代码对应的汇编指令说明
int i = 2 << 3;mov dword ptr [ebp-4],10h也是把2<<3算出来了,为16(10h),放入内存
int i = 2 * 8;与上同
int i = 2; 
int j = i << 3;
mov     dword ptr [ebp-4],2
mov     eax,dword ptr [ebp-4]
shl     eax,3  
mov     dword ptr [ebp-8],eax
把2放入内存中 SS:[ebp-4]
把 SS:[ebp-4] 整数传送到eax寄存器中
 对eax中的数据左移3位
再把移位后的结果存到内存 SS:[ebp-8]中
int i = 2;
int j =  i * 8
与上同VC++自动优化成移位操作,因为8为2的整数次幂
int i = 2;
int j= i * 9;
mov      dword ptr [ebp-4],2
mov      eax,dword ptr [ebp-4]
imul     eax,eax,9  
mov      dword ptr [ebp-8],eax
生成的汇编指令为 imul ,因为9不是2的整数次幂

所以从回答说是 int i = 2 << 3; 并没改变一点执行上的效率,因为它 int i = 16; 是完全一样的。但如果写成

int i = 2; 
int j = i << 3;

比写成

int i = 2;
int j = i * 8:

确实会提高一定的执行效率, 因为 i * 8,要用Java操作指令 imul 进行运算,这也只是说JDK的编译器javac是这么处理的。JDK编译时并没有 i * 8 优化成 i << 3 。

如果把代码换成是C++代码,也是写成

int i = 2;
int j = i * 8:

由VC++编译出来的汇编指令代码也还是用 shl eax, 3,它和写成 int j = i << 3 全一致的。VC++从效率出发已经给你作了这样的代优化,再回味一下这个问题的答案中的一句话“有C背景的程序员特别喜欢问这种问题。”,可以获知那个有C背景的程序员在这里耍了一个“小聪明”,却又没有占到一点小便宜,只因为他低估了编译器的优化功能。

之所以问这样问题的人,他们只是基于这样一个事实,整数乘法或整数除法所需要的时钟周期远远大于移位操作所需的时钟周期,下面列出这个指令的基本执行时间:

移位指令             寄存器移 1 位        时钟周期数为 2  
整数乘法 IMUL        16 位寄存器乘        时钟周期为 128 ~ 154
整数除法 IDIV        16 位寄存器          时钟周期为 165 ~ 184

 而即使 Java编译器在编译 int j = i * 8; 时用的是   imul ,但真正执行这这段代码,由虚拟机JVM转换成本地代码是时候会不会进一步优化成用移位操作的汇编指也未得而知,必要时当然可追踪一下java.exe的执行过程,即使执行时会作此优化,在java中把 int j = i * 8 写成 int j = i <<3 ,可获取一点点的效率,微不足道。

任外,在Visual C++ .net 2003,还增加了对Intel Pentium 4 和 AMD Athlon的代码优化,当用 /G7 编译时,可以产生了更快(但更长)的指令序列,避免了使用 imul 指令,该指令在 Intel Pentium 4 上具有 14 个周期的滞后时间。

如 i * 9,可能被编译成如下代码
mov ecx, dword ptr _i$[esp-4]
mov eax, ecx
shl eax, 3
add eax, ecx

本来应该是 imul 乘法指令,用/G7编译选项巧妙的生成了先左移3位,再加上原来的值。网上介绍的是这么说的,可以我在Visual C++ .net 2003,用/G7选项编译时却没有生成与上类似的汇编代码,仍然是生成的 imul 指令。

关于用Visual C++ 优化代码有一篇文章可以参考 [http://www1.softhouse.com.cn/html/200408/2004083110013100000450.html]

最后再从业务出发,比如说这样一个简单需求,A的工资是B的工资的8倍(B可是个低级奴隶了),这种情况下要你写代码是写成

salaryA = salaryB * 8;

还是写成

salaryA = salaryB << 3;

这种问题不用回答了吧。

如果说用 int j = i <<3 的形式的情况有没有呢,也有,一般是在处理字节的时候,比如所有位整体左移3位,低3位再用字节填充,但也比较少牵涉到 8 倍这个概念。

我昨日就到一个公司面试,看了一些面试题(包括系统分析题),真不太想做,我那时候就跟他们说过:我一直以来就不太喜欢做题,做题的时候可能常常不是关注问题本身,还得留个意去揣摩出题人的用意。

象中国人的英语考试中的选择题那样,如果四个答案是分别是

A: aab    B: aac    C: aad    D: 456

一般老师会告诉你用排除法排除答案D,因为D太不相似了。

堆排序算法详解:原理、实现与优化 堆排序(Heapsort)是一种基于堆数据结构的排序算法,它是选择排序的一种。堆排序利用堆这种数据结构所设计的一种排序算法,它是选择排序的一种。可以利用数组的特点快速定位指定索引的元素。堆排序算法的时间复杂度为O(nlogn),具有稳定性和空间复杂度的优势。 阅读详情

相关推荐

【自然语言处理(NLP)实战】LSTM网络实现中文文本情感分析(手把手与教学超详细)

在当今数字化时代,人们在社交媒体、评论平台以及各类在线交流中产生了海量的文本数据。这些数据蕴含着丰富的情感信息,从而成为了深入理解用户态度、市场趋势,甚至社会情绪的宝贵资源。自然语言处理(NLP)的发展为我们提供了强大的工具,使得对文本情感进行分析成为可能。在这个领域中,长短时记忆网络(LSTM)凭借其能够捕捉文本序列中长距离依赖关系的能力,成为了情感分析任务中的一项重要技术。通过详细的步骤和示例代码,深入了解如何处理中文文本数据、构建LSTM模型、进行训练和评估。

halo的博客 2万+

用最有效率的方法算出2乘以8等於几?

最快的方法就是位运算了,将2进行左移运算,2<<3,便可得到8。 因为将一个数左移n位,相当于乘以2的n次方。位运算是cpu直接支持的,所以速度是贼快的。 ...

ZLWei666的博客 1473

(Touch™)搭建 Windows 开发环境

> OpenHaptics 开发包参考文档。

置心一处,便无事不办 1503

Java中用最有效率的方法算出2 乘以8

Java中用最有效率的方法算出2 乘以8 等於几? 2 因为将一个数左移n 位,就相当于乘以了2 的n 次方,那么,一个数乘以8 只要将其左移3 位 即可,而位运算cpu 直接支持的,效率最高,所以,2 乘以8 等於几的最效率的方法是2   //计算2*8=2*23

云计算专栏 3万+

CSM中一些常见问题的解决方式

CSM中一些常见问题的解决方式 抖动 摄像机在每帧移动或者旋转时,会产生较严重的抖动问题。

小龙虾的博客 2131

用Python+OpenCV给斗地主做个‘外挂’:手把手教你写个桌面记牌器(附源码)

本文详细介绍了如何使用Python和OpenCV开发一个智能斗地主记牌器,包括环境搭建、图像采集与预处理、扑克牌识别技术及PyQt5界面设计。通过实战案例,帮助开发者掌握图像处理与界面开发的结合应用,提升游戏辅助工具的编写能力。

weixin_29079643的博客 547

java面试篇8、用最有效率的方法算出 2 乘以 8 等于几?

直接使用乘法运算符是计算2 乘以 8的最有效率的方法。这种方法简单、直观且高效。

weixin_45422672的博客 400

腾讯游戏安全组件运行异常的全面解决方案

在使用腾讯游戏时,玩家可能会遭遇游戏安全组件运行异常的问题,这不仅影响游戏的正常启动,还可能在游戏过程中引发一系列问题。本文将详细介绍解决腾讯游戏安全组件运行异常的几种方法,帮助玩家重拾游戏乐趣。腾讯游戏安全组件运行异常是一个复杂的问题,可能涉及服务设置、游戏更新、系统环境优化以及硬件与驱动检查等多个方面。最后,希望本文能帮助玩家顺利解决腾讯游戏安全组件运行异常的问题,让玩家能够无忧无虑地享受游戏带来的乐趣。首先,我们需要从系统的服务管理入手,检查与游戏安全组件相关的服务是否正常运行。

nntxthml的博客 5815

java面试题之用最有效率的方法算出2乘以8等於几

这是网上流传的"变态级JAVA程序员面试32问"的其中一题(二十八题),然后下面给出来的答案是第二十八,编程题: 用最有效率的方法算出2乘以8等於几?  有C背景的程序员特别喜欢问这种问题。    2 粗看似乎很在理,大致想来2但如果是写成这样的方式(int i = 2; int j = iJava代码 对应的字节码指令 说明 int i = 2

kangojian的专栏 2万+

多层下拉框_HLM多层线性模型|HLM2教程

01多层线性模型简介多层线性模型(Multilevel linear model),又称为多层分析、分层线性模型。其本质是线性模型的线性模型、回归的回归。本文主要介绍如何使用HLM6.08软件来构建两层线性模型。02案例简介水平1文件:样例数据HSB1.sav包括7185个案例和4个变量:MINORITY:种族(1=minority, 0=other)FEMALE:性别(1=femal...

weixin_35714534的博客 5620

021、反激变换器的软启动设计

本文分享了反激变换器软启动设计的实践经验。作者通过一次上电炸机事故引出软启动的重要性,分析了启动瞬间电流冲击和环路饱和问题。介绍了三种软启动方案:效果差的RC电路、推荐使用的数字芯片方案以及分立元件实现方法,重点指出数字方案的一致性优势。文章还探讨了软启动与过流保护的配合问题,提供了实测波形、温度影响等调试要点,并总结出软启动时间选择、批量生产一致性等实用建议。最后强调软启动是电源可靠性的关键设计,不应为节省成本而忽略。全文包含多个工程实践细节,对电源设计人员具有重要参考价值。(149字)

Jack010169的博客 178

“用最有效率的方法算出2乘以8等於几?”

第二十八,编程题: 用最有效率的方法算出2乘以8等於几?   有C背景的程序员特别喜欢问这种问题。      2 粗看似乎很在理,大致想来2 但如果是写成这样的方式(int i = 2; int j = i Java代码 对应的字节码指令 说明 int i = 2 0:   bipush  16 编译时就把2左移3位的置算出

luigie的专栏 798

准备生日礼物

摘要: 题目要求统计某月份需要准备的员工生日礼物数量。输入包括目标月份、员工姓名列表和对应的生日列表(格式为Year/Month/Day)。需处理重复员工(以最后一次录入为准),统计该月生日的员工人数。示例1中5月有3名员工生日,输出3;示例2中10月有6名,输出6。解题关键在于使用哈希表去重(以员工姓名为键),拆分生日字符串提取月份进行匹配。代码实现(C++/Java/Python)均遵循以下步骤:读取输入、哈希去重、解析月份并统计目标月份人数。时间复杂度为O(n),空间复杂度O(n)。

面试高手的博客 300

用最有效率的方法算出 2 乘以 8 等於几? 和 二进制转十进制,十进制转二进制...

用最有效率的方法算出 2 乘以 8 等於几? 由于位运算 cpu 直接支持的,效率最高,所以,2 乘以 8 等於几的最效率的方法是 2<<3 ,即是2乘以2的3次方。由于这里涉及到左移位运算,简单科普下左移位运算,(左移位运算的公式:a<<n 等于a乘以...

chifanbin4728的博客 912

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

用最有效率的方法算出2乘以8等于几?(C#移位运算)

出处:http://www.cnblogs.com/flydoos/archive/2011/09/06/2169280.html C#移位运算(左移和右移)   这是网上流传的“变态级JAVA程序员面试32问”的其中一题(二十八题),然后下面给出来的答案是   第二十八,编程题: 用最有效率的方法算出2乘以8等於几?   有C背景的程序员特别喜欢问这种问题。     

TIANDIZHUSHEN的专栏 3524

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

用最有效率的方法算出 2 乘以 8 等於几?

使用位运算来进行乘法运算是非常高效的方法之一。特别是在处理二进制数时,位运算可以显著提高运算速度。在这个例子中,通过左移操作可以快速计算出结果。

m0_70154470的博客 658

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

最有效率的方法算出2乘以8

使用位运算来实现效率最高。位运算符是对操作数以二进制比特位为单位进行操作和运算,操作数和结果都是整型数。对于位运算符“<<”, 是将一个数左移n位,就相当于乘以了2的n次方,那么,一个数乘以8只要将其左移3位即可,位运算cpu直接支持的,效率最高。所以,2乘以8等于几的最效率的方法是2 << 3。9.用最有效率的方法算出2乘以8等于多少。

weixin_46894136的博客 446

java 最有效率计算乘法_用最有效率的方法算出 2 乘以 8 等於几? 和 二进制转十进制,十进制转二进制...

用最有效率的方法算出 2 乘以 8 等於几?由于位运算 cpu 直接支持的,效率最高,所以,2 乘以 8 等於几的最效率的方法是 2<<3 ,即是2乘以2的3次方。由于这里涉及到左移位运算,简单科普下左移位运算,(左移位运算的公式:a<1)例: a<<4 指把a的各二进位向左移动4位。如a=00000011(十进制3),左移4位后为00110000(十进制48)。2)...

weixin_39712821的博客 813

编程题: 用最有效率的方法算出2乘以8等於几?

2 &lt;&lt; 3

博乐汇 129

java小算法—用最有效的方式算出2*8的结果

问题: 在Android9.0系统上使用Glide 图片不显示。 原因: 从Android 6.0开始引入了对Https的支持,但是Android P的系统上面所有Http的请求都被默认阻止了。 解决方法: 1.修改配置文件 问题解决。。。 还看到一种解决方法 android:usesCleartextTraffic="...

听海的博客 763

开发三年就是高级开发?Java开发如何备战金九银十,挑战年薪50W

我分享的这份春招,金三银四Java后端开发面试总结包含了JavaOOP、Java集合容器、Java异常、并发编程、Java反射、Java序列化、JVM、Redis、Spring MVC、MyBatis、MySQL数据库、消息中间件MQ、Dubbo、Linux、ZooKeeper、 分布式&数据结构与算法等25个专题技术点,都是小编在各个大厂总结出来的面试真题,已经有很多粉丝靠这份PDF拿下众多大厂的offer,今天在这里总结分享给到大家!

mh17680313750的博客 1505

java面试1除以4等于几_Java笔试题

所有内容都是在网上查找的1.下面哪些是Thread类的方法?A.Start()  B.run()方法  C.exit()方法  D. getPriority()方法解析:exit()方法 是 System类的方法2.GC线程是否为守护线程?答:是解析:线程分为(1)守护线程(2)非守护线程只要当前jvm尚存任何一个非守护线程,守护线程就全部工作。3.Volatile关键字是否能保证线程安全?答:不...

weixin_42553588的博客 488

移位运算(左移和右移)

如有转载,请注明出处: http://www.cnblogs.com/flydoos/archive/2011/09/06/2169280.html   移位运算(左移和右移)   这是网上流传的“变态级JAVA程序员面试32问”的其中一题(二十八题),然后下面给出来的答案是   第二十八,编程题: 用最有效率的方法算出2乘以

vic's blog 1万+
上一篇: 面试题:问题:Java中,char型变量中能不能存储一个中文汉字,为什么?
下一篇: BigInteger的源代码
ole_triangle_java
博客等级 码龄10年 82粉丝 83原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值