java程序的基本结构_Java基础知识(三) Java程序基本结构

1、一个简单的示例

下面是一个简单的Java程序

pubic class Demo{

public static void main(String[] args){

System.out.println("Hello, World!");

}

}

这个程序的执行结果是在控制台上打印出"Hello,World!",从这个简单的程序,我们可以分析一下Java程序的基本结构

关键字public被称为修饰符(access modifier),它用于控制程序的其他部分对这段代码(从public后面跟着的第一个'{'到第一个'}')的访问级别

关键字class这段程序的所有内容都包含在类中

class后面跟着的'Demo'是类名。Java中的类名的命名规则为:首字母以字母开头(一般是大写),后面可以跟字母和任意数字与'_'组合,长度不限,但是不能使用Java的保留字,建议在类命名时使用驼峰命名。

源代码的文件名强烈建议与类名相同(基本所有的IDE都是这样做的)。

static是静态修饰符,被标识的方法是静态的方法(更多细节后面再讲)。

main方法(或称为函数)是程序的入口函数,根据Java语言规范,main方法必须声明为public(虽然在Java虚拟机规范中并没有要求main方法一定是public,但是并不是所有的Java解释器都可以执行非public的main方法),此外main方法必须是静态的。

void用于表示该方法不需要返回值。

'{'和'}'分别用于标记代码的开始和结束。

当运行编译改程序时,Java虚拟机将从这个类的main方法开始执行,而Demo中main方法使用了System.out对象并调用了println方法,可以看出Java调用方法的语法:object.method(parameters),当然方法也可以没有参数,这依据方法的声明而定。

在这个方法调用中,传入的参数是一个字符串'Hello,World!'。

2、注释

注释的主要用于阐述代码的意图和执行逻辑、执行结构以及一些其他的信息。Java的注释不会出现在.class文件中,只存在与.java文件中,因此我们可以根据自己的需要添加注释,不必担心代码膨胀问题。注释的格式有三种:

//text:这是最常用的一种,被其注释的内容从"//"后到行末尾,也称为单行注释。

/* text */:多行注释,text即为被注释的内容。

/** text */:文档注释,这种注释可以用于自动生成文档(使用javadoc命令)。

3、数据类型

之前我们提到过Java是强类型语言,也就是说我们必须为每一个变量声明一种类型。Java的数据类型可分为两种:基本数据类型和引用数据类型。在Java中有8中基本数据类型(primitive type):

a、整数型:

byte 占 1个字节(8个bit) 范围-128——127

short 占 2个字节(16bit) 范围-2^15——2^15-1

int(默认) 占 4个字节(32bit) 范围-2^31——2^31-1

long 占 8个字节(64bit) 范围-2^63——2^63-1(超int范围時在後面加l,最好寫大L,小l与1太像容易混淆)

b、浮点型:(小数)

float单精度 占 4个字节(32bit) 3.4E-38——3.4E+38(书写时在后面加f,如1.2f)

最多精确表示7位小数

float的数据范围比long大,两者底层存储结构不同

IEEE 754 规定

float:从左往右

第1位代表符号位,

第2-9位代表指数位,0-255,0代表0,255代表无穷大,1-254都減去127, 变为 -126——127

第9-32位代表尾数位

SEEE EEEE EMMM MMMM MMMM MMMM MMMM MMMM(signl是符号位,f是23bit的小数部分,exponent是指数部分)

最后結果:(-1)^(sign)*1.f*2^(exponent)

double双精度(默认) 占 8个字节(64bit) 范围最多精确表示15位小数

long double 占16个字节(128bit)

c、字符型:

char 占 2个字节(16bit) 范围

d、布尔型:

boolean 沒有明确指定的大小(理论上占八分之一个字节),因为一個开关就可以決定true和false(书写時也可在后面加,但一般不加)

4、变量

在Java中,每一个变量属于一种类型(type。在声明变量时要指定类型),示例:

byte a = 12;

short b = 12;

int x=(int)(9.99L);//强制类型转换

int c, w, r = 12;//一条语句可以定义多个变量

long d = 2123453553345345445l;

float e = -9.0f;

double f = 12.2;

char g = 'w';

boolean h = true;

注意,在声明一个变量之后必须使用赋值对变量进行显式初始化,不能使用未初始化的变量(无法通过类型校验)

int var;

var=1;//初始化

5、常量

Java中常量可分为两种:字面值常量和自定义常量

字面值常量:

字符串常量 用""括起来的内容

整数常量 所有整数

小数常量 所有小数,操作小数有一定的弊端,小数位不够精确(float和double的特殊数据存储结构)

字符常量 用单引号括起来的内容,只能放单个数字,字母或符号(单个汉字也可以)

布尔常量 只有true和flase

枚举常量 enum 枚举类型名{常量1,常量2,常量3,.......};

空常量 null

枚举类型的使用:

enum Size{SMALL,MEDIUM,LARGE};

Size s=Size.MEDIUM;

自定义常量:被final关键字修饰的变量

final int A=1;

final表示这个变量只能被赋值一次,且被赋值之后就不能更改了,一般来说常量名使用大写(注意const是Java的保留字,但是目前并没有被使用)

6、运算符

运算符:对常量和变量进行操作的符号。Java的运算符与C基本一致(运算符的优先级别也和C一致,在此不再赘述):

运算符:对常量和变量进行操作的符号

a、算术运算符:一元运算符、二元运算符

+ ,- ,*,/,%,++, --

++、--:都是单独使用

整数相除只能得到整数,如果想得到小数,可以把数据(至少其中一个)变成浮点型

%:任何正整数%2结果不是0就是1,可以用来切换条件

b、 赋值运算符

基本赋值运算符:=

扩展的赋=值运算符:+=,-=,/=,%=(自动类型转换)

c、关系运算符

==,<=,,>=,!=(结果为布尔类型)

d、逻辑运算符

&,|,^,!

&&、||具备短路的效果(左边为false右边就不执行了;左边为true右边就不执行了)

e、位运算符

&、|、^、~(按位取反)、>>>(左补齐0)、>>(保留符号位)、<

a^b^b =a;

f、三元运算符

(关系表达式)?表达式1:表达式2

运算符示例,你可以运行一下:

System.out.println(-13%5);//结果-3

System.out.println(b1++);//结果2

System.out.println(++b2);//结果4

int x=5,y=6,z=8;

x=x++ + ++x + x+12;// ++、--:放在操作数前面时,先自增自减再参与运算;在操作数后面时,先运算再自增或自减

System.out.println(x);

System.out.println(!true);

System.out.println(x>2&x<32);

System.out.println(x>2|x<12);

System.out.println(x>2^x<30);//异或,相异为真

System.out.println(2>3?1:2);

//不使用第三方变量交换变量值

x=x+y;

y=x-y;

x=x-y;//有可能会超出数据范围,损失精度

x=x^y;

y=x^y;

x=x^y;//

//其实还是使用第三个变量的最好。。。

7、数学函数与常量

Math类包含了各种各样的数学函数,例如:

double x=Math.sqrt(4);//4^2

如果你需要在程序中频繁使用Math这个类,可能会对在方法前加上Math感到厌烦,此时你可以这样做:

import static java.lang.Math.*;

此时在程序中,你可以直接调用:

System.out.println("4^2"+sqrt(4));

更多细节可以了解一下静态导入。

参考书目:

*Core.Java.Volume.I.Fundamentals.10th.Edition.2016.1*

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值