Java复习笔记[1] —— 基本语法

来源:互联网 发布:六脚开关引脚图数据 编辑:程序博客网 时间:2024/05/29 15:07

基本语法:

  1. Java语言标识符区分大小写
  1. 类名应使用大写字母开头,使用驼峰命名法
  2. 方法名应使用小写字母开头,使用驼峰命名法
  3. 一个源文件中只能有一个public类,一个源文件可以有多个非public类,源文件的名称应该和public类的类名保持一致(不匹配会导致编译错误),文件名后缀为.java
  4. 如果一个类定义在某个包中,那么package语句应该在源文件的首行
  5. 如果源文件包含import语句,那么应该放在package语句和类定义之间。如果没有package语句,那么import语句应该在源文件中最前面
  6. import语句和package语句对源文件中定义的所有类都有效。在同一源文件中,不能给不同的类不同的包声明
  7. 所有java程序入口都为public static void main(String []arguments)

 

标识符:

  1. 所有标识符都由字母,$,或者下划线开头
  2. 标识符有字母,数字,$和下划线构成(例如:$_$_$_$也是一个合法的标识符)
  3. 关键字不能作为标识符

 

修饰符:

访问控制修饰符:default,public,private,protected

访问控制修饰符

当前类

同一包内

子类、子类的子类(的子类…

其他包

public

Y

Y

Y

Y

protected

Y

Y

Y

N

default

Y

Y

N

N

private

Y

N

N

N

继承与修饰符:

  1. 父类中声明为 public的方法在子类中也必须为 public
  2. 父类中声明为 protected的方法在子类中要么声明为 protected,要么声明为 public,不能声明为 private
  3. 父类中声明为 private的方法,不能够被继承。

非访问控制修饰符:static,final,abstract,strictfp,synchronized,transient,volatile

static用来修饰类的静态变量和静态方法。

final修饰变量时,变量能被显式地初始化并且只能初始化一次, final 对象的引用不能改变,但是里面的值可以改变。修饰类的方法时,方法可以被子类继承但是不能被重写。修饰类的时候表示类不能被继承。

abstract:修饰抽象方法和抽象类。抽象类不能用来实例化对象,如果一个类包含抽象方法,那么该类一定要声明为抽象类,否则将出现编译错误。抽象类可以包含抽象方法和非抽象方法,抽象类也可以不包含抽象方法。抽象方法是一种没有任何实现的方法,该方法的的具体实现由子类提供。抽象方法不能被声明成 final static。任何继承抽象类的子类必须实现父类的所有抽象方法,除非该子类也是抽象类。

strictfp:修饰浮点数,表示使用严格的规则。

synchronizedsynchronized修饰的方法同一时间只能被一个线程访问。synchronized修饰符可以应用于四个访问修饰符。

transient:transient关键字修饰的变量不能被序列化。一旦变量被transient修饰,变量将不再是对象持久化的一部分,该变量内容在序列化后无法获得访问。也可以认为在将持久化的对象反序列化后,被transient修饰的变量将按照普通类成员变量一样被初始化。

volatilevolatile修饰的成员变量在每次被线程访问时,都强制从共享内存中重新读取该成员变量的值。而且,当成员变量发生变化时,会强制线程将变化值回写到共享内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。一个 volatile对象引用可能是null

 

关键字:

abstract  assert  boolean break  byte  case catch  char  class const  continue  default do  double  else enum  extends  final finally  float  for goto  if  implements import  instanceof  int interface  long  native new  package  private protected  public  return short  static  strictfp super  switch  synchronized this  throw  throws transient  try  void volatile  while

 

注释:

//单行注释

/*

  * 多行注释

  * 多行注释

  */

 

数据类型:

基本数据类型:

类型

描述

byte

8位,有符号的,以二进制补码表示的整数,默认值0

short

16位,有符号的以二进制补码表示的整数,默认值0

int

32位,有符号的以二进制补码表示的整数,默认值0

long

64位,有d符号的以二进制补码表示的整数,默认值0L

float

单精度,32位,符合IEEE 754标准的浮点数,默认值0.0f

double

双精度,64位,符合IEEE 754标准的浮点数,默认值0.0d

boolean

用来存储一位的信息,默认值false

char

16位Unicode字符

数据类型取值范围:

public class BasicTypes {

    byte a;

    short b;

    int c;

    long d;

    float e;

    double f;

    boolean g;

    char h;

    

    public void showDefaultValues() {

        System.out.println("byte default:" + a);

        System.out.println("short default:" + b);

        System.out.println("int default:" + c);

        System.out.println("long default:" + d);

        System.out.println("float default:" + e);

        System.out.println("double default:" + f);

        System.out.println("boolean default:" + g);

        System.out.println("char default:" + (int)h);

    }

    

    public void showRanges() {

        System.out.println("byte range:" + Byte.MIN_VALUE + "~" + Byte.MAX_VALUE);

        System.out.println("short range:" + Short.MIN_VALUE + "~" + Short.MAX_VALUE);

        System.out.println("int range:" + Integer.MIN_VALUE + "~" + Integer.MAX_VALUE);

        System.out.println("long range:" + Long.MIN_VALUE + "~" + Long.MAX_VALUE);

        System.out.println("float range:" + Float.MIN_VALUE + "~" + Float.MAX_VALUE);

        System.out.println("double range:" + Double.MIN_VALUE + "~" + Double.MAX_VALUE);

        System.out.println("char range:" + (int)Character.MIN_VALUE + "~" + (int)Character.MAX_VALUE);

    }

}

输出:

byte default:0

short default:0

int default:0

long default:0

float default:0.0

double default:0.0

boolean default:false

char default:0

byte range:-128~127

short range:-32768~32767

int range:-2147483648~2147483647

long range:-9223372036854775808~9223372036854775807

float range:1.4E-45~3.4028235E38

double range:4.9E-324~1.7976931348623157E308

char range:0~65535

引用类型:

  1. 引用类型指向一个对象,指向对象的变量是引用变量
  2. 对象、数组都是引用数据类型
  3. 所有引用类型的默认值都是null
  4. 一个引用变量可以用来引用与任何与之兼容的类型

常量:

java中使用final来修饰常量,例如:final double PI = 3.14159265;

转义字符:

字符

描述

\n

换行 (0x0a)

\r

回车 (0x0d)

\f

换页符(0x0c)

\b

退格 (0x08)

\s

空格 (0x20)

\t

制表符

\"

双引号

\'

单引号

\\

反斜杠

\ddd

八进制字符 (ddd)

\uxxxx

16进制Unicode字符 (xxxx)

默认类型转换:

整型、实型(常量)、字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算。

转换从低级到高级,方向由低到高排列:byte short  char  => int   =>  long =>  float  => double

例外:

  1. 不能对boolean类型进行类型转换
  2. 不能把对象类型转换成不相关类的对象
  3. 在把容量大的类型转换为容量小的类型时必须使用强制类型转换(会有精度损失)
  4. 转换过程中可能导致溢出或损失精度
  5. 浮点数到整数的转换是通过舍弃小数得到,而不是四舍五入

强制类型转换:

语法:(type)value type


42 0
原创粉丝点击