JavaSE基础语法

        陆陆续续学了一段时间,现在对所学内容做些总结,方便自己日后可以经常复习。希望各位大佬们可以指出错误或补充些遗漏的内容。(*^_^*)

一、八大基本类型

        整数 int ,byte,short,long 注意long用大写L比较利于区分。二进制0b,八进制0,十六进制0x注意这里是零而不是o哦!类型转换低到高自动转换,byte,short,char->int->long->float->double。转换可能会存在内存溢出和精度问题。

int i = 128;
byte b = (byte)i;//强制转换 内存溢出 -128
System.out.println(i);//128
System.out.println(b);//-128
System.out.println((int)-45.89f);//-45
int money = 10_0000_0000;
int years = 20;
int total = money*years;
long total2 = money*years;
long total3 = (long)money*years;
System.out.println(total);//-1474836480  计算时溢出了
System.out.println(total2);//-1474836480  默认是int转换前已经存在问题;
System.out.println(total3);//20000000000

        浮点数 float,double这里大写F同理。float的存储方式和整数的不同。float是有限的,离散的,含入误差的,是属于接近但不等于,所以最好完全避免用浮点数进行比较。插一句,银行一般采用Java写好的BigDecimal来进行小数的比较。

float x = 0.1F;//0.1
double y = 1.0/10;//0.1
System.out.println(x==y);//false
float z = 6666666666666666F;
float g = z+1;
System.out.println(z==g);//true 栈溢出了

        字符 char用'单引号'单字,String用“双引号”表字符串,注意这里String并不是八大基本类型,关键字,是类。所有字符的本质还是数字。字符串之间是用equal比较的,虽然还不懂什么意思,但就先记着,后面学了应该就懂了。这里new的String的方式是创建了一个内存堆,比较的是指向的内存堆的位置是否相同,在这虽然内容相同但地址不同。

char c1 = 'a';
char c2 = '中';
System.out.println((int)c1);//根据ASCII表强制转换,输出97
char c3 = '\u0061';//Unicode编码
System.out.println(c3);//输出a
String sa = new String("hello world");
String sb = new String("hello world");
System.out.println(sa==sb);//false   
String sc = "hello world";
String sd = "hello world";
System.out.println(sc==sd);//true

        布尔值Boolean赋值true or false。在if语句中尽量规范,避免if(a==true){}这类的写法,if条件默认为true。在类型转换中,不能给Boolean转换。

boolean a = true;
if(a){

 }

二、注释

        注释不参与程序的运行。常见的有/*内容*/,//内容,doc文件

三、变量

        局部变量:必须先声明和初始化。eg:代码里的a;

        实例变量:在方法之外,从属于对象。不用初始化,默认0或0.0,boolean是默认false,其余都是null,调用得先new一个对象。eg:代码里的name,age;

        类变量:在声明前加修饰符static,从属于类,会在该类第一次执行时运行,且只执行一次。eg:代码里的salary;插一句:修饰符不分先后顺序。

public calss Demo01{
    String name;
    int age;
    static double salary = 666666;
    public static void main(String[] args){
            int a = 1;
            Demo01 demo01 = new Demo01();
            System.out.println(a);//1
            System.out.println(demo05.age);//0
            System.out.println(demo05.name);//null
            System.out.println(salary);//666666.0
    }
}

四、常量

        常量用final定义,定义名为大写字母和下划线组成。

        这里顺便提一嘴命名规则:

           类成员变量,方法名:首字母小写和驼峰原则:monthSalary
           常量:大写字母和下划线:MAX_VALUE
           类名:首字母大写和驼峰:Man,GoodMan

未完待续

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值