Java基础语法--Java编程

时间:2015-7-28 9:17:20

  核心提示:1、Helloworld.java众观几乎每本Java书籍,基本都是以HelloWorld开头的,那我就借鉴一下老前辈们的习惯,用HelloWorld开个好头!(注意我所写程序的格式,要养成写标准格式...

1、 Helloworld.java

众观几乎每本Java书籍,基本都是以HelloWorld开头的,那我就借鉴一下老前辈们的习惯,用HelloWorld开个好头!(注意我所写程序的格式,要养成写标准格式程序的习惯,这样不但你调试的时候方便,别人看起来也方便,也更能显示出你写程序水平的高深)

该例子中的双斜杠表示注释,和C语言一样。

public class HelloWorld {

public static void main(String[] args) {//其中[]也可以写在args后面,args也可以随便写成其他字母,例如asdfjkl,这里args只是一个形式参数,所以可以随便改变

System.out.println("HelloWorld!");//println表示输出HelloWorld后换行

System.out.println(123456789);//print表示输出后不换行

}

}

//Java中注释的两种方式如下:

/*

asjdkfjlwe

asdjfkljl

*/

 

/*

*sajdflk

*ksdljfkl

**/

将该程序写入一个文件,必须命名为HelloWorld.java,这是语法规定,否则运行出错。运行前先要进入该文件所在的文件夹,例如我的这个HelloWorld.java文件存在E盘里面的java文件夹里面,运行时就要先输入E:进入E盘,再输入cd java在E盘里面找到java这个文件夹。接着运行程序,首先进行编译,其指令为javac HelloWorld.java,编译成功后开始运行,其指令为java HelloWorld。具体操作和运行结果如图1-1所示。

 

                         图 1-1

2、标识符

(1)Java对各种变量、方法和类等要素命名时使用的字符序列称为标识符。凡是自己可以起名字的地方都叫标识符,都遵守标识符的规则。

(2)Java标识符命名规则:

u 标识符由字母、下划线、美元符或数字组成。

u 标识符应以字母、下划线、美元符开头。

u 标识符大小写敏感,长度无限制。

(3)不成文规定:Java标识符选取应注意见名知意且不能与Java语言的关键字重名。

标识符举例:

合法标识符

非法标识符

HelloWorld

class

DataClass

DataClass#

_123

12.3

$xx

Hello World

3、关键字

(1) Java中一些赋以特定的含义,用作专门用途的字符串称为关键字。(大多数编辑器如UtralEdit和EditPlus,都会将关键字用特殊方式标出)

(2) 所有Java关键字都是小写字母。

(3) goto和const虽然从未使用,但也被作为Java的关键字保留。

(4) Java关键字一览表:

abstract

default

if

private

this

boolean

do

implements

protected

throw

break

double

import

public

throws

byte

else

instanceof

return

transient

case

extends

int

short

try

catch

final

interface

static

void

char

finally

long

strictfp

volatile

class

float

native

super

while

const

for

new

switch

null

continue

goto

package

synchronized

 

4、 常量

Java的常量值用字符串表示,区分为不同的数据类型:

u 整型常量如123

u 实型常量如3.14

u 字符常量如’a’

u 逻辑常量如true、false

u 字符串常量如”HelloWorld”

注:要区分字符常量和字符串常量,字符常量用单引号,字符串常量用双引号。

5、 变量

(1) Java变量是程序中最基本的存储单元,其要素包括变量名、变量类型和作用域。

(2) Java程序中每个变量都属于特定的数据类型,在使用前必须对其声明。例如:

int i = 100;

float j = 3.14f;(在Java中声明float类型时常量后面必须带f,否则编译器会将该变量当成double类型来处理)

double h1,h2,h3 = 3.14;

String s = “helloworld”;

(3) 从本质上讲,变量其实是内存中的一小块区域,使用变量名来访问这块区域,因此, 每个变量使用前必须先要声明,然后必须进行复杂来填充内容,最后才能使用。

(4) 变量的分类

u 按被声明的位置分:

l 局部变量:方法或语句块内部定义的变量,方法体内部是指与方法对应的大括号内部。

l 成员变量:方法外部、类的内部定义的变量。

u 按所属数据类型分:

l 基本数据类型变量。

l 引用数据类型变量。

a) 基本数据类型

a_1逻辑型boolean

boolean类型适用于逻辑运算,一般用于程序流程控制,其只允许取值true或false,不可以取0或非0的整数代替true或false,这一点和C语言不同。

a_2字符型char

u 字符型常量为用单引号括起来的单个字符,例如:

char a = ‘b’,char c = ‘国’

u Java字符采用Unicode编码,每个字符占两个字节,因而可用十六进制编码形式表示。例如:

char c = ‘\u0061’  其中Unicode是全球语言统一编码。

u Java语言中还允许使用转义字符‘\’来将其后的字符转变为其它的含义,例如:

char e = ‘\n’  其中’\n’代表换行符

a_3 整数类型

u Java各整数类型有固定的表示范围和字段长度,其不受具体操作系统的影响,以保证Java程序的可移植性。

u Java语言整型常量的三种表示形式:

l 十进制整数,如123,0,325

l 八进制整数,要求以0开头,如0123

l 十六进制数,要求以0x或0X开头,如0x123

u Java语言的整型常量默认为int型,声明long型常量可用在后面加‘l’或‘L’, 如:int i1 = 500

long i2 = 333333333333L,后面必须加L,否则出错。

u Java整型的适用范围如下表所示:

 

类型

占用存储空间

表数范围

byte

1个字节

short

2 个字节

int

4 个字节

long

8 个字节

a_4 浮点类型

a) 与整数类型类似,Java浮点类型有固定的表数范围和字段长度,不受平台影响。

b) Java浮点类型常量有两种表数形式:

i. 十进制数形式,如3.14、314.0、.314

ii. 科学计数法形式,如3.14e2、3.14E2、100E-2

iii.Java浮点型常量默认为double型,如要声明一个常量为float型,则需在数字后面加f或F,如:double d = 123.456

float f = 123.456f其中后面必须加f或F,否则出错。

u Java浮点型的适应范围如下表所示:

类型

占用存储空间

表数范围

float

4 个字节

-3.403E38~3.403E38

double

8 个字节

-1.798E308~1.798E308

b) 基本数据类型转换

b_1 boolean类型不可以转换为其它数据类型。

b_2 整型、字符型、浮点型的数据在混合运算中相互转换,转换时遵循以下原则:

u 容量小的类型自动转换为容量大的数据类型,数据类型按容量大小排序如下:

byte,short,charàintàlongàfloatàdouble

其中byte、short、char之间不能相互转换,他们三者在计算时首先会转换为int类型。

u 容量大的数据类型转换为容量小的数据类型时要加上强制转换符,但可能造成精度降低或溢出,使用时要格外注意。

u 有多中类型的数据混合运算时,系统首先自动将所有数据转换成容量最大的那种数据类型,然后再进行计算。

u 实数常量默认为double。

u 整数常量默认为int。

b_3 类型转换举例TestConvert.java如下:

public class TestConvert.java {

    public static void main(String args[]) {

        int i1 = 123; 

        int i2 = 456;

        double d1 = (i1+i2)*1.2;//系统将转换为double型运算

        float f1 = (float)((i1+i2)*1.2);//需要加强制转换符

        byte b1 = 67; 

        byte b2 = 89;

        byte b3 = (byte)(b1+b2);//系统将转换为int型运算,需要强制转换符

        System.out.println(b3);

        double d2 = 1e200;

        float f2 = (float)d2;//会产生溢出

        System.out.println(f2);

        float f3 = 1.23f;//必须加f

        long l1 = 123;

        long l2 = 30000000000L;//必须加L

        float f = l1+l2+f3;//系统将转换为float型计算

        long l = (long)f;//强制转换会舍去小数部分(不是四舍五入)

    }

}

其运行结果如下:

 

c) 运算符

Java语言支持如下运算符:

u 算术运算符:+,-,*,/,%,++,--

u 关系运算符:>,<,>=,<=,==,!=

u 逻辑运算符:!,&,|,^,&&,||

u 位运算符:&,|,^,~,>>,<<,>>>

u 赋值运算符:=

u 扩展赋值运算符:+=,-=,*=,/=

u 字符串连接运算符:+

c_1 自加和自减运算符

举例如下:

public class Test {

public static void main(String args[]) {

int i1 = 10, i2 = 20;

int i = (i2 ++);//先将i2的值20赋给i,然后i2再自加1

System.out.print("i = " + i);

System.out.println(" i2 = " + i2);

i = (++ i2);//i2先自加1,然后再将结果赋给i

System.out.print("i = " + i);

System.out.println(" i2 = " + i2);

i = (--i1);//i1先自减1,然后再将结果赋给i

System.out.print("i = " + i);

System.out.println(" i1 = " + i1);

i = (i1 --);//先将i1的值赋给i,然后自减1

System.out.print("i = " + i);

System.out.println(" i1 = " + i1);

}

}

其运行结果如下所示:

 

c_2 逻辑运算符:

u 逻辑非 !

逻辑与 &

逻辑或 |

逻辑异或 ^

短路与 &&

短路或 ||

u 逻辑运算一览表

a

b

!a

a&b

a|b

a^b

a&&b

a||b

true

true

false

true

true

false

true

true

true

false

false

false

true

true

false

true

false

true

true

false

true

true

false

true

false

false

true

false

false

false

false

false

u 逻辑运算实例如下:

public class Test {

public static void main(String args[]) {

boolean a,b,c;

a = true;

b = false;

c = a & b;

System.out.println(c);

c = a | b;

System.out.println(c);

c = a ^ b;

System.out.println(c);

c = ! a;

System.out.println(c);

c = a && b;

System.out.println(c);

c = a || b;

System.out.println(c);

}

}

其运行结果如下所示:

 

c_3 赋值运算符和扩展赋值运算符

u 当“=”两侧数据类型不一致时,可以使用默认类型转换或使用强制类型转换原则进行处理。注:可以将整型常量直接赋给byte、short、char等类型变量,而不需要进行强制类型转换,只要不超出其表示范围。

u 扩展赋值运算符如下表所示:

运算符

用法举例

等效的表达式

+=

a += b

a = a + b

-=

a -= b

a = a – b

*=

a *= b

a = a *b

/=

a /= b

a = a / b

%=

a %= b

a = a % b

c_4 字符串连接符

u “+”除了用于算术加法运算以外,还可以用于对字符串进行连接操作。如:

int i = 1 + 3;

String s = “Hello” + “World”

u “+”运算符两侧的操作数中只要有一个是字符串类型,系统会自动将另一个操作数转换为字符串然后再进行连接。

c_5 表达式

u 表达式是符合一定语法规则的运算符和操作数的序列。

u 表达式的类型和值

l 对表达式中操作数进行运算得到的结果称为表达式的值。

l 表达式值的数据类型即为表达式的类型。

u 表达式的运算顺序

l 应按照运算符的优先级从高到低的顺序进行。

l 优先级相同的运算符按照事先约定的结合方向进行。

u 表达式优先级如下所示:

c_6 三目条件运算符

u 三目条件运算符格式: x ? y : z

u 其中x为boolean类型表达式,先计算x的值,若为true,则整个三目运算结果为表达式y的值,否则整个运算结果为表达式z的值。

6、 语句

6.1 if语句和switch语句

d_1_1 if语句包括:

u if

u if……else

u if……else if

u if……else if ……else if ……else

6.1.2 if语句举例如下:

public class TestIF {

public static void main(String[] args) {

int i = 20;

if(i < 20) {

System.out.println("<20");

System.out.println("<20");

} else if (i < 40) {

System.out.println("<40");

} else if (i < 60) {

System.out.println("<60");

} else 

System.out.println(">=60");

}

}

6.1.3  switch语句

u swith () {

 case xx :

     case xx :

……

 default:

……

    }

注:case语句后一般要加break语句;多个case可以合并在一起;default可以省略,但不推荐这样做;Java中swith语句只能探测int类型值。

u switch语句举例:

public class TestSwitch {

public static void main(String[] args) {

int i = 8;

switch(i) {

case 8 :

case 3 :

case 2 :

System.out.println("C");

break;

case 9 :

System.out.println("D");

break;

default:

System.out.println("error");

}

}

}

运行结果:

 

6.2  for循环语句

d_2_1 for循环语句形式:

for(表达式1; 表达式2; 表达式3){语句; … ;}

其执行过程:首先计算表达式1,接着执行表达式2,若表达式2的值为true,则执行语句接着计算表达式3,再判断表达式2的值;依次重复执行下去,直到表达式2的值为false。

注:for语句的三个表达式都可以省略。

6.2.2 for循环语句举例:

public class Test {

public static void main(String args[]) {

long result = 0;

long f = 1;

for (int i = 1; i <= 10; i ++) {//循环十次

f = f * i;

result += f;

}

System.out.println("result = " + result);

}

}

运行结果:

 

6.3  while语句和do-while语句

6.3.1 while语句形式: 

while(逻辑表达式) {语句; … ;}

执行过程:先判断逻辑表达式的值,如果等于true则执行其后面的语句,然后再次判断条件并反复执行,直到条件不成立为止。

6.3.2  do-while语句

do-while语句形式:

do{语句; …;}while(逻辑表达式);

执行过程:先执行语句,再判断逻辑表达式的值,如果等于true再执行语句,否则结束循环。

6.3.3 while语句和do-while语句举例:

public class TestWhile {

public static void main(String[] args) {

int i = 0;

//while语句举例

while(i < 10) {

System.out.println(i);

i++;

}

//do-while语句举例

i = 0;

do {

i++;

System.out.println(i);

} while(i < 10);

}

}

运行结果:

 

6.4  break语句和continue语句

6.4.1 break语句

break语句用于终止某个语句块的执行。用在循环体语句中,可以强行退出循环。

break语句举例:

public class TestBreak {

public static void main(String args[]) {

int stop = 5;

for(int i = 1; i <= 10; i ++) {

if(i == stop) break;

System.out.println("i = " + i);

}

}

}

运行结果:

 

6.4.2 continue语句

continue语句用在循环体内,用于终止某次循环过程,跳过循环体中continue语句下面执行的循环,开始下一次循环过程。

continue语句举例:

public class TestContinue {

public static void main(String args[]) {

int skip = 5;

for(int i = 1; i <= 10; i ++) {

if(i == skip) continue;

System.out.println("i = " + i);

}

}

}

运行结果:

 

Java免费学习   Java自学网 http://www.javalearns.com

关注微信号:javalearns   随时随地学Java

或扫一扫

随时随地学Java

作者:不详 来源:网络
    你是从哪里知道本网站的?
  • 网友介绍的
  • 百度搜索的
  • Google搜索的
  • 其它搜索过来的
  • 网址输错了进来的
  • 太忙了不记得了
共有评论 0相关评论
发表我的评论
  • 大名:
  • 内容:
  • java学习网(www.javalearns.com) © 2014 版权所有 All Rights Reserved.
  • Email:javalearns@163.com 站长QQ:1356121699 晋ICP备14003680号-3
  • java学习网部分内容来自网络或网友发布,如侵犯了您利益,请发邮件至:javalearns@126.com,我们尽快处理!
  • Java学习网
  • 网站统计
  • 晋公网安备 14042902000001号