Java Part 001( 03_01_数据类型和运算符 )

 

注释

Java语言的注释一共有三种类型,分别是单行注释、多行注释和文档注释。

1. 单行注释
  单行注释就是在程序中注释一行代码,在Java语言中,使用双斜线“//”进行单行注释。 2. 多行注释
  多行注释是指一次性注释多行代码,在Java语言中,使用“/*……*/”进行多行注释。 3. 文档注释
  文档注释用来说明程序的信息,在Java语言中,使用/**开头,*/结束。可以包含一个或多个@标签,每一个@标签必须在一个新行的开始紧跟星号*。

 

举个栗子:

/**
*@author HelloWorld102
*这是一个文档注释
*/
public class Test{ 
    /*
    这是一个多行注释
    */
    public static void main(String[] args){
        //这是一个单行注释
        System.out.println("Hello World");
        
    }
}

 

注释的使用

1. 排查错误, 快速排查出存在错误的代码片段

2. 书写逻辑处理细节, 不管是复杂还是简单的逻辑处理, 为了方便后续代码调整是节省时间, 书写代码完成了什么样的逻辑处理

3. 书写技术点描述, 有些语句可能不太常用, 避免每次看到相关代码都去百度

 


 

 

标识符和关键字

 

标识符

标识符

  所谓的标识符, 就是用于给程序中变量、类、方法命名的符号

标识符的规则

  1. 由字母、数字、下划线和美元符号($)组成, 但不能以数字开头   2. 不能是Java的关键字或保留字

Java关键字

Java关键字

  Java语言中有一些具有特殊用途的单词被称为关键字,   当定义标识符时, 不能和关键字相同, 否则将引起错误, 如无法通过编译等

注意:
  
  1. Java的所有关键字都是小写

  2. main是默认入口的方法名,不是关键字,不是保留字

 


 

 

数据类型分类

 

 

 

注意:

  空类型(null type)就是null值的类型, 这种类型没有名称;

  空引用(null)是null类型变量唯一的值, 空引用可以转换成任何引用类型

  空引用只能转换成引用类型, 不能转换成基本类型

 


 

 

Java 常量

Java 中主要有如下几种类型的常量

  • 数值常量 (整数, 小数)

    • 整数的四种表现形式( 二进制, 八进制, 十进制, 十六进制 )

    • 进制: 一种计数方式

  • 字符常量, 字符串常量

  • 布尔型常量

  • null常量

System.out.println(12);
System.out.println(1.23);
System.out.println('a'+0);
System.out.println("abc");
System.out.println(true);
System.out.println(null); //null不可以打印,也不可以参与运算

 

进制相关的知识( 扫盲 )

1byte = 8bit ( 一个字节为8个比特位 )

进制的转换
    * 十进制转换为二进制 -- 除/余数
    * 二进制转换为八进制, 十进制, 十六进制 -- 二进制按照三位分组为八进制

负数的进制表现形式( 扫盲 )

一个整数在计算机中的表现形式
    6 ===> 00000000 00000000 00000000 00000110   一个整数占4个字节, 一个字节8个bit
问题:-6的表现形式是什么呢?
    整数的二进制取反, 再加1
            0000 0110
        取反 1111 1001
        + 1 0000 0001
        --------------
            1111 1010
    小知识: 负数二进制的最高位为1

 


 

 

Java 变量

Java 中主要有如下几种类型的变量

  • 局部变量

  • 类变量(静态变量)

  • 成员变量(非静态变量)

Java变量的概念
    内存中的一个存储区域
    该区域有自己的名称(变量名)和类型(数据类型)
    该区域的数据可以在同一类型范围内不断变化

为什么要定义变量
    存储区域的重复使用; x = 3;   x = 5;
    
什么时候使用变量
    当数据不确定的时候,使用变量进行表示.
    变量就如同数学中的未知数.

变量的定义格式
    数据类型 变量名 = 初始化值;   int a = 0;    
    
注意: 
    变量在使用之前必须要进行初始化

 

变量的数据类型

记忆技巧: 四类八种

基本数据类型
    数值型数据  整型  -------- byte    1个字节
                    -------- short   2个字节
                    -------- int     4个字节
                    -------- long    8个字节   (L/l)
              浮点型 -------- float   4个字节   (F/f)
                    -------- double  8个字节
    字符型数据  -------------- char    2个字节
    布尔型数据  -------------- boolean 4个字节

引用数据类型    类
              接口
              数组

 

变量的"类型提升" 和 "强制转换"

自动类型提升: 低类型 --> 高类型
    当两个不同类型的数据进行运算时, 转换成占用内存比较大的那种类型之后再进行运算
    比如:
        int a = 3;
        byte b = 2;
        int i = a + b; //a占用内存大, 所以b会提升为int类型进行运算
        
强制类型转换: 高类型 --> 低类型    char b = (char)a;
    将一个占用内存大的数据, 赋值给一个占用内存小的数据是, 需要进行强制类型转换
    比如:
        显式强制类型转换
        int a = 3;
        byte b = 2;
        byte i = (byte) (a + b); //a占用内存大, 所以b会提升为int类型进行运算

        隐式强制类型转换
        byte b = 2 + 3;

 

扩展信息 - 码表( ASCII美国码表 gb2312 国标码表 gbk国标扩展码表 Unicode国际标准码表 )

ASCII美国码表   gb2312 国标码表    gbk国标扩展码表   Unicode国际标准码表(万国码)

 

扩展信息 - 类型转换考题

byte b = 3 + 4; 
1.是否可以正常执行          可以
2.执行原理                 右边为int类型的数据, 当进行赋值是会进行判断, 如果符合范围, 隐式强制类型转换

int a = 2;
byte b = a + 4;
1.是否可以正常执行          不可以, 编译就会报错
2.执行原理                   a是变量, 无法进行大小范围的检查, 必须进行强制类型转换

int x;
int a = 1;
int b = Integer.MAX_VALUE;
1.是否可以正常执行           可以
2.执行原理                   都为同种类型, 超出后自动舍弃最高位

 


 

 

运算符

  • 算术运算符

  • 赋值运算符

  • 比较运算符

  • 逻辑运算符

  • 位运算符

  • 三元运算符

算数运算符

+   -   *   /   %  ++  --

/**

重点:
    ++  --
    b=a++(a先参与运算,在自增)   b=++a(a先自增,再参与运算)  如果不参与运算,仅为自增

了解:
    1. 6370 / 1000 * 1000 = ?                          答案: 6000, 两个整数运算得到的是整数
    2. 5 % 2                                           答案: 1
       -5 % 2                                          答案: -1 (模运算中的负数符号, 仅参考被模数)
       2 % -5                                          答案: 1
    3. "5+5"+5+5 和  "5+5"+(5+5)                       答案: 5+5=55   5+5=10

*/  

赋值运算符

假设x=6、y=3:
=:若是x=y,那么x=3.
+=:x+=y相当与x=x+y,结果是x=9.
-=:x-=y相当与x=x-y,结果是x=3.
*=:x*=y相当与x=x*y,结果是x=18.
/=:x/=y相当与x=x/y,结果是x=2.
%=:

重点:
    short s = 3;
    s+=4;          //正常执行, 该表达式底层进行了类型转换处理
    s = s + 4;     //编译失败, 高类型转换为低类型, 需要进行强制类型转换

比较运算符

>    <    >=    <=    ==    !=
比较运算符的结果为true或者false

逻辑运算符

!   &(&&)   |(||)  ^
作用: 连接布尔类型数据的表达式  !true-->false   true&true--->true  

注意: ^ 异或的两边如果相同,结果为false;两边不同结果为true.   true^true-->false   false^false--->false

重点: && 和||, 如果左边可以得到整个表达式的结果, 那么右边的不参与运算, 所以效率更高, 开发中常用.

位运算符

<<(左移)  >>(右移)  >>>(无符号右移)  &(与)  |(或)  ^(异或)  ~(反码)
作用: 用于对二进制进行运算.

 

 

 

 

 

 

 

 

 

未完, 待续......................

 

posted @ 2019-12-03 15:32  HelloWorld102  阅读(291)  评论(0编辑  收藏  举报