Java基本程序设计——基础语法

1.数据类型

1.1数据类型分为两种:基本数据类型和引用数据类型

1.1—1 基本数据类型有8种:
 四种整型(byte,int , short , long)
 两种浮点型(float,double)
 一种字符型(char)
1.1—2 引用数据类型 :类(class),接口(interface),数组(array),String;

1.2 装包与拆包

JAVA给简单类型都提供了对应的类类型(包装类型)

简单类型 byte char short int long float double boolean
包装类型 Byte Character Short Integer Long Float Double Boolean

以Interger为例说明:

public static void main(String[] args)	{
	Integer i = 100;
        Integer i2 = 100;
        System.out.println(i == i2); //true
        Integer i3 = 200;
        Integer i4 = 200;
        System.out.println(i3 == i4);//flase
        }

Integer与Integer比较的时候,由于直接赋值的时候会进行自动的装箱,需要注意两个问题,一个是-128<= x<=127的整数,将会直接缓存在IntegerCache中,当赋值在这个区间的时候,不会创建新的Integer对象,而是从缓存中获取已经创建好的Integer对象。二是当大于这个范围的时候,直接new Integer来创建Integer对象。
所以第一个会输出true,第二个是错误的

integer中的装包代码

 public static Integer valueOf(int i) {
        if (i >= IntegerCache.low && i <= IntegerCache.high)
            return IntegerCache.cache[i + (-IntegerCache.low)];
        return new Integer(i);
    }

在这里插入图片描述

2.变量与常量

2.1 变量的声明和定义

1.声明变量:
数据类型 变量名;
2.变量赋值:
变量=要赋的值;

变量命名规则:变量名只能是字母(a-z A-Z),数字(0-9),下划线(_)的组合,并且之间不能包含空格,数字不能放在变量名首位;
变量名不能使用编程语言的保留字;

2.2变量分类

变量有:实例变量,静态变量,局部变量;
需要注意的是:局部变量使用 必须初始化 ;
       静态变量不属于对象 ,只属于类本身;
JVM运行时数据区: 实例变量 放在 其中的堆里;
         静态变量放在其中的方法区里;
         局部变量放在虚拟机栈里;

2.3 常量

利用关键字final指示常量时,表示这个常量只能被赋值一次,一旦赋值,无法更改。
常量编译时 统一进行处理;
变量 在运行时,才能知道它的值;

3.运算符

3.1常用运算符优先级

在这里插入图片描述
==注意的是:>>>运算符用填充高位,>>运算符用符号位填充高位,没有<<<运算符。=
对于用strictfp关键词标记的方法必须使用严格的浮点计算。

3.2以自增运算符为例

public static void main(String[] args) {
 int a=10;
 int b=10;
 int c=a++;
 int d=++a;
 System.out.println(c);
 System.out.println(d);
 }

上面中 输出c的值为10;d的值为11;
因为c=a++ ,先把a的值赋给c,在执行a=a+1操作;
而d=++b;是先执行b=b+1操作,再把b的值赋值给c;

 public static void main(String[] args){
        int a=10;
        a=a++;
        System.out.println(a);
    }

这个输出a的值为10;
第一步把常量10放入操作数栈中,
第二步,执行int a=10,把操作数栈顶的元素10放入局部变量表索引的位置中,
第三步,执行a的值赋值给a,把局部变量表索引的值加载到操作数栈中,
第四步,执行a++,把局部变量表索引的元素值加1,变成了11,
然后把操作数中的栈顶元素10,放入局部变量表索引的位置中a,即 把原来的11覆盖成10了;
第五步,加载a的值到操作数栈中,用打印语句打印时,打印出来就为10。

猜你喜欢

转载自blog.csdn.net/qq_39602004/article/details/83017240