Java期中总结Chapter1-2

第一章计算机系统概述

1.1标识符和保留字

标识符:编程中的各种单词

自定义的标识符可以是任何字母、数字、下划线(_)和美元符号的组合,但不以数字开头

保留字:具有特殊意义的标识符  eg.abstract,do,package,this,throw,public...

Java是大小写敏感的:类名首字母大写,常量全部字母大写,方法用小写

1.2注释

/*    

                 */用于多行注释

/**

                   */对文档的注释

1.3编程语言级别

低级语言:机器语言,汇编语言

还有高级语言,汇编语言

每种CPU都有自己的汇编语言

1.4面向对象的软件原理

每个对象都有自己的状态和行为,状态由对象的属性定义,而行为由对象的方法定义

类就是对象的蓝图。由一个类可以得到多个对象,一个对象必定属于某一个类

对象必须封装起来,使得只能通过对象的方法才能改变对象的状态

1.5源文件

源文件是没有生成字节码前的文件,以.java结尾,而编译后的文件以.class结尾

第二章 数据和表达式

2.1print和println方法

System.out.println();其中System是一个类,out是类里的一个对象,调用了println方法

println方法将信息输出后 将光标移动到下一行起始处,print方法只会输出信息

2.2字符串拼接

" "+" "   和 " "+a  空字符串加上其他标识符会将其自动转化为字符串

经典例题:

int a = 15;
int b = 21;
int c = a+b;
String s = "ab";
String string = a+b+s+c;//a+b此时不是字符串,而是运算式
 System.out.println(string);

运行结果: 36ab36

int a = 15;
int b = 21;
int c = a+b;//c=36;
String s = "a+b";
String string = s+a+b+c;//此时a,b,c均按照字符串打印出来
System.out.println(string);

运行结果: a+b152136

从左向右打印,字符串仅将后面的当作字符串,前面的依旧运算后再打印。

需要注意的是字符串里的照着引号内打出,并不计算。

2.3转义序列

\t 制表符 空8个空格

\n 换行符

2.4基本数据类型

八种基本数据类型:4种整型(byte,short,int,long),2种浮点型(float,double),字符型(char),布尔类型(Boolean)

float和double区别:float是4个字节,存在七位有效数字,double是8个字节,存在十五位有效数字

无论小数点后几位,小数都是默认double类型,整数默认int类型

eg.float a = 1.3456446846464f(或者F); 打印a为1.3456447(即小数点后第七位出现了四舍五入)

char型'  'char型不可为空

注意:String不是一个基本数据类型,而是一个类

2.5算数运算符

求余运算返回值的符号与被除数符号一致,a=q*b+r 其中a是被除数,b是除数(a%b)结果符号与a保持一致

eg.

int a = 7;
int b = -3;
int c = a%b;
System.out.println(c);

运算结果:1

int a = -7;
int b = 3;//或b=-3
int c = a%b;
System.out.println(c);

运算结果:-1

2.6运算符优先级

优先级:()>算数运算符>赋值运算符

经典例题:若出现若干数字,其中有加减和乘除,那么如何编写程序运算呢?

提示:分情况讨论,若只有三个数字参与运算,则只有两种情况,要么先算前面的,要么先算后面的,先算后面的仅有一种情况,即第一个运算符是加减后面的是乘除,这种情况使用与句,a+b*c,则将b=b*c三个数的运算转化为a+b;另一种情况是从左往右算,这样的话a op1 b op2 c,使a=a op1 b,op1=op2,b=c;此时也将三个数的运算转化为了a与b的运算。

若数字不止三位,那么可依次向后读取,如a*b+c/d,经过上面的运算,我们已经将其转化为a+c/d,再经过一次上面的运算,则又是a op1 b的形式,继续读取和计算,即可达到计算包含若干数字的无括号运算,由于重复用到上述过程,则需for循环。

while (scanner.hasNextLine()) {
    String[] str = scanner.nextLine().split(" ");
    a = Integer.parseInt(str[0]);
    op1 = str[1];
    b = Integer.parseInt(str[2]);
   
//for循环由此开始,一次读取三个数字,两个运算符
 for(int i = 3;i < str.length-1;i += 2) {//注意数组的length方法
    op2 = str[i];
    c = Integer.parseInt(str[i+1]);


        if ((op1.equals("+") || op1.equals("-")) && (op2.equals("*") || op2.equals("/"))) {
            if (op2.equals("*")) {
                b = b * c;
            } else if (op2.equals("/"))
                b = b / c;

        }

    else {
            switch (op1) {
                case "*":
                    a = a * b;
                    break;
                case "/":
                    a = a / b;
                    break;
                case "+":
                    a = a + b;
                    break;
                case "-":
                    a = a - b;
                    break;
            }

            b = c;
            op1 = op2;

        }
    }//for循环到此结束此时式子全部转化为a op1 b的形式
    switch (op1) {
        case "*":
            a = a * b;
            break;
        case "/":
            a = a / b;
            break;
        case "+":
            a = a + b;
            break;
        case "-":
            a = a - b;
            break;
    }

    System.out.println("result = " + a);

}

2.6自增自减运算符

前缀和后缀的区别:

int count = 15;

total=count++;//count将值先赋给total,再加一,即total为15,count为16

total=++count;//count先加一,变为17,再将值赋给total,total为17

2.7类型转换的安全性

容量:byte<short(char)<int<long<float<double

压缩类型转换将丢失信息,尽管扩展类型转换不会丢掉信息,但int(long)转换为float或者long转换为double类型时,最低有效位数字可能丢失,因为浮点型虽然容量大,但有效位数比long小

注意:byte或short转化为char类型时,虽然为扩展类型转换,但byte或short可能为负整数,转化为无正负的字符值时其数值发生改变,甚至与原来数值无关。

2.8数据类型转换技术

数据转换的方式有三种:赋值类型转换,提升类型转换,强制类型转换。

赋值类型转换只能为扩展类型转换;

提升类型转换:result=sum/count,sum为浮点型,count为整数型,则count会自动升级为浮点型

强制类型转换:dollars=(int)money/count;money为浮点型,但被强制转换为整数型,然后做除法

注意:强制类型转换符优先级高于算术运算符,先转换,可能再自动升级

2.9Scanner类

Scanner类中的一些方法:

String next()以字符串类型返回下一个输入数据项

String nextLine()以字符串类型返回当前行剩余的所有输入数据项

byte nextByte()以字节类型返回下一个输入数据项

....其他基本数据类型以此类推

如果要读取文件,代码可以为:

String filename = “   ”;

Scanner scanner = new Scanner(new File(filename));

while (scanner.hasNextLine()) {
    String[] str = scanner.nextLine().split(" ");
    a = Integer.parseInt(str[0]);
    op1 = str[1];
    b = Integer.parseInt(str[2]);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值