zoukankan      html  css  js  c++  java
  • 黑马程序员——JAVA学习笔记二(语法基础)

    1,     Java程序都是以类的形式存在的,所以需要告诉虚拟机需要加载类的位置,那么可以设置classpath变量。classpath变量如果有;,则表示还会在当前目录查找,没有;则不会在当前目录查找。
    当然如果没有classpath也会在当前目录查找。
     
    2,    rd删除目录,加/S可以删整个目录,Windows从里向外删除。
     
    3,    一个文件只有一个public类,文件名必须和类名相同,如果不是友好类,则不需要同名。
     
    4,    JAVA一共有50个关键字
    关键字是电脑语言里事先定义的,有特别意义的标识符,有时又叫保留字,还有特别意义的变量。
    Java的关键字对java的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构等,关键字不能用作变量名、方法名、类名、包名。
    java关键字描述列表
    abstract //抽象方法,抽象类的修饰符
    assert //断言条件是否满足
    boolean //布尔数据类型
    break //跳出循环或者label代码段
    byte //8-bit 有符号数据类型
    case //switch语句的一个条件
    catch //和try搭配捕捉异常信息
    char //16-bit Unicode字符数据类型
    class //定义类
    const //未使用
    continue //不执行循环体剩余部分
    default //switch语句中的默认分支
    do //循环语句,循环体至少会执行一次
    double //64-bit双精度浮点数
    else //if条件不成立时执行的分支
    enum //枚举类型
    extends //表示一个类是另一个类的子类
    final //表示一个值在初始化之后就不能再改变了
    //表示方法不能被重写,或者一个类不能有子类
    finally //try 语句不管是否发生异常都要执行的语句块
    float //32-bit单精度浮点数
    for //for循环语句
    goto //未使用
    if //条件语句
    implements //表示一个类实现了接口
    import //导入类
    instanceof //测试一个对象是否是某个类的实例
    int //32位整型数
    interface //接口,一种抽象的类型,仅有方法和常量的定义
    long //64位整型数
    native //表示方法用非java代码实现
    new //分配新的类实例
    package //一系列相关类组成一个包
    private //表示私有字段,或者方法等,只能从类内部访问
    protected //表示字段只能通过类或者其子类访问
    //子类或者在同一个包内的其他类
    public //表示共有属性或者方法
    return //方法返回值
    short //16位数字
    static //表示在类级别定义,所有实例共享的
    strictfp //浮点数比较使用严格的规则
    super //表示基类
    switch //选择语句
    synchronized //表示同一时间只能由一个线程访问的代码块
    this //表示调用当前实例
    //或者调用另一个构造函数
    throw //抛出异常
    throws //定义方法可能抛出的异常
    transient //修饰不要序列化的字段
    try //表示代码块要做异常处理或者和finally配合表示是否抛出异常都执行finally中的代码
    void //标记方法不返回任何值
    volatile //标记字段可能会被多个线程同时访问,而不做同步
    while //while循环
     
     
     
    5,    标示符,Java标识符由数字,字母(中文也可以,因为UNICODE编码)和下划线(_),美元符号($)组成。在Java中是区分大小写的,而且还要求首位不能是数字。下划线主要用在常量中,$用在内部类中,在方法,变量名中少用他们,用驼峰命名方式。
     
    6,    注释,单行注释,多行注释,文档注释。文档注释/**开头,*/结尾。多行注释不可以嵌套,所以单行注释方便。注释不会被编译到类文件中,会擦出掉。注释不是越多越好。
     
    7,    写代码,不必先着急写代码,首先需要分析。1需求 ,2思路,3步骤。
     
    8,    字面值常量,小数,整数,boolean,字符,字符串,null,常量。
     
    9,    变量时内存空间中的一块区域,该区域有自己的名称和类型,该区域的数据可以变化。变量的作用域只在{}中有效。
     
    10,    基本数据类型 和 引用数据类型
    整型:byte(8bits -128 ~127) short(16bits -2^16 ~2^16) int(32bits  -2^32 ~2^32) long(64bits  -2^64 ~2^64),还有一个类(BigInteger类会代替范围不够大),JAVA7前可以加上0b表示二进制。还可以为数字字面值加上下划线,如1_0000_0000 ,JAVA编译器会去除这些下划线。
     
    浮点类型: float(32bits 6~7位有效数字) double(64bits 15位有效数字) ,三个特殊的浮点数职:正无穷大Double(Float).POSITIVE_INFINITY、负无穷大Double(Float).NEGATIVE_INFINITY、Double(Float).NaN(不能检测一个特定值是否等于==它,判断两个浮点数是否相等要小心),因为误差大,所有有一个类(BigDecimal)会代替。Math.random()返回一个随机浮点数(0~1)。
    如果追求性能用Math库(sqrt,pow(x,a),tan,sin,cos,exp,log, log10 PI,E),否则用StrictMath库。
     
    字符类型:char  (16bits )  
    布尔类型:boolean(大小不确定)
    整数默认是:int  小数默认是:double
     
    接口类型:interface
    类类型:calss
    枚举类型:enum
    数组类型:[]
     
    默认初始化:int 0,小数,0.0 ,布尔 false,字符:‘U0000’,String: null;
     
    11,    类型转换: 自动类型转换,两个数值进行二元操作时,首先需要将两个操作数转换成同一种类型再计算。
    1,如果有一个操作数double,另一个操作数自动转化为double.
    2,如果有一个操作数float,另一个操作数自动转化为float.
    3,如果有一个操作long,另一个操作数自动转化为long.
    4,否则,两个操作数都转化为int.
            强制类型转换,可能会丢失精度,强制类型转换通过截断小数部分将浮点值转化为整型。如果需要四舍五入用MATH.round(x).
     
    12,    运算符优先级别,1,[]. ()(方法调用) 2,一元操作符 3,二元操作符 (instanceof) 3,移位运算符 4,逻辑运算符  5,位运算符 (对移位运算符的右侧的参数需要进行模32的运算(除非左边是long,右边则对64求模))6,逻辑运算符 7,条件运算符 8,赋值运算符 9,逗号操作符
     
    13,    
    switch语句特点:
    1、switch语句选择的类型只有四种:byte,short,int,char。JAVA7支持String。
    2、case与default没有顺序。先执行第一个case,没有匹配的case执行default。
    3、结束switch语句的两种情况:①遇到break,②执行到switch语句结束。
    4、如果匹配的case或者default没有对应的break,那么程序会继续向下执行,运行可以执行的语句,直到遇到break或者switch结尾结束。
    5、进入switch语句后,执行顺序是先执行case,然后从上到下,最后再执行default。即使default放在case上面,执行顺序也不变。
     
    14,    循环控制语句,for while.可以有标签操作,但是必须放在要跳出循环外面,跳出指定最外层循环,for()中可以用逗号操作表达式。for each只需要实现Itreable接口即可。
     
    15,    函数:函数是传值调用,函数重载:
    在同一个类中,允许存在一个以上的同名函数,只要它们的参数个数或者参数类型不同即可。与返回值类型无关,方法名以及参数类型叫做方法的签名。
     
    16,    数组:数组分配在堆上,可以分配大小为0的数组,数组支持for each,int[] buf = {1,2,3}只能出现在定义时初始化。数组工具类:Arrays.toString(T[])或者Arrays.deepToString打印数组.  Arrays.fill() ,Arrays.copyof(),Arrays.sort(). Arrays.binarySearch();
     
     
     
     
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
  • 相关阅读:
    BZOJ 2034 【2009国家集训队】 最大收益
    vijos P1780 【NOIP2012】 开车旅行
    BZOJ 2115 【WC2011】 Xor
    BZOJ 3631 【JLOI2014】 松鼠的新家
    BZOJ 4717 改装
    BZOJ 2957 楼房重建
    BZOJ 4034 【HAOI2015】 T2
    BZOJ 1834 【ZJOI2010】 network 网络扩容
    BZOJ 2440 【中山市选2011】 完全平方数
    BZOJ 2733 【HNOI2012】 永无乡
  • 原文地址:https://www.cnblogs.com/solaire/p/4178719.html
Copyright © 2011-2022 走看看