zoukankan      html  css  js  c++  java
  • 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
    
    重点: && 和||, 如果左边可以得到整个表达式的结果, 那么右边的不参与运算, 所以效率更高, 开发中常用.

    位运算符

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

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

  • 相关阅读:
    【vue开发问题-解决方法】(十一)数据双向绑定导致修改数据格式原数据绑定出错
    【JavaScript】使用url下载文件,解决chrome浏览器自动识别图片打开问题。
    我的转行之路(电气转IT)------2018阿里校招面经
    关于Class.getResource和ClassLoader.getResource的路径问题
    protected修饰符详解
    为什么i=i++后,i的值不变(深入解析)
    Java中的初始化详细解析
    再谈抽象类(感觉理解的更深了)
    数据类型总结(干货)
    Java的接口和抽象类深入理解
  • 原文地址:https://www.cnblogs.com/jkfeng/p/11976908.html
Copyright © 2011-2022 走看看