zoukankan      html  css  js  c++  java
  • day02Java语言基础数量部分

    今天学习了:
    1. Java中数量相关的知识,包括,关键字,标识符,常量,变量等等相关知识,
    2. 常量中主要学习了进制,以及有符号数表示
    3.变量主要涉及变量定义以及,变量值的类型转换。

    1.关键字

    关键字 :被Java语言赋予特殊含义的单词

    关键字的特点 :组成关键字的字母全部小写

    关键字的注意事项 :高级的编辑器或者专门的开发工具中,关键字会有高亮效果

    goto和const作为保留字存在,目前并不使用

     

     

    2.标识符

    标识符(我们自己起的一个名字)

    就是给类,接口,方法,变量等起名字时使用的字符序列

    组成规则:

    英文大小写字母

    数字字符

    $和_

    注意事项:

    不能以数字开头

    不能是Java中的关键字(保留字)

    区分大小写  

    常见命名规则:驼峰命名

    包命名:就类似于在操作系统中,以文件夹的形式组织文件,在java语言中,以包来组织java中的类
    关于包来说,为了防止类的命名冲突,一个包下不可以定义同名的类,但是不同包可以定义同名的类

    如果,不同的coder,定义了相同的类名此时,只要保证同名的类在不同的包下就可以
    也就是说,解决类的同名问题依靠的是包名的不同
    为了保证包名的唯一,以域名(唯一的)反转的形式来命名包
    baidu.com
    com.cskaoyan.name
    com.zs.name


    单级     test 一个全部小写的单词
    多级包   com.cskaoyan.name 以域名反转的方式来命名,单词全部小写,单词之间以.分隔

    类和接口命名
    单个: 首字母大写,其余字母全部小写 Student
    多个单词: 每个单词首字母大写,其余字母全部小写 JavaBasic MaxAge

    变量和方法的命名:
    单个: 所有字母小写 value
    多个单词:第一个单词首字母小写,从第二个单词开始,每个单词首字母大写 intValue

    常量的命名:所有字母全部大写
    单个: 单词的所有字母全部大写即可 MAX IP NONE
    多个单词: 每个单词全部大写,单词之间以_来分隔: MAX_AGE MAX_VALUE IP_ADDRESS

    在实际开发当中,命名要遵循的一个核心原则:见名知意

    public class Demo2Identifier {
    
      public static void main(String[] args) {
        //标识符可以包含英文大小写字母,数字字符,$和_
        int intValue123$_;
    
        //注意事项
        //1.标识符不能以数字开头
        //int 1intValue;
    
        //2.不能是Java中的关键字(保留字)
        //int class;
    
        //3. java语言中严格区分大小写
        int Class;
    
      }
    }

    3.注释

    注释:用于解释说明的文字


    java注释的分类:
    1. 单行注释 //
    2. 多行注释 (不能嵌套使用)  /*注释内容*/
    3. 文档注释(仅从注释的角度来说他们没有任何区别,但是文档注释有一个特殊的效果)   /**注释内容*/

    千万不要忽视注释的作用!!
    1.写代码
    2.项目维护,阅读代码

    //我通过class关键字定义了一个类,它的名字叫Demo1Note
    public class Demo1Note {
    
      public static void main(String[] args) {
    
        //千万不要忽视注释的作用,尤其是对于初学者,最好先写注释,在写代码
    
        //第一
        //开始写代码
    
    
        //第二
    
    
        //第三
    
        //if( ) {
        //  //该分支对一个。。。情况
        //
        //} else if() {
        //  //该分支。。。。
        //
        //} else if() {
        //
        //}
    
      }
    
    }

    4.常量、进制、进制转化、有符号表示

    常量:在运行过程中,其值不会发生改变的量

    常量的分类:
    1.字面值常量
    2.自定义常量(面向对象部分讲)

    字面值常量:
    字符串常量 :双引号引起来的内容 "Hello" 代表固定的字符序列 Hello
    整形常量:所有整数 1 , 2
    小数常量:所有小数 0.1 ,3.2
    字符常量:用单引号引起来的内容 'a', '我'
    布尔常量: 只有 true or false
    空常量: null (面向对象)

    /** Java语言中表示不同进制的语法
        二进制:由0,1组成,以0b开头,比如0b1100
        八进制:由0~7组成,以0开头, 比如014
        十进制:由0~9组成,默认10进制,比如12
        十六进制:由0~9,A~F(或a~f)表示0~15,以0x开头
     */
    public class Demo2Int {
    
      public static void main(String[] args) {
    
        //12对应的2进制表示 以0b开头
        System.out.println(0b1100);
    
        //八进制的表示 以0开头
        System.out.println(011);
    
        //10进制的输出
        System.out.println(11);
    
        //16进制 以0x开头
        System.out.println(0x11);
        System.out.println(0x1f);
        System.out.println(0x1F);
        System.out.println(-12);
      }
    
    }

      

    10进制和2进制的相互转化:

     

      之前我们讨论了Java语言中不同进制的表示方法,其实,计算机中的数据也是这样来表示的。 那么,随之而来有一个问题,上面的进制表示,好像默认表示的是正整数,那负数在计算机中如何表示呢?

    原码

      在进制表示法的基础上,在最高位增加一 位,表示正负

    反码

      原码和反码的中间状态的数值编码表示

    补码

      所有整数在计算机中其实都是以补码形式存在

    5.变量

    变量
    在程序运行期间,其值可以改变的量,在某个范围内可以改变的量
    理解(通过名字访问到)变量就是“一片”内存空间

    变量定义的格式
    数据类型 变量名 = 变量值

    6.数据类型

      数据类型

      一种数据类型,其实表示的就是一个数据集和基于该数据集的一组合法操作

      整数默认:int 小数默认:double

     

    对于boolean类型的变量

    数据类型的转化(jvm默认类型转化规则):
    1. boolean类型的值不能直接转化为其它数据类型的值
    2. byte,short,char—>int—>long—>float—>double
    3. byte,short,char相互之间不转换,他们参与运算首先转换为int类型

    强制转化
    目标类型 变量名=(目标类型)(被转换的数据)

     public class Demo1Variable {
    
      public static void main(String[] args) {
        //数据类型  变量名(标识符) =  常量值 1
        byte byteValue = 10;
    
        //改变变量的值
        //byteValue = 120;
    
        int intValue = 20;
    
        //定义一个boolean类型的变量
        boolean b = true; // false
    
        //合法的值的表示范围是 [-128 - 127]
        //byteValue = 200;
    
        // 不同类型变量之间的运算和赋值
        // 对于变量而言编译器,它不可能知道变量当前的值多少,禁止把大类型的值赋值给小类型
        //byteValue = intValue + byteValue;
    
        //这里有一个问题: 不同类型的变量之间可以做运算
        // 对于jvm来说,它要求参与运算的数量之间,他们必须是同一种类型
        //  比如说: int + byte,jvm首先会将byte变量读取出来,变成一个int类型的值,然后是两个int类型的值做运算
        intValue = intValue + byteValue;
    
        //类型之间默认的转化规则  小类型 -》大类型
        long l = 100000;
        l =  intValue + l;
    
        //练习
        l = byteValue + intValue + l;
    
        //
        int a = 10;
        byte bValue = 20;
        //假设你确定,a + bValue的值在byte类型的表示范围之内
        //强制类型转化   目标类型 变量名=(目标类型)(被转换的数据);
        byte c =(byte)(a + bValue);
        System.out.println(c);
    
        c = (byte) 129; //129int类型的整数值 ——> byte c
        // 129  补码  0,10000001
        // c           1,0000001 -> 1,1111110
        //                               + 1
        //                         1,1111111 原码表示 -> 十进制的值 64 + 32 + 16 + 8 + 4 + 2 + 1 -127
        System.out.println(c);
    
      }
    
    }

    public class Exercise {
    
      public static void main(String[] args) {
        //
        byte b1 = 1, b2 = 2, b;
    
        //byte,short,char相互之间不转换,他们参与运算首先转换为int类型
        //b = b1 + b2; //两个byte类型的值参与运算,他们都会首先被转化成int
    
        //这是因为,编译器简单的判断了一下,不会超出byte类型变量的表示范围
        b = 1 + 2;
        //b = 202 + 1;
      }
    
    }

    使用变量的注意事项:

    作用域
    变量有效的时间范围,这个范围通常用{}来界定

    初始化值
    变量在使用之前,由编译器强制必须赋初值
    建议一行定义一个变量
    从代码的可读性角度来考虑

    
    
    public class Scope {
    
      public static void main(String[] args) {
    
        int i = 10;
        {
          //这个{}就代表了一个作用域
    
          System.out.println(i);
        }
    
        //在变量定义的作用域之外,就访问不到该变量了
        System.out.println(i);
    
    
        //对于变量而言,一定要先赋值,再使用。
        //默认0,只针对成员变量和数组中的值。局部变量没有默认初值,得自己赋初值。
        //初始化,就是给变量赋予初值
        int a;
        int b = 10, c, d = 10;
    
        a = 10;
        System.out.println(a);
      }
    
    }
    
    
    
     
    
    
    
     
  • 相关阅读:
    程序员必读书籍及部分图书导读指南
    Git客户端图文详解如何安装配置GitHub操作流程攻略
    c/c++中int main(int argc,char *argv[])的具体含义
    各大编程语言的特点/区别/类型系统
    Linux 下 make 命令 及 make 笔记
    STL之heap与优先级队列Priority Queue详解
    基金风险等级和客户风险承受能力评价标准公示
    markdown编辑器使用指南
    优秀程序员的良好的学习方式,特征,生活和学习的习惯
    db timedb / ClickHouse / clickhouse
  • 原文地址:https://www.cnblogs.com/dust2017/p/12657398.html
Copyright © 2011-2022 走看看