java核心技术卷笔记3----java基本的程序设计结构

==================java核心技术卷第3章----java基本的程序设计结构=================
本章主要内容:
1    一个简单的java程序            2  注释
3    数据类型                    4  变量
5    运算符                        6  字符串
7    输入输出                    8  控制流
9   大数值                        10  数组

================================================================================
1    简单的java程序
如:
public class FirstExample{
    public static void main(String[] args){
        System.out.println("We will not use 'Hello world!'");    
    }
}

本部分需注意:
    java区分大小写
    关键字class后面跟类名,类名的命名方式为首字母大小写形式,如FirstExample
    源代码的文件名必须与公共类的名字相同,并用.java作为扩展名(如本文件只有FirstExample类,则用FirstExample.java命名该文件)
    在命名并输入没有任何错误的情况下,java编译器将该字节码文件编译生成一个FirstExample.class的文件,然后再执行.class文件
    java中的main函数必须是public ,且是static 

2    注释:有3中方式
    //            用于单行注释,如方法后面的说明
    /*   */        用于多行注释
    /**        */    也可多行注释,一般用于详细内容介绍和自动生成文档,如在写程序前的功能模块介绍,作者信息,修改时间等
    
3    数据类型:
    java中的数据类型共有8中,其中有4种整形,2种浮点型,1种字符类型,1中表示真值的boolean类型(注意不是bool)
    4种数据类型:
    int     占4字节        范围:2 147 483 648---2 147 483 647 ,计算方式为:-2^31---2^31-1,四个字节共32位
    short      2字节              -2^15--2^15-1
    long       8字节              -2^63--2^63-1
    byte      1字节              -2^7--2^7-1
    注意:在java中,各数据类型所占字节没有32位于64位的区别,因为java不直接由机器执行代码,是由虚拟机先将字节码解释成机器码,再交给机器执行
    
    2中浮点类型:
    float         4字节        范围:正负3.402 823 47E+38F(有效位数为6-7位)
    double        8字节             正负1.797 693 134 862 315 70E+308(有效位数为15位)
    绝大部分浮点型为double类型,float类型的数值有F或f后缀,没有后缀一般都默认为double
    所有的浮点数值计算都遵循IEEE 754标准,用于表示溢出和出错情况的3个特殊浮点数值
        正无穷大
        负无穷大
        NaN
    
    char类型
    char类型原本用于表示单个字符,目前部分Unicode字符也可用char类型的值进行描述,char类型的字符用单引号''括起来
    注意不是"","A"表示含有A的字符串,其末尾含有字符串结束符,'A'则表示单个A字符
    特殊字符需要转义,如:
    转义序列            名称            Unicode值
    \b                    退格            \u0008
    \t                    制表            \u0009
    \n                    换行            \u000a
    \r                    回车            \u000d
    \"                    双引号            \u0022
    \'                    单引号            \u0027
    \\                    反斜杠            \u005c
    
    boolean类型
    boolean类型有两个值:true和false,用于判断逻辑条件

4 变量:java中的每一个变量都有一个类型,声明变量时,变量类型位于变量名之前,
          变量名必须有字母开头,并由字母或数字组成的序列,不能用java保留字做变量名
    
    变量初始化:声明变量之后必须用复制语句对变量进行显示初始化,不用使用未初始化的变量
                与C++不同,java没有声明与定义的区别,在C++中:int i=10;为定义,extern i;为声明
    常量:java中用final指示常量,声明的变量一旦被赋值,不能进行修改,类似C++中的const
          对于一个类中的多个方法想要使用一个常量,可以将该常量声明为:static,因为static声明的变量存在静态区,
            只属于类本身,并不属于某一个实例
5 运算符:+,-,*,/        分别表示加减乘除,正数被0出将产生一个异常,浮点数被0整除会得到无穷大或NaN结果
    数学函数及常量
        幂运算:Math.pow(x,a);        表示x的a次幂
        floorMod方法是解决一个长期存在的有关正数余数的问题,floorMod(position+adjustment,12)表示(position+adjustment)%12
        sqrt(x);求x的平方根
    数值类型转换:如图实线无精度丢失,虚线有精度丢失
    
    强制类型转换:如
    double x=9.997;
    int nx=(int)x;
    将double型的x  强制转换成int型
    
    赋值运算:x+=2;    表示x=x+2;    一般运算符在=的左边,如*=,%=
    
    自增自减运算符:++n,n++,前++表示先对n自增,再进行运算,后++表示先进行运算,在对n自增
    
    关系和boolean运算符:
        检测相等用两个等号:==
        检测不相等用:!=
        E1&&E2    :E1和E2都为True,结果为True,否则为False. 若E1为False,E2则不进行计算
        E1||E2    :E1和E2都为False,结果为False,任意表达式为True,结果为True,若表达时候E1为True,E2则不进行计算
        三元操作符:condition?expression1:expression2;
            若condition条件成立,返回expression1的值,否则返回expression2的值
    位运算符:
    &    and
    |    or
    ^    xor
    ~    not
    
    括号与运算符级别:
        如果不适用括号,运算符级别一般按照从左至右运算
        &&运算级别比||级别高
    枚举类型:变量的取值只在一个有限的集合里,枚举类型包括有限个命名的值
        如  enum Size{SMALL,MEDIUM,LARGE,EXTRA_LARGE};

6 字符串:
    6.1 Java字符串即使Unicode字符序列,java没有内置的字符串类型,而是在标准java类库中提供了一个预定义类,
        叫做String ,每个用双引号括起来的字符串都是String的一个实例

    6.2 子串:String类的substring 方法可以从一个字符串提取出另一个字符串,如
    6.3 拼接:用+号拼接
    6.4: 不可变字符串:java没有提供用于修改字符串的方法,不能修改java字符串中的字符。要实现修改字符串的功能
        首先提取想要的字符,再将要替换的字符拼接上去
    6.5 检测字符串相等:equals方法,如:s.equals(t);  如s与t相等返回true,否则返回false
        判断过程不区分大小写可用equalsIgnoreCase();
    6.6 空串与Null: 空串""为长度为0的字符串,它是一个java对象,长度为0,内容为空,可用if(str.length()==0)判断
        null这是一个存放特殊值的String 变量,表示没有任何对象与改变量关联,可用if(str==null)判断
        
    6.7 构建字符串
        在由较短字符串构建字符串时,采用拼接方式效率较低,每次拼接过程中都会创建一个新的string 对象,耗时且占空间
        使用StringBuilder类可避免此类问题,首先构建一个空的字符串构建器,使用append方法进行构建,如
            StringBuilder builder=new StringBuilder();
            builder.append(ch);
            builder.append(str);
    6.8 输入输出
        输入:首先构造Scanner对象,与System.in关联,
                Scanner in=new Scanner(System.in);
            String nextLine();        读取输入下一行内容
            String next();            读取输入的下一个单词
            String nexInt();        读取下一个表示整数的字符序列
        输出:System.out.println();
        格式化输出:System.out.printf(),可以使用多个参数输出
            String.format();    可创建一个格式化的字符串,不打印输出
        文件输入输出:
            Scanner in=new Scanner(Paths.get("myfile.txt"),"UTF-8");
            文件命中有反斜杠'\',则需要再额外加一个‘\' 转义,如:C\\myfile\\myfile.txt
7 控制流程
    7.1 块(复合语句):是由一对大括号括起来的若干个语句,块先定了变量的作用域,一个块可以嵌套在另一个块中,
        但不能再嵌套的两个块中声明同名的变量
    7.2 条件语句:
            if(condition){
                statement;
                ...
                
            }
            else{
                statement1;
                ...
                
            }
        循环:有以下几种
            while(condition){
                statement;
                ...
            }
            for(int i=begin;i<condition;i++){
                statement;
                ...
            }
        多重选择:swithc语句
            swithc(choice){
                case1:
                    ...
                    break;
                case2:
                    ...
                    break;
                ...
                
                default:
                    ...
                    break;
            }
8 大数值
    若整形和浮点型的精度都不满足要求,java.math包中的BigInteger和BigDecimal可以处理包含任意长度数字序列的数值
    BigInteger实现了任意精度的整形运算,BigDecimal实现任意精度的浮点数运算
    使用静态的valueOf方法可以将普通的数值转换成大数值
9 数组
    数组为一种数据结构,用于存储同一类型值的集合。创建一个数字数组是,所有元素都初始化为0,boolean数组元素都初始化为false
    数组一旦创建,大小不可改变,若需要经常在运行过程改变数组的大小,可使用另外一种数据结构:ArrayList
    9.1 for each循环:
            for(variable:collection)statement
            对暂存于集合中的每个元素,执行相应语句
    9.2 数组初始化及匿名数组
        创建数组并初始化如以下形式:
            int[] samllPrimes={2,3,5,7,11,13};
    9.3 匿名数组创建如:new int[]{17,19,23,29};
    9.4 数组拷贝:Arrays类中的copyOf方法可将一个数组的所有值拷贝到另一个数组中去
    9.5 数组排序:Arrays类中的Sort方法,使用了优化的快速排序算法
    9.6 不规则数组:java实际上没有多维数组,只有一维数组,多维数组被解释为数组的数组
        对于二维数组balances,  balances[i]表示引用第i个子数组,即二维表中的第i行,
        balances既可以单独存取数组的某一行,也可以让两行交换,还可以构造一个每一行的长度都不同的数组
        即不规则数组。当需要创建不规则数组时,需要单独创建行数组。
    
            
        
    
 

猜你喜欢

转载自blog.csdn.net/u012824097/article/details/81273572