lesson02_变量和数据类型

1、变量
  1.标识符
  在编写Java程序的过程当中,须要咱们本身命名的东西,这些东西就是标识符。
标识符的组成
    1).0到9数字
    2).26个英文大小写字母
    3).特殊符号:下划线(_)、美圆符号($)、人民币符号(¥)
  定义合法的标识符
    1).数字不能做为开头
    2).严格区分大小写
    3).不可使用关键字
    4).定义时,尽可能达到见名知其意
  2.关键字
    关键字是被Java语言赋予特殊含义,具备专门用途的单词,能够这样理解,就如同咱们注册商标是,关键字已经被人注册过了,不能再继续使用。
    关键字官方网站:https://docs.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html
    Java中全部关键字都是小写
  Java中共有50个关键字以及3个(true、false、null)不属于关键字的标识符
  3.Java中的命名规则html

  针对Java当中的不一样内容,在标识符的基础上,为这些内容命名还要符合如下规定,可是这些规定是不受语法约束的java

    1).包名:全部字母都小写,当有多个单词链接时,使用“.”链接,例如:aaa.bbb.ccc编程

    2).类名/接口名:全部单词首字母大写,例如AaaBbbCcc(知足驼峰命名规则,这种称之为大驼峰)数组

    3).变量名/方法名:第一单词首字母小写,其余单词首字母大写,例如aaaBbbCcc(知足驼峰命名规则,这种称之为小驼峰)oracle

    4).常量名:全部字母都大写,有多个单词组成时,使用_链接,例如AAA_BBB_CCC工具

    5).全部的命名在同一个做用范围内不能重名学习

  4.常量网站

  常量,是指在程序运行过程当中值不会发生变化的标识符3d

  定义常量的语法:htm

    final 数据类型 常量名称=值;或者

    final 数据类型 常量名称;

    常量名称=值

  须要注意的是,常量的值只能赋一次值.。

  常量分类

    1).整数常量--全部整数

    2).小数常量--全部的小数

    3).布尔型常量--较为特殊,只有两个值true、false

    4).字符常量--将一个数字字母或者符号用单引号( ' ' )标识

    5).字符串常量--将一个或者多个字符用双引号(“ ”)标识

    6).null常量--只有一个数组就是null

  5.变量

  变量,顾名思义,就是在程序运行过程当中值会发生变化的标识符,它至关于有名字的容器,这个容器用于装载不一样类型的数据。它的做用是用来记录数值的变化,而后展现给用户。

    1).声明变量

      声明变量也叫定义变量,声明变量是为了使用最简洁的代码实现功能
      声明变量的格式

      第一种:先声明后赋值

      格式:数据类型 变量名;

      变量名=值;

      第二种:声明赋值同步进行

      格式:数据类型 变量名=值;

      变量的声明实质是是开辟一块新的内存,而赋值就是对这块新开辟的内存分配空间大小

      例如,声明一个整型变量a,它首先是开辟一块名字为a的空间,当为a赋值时候,例如a=12;则是为这块为a的内存分配大小为12的空间

    2).变量的做用域

    变量只有在它的做用域内才能够被使用,当超出这个做用范围,若是还须要使用这个变量就必须从新声明。
2、数据类型

  Java语言是一门强类型语言,对于每一种数据都定义了明确的具体数据类型,根据内存存储位置的不一样,分为两种数据类型即基本数据类型和引用数据类型
  1.基本数据类型

    在Java中基本数据类型共有8种,在基本数据类型中又能够分为三大类:数值型、字符型、布尔型

    1).数值型

      (1).整数类型--存储整数:字节类型(byte)、短整型(short)、整型(int)、长整型(long)

      

      (2).浮点类型--存储小数:float(单精度浮点型)、double(双精度浮点型)

      

    在数值型中须要注意的几个地方

      (1).整数类型默认的是int类型,定义长整型时,当赋的值超出int的取值范围,必须在数值后面加上L或者l,若是没有超出,则可加可不加

      (2).浮点类型默认的是double类型,在定义单精度浮点数时,必须在数值后面加F或者f

      (3).能够为一个浮点数赋值一个整数的值

    2).字符类型

      (1).字符类型用于存储单一字符,使用char表示

      (2).每一个chai类型的字符变量占2个字节

      (3).在赋值时必定要用英文半角的单引号(‘’)括起来,例如‘a’

      (4).能够赋值为一个0到65535之间的整数,计算机会根据ASCII表转换为对应的字符,例如97对应的字符是‘a’

      

      (5).一些特殊的字符

        --\r:表示回车

        --\n:表示换行

        --\t:表示制表符

        --\b:表示退格

    3).布尔类型

      布尔类型变量用来存储布尔(真假)值,在Java中用boolean表示,该类型的变量只有两个值,即true和false。其只占用一个字节。

    4).各数据类型的详解

    

  2.数值类型的转换

    在Java编程中,经常涉及到数据类型的转换,目前主要讲基本数据类型中数值类型转换,包括自动类型(隐式)转换,另外一种是强制类型(显式)转换。

    在前面讲数据类型的时候,咱们提到了各数据类型的取值范围从小到大依次:

    (byte、short、byte)-->int-->long-->float-->double

    在基本数据类型中,boolean类型占一个字节,因为其自己所表明的特殊含义,它不与其余类型进行转换

    1).自动类型转换

    从取值范围小向取值范围大转换,这种转换方式叫作自动类型转换,也叫隐式转换,它不须要作任何的说明。

    例如:byte b=14;int a=b;运行不会报错

    注意:

      (1).byte类型能够自动转换为short,int,long,float,double,可是不能直接转换为char,这是由于byte的取值范围是(-128,127),char的取值范围是[0,65535],这两个范围比较大小没法做比较。

      (2).short类型能够自动转换为int,long,float,double,可是不能直接转换为char。

    2).强制类型转换

    从取值范围较大想取值范围较小的转换,这种转换方式叫作强制类型转换,也叫显式转换,转换过程当中须要作说明

    例如:int a=13;byte b=a;若是是这样会报错,须要修改成byte b=(byte)a;在a前面说明转换后的数据类型是byte

    注意:在byte或short与char做转换时,都须要作强制声明

    即:short s=12;char c=(char)s;byte b=11;char x=(char)b;

    char c=97;short s=(short)c;char cc=96;byte b=(byte)cc;

    3).表达式类型自动提高

    表达式提高是指由变量和运算符组成的一个算式,变量在进行运算时,会发生自动类型转换,自动提高到它默认的类型

    例如:byte b1=3;byte b2=4;byte b3=b1+b2;运行时会报错,这是由于在这里byte b3=b1+b2在运算时会自动把b1+b2的结果转换为int类型,会变成有int类型转换为byte类型,是属于强制类型转换

    所以修改成byte b3=(byte)b1+b2;

  3.引用数据类型的简单介绍

    引用数据类型主要包括类、接口、数组,这里主要讲String这个类简单的声明和使用

    String是声明字符串的数据类型,它是引用数据类型,当在声明时,与基本数据类型一致,在赋值是须要使用“”把值括起来,或者直接赋值为null

    其余数据类型能够转换我字符串,转换的方式:直接在其余数据类型后面加上“”;

    例如:int a=11;String s=a+“”;它会把int类型a转换为String类型
3、进制数之间的转换
  1.十进制数与二进制数之间的转换

    1).十进制转二进制

    将这个十进制数一直除以2获得余数,直到商为0时,将所获得的余数倒序从左往右排列

    

    将十进制数6转换为二进制数为110

      原码: ·就是二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其他位表示数值的大小。  

      反码:正数的反码与其原码相同;负数的反码是对其原码除符号位外逐位取反。

      补码:正数的补码与其原码相同;负数的补码是在其反码的末位加1。 ·计算机的全部数据运算是经过补码来实现的。

    2).二进制转十进制

    将这个二进制数上的数从右往左乘以2的次方(从0次方开始)

    

    将二进制数0110 0100转换成十进制数获得的结果为100

  2.十进制数与八进制数之间的转换

    1).十进制转八进制

    与十进制转二进制同样,就是将十进制数一直除以8取余数,直到商为0时,将余数倒序从左往右排列,获得转换结果

     

    2).八进制转十进制

    与二进制转十进制同样,就是将八进制数上的每一位,从有往左乘以8的次方(次方从0开始)

    例如:将八进制数0226转换成十进制数

    ==>6*8^0+2*8^1+2*8^2=6+16+128=150
  3.其余进制数之间的转换

    1).十六进制与十进制之间的转换--与二进制与十进制之间的转换同样

    2).二进制与八进制之间的转换

      --1.二进制转八进制:首先将二进制数从右往左每三个看作一个总体(取三合一),不足三个的在前添0;其次是对每三个一组的总体转换成十进制数;将每一组所获得的结果合在一块儿就是二进制转成八进制的结果

      例如:将二进制数10010110转成八进制数

      首先:取三合一:   10   010   110  ;不足三个的左边添0   -->  010   010  110

      其次:对每三个一组转成十进制数:第一组结果是1*2^1=2;第二组结果是:1*2^1=2;第三组结果是:1*2^1+1*2^2=2+4=6

      所以这个二进制转成八进制的结果为226。为了与十进制数区分,在左边添0,结果为0226。

      验证一下:

      从前面知道,八进制数0226转成十进制数结果为150,咱们看一下这个二进制数转换成十进制数的结果:1*2^1+1*2^2+1*2^4+1*2^7=2+4+16+128=150。结果也是150

      --2.八进制转二进制:八进制数经过除2取余法,获得二进制数,对每一个八进制为3个二进制,不足时在最左边补零。

      例如:将八进制数0226转换成二进制数

      首先:对八进制数上的每个数字看作是十进制数,将其转换成二进制数,二进制数不足三个在左边添0,

       

        所以最后的结果:10010110(最左边的0能够省略的)

        更多进制数之间的转换,请参考:https://jingyan.baidu.com/article/495ba84109665338b30ede98.html

4、键盘输入Scanner

  在进行Java编程时,常常会遇到须要键盘输入,这个时候就须要用到Scanner。

  Scanner是专门用于键盘输入的,是已经别人已经写好了,咱们直接使用它就能够。咱们在使用的时候,总结起来四步:

  第一步:导包,导包的目的是为了告诉程序,须要使用到Scanner这个键盘输入工具类,在代码首行输入:import java.util.Scanner;或者import java.util.*;前者表示导入java.util包中的Scanner这个类,后者表示导入这个包中的全部类

  第二步:声明Scanner类型的变量(学习完面向对象以后这里实际上是建立对象),即:Scanner Scanner的变量名=new Scanner(System.in);这里的Scanner变量名是任意命名的,只要 知足Java命名规则

  第三步:提示输入:System.out.println(”请输入“);

  第四步:声明变量接收输入的内容。这里须要注意的是,目前咱们为已经学习了8种基本数据类型,外加一种引用数据类型,并且每一种数据类型接收的方式都不同

    1.当接收的内容为byte类型时:首先声明一个byte类型的变量,而后把键盘输入的内容赋值给到这个变量

      即:byte 变量名=Scanner变量名.nextByte();

    2.当接收的内容为short类型时。首先声明一个short类型的变量,而后把键盘输入的内容赋值给到这个变量

      即:short 变量名=Scanner变量名.nextShort();

    3.int、long、float、double、boolean同样的原理,只是在接收的时候,使用Scanner变量名.nextXX时,这里的XX是指接收数据类型的名字,首字母大写便可

    4.当接收的内容为String时,一样声明一个String类型的变量接收,而后把键盘输入的内容赋值给这个变量

      即:String 变量名=Scanner变量名.next();

    5.当接收的内容是char时,首先也是声明一个char类型的变量,而后吧键盘输入的内容赋值给这个变量

      在此以前咱们先来观察字符串与字符之间的关系,能够这样理解,字符串是由字符组成,字符串能够一个一个的分割成字符,例如字符串”abcd“,它是由‘a’、‘b’、‘c’、‘d’四个字符组成,在这个字符串abcd中,a是第一个字符,下标为0,b是第二个字符,下标为1......

      所以,在接收char类型时,是接收键盘输入的字符串,而后取的是输入字符串的第一个字符,所以它对应的下标应该是0。

      即:char 变量名=Scanner变量名.next().charAt(0);

相关文章
相关标签/搜索