Java学习3 Java基础语法

注释(Comment)

  • // 单行注释
  • /* 单行或多行注释 */
  • /** 可用于文档化处理的单行或多行注释 */
  • Javadoc
    JDK提供Javadoc文档自动生成工具,默认只扫描public变量或方法:
[JAVA_HOME_PATH]\javadoc source.java

分隔符

  • 分号;
  • 逗号,
  • 空格
  • 点.
  • 语句块{ }

标识符(identifier)

  • 以字母、下划线、美元符开头,后跟字母、下划线、美元符或数字,大小写敏感,长度无限制,如:
    HelloWorld/DataClass/_983/$bS5_c7

关键字(keyword)

  • Java关键字都是小写,TURE/FALSE/NULL都不是Java关键字。
  • goto和const虽然从未使用,但也被作为Java关键字保留。
  • true/false虽被用作专门用途,但不是Java关键字。

    abstractassertbooleanbreakbyte
    casecatchcharclassconst
    continuedefaultdodoubleelse
    extendsfinalfinallyfloatfor
    gotoifimplementsimportinstanceof
    intinterfacelongnativenew
    nullpackageprivateprotectedpublic
    returnshortstaticstrictfpsuper
    switchsynchronizedthisthrowthrows
    transienttryvoidvolatilewhile

数据类型

  • 强类型语言(C/C++/C#/Java) & 弱类型语言(Javascript)
  • Java基本数据类型: boolean/char/byte,short,int,long/float,double
    • Java整型常量默认为int型,声明long型常量可以后加“l”“L”
    • 浮点数十进制如: 3.05 , 4.5E3 ; 十六进制只能科学计数法,如: 0x1.2p3=(1160+2161))23=9.0 , 0x1.2p3=(1160+2161))23=0.140625
    • Java浮点型常量默认为double型,声明float型常量可以后加“f”“F”
    • 除零结果有: NaN 。如: 3.0/0.0= 3.0/0.0= 0.0/0.0=NaN
    • 字符型
      • Java语言采用16位Unicode编码保存
      • 字符常量三种表示方法:
      • 单引号:'n'
      • 十六进制编码:'\u006E'
      • 转义字符:'\n' \\表示换行
    • 布尔型
      • boolean类型数据只允许取值truefalse,不能用0或者非0的整数代替truefalse
//TestFloat.java
public class TestFloat {
    static private double d = 0x1.2p-3;
    public static void main(String args[])
    {
        System.out.println("0x1.2p-3 value:"+d);
        System.out.println("3.0/0.0 = "+3.0/0.0);
        System.out.println("-3.0/0.0 = "+ (-3.0/0.0));
        System.out.println("0.0/0.0 = "+0.0/0.0);
    }
}
打印结果:
E:\opensource\Code\hello-world\02_TestFloat>javac TestFloat.java
E:\opensource\Code\hello-world\02_TestFloat>java TestFloat
0x1.2p-3 value:0.140625
3.0/0.0 = Infinity
-3.0/0.0 = -Infinity
0.0/0.0 = NaN
  • Java引用数据类型:类/接口, 数组, 枚举, 注解类型
    • 引用类型数据以对象的形式存在;值为某个对象的句柄,而不是对象本身;声明时系统值为该变量分配引用空间,并未创建一个具体的对象
      对象构造和初始化:(1)为引用类型变量分配引用空间;(2)创建新对象,分配内存空间,并默认初始化;(3)显示初始化;(4)执行构造方法;(5)为引用类型变量赋值。

变量

  • 基本类型变量 & 引用类型变量
  • 局部变量 & 成员变量
  • 变量必须先声明和初始化(赋初值)才可以使用
    • 形参属于局部变量,方法调用时会被隐含初始化
public void m1(int a, int b)
{
    int i;
    int j=i+4;  //编译报错,变量为初始化
    int k=a+b;
}

数据存储细节

  • 堆内存(Heap Memory):由所有的应用程序公用,存储空间分配不连续,存储容量大。在堆内存中分配存储空间和进行存取操作速度较慢。
  • 栈内存(Stack Memory):由特定应用程序专用,存储空间是连续的,以栈的方式(后进先出)进行管理,存储容量小,但访问速度快。
  • Java程序运行时,局部变量(包括对象句柄)保存在栈内存中,而对象及其成员变量保存在堆内存

值传递

  • 基本类型数据传递的是该数据的值本身
  • 引用类型数据传递的是对对象的引用(句柄),而非对象本身

标准输入输出

  • 控制台 Console 程序
//控制台输入
import java.util.Scanner;
Scanner s = new Scanner(System.in);
String name = s.nextLine();
int age = s.nextInt();
double salary = s.nextDouble();

//控制台输出
System.out.print(); //输出不换行
System.out.printf(); //格式化输出
System.out.println(); //输出换行
// 格式化输出栗子:
public class TestPrintf
{
    public static void main(String[] args)
    {
        System.out.printf("(1) %+8.3f",3.14); //"+"号带正负号,8位字符宽度,3位小数点,浮点型
        System.out.println();
        System.out.printf("(2) %+-8.3f\n",3.14); //"-"号左对齐
        System.out.printf("(3) %08.3f\n",3.14); //字符宽度不足用"0"填充
        System.out.printf("(4) %(8.3f\n",-3.14); //负数用括号展示
        System.out.printf("(5) %,f\n",2356.3456); //分隔数字用","隔开
        System.out.printf("(6) %xf\n",0x4a36); //十六进制
        System.out.printf("(7) %#xf\n",0x4a36); //十六进制,多一"0x"
        System.out.printf("(8) 你好:%1$s, %2$3d岁, %2$#x岁\n","张三",38); //s表示字符串; 1$/2$/3$代表第几个参数
        System.out.printf("(9) %3d, %#<x", 38); //"<"表示上一个参数
    }
}

//打印结果:
E:\opensource\Code\hello-world\新建文件夹>javac TestPrintf.java
E:\opensource\Code\hello-world\新建文件夹>java TestPrintf
(1)   +3.140
(2) +3.140
(3) 0003.140
(4)  (3.140)
(5) 2,356.345600
(6) 4a36f
(7) 0x4a36f
(8) 你好:张三,  38岁, 0x26岁
(9)  38, 0x26

Java编码惯例(各公司不一样)

  • 命名惯例

    • 包名 package com.domain;
    • 类名 class SprintRain;
    • 接口名 interface Account
    • 方法名 modifyAccount()
    • 变量名 studentName
    • 常量名 MAX_LEVEL

    类名和接口名一般名词,方法名一般动词

  • 文件组织

    • 属性声明
    • 构造方法声明
    • static语句
    • 普通方法声明
    • main方法声明
    • 内部类声明
  • 分隔和缩进(使用空行)

    • 在方法之间
    • 在方法内部代码的逻辑段落小结之间
    • 在方法中声明局部变量之后,具体的Java语句之前
    • 在注释行之前
    • 在同一个源文件中定义的多个类/接口之间使用双行的空白行来分隔
  • 分隔和缩进(使用空格)

    • 运算符之间,如:c = a + b
    • 在参数列表中的逗号后面,如:void ml(int month, int year){}
  • 声明变量

    • 声明变量尽量同时初始化
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值