博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【116天】尚学堂高琪Java300集视频精华笔记(9-12)
阅读量:6626 次
发布时间:2019-06-25

本文共 4914 字,大约阅读时间需要 16 分钟。

第9集:char、字符串入门、boolean

char、字符串入门

  1. 单引号用来表示字符常量。例如‘A’是一个字符,它与“A”是不同的,“A”表示含有一个字符的字符串。

  2. char 类型用来表示在Unicode编码表中的字符。

  3. Unicode编码被设计用来处理各种语言的所有文字,它占2个字节,可允许有65536个字符;ASCII码占1个字节,可允许有128个字符,是Unicode编码表中前128个字符。

    char eChar = 'a'; char cChar ='中'; 
  4. Unicode具有从0到65535之间的编码,他们通常用从’u0000’到’uFFFF’之间的十六进制值来表示(前缀为u表示Unicode)

    char c = '\u0061';
  5. Java 语言中还允许使用转义字符 ‘’ 来将其后的字符转变为其它的含义。

    char c2 = '\n';  //代表换行符 

boolean

if ( is == true && done == false ) 只有新手才那么写。
对于任何程序员if ( whether && !done )都不难理解吧。所以去掉所有的==fasle 和 ==true

package test009;public class test009 {    public static void main(String[] args){        /*        char c1 = 'a';        char c3 = '是';        char c2 = '\n';        System.out.println(c1);        System.out.println(c2);        System.out.println(c3);        */                char c4 = 'a';        int i = c4 + 2;        char c5 = (char)i;        System.out.println(c5);                        for(int j=0;j<26;j++){            char temp = (char)(c4+j);            System.out.println(temp);        }                String str = "abcdefghijklmnopqrstuvwxyz";        System.out.println(str);                boolean b = false;        if(b){            System.out.print("true");        }else{            System.out.println("false");        }        }}

第10集:基本数据类型自动转换、强制转型、类型提升问题

基本数据类型自动转换

  1. 一般规律:表数范围小的数据类型可自动转换为表数范围大的数据类型。

  2. 记住下图即可

int可以自动转换成float,为啥?主要因为能不能转换看的是表数范围,而不是看占用存储空间多少字节(int存储空间8字节、float存储空间4字节)。

  1. 特例:整型常量可直接赋值给byte、short、char等类型变量,不需要进行强制类型转换,只要不超过其表数范围即可。

    //注意1:int i = 100;char a = 100;//正确,这是将整型常量赋值给achar a = i;//错误,这是将整型变量赋值给achar a = (char)i;//正确,这是将整型变量强制类型转换。//注意2:short b = 12;//OKshort b = 12345678;//NO

强制转型

  1. 强制类型转换,又被称为造型,用于显式的转换一个数值的类型. 在有可能丢失信息的情况下进行的转换是通过造型来完成的,但可能造成精度降低或溢出。

  2. 当将一种类型强制转换成另一种类型,而又超出了目标类型的表示范围,就会被截断成为一个完全不同的值。

  3. 强制类型转换的语法格式:“(type)var”,运算符“()”中的type表示将值var想要转换成的目标数据类型。

    double x = 3.14;int nx = (int)x;//值为3char c = 'a';int d = c+1;System.out.println(d);System.out.println((char)d);

类型提升问题

  1. 所有二元运算符都有类型提升问题(+-*/%)

  2. 提升方向为更大的容器。

    int a=3;long b=4;//则a+b之后将变成long。
  3. int a=20亿;int b=10;这时候long c = long(a*b)没用,a*b结果出来的时候已经是int型了,应该是long c = (long)a*b,这样的写法是先将a变成long,再提升a*b结果的类型为long。

  4. 在结果溢出前提升类型,等计算出来就晚了

    byte a=10byte b=10byte c=10byte d=10short e = 10*10*10*10s与short e = 10s*10*10*10结果不同前者还没提升类型就已经溢出,后者先提升类型再溢出。//下面是本集代码package test010;public class test010 {    public static void main(String[] args){        /*        byte b = 123;        //byte b2 = 300;//超过表数范围        //char c = -3;//超过表数范围        char c2 = 'a';        int i = c2;        long d01 = 123213;        float f = d01;        */                //测试强制转换        int i2 = -100;        char c3 = (char)i2;        System.out.println(c3);//超过表数范围,所以转换为完全不同的值,无意义的值                //类型提升问题        int a = 3;        long b = 4;        double d = 5.3;        int c = (int)(a+b);        float f = (float)(a+d);                int money = 1000000000;        int years = 20;        //long total = money*years;//返回负数        long total = (long)money*years;        System.out.println(total);            }}

第11集:【补充】JDK7特性:二进制整数/下划线分隔符

二进制整数

JDK7提供了二进制整数的类型,只要以0b开头即可。int a = 0b0101;

下划线分隔符

针对特别长的数字,读懂它令人头疼,这时候用下划线分割数字,可增加代码可读性。long a = 2222_2222_2222;

package test011;public class test011 {    public static void main(String[] args){        int a = 0b0000_0000_0000_0000;        int b = 1_2312_3131;        System.out.println(a);        System.out.println(b);    }}

第12集:变量、成员变量、局部变量、常量的命名规范

变量(variable)

  1. 我们通过变量来操纵存储空间中的数据,变量就是指代这个存储空间!空间位置是确定的,但是里面放置什么值不确定! 

  2. Java是一种强类型语言,每个变量都必须声明其类型。

  3. 类型可以是8种基本类型,也可以是引用类型。

  4. 变量名必须是合法的标识符。

  5. 变量声明是一条完整的语句,因此每一个声明必须以分号结束。

  6. Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。

  7. 变量在使用前必须对其声明, 只有在变量声明以后,才能为其分配相应长度的存储单元,声明格式为:

    type  varName  [=value] [{,varName[=value]}] ;//[]代表可选
  8. 变量可划分为局部变量、实例变量(成员变量member variable)、静态变量(类变量static variable)

    1. 局部变量(local  variable):方法或语句块内部定义的变量。生命周期是从声明位置开始到”}”为止。在使用前必须先声明和初始化(赋初值)。

      public void incorrectLocalVariable(){    int i;    i = 10;    int j = i+5;//编译报错,变量i还未被初始化}
    2. 实例变量():方法外部、类的内部定义的变量。从属于对象,生命周期伴随对象始终。如果不自行初始化,他会自动初始化成该类型的默认初始值(数值型变量初始化成0或0.0,字符型变量的初始化值是16位的0,布尔型默认是false)

    3.  静态变量(类变量 static variable):使用static定义。 从属于类,生命周期伴随类始终,从类加载到卸载。如果不自行初始化,他会自动初始化成该类型的默认初始值(数值型变量初始化成0或0.0,字符型变量的初始化值是16位的0,布尔型默认是false)

变量命名规则(规范)

  1. 所有变量、方法、类名:见名知意

  2. 类成员变量:首字母小写和驼峰原则  :  monthSalary

  3. 局部变量:首字母小写和驼峰原则

  4. 常量:大写字母和下划线:MAX_VALUE

  5. 类名:首字母大写和驼峰原则:  Man, GoodMan

  6. 方法名:首字母小写和驼峰原则: run(), runRun()

package test012;public class test012_1 {    public static void main(String[] args){        boolean flag = true;        char c1,c2;        c1 = '\u0041';        c2 = 'B';        int x;        x = 9;        int y = x;        float f = 3.15f;        double d = 3.1415926;    }}package test012;public class test012_2 {    public static void main(String[] args){        final double PI = 3.14;        //PI = 3.15; //error        double r = 4;        double area = PI * r * r;        double circle = 2 * PI * r;        System.out.println("area = " + area);        System.out.println("circle = " + circle);    }}

转载地址:http://rttpo.baihongyu.com/

你可能感兴趣的文章
SQL Lazy Spool Eager Spool
查看>>
type的解释
查看>>
Windows Phone 8 开发环境搭建
查看>>
2017:IDC市场规模将持续增长 增速放缓
查看>>
从自动驾驶到学习机器学习:解读2017科技发展的15大趋势
查看>>
SinoBBD探索"一体化"大数据创新发展
查看>>
互联网金融带来新机遇 数据合规性不容忽视
查看>>
智能家庭本周锋闻:专注跨界100年
查看>>
在Linux中永久并安全删除文件和目录的方法
查看>>
全民直播时代 内容监管还得靠技术
查看>>
10款Web开发最佳的Python框架
查看>>
c++ 类的对象与指针
查看>>
【算法】数据结构
查看>>
Boolean operations between triangle meshes
查看>>
面积并
查看>>
java-JDBC
查看>>
通信术语解释
查看>>
javascript中数据属性与访问器属性
查看>>
对.NET跨平台的随想
查看>>
CSS实现各种方向三角形
查看>>