Java中整数型的java函数参数默认值值和赋值区别

Java中数值的默认类型问题_java吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:519,117贴子:
Java中数值的默认类型问题收藏
byte a=12;12默认是int型
为什么这不报错?float b=12.3212.32默认是double 型 所以报错俺是新手 忘达人指教~自动转型是从低到高的啊byte-&short-&int-&long-&float-&doublechar-&int-&long-&float-&double默认是int 怎么转化为byte的?
上海java培训一般需要4-8周,就可完全掌握,名企就业.0元试学.java培训的费用一般根据培训的课时决定,可申请0元试学.点击咨询..
自己给自己顶一下
——来自 爱贴吧 Windows Phone 客户端
因为在他的范围
-——菇凉,COS系统再现江湖,买把葛霸牌菜刀防身吧!
这个吧已经废了,全是灌水的。。
byte,short,char在范围内是可以看做int的,不用转型
又一个研究茴字有几个写法的…
不知道啊 用到再不百度 我是废物 哎byte a = (int) 12; 编译器提示你 这个 int 是多余的,说是不必要的强制类型转换就是说可以自动类型转换 或者说隐式类型转换byte b = 128;
编译器报错 Require Byte, Found Int
原因是128超过127了
溢出你懂吗
2^(n-1)-1
byte1位 8字节
2^7-1 = 127 ? java没有设计 unsigned类型
可以大一倍 这里可以看出 128是默认判断为int类型的
byte a = (byte)128
System.out.print ((int)(byte)128);
输出 -128 128 超过之前的说的 127了
然后就溢出成 -128了
short b = 128;
没任何提示通过了
表示也可以自动类型转换 short b = (short)128;
没任何提示通过了
这里编译器没有提示 short是多余的 不知道编译器怎么考量的
可以和IDE的实现有关吧。。。 short b =
编译器报错 Require short, Found Int
原因还是溢出对于一个不提供 typeof (变量名)看出类型的语言细究底层实在是 。。@ woachyx
月到梧桐上,风来杨柳边,非大丈夫不能有此襟怀!
点亮12星座印记,
看帖,回帖,顶贴,攒人品
在范围内,_128 到127
Java运行时最小的存储单位是32位,所以short byte这些类型仅存在于编译时,也就是说你编译时是short byte类型的变量在运行时都会变成和int一样的32位型。整型字面量常量是32位的,对于直接使用字面量进行赋值的byte b = 10, short s = 10这些只要没有超出编译时类型所限制的范围都是允许的,其他情况下类型检查也能够保证你做了强制类型转换。另外float型是32位,double型是64位,默认的浮点字面量常量是64位的double型,加了f才成为32位的float型,比较出区别了么?
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或8860人阅读
java SE(40)
先看两个例程:1.VariableInitialization.javapublic class VarialbleInitialization {&&& public static void main(String args[]) {&&& &&& int x,&&& &&& y=x+1;&&& &&& System.out.println(y);&&& }}利用JAVAC编译后提示:Variable x may not be initialized.显示在第四行中用到的x可能未被初始化,不可参与运算。2.ClassAttribute.javapublic class ClassAttribute {&&& public static void main(String args[]) {&&& &&& Circle aCircle=new Circle();&&& &&& System.out.println("半径为:"+aCircle.radius+"/n面积为:"+aCircle.showArea());&&& }}class Circle {&&&&&& double showArea() {&&& &&& return Math.PI*Math.pow(radius, 2);&&& }}运行结果为:半径为:0面积为:0.0非但没有报错,还给出了可用的运行结果。Circle类中的radius并没有赋初值,但却可以正常使用,而例1里main()方法中的x未赋初值却被告有错。其实问题就在这里,在JAVA中:Local variables must be initialized before they can be used.而在类定义中的属性若不赋予初值,则JAVA会自动赋予这个属性一个默认值,以下为类的属性的默认值表:数据类型&&& &&& &&& &&& &&& &&& &&& &&& &&& 默认值boolean&&& &&& &&& &&& &&& &&& &&& &&& &&& falsechar&&& &&& &&& &&& &&& &&& &&& &&& &&& &&&&&& '/u0000'整形(byte,short,int,long)&&& &&& 0浮点型(float, double)&&& &&&&&& +0.0f或+0.0d参考型&&& &&& &&& &&& &&& &&& &&& &&& &&&&&&& null总结为一句话便是类里定义的数据成员称为属性,属性可不赋初值,若不赋初值则JAVA会按上表为其添加默认值;方法里定义的数据成员称为变量,变量在参与运算之前必须赋初值。
1、一个变量作为类成员使用的时候,如果没有被初始化,java会为其分配默认值:Boolean falseChar '/u0000'(null)byte (byte)0short (short)0int 0long 0Lfloat 0.0fdouble 0.0d如果在一个方法中定义一个变量,java不会给其分配默认值,就必须我们来给他初始化,否则将得到编译错误的提示;Trackback:&
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:720127次
积分:7435
积分:7435
排名:第2009名
原创:113篇
转载:193篇
评论:84条
(6)(5)(17)(9)(11)(3)(10)(29)(28)(28)(5)(6)(12)(16)(17)(15)(12)(51)(19)(7)Java中定义变量时赋值为null和赋值为“”有什么区别?_百度知道一、java的基本类型
java基本类型主要有八个四类:
第一类 整型:byte &&short&int&long
第二类 浮点型:folat&double
第三类 字符型:char&
第四类 &逻辑型:boolean
。实际上,JAVA中还存在另外一种基本类型void,它也有对应的包装类
java.lang.Void,不过我们无法直接对它们进行操作。
第一类&整型:
1. & &&byte&1字节8位
byte数据类型是8位、有符号的,以二进制补码表示的整数;
最小值是-128(-2^7);
最大值是127(2^7-1);
默认值:0
注:默认值是指系统所给的初始化的值,必须是全局变量,java中,局部变量和静态变量需要初始化,并不适用此规则。
2.&short&2字节16位
最小值是-32768(-2^15);
最大值是3 - 1);
Short数据类型也可以像byte那样节省空间。一个short变量是int型变量所占空间的二分之一
默认值是 0
&3. & &int & && &4字节32位
最小值是-32768(-2^31);
最大值是3 - 1);
一般地整型变量默认为int类型;
默认值是 0
&4. &&long &8字节64位
最小值是-9,223,372,036,854,775,808(-2^63);
最大值是9,223,372,036,854,775,807(2^63 - 1);
默认值是
第二类 浮点型:
5. &&float &4字节32 位
取值范围:3.4e-038~3.4e+038;
默认值是&0.0f;
6. & &double& 8字节64位&
取值范围:1.7e-308~1.7e+308;
默认值是&0.0d; & & & & &
注意:结尾的&E+数字&表示E之前的数字要乘以10的多少倍。
比如3.4E+038就是3.4×(10)^38 ,3.14E-038就是3.4/(10)^38。
第三类 字符型:
7.&char & 2字节16位
是一个Unicode字符集;
最小值是’\u0000’(即为0);
最大值是’\uffff’(即为65,535);
可以储存一个中文,一个中文两个字节;
默认值是&‘\u0000’(即为0);&&
第四类 逻辑型:
8 & & & bollean 1/8字节
只有两个取值:true和false;
默认值是
二、基本类型对应的包装类
包装类都属于引用类型所以所有的包装类的默认值为null
Byte.MIN_VALUE等都是定义好的常量可以直接调用。
基本类型:byte 二进制位数:8
包装类:java.lang.Byte
最小值:Byte.MIN_VALUE=-128
最大值:Byte.MAX_VALUE=127
基本类型:short 二进制位数:16
包装类:java.lang.Short
最小值:Short.MIN_VALUE=-32768
最大值:Short.MAX_VALUE=32767
基本类型:int 二进制位数:32
包装类:java.lang.Integer
最小值:Integer.MIN_VALUE=-
最大值:Integer.MAX_VALUE=
基本类型:long 二进制位数:64
包装类:java.lang.Long
最小值:Long.MIN_VALUE=-4775808
最大值:Long.MAX_VALUE=4775807
基本类型:float 二进制位数:32
包装类:java.lang.Float
最小值:Float.MIN_VALUE=1.4E-45
最大值:Float.MAX_VALUE=3.
基本类型:double 二进制位数:64
包装类:java.lang.Double
最小值:Double.MIN_VALUE=4.9E-324
最大值:Double.MAX_VALUE=1.
基本类型:char 二进制位数:16
包装类:java.lang.Character
最小值:Character.MIN_VALUE=0
最大值:Character.MAX_VALUE=65535
注意::Character.MIN_VALUE,Character.MAX_VALUE
以数值形式而不是字符形式将Character.MIN_VALUE输出到控制台 &
System.out.println(&包装类:java.lang.Character&);
System.out.println(&最小值:Character.MIN_VALUE=&+ (int) Character.MIN_VALUE);
System.out.println(&最大值:Character.MAX_VALUE=&+ (int) Character.MAX_VALUE);
三、基本类型的直接量!
1)整数型直接量(例如7)会被默认为int类型数据,
将int类型数据赋值给float double long会自动转换&(因为int类型数据长度比他们小)
将int类型数据也可以直接赋值给byte,short类型但是不能超过其类型的范围。
2)浮点型字面量(例如7.0)会被默认为double类型数据,转换比它小的数据类型时候要显式转换,否则要声明字面量类型(例如7.0f)
四、基本类型变量和引用变量的区别:
1.基本变量和用用类别在内存的区别:
基本变量在内存中的变量,对应内存所存储的值为实际值
引用类型来说,对应内存所储存的值为其对象的地址。
2.基本变量不能存储在集合中,集合只能存储引用变量,存储基本类型的话,用基本类的包装类。
3.引用变量的默认值为null;引用变量看其类型。
4.基本类型的值传递是按值传递,引用类型的值的值传递也是值传递!java
只有值传递!!
引用类型的值的值传递是引用被复制并以传值的方式进行传递,对象本身并不会被传递。
这里一句两句说不清给大家另一个链接,关于值传递还是引用传递一定要看啊!
地址:http://blog.csdn.net/jubincn/article/details/7221969
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:67次
排名:千里之外

我要回帖

更多关于 java函数参数默认值 的文章

 

随机推荐