JAVA 代码private static final int DEFAULT_SIZE =2 << 24 ;疑问

问题描述

看到这么行代码private static final int DEFAULT_SIZE =2 << 24 ;不大理解,请解疑这里DEFAULT_SIZE=2 << 24的结果是一个int常量33554432,为什么要用左移运算 而不直接写上常量33554432?

解决方案

0000 0000 0000 0000 0000 | 0000 0000 0000 0010左移24,得0000 0010 0000 0000 0000 | 0000 0000 0000 0000相当于2的一次方左移24,得2的25次方写成这样就是为了直观的表示2的25次方
解决方案二:
sprite311 正解另外补充一点:因为这是个static final常量,后面表达式的内容在编译期就会被计算出来,在运行期不会重复计算,在运行效率上跟直接使用数字常量是一样的。
解决方案三:
这得问那个写这代码的兄弟了,可能他觉得这样比较帅!仅此而已!
解决方案四:
之所以用左移而不是乘其实是因为效率,左移的话会比乘法快些
解决方案五:
就好比以秒定义一天一样,写成int ONE_DAY = 24 * 60 * 60; 和int ONE_DAY = 86400; 哪个更易读更易维护?
解决方案六:
开发的时候很少有java程序员会这样写的。在C或者C++中习惯这样。因为Java程序员对内存管理上根本就不怎么在乎,因为有GC,所以都没人在乎了。Java中习惯推荐(Integer.MAX_VALUE)

时间: 2024-11-03 01:38:28

JAVA 代码private static final int DEFAULT_SIZE =2 &amp;lt;&amp;lt; 24 ;疑问的相关文章

下面java代码:static Value3 v1, v2; 该怎么理解?请各位帮忙分析下。谢谢

问题描述 下面java代码:static Value3 v1, v2; 该怎么理解?请各位帮忙分析下.谢谢 class Value3 { static int c = 0; Value3() { c = 15; } Value3(int i) { c = i; } static void inc() { c++; } } public class Count { public static void prt(String s) { System.out.println(s); } Value3

利用javax.tools动态编译执行java代码

inkfish原创,请勿商业性质转载,转载请注明来源(http://blog.csdn.net/inkfish ). 参考:使用 javax.tools 创建动态应用程序   javax.tools 包是一种添加到 Java SE 6 的标准 API,可以实现 Java 源代码编译,使您能够添加动态功能来扩展静态应用程序.本文将探查javax.tools包中提供的主要类,以Java表达式表示计算一个数值函数y=x*x+x.更多详情请参考<使用 javax.tools 创建动态应用程序>和jav

redis-关于Redis数据库的java代码多线程读写性能问题,希望可以帮忙看看、、、

问题描述 关于Redis数据库的java代码多线程读写性能问题,希望可以帮忙看看... 渣渣一枚..由于项目关系,需要用到内存数据库来存key-value所以就开始研究redis这个数据库.现在已经把redis放在了CentOS的测试服务器上,然后通过网上的资料写了链接代码! 测试用了100个线程,每个线程插入10000条数据,结果竟然花了**200s**, 同事用memcached测试同样的数据只要了**20s** 而在linux中用redis自带的redis-benchmark查询性能 结果

socket-求问用C/C++实现以下JAVA代码的功能麻烦吗,求帮助...

问题描述 求问用C/C++实现以下JAVA代码的功能麻烦吗,求帮助... 是一个Socket的服务端,接收客户端发来的文件后,再返回一个文件. package sock; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.n

使用Java代码在Android中实现图片裁剪功能_Android

前言Android应用中经常会遇到上传相册图片的需求,这里记录一下如何进行相册图片的选取和裁剪. 相册选取图片1. 激活相册或是文件管理器,来获取相片,代码如下: private static final int TAKE_PICTURE_FROM_ALBUM = 1; private void takePictureFromAlbum() { Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.setType("image

java-求教!看不懂的Java代码

问题描述 求教!看不懂的Java代码 package org.sun.web.identicon; import java.awt.Color; import java.awt.Graphics2D; import java.awt.RenderingHints; import java.awt.Shape; import java.awt.geom.AffineTransform; import java.awt.geom.GeneralPath; import java.awt.geom.R

微信APP支付Java代码_java

本文实例为大家分享了java微信APP支付代码,供大家参考,具体内容如下 import java.io.IOException; import java.io.UnsupportedEncodingException; import java.util.Random; import org.apache.http.ParseException; import org.apache.http.client.ClientProtocolException; import org.apache.htt

【转载】对一致性Hash算法,Java代码实现的深入研究

原文地址:http://www.cnblogs.com/xrq730/p/5186728.html   一致性Hash算法 关于一致性Hash算法,在我之前的博文中已经有多次提到了,MemCache超详细解读一文中"一致性Hash算法"部分,对于为什么要使用一致性Hash算法.一致性Hash算法的算法原理做了详细的解读. 算法的具体原理这里再次贴上: 先构造一个长度为232的整数环(这个环被称为一致性Hash环),根据节点名称的Hash值(其分布为[0, 232-1])将服务器节点放置

数据库主键生成器java代码

package com.aspboy.base.database.util; import java.util.HashMap; public class KeyGenerator { private static KeyGenerator keygen=new KeyGenerator(); private static final int POOL_SIZE=20; private HashMap keylist=new HashMap(10); private KeyGenerator()