[Java] Introduction to Java Programming 笔记: Chapter 2. 基础

  • 每个Java程序必须有一个main作为程序执行的入口。
  • System.out指向输出,System.in指向输入, 从键盘获得输入的方法:
import java.util.Scanner;
Scanner input = new Scanner(System.in);
double x = input.nextDouble(); // 读取一个double
  • 计算3个数的平均数的例子, ComputeAverage.java:
import java.util.*;
public class ComputeAverage {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.println("Enter three numbers: ");
        double num1 = input.nextDouble();
        double num2 = input.nextDouble();
        double num3 = input.nextDouble();
        System.out.println("The average of three numbers: " + (num1 + num2 + num3) / 3);
    }
}
  • 下面的两种写法,没有任何性能差别:
import java.util.Scanner;
import java.util.*;
  • Java的标识符可以有$字符,但是不要使用$,因为这个字符依照惯例仅用于自动生成的源代码,除此之外,标识符的命名规则和C,C++一样。

  • 变量的声明和初始化:
    int i = 1, j = 2;

  • 声明常量的语法如下, C++ 里的const 改成了关键字final

final datatype CONSTANTNAME = value;
  • 常量声明的同时必须初始化,例如:
final double PI = 3.14159; 
  • 命名惯例:
    变量,方法小写,连接起来的第二个单词首字母大写
    类名首字母大写
    常量名所有字母大写,单词之间使用下划线连接,例如: PIMAX_VALUE.
public static void main(String[] args) {
    double miles = 100;
    final double KILOMETERS_PER_MILE = 1.609;
    double kilometers = miles * KILOMETERS_PER_MILE;
    System.out.println(kilometers);
}
  • Java 有 6种数字数据类型: byte, short, int, long, float, double, 位数为 8, 16, 32, 64, 32-bit IEEE 754, 64-bit IEEE 754, 全部都是有符号,可表示正数,也可表示负数。前4种表示整数,后两种表示浮点,doublefloat更精确,一般应选double为数据类型。

  • 从键盘读取数字,Scanner 对象的6种方法:

Method Description
nextByte() 读取byte整型.
nextShort() 读取short整型.
nextInt() 读取int整型.
nextLong() 读取long整型.
nextFloat() 读取float类型值.
nextDouble() 读取double类型值.

- %运算符可用于负数,结果的符合与左操作数相同(dividend)。
- 指数运算: Math.pow(a, b)
- 整形字面值:如果表示的数太大,超过int表示范围,则在数字后面加L或l,表示为long类型,通常用大写的L,小写的l很容易和数字1看混淆。
- 在数字前加0b或0B表示为二进制数,加0表示8进制数,加0x或0X表示16进制数。

System.out.println(0B1111); // Displays 15
System.out.println(07777); // Displays 4095
System.out.println(0XFFFF); // Displays 65535
  • 浮点字面值默认情况下看作double,而非float,例如 5.0 就被看作double,如果要指定数值是float还是double,可以在数字后面加 f, F, 或 d,D,例如 100.2f, 100.2D, doublefloat 更精确。
  • 科学计数: 50.534 -> 5.0534E+1, float 或 double 之所以被称为浮点,是因为内部以科学计数法存储,小数点移动到了新的位置(float)。
  • 为提高可读性,Java 允许在字面值之间加下划线,但是只能是在两个数的中间。45_ 或 _45都不对,如下, 但是这一个语法只有 1.7 及以上才支持。
long ssn = 232_45_4519;
long creditCardNumber = 2324_4545_4519_3415L;
  • How many accurate digits are stored in a float or double type variable? I dont know.
  • 显示当前时间,这时间和电脑上的一模一样:
public class ShowCurrentTime {
    public static void main(String[] args) {
        long total = System.currentTimeMillis();
        long totalSeconds = total / 1000;
        long currentSecond = totalSeconds % 60;
        long totalMinutes = totalSeconds / 60;
        long currentMinute = totalMinutes % 60;
        long totalHours = totalMinutes / 60;
        long currentHour = (totalHours + 8) % 24;
        System.out.println("Current Time: " + currentHour + ":"
                + currentMinute + ":" + currentSecond);         
    }
}
// output: Current Time: 15:9:29
  • x /= 4 + 5.5 * 1.5; 等同于 x = x / (4 + 5.5 * 1.5); /= 最后执行。

  • i++ 读作 i plus plus ,i— — as i minus minus, 先加后减这些,和 C/C++ 里的完全一样。实际中 int k = ++i + i; 这样的写法不是好的写法,看起来麻烦,容易出错。

  • Java 里的6种数值类型的表数范围有的窄,有的宽。如果将窄类型的值赋给宽类型的值,Java会自动进行类型转换,叫做拓宽类型(widening a type), 反过来缩窄类型(narrowing a type)则需要进行显式数据类型转换,其他的和C/C++ 一样。

int i = 1;
byte b = i; // 错误,要求显式转换
  • 关于近似值,浮点近似存储,但整数精确存储,因此整数计算能得到精确的结果。

猜你喜欢

转载自blog.csdn.net/ftell/article/details/82257596