zoukankan      html  css  js  c++  java
  • 《Java基础学习笔记》JAVA基础


    Java语言基础组成
    --------------------------------------
    关键字 标识符 注释 常量和变量 运算符 语句 函数 数组
    --------------------------------------
    标识符
    --------------------------------------
    在程序中自定义的一些名称
    由26个英文字母大小写,数字:0-9,符号:_$组成 定义合法标识符规则:
    1.数字不可以开头。
    2.不可以使用关键字。
    Java中严格区别大小写。
    注意:在起名字的时候,为了提高阅读性,要尽量有意义
    ---------------------------------------
    Java中的名称规范
    ---------------------------------------
    包名:多单词组成时所有字母都小定。
    类名和接口名:多单词组成时,所有单词的首字母大写。
    变量名和函数名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词的首字母大写。
    常量名:所有字母都大写。多单词时每个单词用下划线连接。
    ---------------------------------------
    注释(略)
    ---------------------------------------
    常量与变量
    ---------------------------------------
    常量表示不能改变的数值。
    java中常量的分类:
    1.整数常量。所有整数
    2.小数常量。所有小数
    3.布尔型常量。较为特殊,只有两个数值。true false。
    4.字符常量。将一个数字字母或者符号用单引号('')标识。
    5.字符串常量。将一个或者多个字符用双引号标识。
    6.null常量。只有一个数值就是:null
    对于整数:
    java有三种表现形式:
    1.十进制:0-9,满10进1
    2.八进制:0-7,满8进1.用0开头表示
    3.十六进制:0-9,A-F,满16进1,用0x开头表示。
    ----------------------------------------
    进制的由来
    ----------------------------------------
    任何数据在计算机中都是以二进制的形式存在的。
    二进制早起由电信号开关演变而来。
    一个整数在内存中一样也是二进制的,但是使用一大串的1或者0组成的数值进行使用很麻烦。
    所以就想把一大串缩短点,将二进制中的三位用一位表示。
    这三位可以取到的最大值就是7,超过7就进位了,这就是八进制。

    但是对于过长的二进制变成八进制还是较长,所以出现了用4个二进制表示一位的情况, 四个二进制位最大是15,这就是十六进制。

    规律:进制越大,表现形式越短。
    -----------------------------------------
    进制转换
    -----------------------------------------
    1.二进制和十进制之间的转换。
    十进制-->二进制。
    6的二进制。
    原理:对十进制数进行除2运算。 Integer.toBinaryString(6)

    二进制-->十进制
    原理:二进制乘以2的过程。
    110
    0*2(0)+1*2(1)+1*2(2)
        0 +    2 +    4 = 6

    0  0  1  1  0  1  0  1
    128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 53
    0  0  32   16   0  4  0  1

    0删除

    5 + 4 = 9
    101 + 100 = 9

    101 + 100
    ------------
       1001 = 9

    2.其它进制转换
    转成16进制,四个二进制位就是一个十六进制位。

    90 的二进制为
    0101  1010
    5  A

    转成八进制 三个二进制位代表一位

    001 - 011 - 010
    1  3  2

    3.负数的二进制表现形式
    6 = 110
    -6 = 其实就是6的进制取反+1
    取反:将二进制的1变成0,0变成1.

     0000-0000 0000-0000 0000-0000 0000-0110
     ---------------------------------------
     1111-1111 1111-1111 1111-1111 1111-1001
    +0000-0000 0000-0000 0000-0000 0000-0001
    -------------------------------------------
     0000-0000 0000-0000 0000-0000 0000-1010 = -6

    负数的最高位都是1
    ---------------------------------------
    变量
    ---------------------------------------
    定义:就是把不确定的数据进行存储,
    也就是需要在内存中开辟一个空间。

    如何开辟内存空间?

    数据类型:
    1.基本数据类型
     1)数值型
      a.整数类型:byte/short/int/long
      b.浮点类型:float/double
     2)字符型 char
     3)布尔型 boolean
    2.引用数据类型
     1)类 class
     2)接口 interface
     3)数组 []

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

    定义变量的格式:
    数据类型 变量名 = 初始化值;
    int x = 0;

    什么时候定义数量?
    当数据不确定的时候。需要对数据进行存储时。
    就定义一个变量来完成存储动作。
    ------------------------------------
    逻辑运算符
    ------------------------------------
    true & true = true;
    true & false = false;
    false & false = false;
    false & true = false;
    &:只要两边的boolean 表达式结果,有一个为false,那么结果就是false.
    只有两边都为true,结果才会是true;

    true | true = true;
    true | false = true;
    false | true = true;
    false | false = false;

    |:只要两边的boolean表达式结果有一个是true,那么结果就是true.
    只有两边都false,结果才会是false.

    true ^ true = false;
    true ^ false = true;
    false ^ true = true;
    false ^ false = false;

    只有两边boolean表达式结果相同时,结果为false,否则为true.

    !false = true; !true =false;
    !: 反转boolean表达式结果.

    && 与短路,|| 或短路
    &和&&的特点:
    &:无论左边的boolean表达式结果是true、false.右边都运算。
    &&:当左边为boolean表达式结果是false时,右边不运算。

    |:两边都参与运算。
    ||:当左边boolean表达式结果为true时,右边不运算。
    ----------------------------------------
    位运算符
    ----------------------------------------
    << 左移
    其实就是乘以2的移动位数次幂。
    6>>2=1
    6/2(2)=1

    6>>1=3
    6/2=3

    3<<2 = 3*2(2)

    >> 右移
    就是除以2的移动位数次幂。

    >>> 无符号右移
    >>:最高位补什么由原有数据的最高位值而定,如果最高位为0,那么右移后用0补空余。
    如果最高位为1,右移后,用1补位。
    >>>:无论最高位是0,还是1,右移后都用0补。

    &:
    6 & 3

      6 = 0000-0000 0000-0000 0000-0000 0000-0110
    &:3 = 0000-0000 0000-0000 0000-0000 0000-0011
    ---------------------------------------------
      2 = 0000-0000 0000-0000 0000-0000 0000-0010
     
    注意:1=true,0=false;

    |:
    6 | 5 = 7
      6 = 0000-0000 0000-0000 0000-0000 0000-0110
    |:5 = 0000-0000 0000-0000 0000-0000 0000-0101
    ------------------------------------------------
      7 = 0000-0000 0000-0000 0000-0000 0000-0111
     
    ^:
    6 ^ 5 = 3
      6 = 0000-0000 0000-0000 0000-0000 0000-0110
    ^:5 = 0000-0000 0000-0000 0000-0000 0000-0101
    -------------------------------------------------
      3 = 0000-0000 0000-0000 0000-0000 0000-0011
     
    一个数异或同一个数两次,结果还是那个数:7^4^4=7
     
    ~:反码
    ~6 = -7
    1.转为2进制:
    0000-0000 0000-0000 0000-0000 0000-0110
    2.取反:
    1111-1111 1111-1111 1111-1111 1111-1001
    3.减1
     1111-1111 1111-1111 1111-1111 1111-1001
    -0000-0000 0000-0000 0000-0000 0000-0001
    -----------------------------------------
    =1111-1111 1111-1111 1111-1111 1111-1000
    4.取反
     0000-0000 0000-0000 0000-0000 0000-0111 = 7
    5.结果
    ~6 = -7
    -----------------------------------------
    判断结构:if else if
    -----------------------------------------
    选择结构:switch case break defalut
    特点:
    1.switch语句选择的类型只有四种:byte/short/int/char。
    2.case之间与default没有顺序,先执行第一个case,没有匹配的case执行default.
    3.结束switch语句的两种情况:遇到break,执行到switch语句结束。
    4.如果匹配的case或者default没有对应的 break,那么程序会继续向下执行,运行可以执行的语句,直到遇到break;switch结尾结束。

    if和switch很像,具体什么场景下应用那个语句呢?
    如果判断的具体数值不多,而且符合byte/short/int/cahr这四种类型。
    虽然两个语句都可以使用,建议使用switch语句,因为效率稍高。

    其它情况:对区间判断,对结果为boolean类型判断,使用 if,if的使用范围广。
    -----------------------------------------

  • 相关阅读:
    Shell——2
    Vim-快捷命令
    Shell——1
    linux命令笔记
    小飞机 + zeal 安装
    linux 环境下 假设被cc攻击,请从linux日志文件找出黑客ip地址
    日志文件例子
    最大子列和的四种方法,时间复杂度递减,直至为线性复杂度
    递归很耗内存+多项式求值的两种方法+c语言计时方法
    线代 第六章 二次型
  • 原文地址:https://www.cnblogs.com/cxmsky/p/2845815.html
Copyright © 2011-2022 走看看