基础第二天

1. 标识符遵守的规则

1.  标识符由26个英文字符大小写(a~zA~Z)、数字(0~9)、下划线(_)和美元符号($)组成。
2.  不能以数字开头,不能是关键字
3.  严格区分大小写
4.  标识符的可以为任意长度

**

2. 标识符命名规范

**

1.  包名
   多个单词组成时所有字母小写(例:package  com.cn) 
2.  类名和接口
   多个单词组成时所有单词的首字母大写(例:HelloWorld)
3.  变量名和函数名
   多个单词组成时第一个单词首字母小写,其他单词首字母大写(例:lastAccessTime、getTime)。
4.  常量名
   多个单词组成时,字母全部大写,多个单词之间使用_分隔(例:INTEGER_CACHE)


注意:只是为了增加规范性、可读性而做的一种约定,标识符在定义的时候最好见名知意,提高代码阅读性。

3. 转义字符

\r 表示接受键盘输入,相当于按下回车。
\n 表示换行。
\t  制表符,相当于Table键
\b 退格键,相当于Back Space
\’  单引号
\’’ 双引号
\\ 表示一个斜跨

4. 变量

  • 概述

     变量是用来存储可变数据的容器
    
  • 特点

引入的实例:
正常情况下牛奶盒装的都是牛奶,而且会根据牛奶的多少去决定要多大的容量的牛奶盒,A和B两位同学同时把牛奶盒放进篮子里面,但是需要区分两个牛奶盒是谁的,都需要在牛奶盒上做一个标志。
此处牛奶盒就是一个变量。所以可以得到一下的特点:

    1.变量有大小
    2.存储的数据是一定格式的数据
    3.变量需要有名字
  • 数据类型(给变量指定数据类型,即给变量指定了大小)

    1. 整型
      byte 代表一个字节的大小 8bit 2(8) -128~127 256
      short 代表两个字节的大小 16bit 2(16) -2(15)~2(15)-1
      int 代表四个字节的大小 32bit 2(32) -2(31)~2(31)-1
      long 代表八个字节的大小 64bit 2(64) -2(63)~2(63)-1
      如果一个数值没有采取特殊的处理,那么该整数默认的类型是int。
      可以使用数值后面添加L或小写L改变默认的整数类型。
    2. 浮点型
      float 代表四个字节的大小 32bit
      double 代表八个字节的大小 64bit
      java程序中所有的小数默认的类型是double类型,所以需要使用特殊的符号改变默认的小数类型。
    3. 字符型
      char 代表两个字节的大小 16bit 2(16)
      原理:将字符映射为码表中对应的十进制数据加以存储。
    4. 布尔型
      boolean 占一个字节。只有true与false两个值。
  • 声明变量

    格式: 数据类型 变量名字1 , 变量名字2 ,……变量名字n ,;
    案例:
        int i 声明了一个整形的变量。
        double d 声明了一个double数据类型的变量
        float  f 声明了一个float数据类型的变量。
    
  • 初始化变量(即给变量赋值)

    初始化方式1: 数据类型  变量名字  = 数值。
    初始化方式2: 数据类型  变量名字 , 变量名字 = 数值。
    案例:
      方式1: double d = 3.14;
      方式2: double d ;  d = 3.14 ;
    

5. 数据类型的转换

  • 自动类型转换(也叫隐式类型转换)

    需要满足以下条件才能进行自动转换
        1.第一两种类型彼此兼容
        2.目标类型取值范围必须大于源类型
    
    Java内部其实做的工作就是自动将数值进行了类型提升
           例如:可以将一个数赋值给更大数值范围的变量,可以将int变量赋值给long变量。
    
  • 强制类型转换(也叫显式类型转换)

    当两种类型彼此不兼容,或者目标类型取值范围小于源类型(目标是byte源是int)
    无法自动转换,此时就需要进行强制类型转换。
    
    案例:
    byte b = 100;
    b = b + 2;
    System.out.println(b)
    
    解析:b+2 遇到了加法运算,2默认是int类型,byte类型b变量存储的值自动类型提升为
    了int类型。执行完加法运算后的结果就是int类型,想要将int的类型值放入到byte类型变量b中,无法放入,编译报错。
    
    更正:
    byte b=100;
    b=(byte)(b+2);
    
    注意:
    强制类型转换会损失精度!!!(把大碗的酒倒入小碗里面总会出现点小问题)
    
    所以问:什么时候进行强制类型转换呢?
    答:比如小数部分只想保留整数部分.一定要清楚要转换的数据在转换后数据的范围内否则会损失精度.
    
public static void main(String[] args) {
        byte b = 100;
        b = (byte) (b + 2); 
        System.out.println(b); // 102
        //舍弃小数部分
        double d=5.5;
        int num=(int)d; 
}


思考1
byte  b=126;
问:
    既然数据默认的有数据类型,那么126 默认是int类型的,为什么存储到byte类型时不会报错呢。 
答:
    126 是常量java在编译时期会检查该常量(每个常量)是否超出byte类型的范围。如果没有可以赋值。


思考2:
问:
    byte b=128;能否正常的编译和运行。类型转换后运行的结果又是什么?为什么是这个结果?
答:
    该语句会出现编译错误,128超出了byte变量的存储范围,所以出现编译错误。运行结果是-128
    因为int4个字节,byte是一个字节。


思考3
byte b1=3,b2=4,b;
b=b1+b2;
b=3+4;
问:
    哪一句编译失败?为什么?
答:
    b =3+4 可以, 34都是常量,所以java在编译时期会检查该常量(每个常量)是否超出byte类型的范围。如果没有可以赋值。例如b=128+1 就无法编译通过。b=127+1;也是无法通过。
    b =b1+b2 不可以,因为b1 和b2 是变量,表达式求值时,变量值会自动提升为int型,表达式结果也就成了int型,这是要赋值给byte型的b,必须进行强制类型转换了。


思考:1.System.out.println(‘a’+1)的结果?
     2.
     int i='a'+'b';
     System.out.println(i);//结果?        
     System.out.println("hello"+'j'); //结果?
总结:
所有数值运算符都可以用在char型数据上,如果另一个操作数是一个数字或者字符,那么char会自动提升为int型,如果另一个操作数是字符串,那么字符就会和字符串相连。

6. 负数的存储过程

  • 1.先取负数的绝对值,求出绝对值的二进制的二进制(原码)

  • 2.原码取反得到反码

  • 3.反码+1得到补码

以-7为例
这里写图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值