1、Java主类结构

Java语言是面向对象的程序设计语言,Java程序的基本组成单元是类,类体中又包含属性与方法两部分。每一个应用程序都必须包含一个main()方法,含有main()方法的类称为主类。

package Number;

public class First {
    static String s1="hello";

    public static void main(String[] args){
        String s2="Java";
        System.out.println(s1);
        System.out.println(s2);
    }
}

1.1 包声明

一个Java应用程序是由若干个类组成的。在上例中就是一个类名为First的类,语句package Number为声明该类所在的包,package为包的关键字。

1.2 声明成员变量和局部变量

通常将类的属性称为类的成员变量,将方法中的属性称为局部变量。成员变量声明在类中。全局变量声明在方法体中。全局变量和局部变量都有各自的应用范围。

1.3 主方法

main()方法是类体中的主方法。该方法从“{”开始,至“}”结束。 public、static和void分别是 main()方法的权限修饰符、静态修饰符和返回值修饰符。Java程序中的main()方法必须声明为public static void。String[] args是一个字符串类型的数组,它是main()方法的参数。

1.4 导入API类库

在Java语言中可以通过import关键字导入相关类。

2、基本数据类型

在Java中有8种基本数据类型来存储数值、字符和布尔值

java里表的主键推荐用什么_System

2.1 整数类型

整数类型用来存储整数数值,即没有小数部分的数值。可以是正数,也可以是负数。整型数据在Java程序中有3种表示形式,分别为十进制、八进制和十六进制。

  • 十进制:十进制的表现形式大家都很熟悉,如120、0、-127。除了数字0,不能以0作为其他十进制数的开头。
  • 八进制:如0123(转换成十进制数为83)、-0123(转换成十进制数为-83)。八进制数必须以0开头。
  • 十六进制:如0x25(转换成十进制为37)、0Xb01e(转换成十进制为45086)。十六进制必须以0X或0x开头。

整型数据根据它所占内存大小的不同,可分为byte、short、int和long 4种类型。它们具有不同的取值范围。

数据类型

内存空间(八位等于1字节)

取值范围

byte

8位

-128 ~ 127

short

16位

-32768 ~ 32767

int

32位

-2147483648 ~ 2147483647

long

64位

-9223372036854775808 ~ 9223372036854775807

在定义以上四种类型变量时,要注意变量的取值范围,超出相应范围就会出错。对于long型值,若赋给的值大于int型的最大值或小于int型的最小值,则需要在数字后加L或l,表示数值为长整数,如 long num = 2147483650L。

2.2 浮点类型

浮点类型表示有小数部分的数字。Java语言中浮点类型分为单精度浮点类型(float)和双精度浮点类型(double),它们具有不同的取值范围。

数据类型

内存空间(8位等于1字节)

取值范围

float

32位

1.4E-45 ~ 3.4028235E38

double

64位

4.9E-324 ~ 1.7976931348623157E308

在默认情况下,小数都被看做double型,若使用float型小数,则需要在小数后面添加F或f。可以使用后缀d或D来明确表明这是一个double类型的数据,不加d不会出错。但声明float型变量时如果不加f,系统会认为变量时double类型,从而出错。

2.3 字符类型

字符类型(char)用于存储单个字符,占用16位(两个字节)的内存空间。在定义字符型变量时,要以单引号表示,如’s’表示一个字符,而"s"则表示一个字符串,虽然只有一个字符,但由于使用双引号,它仍然表示字符串,而不是字符。

使用char关键字可定义字符变量,下面举例说明。

char x='a';

由于字符a在unicode表中的排序位置是97,因此允许将上面的语句写成:

char x=97;

同C和C++语言一样,Java语言也可以把字符作为整数对待。由于unicode编码采用无符号编码,可以存储65536个字符(0x0000~0xffff),所以Java中的字符几乎可以处理所有国家的语言文字。若想得到一个 0 ~ 65536之间的数所代表的unicode表中某些位置上的字符,也必须使用char型显示转换。

public class Gess {
    public static void main(String[] args){
        char word='d',word2='@';
        int p=23045,p2=45213;
        System.out.println("d在unicode表中的顺序位置是:"+(int)word);
        System.out.println("@在unicode表中的顺序位置是:"+(int)word2);

        System.out.println("unicode表中的第23045位是:"+(char)p);
        System.out.println("unicode表中的第45213位是:"+(char)p2);
        
    }
}

转义字符是一种特殊的字符变量,它以反斜杠“\”开头,后跟一个或多个字符。转义字符具有特定的含义,不同于字符原有的意义,故称“转义”。例如,printf函数的格式串中用到的“\n”就是一个转义字符,意思是“回车换行”。Java中的转义字符如表所示。

转义字符

含义

\ddd

1 ~ 3位八进制数据所表示的字符,如\123

\uxxxx

4位十六进制数据所表示的字符,如\u0052

\’

单引号字符

\\

反斜杠字符

\t

垂直制表符,将光标移到下一个制表符的位置

\r

回车

\n

换行

\b

退格

\f

换页

将转义字符赋值给字符变量时,与字符常量值一样需要使用单引号。

char c1='\\';
char char1='\u2605';
System.out.println(c1);
System.out.println(char1);

2.4 布尔类型

布尔类型又称逻辑类型,通过关键字boolean来定义布尔类型变量,只有true和false两个值,分别代表布尔逻辑中的“真”和“假”。布尔值不能与整数类型进行转换。布尔类型通常用在流程控制中,作为判断条件。

boolean b=true;

3、 变量与常量

在程序执行过程中,其值不能被改变的量称为常量,其值能被改变的量称为变量。变量与常量的命名都必须使用合法的标识符。

3.1 标识符和关键字

标识符可以简单的理解为一个名字,用来标识类名、变量名、方法名、数组名、文件名的有效字符序列。

Java语言规定标识符由任意顺序的字母、下划线(_)、美元符号($)和数字组成,并且第一个字符不能是数字。标识符不能是Java中的保留关键字。

下面是合法标识符:

name
user_age
$page

下面是非法标识符:

4word
String
User name

在Java语言中标识符中的字母是严格区分大小写的,如good和Good是不同的两个标识符。Java语言使用unicode标准字符集,最多可以标识65535个字符,因此,Java语言中的字母不仅包括通常的拉丁文字a、b、c等,还包括汉字、日文以及其他许多语言中的文字。

关键字是Java语言中已经被赋予特定意义的一些单词,不可以把这些字作为标识符来使用。之前介绍的数据类型中提到的int、boolean等都是关键字。

3.2 声明变量

在程序运行过程中一直不会改变的量称为常量(constant),通常也被称为“final变量”。常量在整个程序中只能被赋值一次。在为所有的对象共享值时,常量是非常有用的。

在Java语言中声明一个常量,除了要指定数据类型外,还需要final关键字进行限定。声明常量的标准语法如下:

final 数据类型 常量名称[= 值]

常量名通常使用大写字母,但这并不是必需的。很多Java程序员使用大写字母表示常量,是为了清楚地表明正在使用常量。

final double PI = 3.1415926D;
final boolean BOOL=true;

当定义的final变量属于“成员变量”时,必须在定义时就设定它的初值,否则就会产生编译错误。

public class Part {
    //声明常量PI,此时如不对PI进行赋值,则会出现错误提示
    static final double PI=3.14;
    static int age;

    public static void main(String[] args){
        final int number;
        number =1235;
        age=22;
        //number=1236;
        System.out.println("常量PI的值为:"+PI);
        System.out.println("赋值后number的值为:"+number);
        System.out.println("int型变量age的值为:"+age);
    }
}