• Language Basics:语言基础


    Java包含多种变量类型:
    Instance Variables (Non-Static Fields)(实例变量):是每个对象特有的,可以用来区分各个实例
    Class Variables (Static Fields)(类变量):多个对象间将共享这个变量,他只有一个存在,如果加了final表示这个变量不可修改
    Local Variables(局部变量):通常是在方法内定义,只是所在的方法内才能访问
    Parameters(参数):常用于方法,构造方法,或异常捕获的时候


    关于一些称谓:说到字段,通常指前两个,说变量,通常指所有四种,
    而成员,通常是说所有的字段,方法,和一些内嵌成员(如内部类)


    命名规则:大小写敏感,长度不限,以字母,_,$开头的Unicode字符,不能有空格,但规范做法是字母开头
    后面的字符也可以包含数字,但起名最好有意义,宁可长也不要用难懂的缩写,另外不要使用关键字和保留字
    规范写法是首字母小写,以后的单词头字母大写,如果是常量就这样:static final int NUM_GEARS = 6
    u可以用于java代码的任何地方,代表具体某个字符,而不只是在''和""里


    java是statically-typed(静态类型)语言,也就是变量使用前必须声明(八大原始类型)
    原始数据类型的值之间,并没任何关系,也不共享什么,他们并不是对象
    int在JDK8以后可以表示正整数了,也就是0~2^32-1,Integer.compareUnsigned, divideUnsigned
    同样还有long
    float,double是不精确的,精确地要用 java.math.BigDecimal
    char的范围:'u0000'到'uffff',16位的Unicode字符
    "sdfdsf"将立即生成一个String对象,并且是不可变得,String并不是原始类型(不过那不重要,你可以按原始类型来理解)


    已经声明的变量都会由编译器赋予一个确定的默认初始值,char是'u0000',String是null
    但局部变量不会,访问前请确保已经赋值,否则会编译错误


    literal(字面量)是指无需计算即知道确定值的一个东西
    比如给原始类型赋值时,=后面的那个东西
    可以用123L,234.45D,234.45F,0x2E,234.5e32,null,'w',"sdfds"等
    在JDK7以后可以有二进制字面量了,0b10101001

    null可以赋给任何对象,但不能是原始类型
    还有个特殊的class字面量,如String.class,前面只能加某种类型,返回Class的一个对象,代表这种类型本身


    在JDK7以后,数字字面量中可以包含任意的_,增强可读性,但不能放在首位和末尾,小数点附近也不行,特殊符号如L,D附近也不行

    long creditCardNumber = 1234_5678_9012_3456L;
    long bytes = 0b11010010_01101001_10010100_10010010;


    array(数组)的长度是固定的,里面存放的都是同一类型,而数组也不是原始类型
    数组的元素通过下标(序号)访问
    数组声明有两种形式

    int[] anArray;

    float anArrayOfFloats[]//不规范


    建立数组可以

    = new int[10];

    或直接赋值

    = {
        100, 200, 300,
        400, 500, 600,
        700, 800, 900, 1000
    };

     
    java的多重数组跟c++的不同在于,每一个部分都是一个数组,而且内部长度可以不一样
    .lenth代表数组的长度

    String[][] names = {
                {"Mr. ", "Mrs. ", "Ms. "},
                {"Smith", "Jones"}
            };

     
    另外有两个API可用

    System.arraycopy(copyFrom, 2, copyTo, 0, 7);//7为复制总长[2,2+7)
    copyTo = Arrays.copyOfRange(copyFrom, 2, 9);//java.util.Arrays拷贝[2,9)
    Arrays.binarySearch()
    Arrays.equals()
    Arrays.fill()
    Arrays.sort()
    Arrays.parallelSort()//是JDK8新加的,多处理器排序

     
    Operators(操作符)可以对多个operands(操作数)进行特定操作并返回某种结果
    操作符是有优先级的,如果不能确定就自己加括号
    =       Simple assignment operator
    +       Additive operator (also used
            for String concatenation)
    -       Subtraction operator
    *       Multiplication operator
    /       Division operator
    %       Remainder operator
    +       Unary plus operator; indicates
            positive value (numbers are
            positive without this, however)
    -       Unary minus operator; negates
            an expression
    ++      Increment operator; increments
            a value by 1
    --      Decrement operator; decrements
            a value by 1
    !       Logical complement operator;
            inverts the value of a boolean
    ==      Equal to
    !=      Not equal to
    >       Greater than
    >=      Greater than or equal to
    <       Less than
    <=      Less than or equal to
    &&      Conditional-AND
    ||      Conditional-OR
    ?:      Ternary (shorthand for
            if-then-else statement)
    instanceof      Compares an object to
                    a specified type
    ~       Unary bitwise complement
    <<      Signed left shift
    >>      Signed right shift
    >>>     Unsigned right shift
    &       Bitwise AND
    ^       Bitwise exclusive OR
    |       Bitwise inclusive OR


    switch可用于byte, short, char, and int的判断,没有long
    也可用于enumerated types(枚举),和相应的包装类
    在JDK7以后可以用String,但要先判断是否为null
     
    break可以加标签的,指定要跳出的循环体,continue同理
    并不是转到这个标签,而是跳出标签下面最近的那个大括号,继续执行

    search:
            for (i = 0; i
                break search;

     
     

  • 相关阅读:
    POJ 3683 Priest John&#39;s Busiest Day (2-SAT+输出可行解)
    Codeforces #2B The least round way(DP)
    避免死锁的银行家算法C++程序实现
    源代码编译安装MySQL5.6.12具体过程
    Android 设计模式
    Java与设计模式-适配器模式
    Java和Flex整合报错(五)
    三层架构—再思考
    怎样让DBGrid在按住Shift点鼠标的同时能将连续范围的多行选中?
    找出你的短板
  • 原文地址:https://www.cnblogs.com/gcg0036/p/4143614.html
Copyright © 2020-2023  润新知