Getting started with Java

Getting started with Java

关键字: 是Java中被赋予特殊意义的单词, 例如:class定义了一个模块, 它的代码形式如下:

class name {
    方法
}

在class后面紧跟着类名, 类名后的大括号中是类实现的方法

字面量: 数据在程序中的书写格式

字面量类型说明举例
整数类型不带小数点的数字666, -88
小数类型带小数点的数字13.14. -52.1
字符串类型用双引号括起来的内容“hello”, “森森”
字符类型用单引号括起来的内容‘a’, ‘b’
布尔类型表示真假只有两个值:true. false
空类型什么都没有null

拓展:一些特殊类型的字面量

\t 制表符:在打印的时候, 把前面的字符串长度补齐到8,或者8的倍数

变量: 当某个数据经常改变的时,可以用变量存储该数据,其定义格式如下

{
    datatype name = data;
}

Java中变量名不能重复, 一般定义的变量是mutable

以下为一些基本数据类型

数据类型关键字取值范围
整数byte-128~127
short-32768~32767
int-2147483648~2147483467
long-9223372036854775808~9223372036854775809
浮点数float-3.1401298e-38~3.402823e+38
double-4.9000000e-324~1.797693e+308
字符char0~65535
布尔booleantrue, false

定义long类型变量要在数据值后面加一个 ‘L’

定义float类型变量要在数据值后面加一个 ‘F’

标识符: 变量, 方法, 类的名字

命名方法建议:

  1. 小驼峰命名法:变量、方法
    • 标识符是一个单词时全小写
    • 有多个单词时第一个单词首字母小写,其它单词首字母大写
    • 大驼峰命名法:类名
      • 所有单词首字母大写

键盘录入: 获取用户键入的值,需要使用Scanner类

import java.util.Scanner;//导包
public class App {
    public static void main(String[] args) throws Exception {
        //创建对象--表示要开始使用Scanner这个类
        Scanner sc = new Scanner(System.in);
        //接受数据
        int i = sc.nextInt();
        System.out.println(i);
    }
}

个人上述代码的初步理解:在Java中使用import关键字引入包;包中具有类,因此要创建一个类对象,从而才能使用类的方法,使用这个类中的System.in这个对象的方法

运算符: 操作字面量或变量的符号, 表达式: 用运算符把字面量或变量连接起来符合Java语法的句子

- 算数运算时可能会发生类型转换  
    - 隐式转换:把一个取值范围小的数值,转成取值范围大的数据(byte, short, int类型参与计算时会自动转换为int类型)  
    - 显示转换:目标数据类型 变量名 = (目标数据类型)被强转的数据 
  • 字符串相加: 此时"+"是字符串连接符,而不是算数运算符了, 将两个字符串相加,并返回一个新的字符串,字符串与其它类型相加也返回字符串
  • 字符相加: 将字符转换为ASCII表中的数字,再进行运算
  • 自增自减运算符: 同c++
  • 逻辑运算符: ‘&‘逻辑与,’|‘逻辑或,’^‘逻辑异或,’!’ 逻辑非
  • 短路逻辑运算符: ‘&&‘相比于’&’,'&&‘遇到一个为false就会停止判断,相对于’&‘效率更高,’||'同理
  • 三元运算符: ralationship ? exp1 : exp2; relationship为真,则进行exp1,否则exp2

    流程控制语句: 通过一些语句,控制程序的执行流程

    • 分支结构: if 或 switch

      • if语句

        {
            //第一种表达式
            if(exp) {
                语句体;
            }
            //第二种表达式
            if(exp) {
                语句体1;
            } else {
                语句体2;
            }
            //第三种表达式
            if(exp) {
                语句体1;
            } else if(exp') {
                语句体2:
            } else {
                语句体3;
            }
        }
        

        exp返回类型为boolean类型

        • switch语句
          {
              switch(exp) {
                  case 值1:
                      语句体一1;
                      break;
                  case 值2:
                      语句体2;
                      break;
                  default:
                      语句体3;
                      break;
              }
          }
          

          break 表示跳出break语句,case值必须是字面量不能是变量。若都不匹配,则执行default,case表示将exp与值匹配,匹配成功后不再进行匹配,直接进行语句,若匹配失败则不执行语句直到匹配成功,或结束switch语句

          • 可以使用switch穿透简化具有相同语句体的case
            {
                switch(exp) {
                    case 值1:
                        语句体一1;
                        break;
                    case 值2:
                    case 值3:
                    case 值4:
                        语句体2;
                        break;
                    default:
                        语句体3;
                        break;
                }
            }
            
          • 循环结构: for and while

            • for循环
              {
                  for (int i = 0; i != 10; ++i)
                  {
                      语句体;
                  }
              }
              
              • while循环
                {
                    while(条件判断语句) {
                        循环体语句;
                        条件控制语句;
                    }
                }