栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

预学Java day05

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

预学Java day05

标识符和关键字

java所有的组成部分都需要名字。类名,变量名一级方法名都被称为标识符。

  • 所有的标识符都应该以字母(A——Z或者a——z),美元符($),下划线(_)开始

  • 首字符之后可以是(A——Z或者a——z),美元符($),下划线(_)或数字的任何字符组合

  • 不能使用关键字作为变量名或方法名

  • 标识符是大小写敏感的

  • 合法标识符举例:age,$salary,_value

  • 非法表示符举例:123abc,-salary,#abc

public static void main(String[] agrs){
    String 王者荣耀 = "最强王者"
    System.out.println(王者荣耀);
}
  • 可以使用中文命名,但是一般不建议这样去使用,很不建议使用拼音,很low~~

关键字

java关键字是电脑语言里事先定义的,有特别意义的标识符,有时又叫保留字,还有特别意义的变量。Java的关键字对Java的编译器有特殊意义,他们用来表示一种数据类型,或者表示程序的结构等,关键字不能做用变量名,方法名,类名包名和参数。Java的关键字是对Java编译器有特殊含义的字符串,事变后一起和程序员的一个约定,程序换利用关键字来告诉编译器起声明变量类型,类,方法特性等信息。

常用的关键字

abstractassertbooleanbreakbyte
casecatchcharclassconst
continuedefaultdodoubleelse
enumextendsfinalfinallyfloat
forgotoifimplementsimport
instanceofintinterfacelongnative
newpackageprivateprotectedpublic
returmstrictfpshortstaticsuper
switchsynchronizedthisthrowthrows
transienttryvoidvolatilewhile
数据类型
  • 强数据类型

    • 要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用

优点:安全性高

缺点:速度慢

  • 弱数据类型

  • Java的数据类型分为两大类

    • 基本类型(primitive type)

    • 引用类型(reference type)

 

八大基本类型

​
public class Demo01 {
​
    public static void main(String[] args) {
        //  八大基本类型
        
        //整数
        int num1 = 10;      //最常用
        byte num2 = 20;
        short num3 = 30;
        long num4 = 30L;    //Long类型要在数字后面加L
        
        //小数:浮点数
        float num5 = 50.1F;     //float类型要在数字后面价格F
        double num6 = 3.141592653589793238462643;
        
        //字符类型
        char name = 'A';
        
        //字符串,String不是关键字,String是类
        String nameA = "中国";
​
        
        //布尔值
        boolean flag = true;
        //boolean flag = false;
    }
​
}
​

扩展数据类型
package demo;
​
public class Demo02 {
​
    public static void main(String[] args) {
        // 整数拓展:        进制      二进制0b   十进制     八进制0        十六进制0x
        int i = 10;
        int i2 = 010;       //八进制0
        int i3 = 0x10;      //十六进制0x        0~9   A~F   16
        System.out.println(i);
        System.out.println(i2);     //8
        System.out.println(i3);     //16
        System.out.println("=====================================");
        
        //=============================================
        //浮点数拓展:银行业务怎么表示?钱
        //BigDecimal        数学工具类
        //=============================================
        //float     有限  离散  舍入误差        大约  接近但是不等于
        //doube
        
        //最好完全使用浮点数经行比较
        //最好完全使用浮点数经行比较
        //最好完全使用浮点数经行比较
        
        float f = 0.1f;     //0.1
        double d = 1.0/10;      //0.1
        System.out.println(f == d);     //false
        System.out.println(f);
        System.out.println(d);
        
        System.out.println("================================");
        float d1 = 232323223f;
        float d2 = d1 + 1;
        System.out.println(d1 == d2);
        
        //=============================================
        //字符拓展
        //=============================================
        System.out.println("================================");
        char c1 = 'a';
        char c2 = '中';
        
        System.out.println(c1);
        System.out.println((int)c1);    //      强制转换
        System.out.println(c2);
        System.out.println((int)c2);    //      强制转换
        
        //所有字符的本质还是数字
        //编码        Unicode     2字节         65536个字符            Excel早期只有2的十六次方的表格,2的16次方就是65536
        //Uncode可以处理各种语言的文字,Uncode是使用表格思想表示用数字对应字符:如97 = a,65 = A
        //格式:U0000      UFFFF
        
        char c3 = 'u0061';
        System.out.println(c3);     //a
        
        //转义字符
        //      t      制表符
        //      n      换行
        //......
        
        System.out.println("================================");
        String sa = new String("hello");
        String sb = new String("hello");
        System.out.println(sa == sb);
        String sc = "hello";
        String sd = "hello";
        System.out.println(sc == sd);
        //对象        从内存分析
        
        //布尔值扩展
        boolean flag = true;
        if(flag) {}     //新手
        if(flag == true) {}     //老手
        //Less is more      代码需要精简易读
        
    }
​
}
​
类型转换

由于java是强类型语言,所以要警醒有些运算的时候,需要用到类型转换。

byte,short,char, > int > long > float > double

低---------------------------------------------------------->高

小数的优先级最高

运算中,不同类型的数据先转化为同一类型,然后再进行运算。

强制转换

数据占用内存的大小,从高(占用内存)到低(占用内存)需要强制转换

package demo;
​
public class Demo03 {
​
    public static void main(String[] args) {
        int i = 128;
        byte b = (byte)i;       //强制转换
        
        //强制转换:     (类型)变量名
        
        System.out.println(i);
        System.out.println(b);      //-128, 内存溢出
        //要避免内存溢出
        
        
​
    }
​
}
自动转换

数据占用内存的大小,从低(占用内存)到高(占用内存)会自动转换

package demo;
​
public class Demo03 {
​
    public static void main(String[] args) {
​
        //自动转换:     从低到高
        int a = 123;
        double c = a;
        System.out.println(a);  //123
        System.out.println(c);  //123.0
        
        char d = 'a';
        int e = d+1;        //自动转换
        System.out.println(e);      //98
        System.out.println((char)e);    //b
        //字符可以转换为数字,数字可以转换为字符
​
    }
​
}
​
注意点:
  1. 不能对布尔值进行转换

  2. 不能把对象类型转换为不相干的类型

  3. 把高容量转换到低容量的时候,强制转换

  4. 转换的时候可能存在内存溢出,或者精度问题!

溢出问题

package demo;
​
public class Demo04 {
​
    public static void main(String[] args) {
        //操作比较大的数的时候,注意溢出问题
        //JDK7的新特性,数字之间可以用下划线分割
        int money = 10_0000_0000;
        int years = 20;
        int total = money*years;
        System.out.println(money);  //1000000000
        System.out.println(total);      //内存溢出
        
        long total2 = money*years;      //数据转换
        System.out.println(total2);     //内存溢出,原意是默认是int,再转换之前就出现了问题
        
        long total3 = money*((long)years);      //先把一个数转换为long类型
        System.out.println(total3); //内存没溢出,属于正常
​
    }
​
}

狂神说java

P22到P25

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/284463.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号