1、Java中基本数据类型包括:整型(byte、short、int、long)、字符型(char)、布尔型(boolean)、浮点型(float、double)三种类型。

2、所占内存分别为:byte:1Byte;short:2Byte;int:4Byte;long:8Byte;char:2Byte;boolean:1Byte;float:4Byte;double:8Byte;

3、表示数的范围byte:[-128~127];short:[-32768~32767];int:[-2147483648~2147483647];long:[-9223372036854774808~9223372036854774807];

  float:[3.402823e+38 ~ 1.401298e-45];double:[1.797693e+308~ 4.9000000e-324];

4、在Java中所有的整型数据默认都为int类型,浮点型默认为double;其它类型byte、short会隐式转换(若不超出表示范围)

自动转换:byte-->short-->int-->long-->float-->double

注意:小可转大,大转小会失去精度

byte b = 10;    //隐式转换
short s = 10;    //隐式转换
int i = 10;
long l = 10L;    //需要L或l注明
float f = 10F;    //需要F或f注明
double d = 10;

5、扩展转换,扩展转换不必要进行显示的类型转换,因为目标类型足够容纳当前类型不会丢失信息。

//扩展转换,接上面的代码
short bUp = b;
int sUp = s;
long iUp = i;
float lUp = l;
double dUp = f;
        
char ch = '1';
int chUp = ch-48;

6、强制类型转换,将容纳更多信息的数据类型转换成一个容量更小的数据类型,可能存在精度损失的风险,编译器要求程序员进行强制类型转换

int age = 10;
short ageDown = (short)age;//强制类型转换不会丢失信息
        
System.out.println(ageDown);
        
int width = 130;
byte widthDown = (byte)width;//强制类型转换会丢失信息
        
System.out.println(widthDown);

输出:
  10
  -126

float average = 10.5f;
int averageDown = (int)average;
        
System.out.println(averageDown);

输出:
  10

7、String转换成int或者double

int/Integer num = Integer.parseInt(String str);

double/Double num = Double.parseDouble(String str);

8、如何将整数 int 转换成字串 String

int a=9;
1) String s = String.valueOf(a);
//当a为null 时,String.valueOf(a)的值是字符串”null”,
2) String s = a.toString();
//当a为null 时,a.toString()将抛出NullPointerException异常

9、保留两位小数的方法

//方法一:
DecimalFormat df = new DecimalFormat("######.00");   
double d1 = 3.23456  
df.format(d1); 
//#.00 表示两位小数 #.0000四位小数 以此类推...

//方法二:
double d = 3.1415926;
String result = String.format("%.2f",d);

10、字符串类型变量

字符串类型是对象类型,不属于基础类型.赋值的时候属于值传递.在Java语言中,字符串String是不可变(final)的

注意要点:

字符串变量赋值

获取字符串长度

字符串相加

字符串比较

11、引用类型变量

引用类型(reference type)指向对象在内存空间的地址。

String a="This is a Text!";
String b=a;

a和b是不同的两个引用,我们使用了两个定义语句来定义它们. 但它们的值是一样的, 都指向同一个对象 "This is a Text!"。

这种情况不是改变了"This is a Text!" 这一对象的值, 而是改变了它的引用b的值,使之指向了另一个String对象a。

引用传递,也称为传地址。方法调用时,实际参数的引用(地址)被传递给方法中相对应的形参和实参内容相同,指向同一块内存地址,方法执行中对引用的操作将会影响到实际对象。

12、变量作用域

Java变量从影响范围划分,分为成员变量和局部变量。

成员变量

java类内部定义的变量叫做成员变量,如果没有设定初始值,系统会自动赋值为默认值。作用范围是整个类,成员变量在所在类被实例化后,存在堆内存中。

局部变量

java方法内定义的变量被称为局部变量,局部变量没有默认值,声明变量时必须设定初始值。作用范围从声明开始,直到包含它的块(对应的大括号})结束。局部变量在所在方法调用时,存在栈内存中。

方法参数是局部变量,范围涵盖整个方法。

public class Demo {
    /**
     - a,b 是成员变量,整个方法都可以调用.
     */
    public static int a;
    public static float b = 3.0f;

    public static void main(String args[]) {
        /**  在方法中调用成员变量, a为默认值, b为设定值*/
        System.out.println(a);
        System.out.println(b);

        testVar();
        /** 这里输出变量m, n,编译代码时,会报错,提示没有定义变量m,n*/
        //System.out.println(m);
        //System.out.println(n);
    }

    public static void testVar() {
        /**m,n 是成员变量,必须初始化赋值.作用域是在这个方法中. */
        int m = 0;
        int n = 1;
        System.out.println(m);
        System.out.println(n);
    }

}

 

最后修改于 2018-11-15 19:21:47
如果觉得我的文章对你有用,请随意赞赏
扫一扫支付
上一篇