精华内容
下载资源
问答
  • //1、把int基本类型数据e69da5e6ba9062616964757a686964616f31333366306436转换为包装类Long类型对象,l=new Long((long)i);//2、把int基本类型数据 转换为long基本类型数据,l2=(long)i;扩展资料:long 类型的...

    展开全部

    int i=3;

    Long l;

    long l2;

    //1、把int基本类型数据e69da5e6ba9062616964757a686964616f31333366306436转换为包装类Long类型对象,

    l=new Long((long)i);

    //2、把int基本类型数据 转换为long基本类型数据,

    l2=(long)i;

    a93520e8cd791d50ab20fa9407af6ffd.png

    扩展资料:

    long 类型的常见变量

    可如下例所示声明并初始化 long 类型的变量:

    复制代码

    SampleMethod(5); // Calling the method with the int parameter

    SampleMethod(5L); // Calling the method with the long parameter可在同一个表达式中同时使用 long 类型和其他数值整型,这时表达式的计算结果为 long(在关系表达式或布尔表达式中为 bool)类型。例如,下列表达式计算为 long:

    复制代码

    898L + 88注意

    也可用小写字母“l”作后缀。但是,因为字母“l”容易与数字“1”混淆,会生成编译器警告。为清楚起见,请使用“L”。

    有关兼用浮点型和整型的算术表达式的信息,请参见 float 和 double。

    转换

    存在从 long 到 float、double 或 decimal 的预定义隐式转换。其他情况下必须使用显式转换。例如,不使用显式类型转换时,下列语句将产生编译错误:

    复制代码

    int x = 8L; // Error: no implicit conversion from long to int

    int x = (int)8L; // OK: explicit conversion to int存在从 sbyte、byte、short、ushort、int、uint 或 char 到 long 的预定义隐式转换。

    还请注意,不存在从浮点型到 long 类型的隐式转换。例如,除非使用显式强制转换,否则以下语句将生成一个编译器错误:

    复制代码

    long x = 3.0; // Error: no implicit conversion from double

    long y = (long)3.0; // OK: explicit conversion

    Long数据类型--Visual Basic 2008 参考

    保存 32 位(4字节)有符号整数。

    用于保存超出 Integer 类型范围的整数。默认值 0。在 6.0 以前版本中,是 32 位的。

    其可以转换为 Single、Double、Decimal 而不会溢出。

    在文本(如 2.5,3)后追加类型字符“L”将会将其强制转换为 Long,其标示符类型字符为“&”。

    Long 对应于 .NET 的类型为 System. Int64 结构。

    就HashMap与HashTable主要从三方面来说.

    一.历史原因:Hashtable是基于陈旧的Dictionary类的,HashMap是Java 1.2引进的Map接口的一实现

    二.同步性:Hashtable是线程安全的,也就是说是同步的,而HashMap是线程序不安全的,不是同步的

    三.值:只有HashMap允许在一个集合中有一个null键和在一个集合中有多个null值

    Hashtable是HashMap的同步版本;HashMap允许有null值和一个null键,但是,Hashtable不允许有任何内容为null。Hashtable类的对象必须覆盖Object类的hashCode()和equals()方法关于其他集合类型。

    一.ArrayList 提供快速遍历和快速访问。现在设计了新的 RandomAccess 接口,它指出这种列表支持快速随机访问。Vector也实现了RandomAccess 接口。

    二.遍历HashSet与HashMap时,其顺序是未知的(但添加删除快)。LinkedHashSet和LinkedHashSet是按照元素的插入的顺序遍历的(遍历快)。

    三.TreeSet和TreeMap将保证元素按照元素的自然顺序进行排列。也可以使用一个用户自己实现的比较规则。

    四、HashSet有一个散列表支持它。它为基本操作提供固定时间性能。TreeSet它确保了排序集将按元素升序,根据自然顺序排序。

    展开全文
  • 一、类型转换题 Which ofthe ...)(a) int w=(int)888.8(b) byte x=(byte)1000L(c )long y=(byte)100(d) byte z=(byte)100L参考答案:(a)、(b)、(c)、(d)。分析:在Java中,整型、实型、字符型被视为简单的数据类...

    a55a18ffb95e79d5568f02bfabcc4412.png

    一、类型转换题

    1. Which ofthe following are legal lines ofcode?( 下列哪些代码是合法的?)

    (a) int w=(int)888.8

    (b) byte x=(byte)1000L

    (c )long y=(byte)100

    (d) byte z=(byte)100L

    参考答案:(a)、(b)、(c)、(d)。

    分析:

    在Java中,整型、实型、字符型被视为简单的数据类型,这些数据类型由低

    到高级分別为:(byte,short,char)int long float double

    简单数据类型之间的转换又可以分为:

    低级到高级的自动类型转换;

    高级到低级的强制类型转换;

    包装类过渡类型能够转换。

    1、自动类型转换

    低级变量可以直接转换为高级变量,下面的语句可以在JAVA中直接通过,代码如下:

    byte b;

    int i=b;

    long l=b;

    f loat f=b;

    doubled=b

    如果低级类型为char型,向高级类型(整型) 转换时,会转换为对应ASCII码值,代码如下:

    码如下:

    char c='c';

    int i=c;

    System.out.println("output:"+i);

    输出:

    output:99 ;

    对于byte、short、char 3种类型而言,它们是平级的,因此不能相互自动转换,可以使用下述的强制类型转换,代码如下:

    short i=99;

    char c=(char)i;

    System.out.printIn("output:"+c) ;

    输出:

    output:c

    2.强制类型转换

    将高级变量转换为低级变量时,情况会复杂一些,可以使用强制类型转换.示例代码如下:

    int i=99;

    byte b=(byte)i;

    char c=(char)i;

    float f=(float)i;

    3.包装类过渡类型转换

    Java 的包装类将基本数据类型与对象类型在一定程度上统一起来,井提供以下两个方

    面的功能。

    将基本类型封装后当作对象进行操作。

    口为基本数据类型提供各种转换功能。

    Java 共有6 个包装类,分别是Boolean、Character、Integer、Long、Float 和Double。

    从字面上就可以看出它们分别对应于boolean、char、int、long、float和double 类型。而String和Daue本身就是类。也就不存在包装类的概念。

    在进行简单数据类型之间的转换(自动转换或强制转换)时,可以利用包装类进行过渡。

    一般情况下,首先声明一个变量。然后生成个对应的包装类,就可以利用包餐类的

    各种方法进行类型转换了。例如,当希望把float型转换为double型时、示例代码如下:

    float f1=100.00f;

    FloatF1=new float(f1);

    Double d1=F1.doubleValue();//F1.doubleValue()为Float类的返回double值型的方法

    当希望把double型转换为int型时,代码如下所示:

    doubled1= 100.00;

    DoubleD1=new Double(d1);

    int i1=D1.intvalue();

    当希望把int型转换为double型时,自动转换如下:

    int i1=200;

    double d1=i1

    简单类型的变量转换为相应的包装类,可以利用包装类的构造函数,如Boolean(boolean

    value)、Character(charvalue) 、Integer(int value) 、Long(long value)、Floal (float value)、Double(double value)

    而在各个包装类中,总有形为XXXValue()的方法,来得到其对应的简单类型数据。利

    用这种方法,也可以实现不同数值型变最间的转换。例如对于一个双精度实型类,intValue()

    可以得到其对应的整型变量,而doubleValue()可以得到其对应的双精度实型变量。

    一个浮点类型数据通过强制类型转换可以转换为int类型,这时小数位会被截去,所以

    (a) 是正确的。一个长整型数值可以被转换为byte 类型,如果长整型数大于127 转换为

    byte 类型就会变为-128,所以(b) 和(d) 是正确的。由于长整型数的范围覆盖byte 类型数范围,所以(c) 也是正确的。

    2. switch语句能否作用在byte上,能否作用在long上,能否作用在String上?

    可以作用在byte上,因为byte能自动转为int;不能作用在long上,long转int不能自动转,需要强转;在jdk1.7以后可以作用在String上..

    二、修饰符相关的考题

    编译并运行下面代码,请选择描述正确的项。

    public class XiuShiFu{

    int i =10;

    private static float pi=3.0f;//(1)

    public static void main(string [] args) {

    public inti= 20;//(2)

    final doubled= 4.0d;//(3)

    System.out.println(i+d +pi) ;} }

    (a) 编译正确,输出结果28.0

    (b) 编译错误,(1) 处有错误

    (c) 编译错误,(2) 处有错误

    (d) 编译错误,(3) 处有错误

    (e) 编译正确,输出结果18.0

    参考答案(c)

    分析:

    Java语言定义了public、protected、private、abstract、和final这6个常用修饰符词外,还定义了4个不太常用的修饰符,下面是对这10个java修饰符的介绍。

    1、pubic

    使用对象: 类、接口、成员。

    介绍:无论所属的包定义在哪,该类(接口、成员)都是可访问的。

    2、private

    使用对象: 成员。

    介绍: 成员只可以在定义它的类中被访问。

    3、static

    使用对象: 类、方法、变量、初始化函数。

    介绍:static修辞的内部类是一个项级类,它和类包含的成员是不相关的。静态方法是类方法,被指向到所属的类面不是类的实例。静态变量是类变量,无论该变量所在的类创建了多少实例,该变量只存在一个实例被指向到所属的类而不是类的实例。初始化函数是

    在装载类时执行的,面不是在创建实例时执行的。

    4、final

    使用对象:类、方法、变量。

    介绍:被定又成final的类不允许出现子类,不能被覆盖(不应用于动态查询),变量值不允许被修改。

    5、abstract

    使用对象:类、接口、方法。

    介绍:abstract类中包括没有实现的方法。不能被实例化。abstract 方法的方法体为空

    该方法的实现在子类中被定义,并且包含一个abstract方法的类必须是一个abstact类。

    6、protected

    使用对象: 成员

    介绍:protected 成员只能在定义它的包中被访问,如果在其他包中被访问,则实现这个

    方法的类必须是该成员所属类的子类。

    7、native

    使用对象: 成员。

    介绍: 与操作平台相关,定义时并不定义其方法,方法被个外部的库实现。

    8、synchronized

    使用对象: 方法。

    介绍: 对于一个静态的方法,在执行之前JVM把它所在的类锁定;对于一个非静态类

    的方法,执行前把某个特定对象实例锁定。

    9、volatile

    使用对象:变量。

    介绍:因为异步线程可以访问变量,所以有些优化操作是一定不能作用在变量上的。

    volatile有时可以代替synchronized.

    10、transient

    使用对象: 变量。

    介绍。变量不是对象持久状态的一部分,不应该把变量和对象一起串起

    三、static静态变量相关考题

    运行下面程序,请选择输出结果

    public class x(

    private static int a

    pubilc static void main(String[ ] args) {

    modify(a)

    System. out.println(a);

    }

    public static void modify(int a) {

    a++;

    }

    (a) 0

    (b) 1

    (0) 2

    (d) 3

    参考答案:(a)

    分析:

    类的静态变量a在modify()方法中并没有被改变,而是改变了modify() 方法的参数。(就近原则)如果将上述代码修改如下:

    public class x(

    private static int a;

    pubilc static void main(String[ ] args) {

    modify(a)

    System. out.println(a);

    }

    public static void modify(int b) {

    a++;

    }

    那么输出结果为1,但是面试题中静态变量a的值并没有改变,所以应该输出为0。

    四、考察构造函数

    下面程序代码运行结果是什么?

    class MyTest extends Test {

    public MyTest() {

    system.out.printin("S2");

    public class Test {

    public static void main(String args[]) {

    new myTest( );

    public Test() {

    System.out.println("S1") ;

    }

    }

    选择正确的答案:

    (a) S1。

    (b) S2。

    (c) S1S2.

    (d) S2S1。

    考点:考察求职者对于Java的构造函数运行顺序的掌握和理解

    出现频率:★★★★

    【面试分析】父类的构造函数是先于子类的构造函数运行的。

    参考答案: (c)。

    五、int和Integer的区别

    1、Integer是int的包装类,int则是java的一种基本数据类型

    2、Integer变量必须实例化后才能使用,而int变量不需要

    3、Integer实际是对象的引用,当new一个Integer时,实际上是生成一个指针指向此对象;而int则是直接存储数据值

    4、Integer的默认值是null,int的默认值是0

    延伸:

    关于Integer和int的比较

    1、由于Integer变量实际上是对一个Integer对象的引用,所以两个通过new生成的Integer变量永远是不相等的(因为new生成的是两个对象,其内存地址不同)。

    Integer i = new Integer(100);

    Integer j = new Integer(100);

    System.out.print(i == j); //false

    2、Integer变量和int变量比较时,只要两个变量的值是向等的,则结果为true(因为包装类Integer和基本数据类型int比较时,java会自动拆包装为int,然后进行比较,实际上就变为两个int变量的比较)

    Integer i = new Integer(100);

    int j = 100;

    System.out.print(i == j); //true

    3、非new生成的Integer变量和new Integer()生成的变量比较时,结果为false。(因为非new生成的Integer变量指向的是java常量池中的对象,而new Integer()生成的变量指向堆中新建的对象,两者在内存中的地址不同)

    Integer i = new Integer(100);

    Integer j = 100;

    System.out.print(i == j); //false

    4、对于两个非new生成的Integer对象,进行比较时,如果两个变量的值在区间-128到127之间,则比较结果为true,如果两个变量的值不在此区间,则比较结果为false

    Integer i = 100;

    Integer j = 100;

    System.out.print(i == j); //true

    Integer i = 128;

    Integer j = 128;

    System.out.print(i == j); //false

    对于第4条的原因:

    java在编译Integer i = 100 ;时,会翻译成为Integer i = Integer.valueOf(100);,而java API中对Integer类型的valueOf的定义如下:

    public static Integer valueOf(int i){

    assert IntegerCache.high >= 127;

    if (i >= IntegerCache.low && i <= IntegerCache.high){

    return IntegerCache.cache[i + (-IntegerCache.low)];

    }

    return new Integer(i);

    }

    java对于-128到127之间的数,会进行缓存,Integer i = 127时,会将127进行缓存,下次再写Integer j = 127时,就会直接从缓存中取,就不会new了

    展开全文
  • 1. 导读JAVA中针对八种基本数据类型提供了相对应的包装类, 今天主要基于几个问题来分享下个人对于包装类的理解, 本期先分享下面两个问题:.1 什么是包装类? 有了基本类型, 为什么还需要有包装类;.2 包装类干了什么?2....

    48dbac266fc67b4ccce04a8612a629ea.png

    1. 导读

    JAVA中针对八种基本数据类型提供了相对应的包装类, 今天主要基于几个问题来分享下个人对于包装类的理解, 本期先分享下面两个问题:

    .1 什么是包装类? 有了基本类型, 为什么还需要有包装类;

    .2 包装类干了什么?

    2. 什么包装类

    众所周知, JAVA提供了八种基本类型, 同时也对这八种基本类型做了相应的封装, 形成了八种包装类:

    a1d87bb76d2f7f172c60c76ddd0337c4.png

    table.jpg

    其实void在JAVA也是一种数据类型, 也有对应的包装类Void, 只是我们无法对其进行操作, 也就没有放在上面的表格中了;

    3. 为什么需要包装类

    JAVA是面相对象的编程语言; 那么要理解面相对象, 首先需要知道这个对象是什么? 我的理解是:

    .1 对象具有自己的属性以及行为;

    .2 对象可以通过自己的行为或者动作向外界传递信息;

    那么面相对象就是通过对象之间的信息交互来实现整个程序的功能; 而封装, 继承 和 多态是基于语言层面的约束;

    有了面相对象编程的概念, 我们再来看为什么JAVA需要包装类;

    .1 包装类在基本类型的基础上做了封装, 使其有了自身的行为; 那么有了行为有什么好处呢? 我们举个例子来说明:

    dbc06ae5c8994809958c0aa24c94383d.png

    封装类

    通过int和Integer举例, 展示了基本类型和包装类型的判断和转String的区别:为什么达到同一个目的, 基本类型需要借助其他手段来实现; 而包装类却可以通过自身的动作达到, 这就是基本类型和包装类型的不同, 这也是面相过程与面相对象的区别: 面相过程需要自己实现需求, 面相对象则是调用目标对象对应的方法即可;

    .2 初始化的不同: 未赋值时, 基本数据类型默认是0, 而封装类型默认是null; 当需要区分赋值与未赋值时, 封装类型就显得十分友好了; 比如在构建更新实体时, 有个字段是0, 就需要判断他的原始值是0还是需要更新成0; 而null则没有这种烦恼了;

    .3 前面说过JAVA是面相对象的语言, 其很多设计都是针对对象来的, 比如HashMap的设计, 在插入时, 需要先调用插入key的Object::equals, 但是基本数据类型是没有行为的, 意味着基本数据类型无法作为HashMap的key; 如果没有封装类, 我们就无法实现用数值类型作为key了;

    故而为何需要封装类?

    .1 JAVA是面相对象的语言, 其语言设计初衷就需要"万物皆对象", 故需要对基本数据类型再次封装;

    .2 JAVA内部很多实现需要调用对象相对应的动作, 而基本数据类型不是对象, 为了使用这些实现, 需要封装对象;

    4. 包装类干了什么

    这8个包装类大同小异, 我们以比较特殊的Integer来举例;

    public final class Integer extends Number implements Comparable<Integer> {

    @Native public static final int MIN_VALUE = 0x80000000;

    @Native public static final int MAX_VALUE = 0x7fffffff;

    ...

    private final int value;

    从上面的代码可看出, Integer的一些设计:

    .1 Integer类是final的, 其底层存值的value也是final的; 这个设计和String是一样的, Integer也就是不可变的;

    .2 Integer也设置了int相同的最大最小值, 因为Integer是基于int做的封装, 故而仍然存在溢出问题(当赋的值大于Integer.MAX_VALUE时, 发生溢出);

    再来关注下Integer::equals, Integer重写了Object的equals方法:

    public boolean equals(Object obj) {

    if (obj instanceof Integer) {

    return value == ((Integer)obj).intValue();

    }

    return false;

    }

    .1 如果传入对象是Integer类型的, 比较两者的value是相等;

    .2 如果是非Integer类型的, 直接返回false;

    .3 这里没有先比对两者的堆地址, 因为只有两者是同一个对象时才会直接返回true; 这个概率比较小(一般没人会自己比较自己吧), 所以直接省略了这一步;

    继续关注Integer::hashCode的实现:

    public static int hashCode(int value) {

    return value;

    }

    Integer::hashCode直接返回了当前的值(hashCode返回的是个int类型的值, 直接返回Integer的值好像也没啥不对);

    按这个逻辑, Long::hashCode是不是直接强转成int返回的呢? 因为精度问题, Long::hashCode做了特殊处理:

    public static int hashCode(long value) {

    return (int)(value ^ (value >>> 32));

    }

    Long::hashCode并不是如我们猜想的那样设计的:

    .1 先把value右移32位, 因为long是64位的, 右移32位就把左边边的值都置为0了;

    .2 再与原始值进行异或, 将得出的结果强转成int类型;

    .3 至于为什么这么设计, 主要是以为int是32位的, 如果采用Integer::hashCode的方法, 那么当右边32位都是0时, 不管左边的32位是何值, 在转为int时, 左边32位都被摸除, 得出的结果都是0; 这样的方式显然会有很大的碰撞;

    .4 故而Long::hashCode采用了低位32异或高位32的方式来获取hashCode;Double::hashCode的实现也是采用的这种方式;

    Integer是实现了Compareable接口的, 我们来看下Integer::compareTo:

    public static int compare(int x, int y) {

    return (x < y) ? -1 : ((x == y) ? 0 : 1);

    }

    .1 使用了三目运算符; 第一层先判断是否小于, true则返回-1;

    .2 第二层判断是否相等, true则返回0, 反之则返回1;

    .3 如果两个Integer是相等的, 那么调用Integer::equals 和 Integer::compareTo的结果是一样的;

    本期基于上面两个问题分享了个人对于封装类的理解, 如果上面有不当之处, 欢迎指正; 如果看了觉的有益处, 烦请点赞转发吧, 感谢;

    展开全文
  • [img=https://img-bbs.csdn.net/upload/201706/06/1496714985_171358.png][/img] 为什么int转long类型以后,数值会变大49
  • javaint转long

    万次阅读 2019-05-31 22:00:50
    int id=(int) liangliang1.get("id"); Long dd=Long.valueOf(id);
    int id=(int) liangliang1.get("id"); 
    Long dd=Long.valueOf(id);
    
    展开全文
  • Java8 为 Integer、Long包装类增加了如下方法:static String toUnsignedString(int/long i):将指定intlong型整数转换为无符号整数对应的字符串。static String toUnsignedString(int/long i, int radix):将指定...
  • 下面小编就为大家带来一篇java int转byte和long转byte的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • javaint转long

    2020-01-12 23:51:04
    package pid69;... public static int mySqrt(int x){ int result = 0; if(x==0 || x==1){ return x; }else{ for(int i=0;i<=x/2;i++){ int a = i*i; //防止溢出,务必注意右边需...
  • Javaint long

    2014-08-11 12:22:29
    如将123(int类型)转化为Long. 1.int转化为String. String str = String.valueOf(123); 2.String转化为Long. long L = Long.parseLong(str); 即:long L = Long.parseLong(String.valueOf(123));
  • Java 程序将int类型变量转换为long在此程序中,我们将学习如何将整数(int)变量转换为long类型变量。要理解此示例,您应该了解以下Java编程主题:示例1:使用类型转换将int转换为longJava程序示例...//将int转...
  • 在网络编程中,出于节约带宽或者编码的需要,通常需要以原生方式处理longint,而不是转换为string。public class ByteOrderUtils {public static byte[] int2byte(int res) {byte[] targets = new byte[4];targets...
  • 在网络编程中,出于节约带宽或者编码的需要,通常需要以原生方式处理longint,而不是转换为string。public class ByteOrderUtils {public static byte[] int2byte(int res) {byte[] targets = new byte[4];targets...
  • 常用 Integer类Java Integer转换double,float,intlong,stringjava中Integer类可以很方便的转换成double,float,intlong,string等类型,都有固定的方法进行转换。方法double doubleValue() //以 double 类型...
  • 在网络编程中,出于节约带宽或者编码的需要,通常需要以原生方式处理longint,而不是转换为string。 public class ByteOrderUtils { public static byte[] int2byte(int res) { byte[] targets = new byte[4]...
  • public static int subDateFmtStr(String start, String end) {if (start == null || end == null) {return 0;}Date starttime = parseYMDHHmmssString(start);Date endtime = parseYMDHHmmssString(end);if (startt...
  • long b; b在内存中占八个字节, 把b强制转换成a, 就会少掉四个字节的信息,如果b的值不超过int型能表示的最大值,则不会有信息丢失,但是如果b的值超过了int 型能表示的最大值,高位的那四个字节的数据就会丢失和0...
  • Java中byte、byte数组与intlong的转换详解发布时间:2020-10-07 01:51:30来源:脚本之家阅读:95作者:PointNet一、Java 中 byte 和 int 之间的转换源码://byte 与 int 的相互转换public static byte intToByte...
  • 基本类型:long,int,byte,float,double,char2. 对象类型(类): Long,Integer,Byte,Float,Double,Char,String,其它一切java提供的,或者你自己创建的类。其中Long又叫 long的包装类。而Byte和Float也类似,一般包装类...
  • long型转化为int型,这里的long型是基础类型:long a = 10; int b = (int)a;二.将Long型转换为int 型的,这里的Long型是包装类型:Long a = 10; int b=a.intValue();三.将int型转化为long型,这里的int型是基础...
  • 我就废话不多说了,大家还是直接看代码吧~public static void main(String[] args) {// 1、将long型转化为int型,其中intlong是基础类型long a = 10;int b = (int) a;System.out.println("1、将long型转化为int型:...
  • Java中的所有数字都应该是int类型.以下行在Java> 1.5中是合法的Short s = 1; // Will compile to Short s = Short.valueOf((short)1) - thus you can't exceed short max value i.e.Short s = 4444; // is ...
  • 在网络编程中,出于节约带宽或者编码的需要,通常需要以原生方式处理longint,而不是转换为string。public class ByteOrderUtils {public static byte[] int2byte(int res) {byte[] targets = new byte[4];targets...
  • int转long:向上转换,可直接进行隐形转换 int a = 10; long b = (int)a; int a = 10; Long b = a.longValue(); long转int:向下转换(容量大的数据类型转为容量小),可能会出现数据溢出情况 long a = 10; ...
  • int i=1; Long l = (long)i; 强转不能用 这样写就行了

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,873
精华内容 2,349
关键字:

javaint转long

java 订阅