Java基本语法(1)

Java基本语法(1)

注释

  1. 单行注释 //

  2. 多行注释 /* */

  3. 文档注释 //JavaDoc:文档注释

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Dahi4DQN-1610950158142)(C:\Users\pc\Desktop\捕获.PNG)]

标识符

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-z78sfDg9-1610950158144)(C:\Users\pc\AppData\Roaming\Typora\typora-user-images\image-20210118093629684.png)]

给类名,变量名,方法名起名字不能用关键字

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-atWvhxbl-1610950158146)(C:\Users\pc\AppData\Roaming\Typora\typora-user-images\image-20210118093911832.png)]

数据类型

  • 强类型语言(Java,C++,C)

    一旦定义了一个变量,指定了它的数据类型之后,如果不经过转换的话,它就永远是这个类型

    安全性高。但速度较慢

  • 弱类型语言(JavaScirpt)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-adKPCyFd-1610950158149)(C:\Users\pc\AppData\Roaming\Typora\typora-user-images\image-20210118094836684.png)]

代码

//八大基本数据类型
        //整数
        int a = 4;
        byte b = 127;
        short c = 1;
        long d = 2L;  //long 类型要在数字后面加上L

        //浮点数:小数
        float e = 20.1F;  //float类型要在数字后面加上F,若不加则小数默认为double类型
        double f =20.1;

        //字符    一个字,一个字母,一个数字
        char name = '中';
        char name1 = 'A';
        char name2 = '1';

        //字符串  String不是关键字,是一个类
        String name3 = "小明";

        //布尔值:表示是非对错
        boolean flag = true;
       // boolean flag = false;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4uXbMnHi-1610950158150)(C:\Users\pc\AppData\Roaming\Typora\typora-user-images\image-20210118100916662.png)]

补充

public class Demo2 {
    public static void main(String[] args) {
        //整数拓展:进制(  二进制(数字的前缀为0b)  八进制(数字的前缀为0)  十进制(数字无前缀) 十六进制(数字的前缀为0x))
        int i1 = 10;
        int i2 = 0b10;  //二进制,表示十进制2
        int i3 = 010;   //八进制,表示十进制8
        int i4 = 0x10;  //十六进制,表示十进制16   十六进制0~9 A~F
        System.out.println(i1);
        System.out.println(i2);
        System.out.println(i3);
        System.out.println(i4);

        System.out.println("====================================");

        //浮点数拓展
        //面试题:银行业务怎么表示?钱?
        //银行业务运用float,double是有问题的
        //浮点数里面的骚操作
        float f = 10.1F;
        double d = 10.1/1;
        System.out.println(f);      //控制台输出为10.1
        System.out.println(d);      //控制台输出为10.1
        System.out.println(f==d);   //控制台输出为false  出现这个现象是因为浮点数表示的字长是有限的,离散的,存在舍入误差,结果为大约数

        //最好不要用浮点数进行比较,存在误差,有时会存在错误
        //最好不要用浮点数进行比较,存在误差,有时会存在错误
        //最好不要用浮点数进行比较,存在误差,有时会存在错误
        //用BigDecimal 数学工具类

        System.out.println("====================================");

        //字符拓展
        char c1 = 'a';
        char c2 = '中';
        System.out.println(c1);      //控制台输出a
        System.out.println((int)c1); //强制转换,将char类型转换为int类型,控制台输出97
        System.out.println(c2);      //控制台输出中
        System.out.println((int)c2); //强制转换,控制台输出20013

        //所有的字符本质都是数字,
        //用单引号表示字符常量,char类型涉及到编码问题   Unicode编码    2个字节   0-65536
        //存在编码表 97->a

        System.out.println("===========================================");
        //转义字符
        // \t 表示制表符table键
        // \n 表示换行
        //......
        System.out.println("Hello\tWorld");
        System.out.println("Hello\nWorld");

        System.out.println("===========================================");
        String sa = new String ( "Hello World");
        String sb = new String ( "Hello World");
        System.out.println(sa==sb);

        String sc = "Hello World";
        String sd = "Hello World";
        System.out.println(sc==sd);
        //学到对象的时候再从内存角度分析

        System.out.println("===========================================");
        //布尔值拓展
        boolean flag = true;
        if(flag==true){}
        if(flag){}
        //两者等价
    }
}

类型转换

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-m15IaQoZ-1610950158152)(C:\Users\pc\AppData\Roaming\Typora\typora-user-images\image-20210118131324609.png)]

运算中,不同类型的数据先转化为同一类型的数据再进行运算,从低到高进行转换

代码

public class Demo3 {
    public static void main(String[] args) {
        //强制转换:(类型)变量名     高到低
        int i = 128;
        byte b = (byte)i;  //由于byte只能表示-128~127之间的数据,这里i=128超出byte的表示范围,会有内存溢出现象发生,最终控制台上显示随机数

        System.out.println(i);
        System.out.println(b);

        //自动转换:低到高 自动转
        double d = i;
        System.out.println(d);   //输出为128.0

        /*
        注意点
        1.不能对布尔值进行转换
        2.不能把对象类型转换为不相干的类型
        3.在把大容量转换为低容量时,要用强制转换,反之则不用,从低容量转换为高容量时,会进行自动转换
        4.转换的时候可能存在内存溢出的情况,或者精度误差的问题
         */

        //转换时存在精度问题
        System.out.println("===================================");
        System.out.println((int)23.8);   //输出23
        System.out.println((int)-56.98F);//输出-56  存在精度问题

        System.out.println("===================================");
        char c ='a';
        int i2 = c+1;    //这里c是char型,转到int型是低转高,自动转换
        System.out.println(i2);   //输出为98
        System.out.println((char)i2);  //i2为98,强制转换为char类型为b
    }
}

注意点

public class Demo4 {
    public static void main(String[] args) {
        //操作比较大的数的时候,要注意溢出问题
        //JDK的新特性,数字之间可以用下划线进行分隔,而且输出时下划线不会显示
        int money = 10_0000_0000;
        int years = 20;
        int total = money*years;
        long total2 = money*years;
        System.out.println(total);  //输出为-1474836480,因为计算的时候发生溢出
        System.out.println(total2); //输出为-1474836480,因为money和years都是int类型,money*years算完之后已经默认是int类型了,也就是算出来已经是-1474836480了,即使最后转换成long类型了,结果也是错的。

        long total3 = money*((long)years);  //先把一个数转换为long类型,整个表达式都提升为long类型,就没有问题了
        System.out.println(total3);   //输出为200_0000_0000

        //float和long后面要加上后缀,float后面要加上F或f,long后面要加上L或l,但是在代码里面小写的l和1 很像,容易弄混,所以后缀都用大写
        
 



    }
    }






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值