JAVA零基础入门

来源:互联网 发布:picsart素材软件 编辑:程序博客网 时间:2024/04/30 10:10

JAVA入门知识点总结

1.JAVA的特点:

1简单易用、完全面向对象;

2与平台无关性、可扩展性强;

3可移植性高、支持分布式编程;

4健壮、安全可靠并性能优异;

5支持多线程开发技术;

6支持动态开发。

2.JVM:Java虚拟机(JVM是Java实现跨平台的基础)。

Java的源程序(*.java)                                 编译(命令:java+文件名.java)                        Java字节码(*.class  编译时自动形成,与源程序名一致)             运行(命令:java+源程序的文件名)          JVM(Windows、Linux)

        开发工具,Javac及基础核心类

JDK

        运行环境,Java及基础核心类

3.编写第一个Java程序:

Java源文件扩展名为:”.java”

一个源文件中最好只有一个java类,但是可以包含多个类

public修饰的类,文件名与类名必须一致(包括大小写)

被运行的类中需要有一个方法:                              

public static void main(String[ ] args){}

一个源文件中最多有一个public修饰的类

例如:public class  Test{

    public  static void  main(String  args[]){

         System.out.println(“这个编写的第一个java程序!!!”);
}

}

在运行程序之前先配置环境变量:

path变量值为:JDK安装目录下\bin;

classpath变量值为:JDK安装目录下\lib  .;JDK安装目录下\lib\tools.jar

在dos命令窗口中输入以下命令进行运行:

编译命令:javac Test.java

运行命令:java Test

生成文档命令:javadoc Test.java

4.Java编程规范

A、命名规定

包 :包名应该是小写的名词。

如:package shipping.objects

类:类名应该是名词,大小写混合,每个单词的首字母大写。

如:class AccountBook

接口:接口名的大小写应该与类名一样。

如:interface Account

方法:方法名应该动词,大小写混合,首字母小写。每个方法名中,以大写字母区分单词。限制使用下划线。

如:balanceAccount( )

变量:所有的变量应该是大小写混合,首字母小写。由大写字母区分单词。限制下划线的使用。

如:currentCustomer

常数:基本类型常数应该是全部大写的由下划线区分的单词。

如:HEAD_COUNT、MAXIMUM_SIZE、MIN_VALUE

B、程序主体结构规定

控制结构:所有语句,即使是一条语句,如果是某控制结构的一部分,都要使用大括号({ })括起来。

空格:在任意行上只放置一条语句,并且使用2或4个空格缩进使代码更易读。

Java代码的位置:所有代码都存在于一个类里

例如:修饰符 class 类名

              {

程序代码

              }

注意:

Java是严格区分大小写的;

功能执行语句以(;)结束,这个分号必须是英文输入法中的(;);

连续的字符串不能换行,可使用(+)连接。

5、Java代码的注释

作用:

1)、解释程序中某些部分的作用和功能,提高程序的可读性。

2)、可以使用注释暂时屏蔽某些语句,在程序调试时使用。

注释的形式:

1)、单行注释

int c = 10; // 定义一个整型

2)、多行注释

/*

int c = 10; // 定义一个整型

int x = 5;

*/

 注意:/*…*/中可以嵌套”//”注释,但不能嵌套”/*…*/”。

3)、文档注释

“/** ...............*/”。

6、Java中的标识符

1)、变量,方法,类和对象的名称都是标识符,程序员需要标识和使用的东西都需要标识符。

2)、在Java语言里标识符以字母或下划线、$符号开头,后面字符可以是字母、数字、下划线、$符号。(其他符号都不能用来命名标识符)

3)、标识符对字母大小写非常敏感,必须区分大小写,但是没有长度限制。

4)、关键字不能用作标识符命名。

5)、标识符中不能包含空格。

6)、标识符是由Unicode字符组成的,因此可以使用汉字作为标识符(不推荐,尽量不用);7、关键字

Java中一些赋以特定的含义、并用做专门用途的单词称为关键字,也可叫保留字。关键字不能作为普通的标识符使用。

所有Java关键字都是小写的,IF、THIS、NEW等都不是Java关键字;

goto和const虽然从未使用,但也作被为Java保留关键字;

关键字含义说明:

                boolean:布尔值

                 byte:字节                           false:布尔值假

                  char:字符类型                 字面值   null:空

                  int:整型                            true:布尔值真

基本数据类型

                  long:长整型

                 short:短整型                           const

                  float:单精度型            保留字

                  double:双精度型                         goto

                  void:无类型

                                                 

           abstract:抽象                             

            private:私有                                 

            public:公有

            static:静态

  修饰符    final:定义常量

            native:Java调用别的语言(C++)程序时使用

            volatile:短暂

            transient:短暂

            synchronized:处理线程是使用

              try:异常处理                                    break:退出循环

                catch:捉异常                                   case:流程控制语句

   异常处理    finally:无论有没有                               continue:循环继续

              throw:抛出异常                                 default:缺省

               throws:抛出异常                                 do:循环语句

                                              控制语句        while:循环语句

            class:类                                          if:条件语句

              extends:继承                                     else:条件语句

              implements:实现接口                              for:for循环语句

             instanceof:引入包                                 return:返回

             interface:判断一个对象是否属于某个类              switch:条件判断

面向对象      new:创建新对象

               package:包

               super:超类

               this:自己

 

8、java基本数据类型

                                    整数类型(byte,short, int, long)

 

 

                           数值型     浮点类型(float, double)

 

 


            基本数据类型       字符型(char)

          

                           布尔型(boolean)

 

数据类型                      类(class)

 

                             接口(interface)               

         引用(复合)数据类型

                                 数组

                                               

                                 字符串(String)

 

基本数据类型包括:整型、浮点型、字符型、逻辑型(布尔型)。

数据类型

名称

位长

默认值

取值范围

布尔型

boolean

1

false

true,false

字节型

byte

8

0

-128~127

字符型

char

16

‘\u0000’

‘\u0000’~‘\uffff’

短整型

short

16

0

-32768~32767

整型

int

32

0

-2147483648~2147483647

长整型

long

64

0

-9223372036854775808~9223372036854775807

浮点型

float

32

0.0

±1.4E-45~±3.4028235E+38

双精度型

double

64

0.0

±4.9E-324~±1.7976931348623157E+308

注意:

整数类型数据用于描述一个一定大小范围内的整数。

浮点类型数据用于描述一个范围很大的实数;

浮点类型数据有一定的精度限制。

字符类型为char,它用于表示一个字符,使用单引号’在 Java中char类型为16字节,采用Unicode表示。

逻辑类型为boolean,它用于表示真和假;boolean类型只有两个值真(true), 假(false);

boolean类型有自己的运算,不能参与其他数据类型之间的运算。

9、常量

常量就是程序里持续不变的值,是不能改变的数据。

声明常量的格式如下:

final 类型 常量名[,常量名]=值;

Java中的常量包括整型常量、浮点型常量、布尔常量、字符常量等。

整型常量:

十进制:不能以0开头,多个0~9之间的数字

十六进制: 以0x或0X开头  0x8a   0X56d

八进制:必须以0开头   034    0376

长整型:必须以L结尾  87L   345L

浮点数常量:

float型:2e3f   0.6f  

double型:4.1d   1.23d

布尔常量:true 和 false

字符常量: ‘a’   ‘5’  

字符串常量:“hello”    “8698”    “\nmain”  转义字符\n表示换行

null常量:null,表示对象的引用为空。

10、变量

在java语言中存储一个数据信息,必须将它保存到一个变量中。变量在使用前必须有定义,即有确定的类型和名称。

声明变量的语法

类型  变量名[, 变量名][=初值];

例如:int  i; char  c;  float a,  b,  c;

变量的声明有三种形式:

1、声明变量。

例如: int i;

2、变量赋值。在变量赋值之前要先声明变量。

例如:int i;

      i=5;

3、变量的初始化。

例如:int i = 8;

11、基本数据类型之间的兼容性

基本数据类型之间的转换:“小”的数据类型可以直接赋给“大”的数据类型。“大”的不能赋值给“小”的数据类型(会出现编译错误)。

数据类型大小关系如下:

整数类:long >int > short > byte  

浮点型:double >float

整型数据类型可以赋给浮点数据类型比如

float      short       float     int   float      long    double   long   

注意:

char 可以赋给long和int ,但是不能赋给short 和byte(编译错误) 。

char 可以赋给float和double。

当整数型常量被声明为long类型时,只能赋值给long型变量。

当整数型常量在0~65535之间时,可以被赋值给char型变量。

char型常量可以被赋值给整数类变量,只要整数变量的类型可以容纳char型文字常量所表示的数值。

浮点型常量默认为double型,而double型常量不能赋值给float型变量。

boolean与其他数据类型没有兼容性。

12、数据类型转换

1、自动类型转换(隐式类型转换)

需要同时满足两个条件:

1)、两种类型彼此兼容

2)、目标类型的取值范围要大于源类型

2、强制类型转换(显示类型转换)

当两种类型不兼容,或目标取值类型范围小于源类型时,自动类型转换无法进行,需要进行强制类型转换。

数据类型强制转换的格式为:

(数据类型)数据表达式;

例如:int i = 5;  byte b = (byte)i;

13、变量的作用域

变量的作用域指一个变量起作用的范围,它决定了一个变量何时可以访问、何时不可以访问。Java中任何变量的作用域都从该变量声明之后开始,并且只在该声明的语句块中使用,也就是该变量只能在声明它的那个花括号{}中使用。

变量有分为成员变量和局部变量。

成员变量:在类中声明的变量称为成员变量,又叫全局变量。

使用范围:通常在类开始处声明,可在整个类中使用。

局部变量:在方法或块(块由两个花括号)中声明的变量称为局部变量。

使用范围:从声明处开始到它所在方法或块的结束处。

{
int x = 4;
//这之间只有x可以访问
int y = 1;
//x和y可以访问
{
int z = 2;
//x、y、z都可以访问
z = 5;
}
x = 4;
//只有x和y可以访问,不可以访问z

14、Java中的运算符

算术运算符、关系运算符、赋值运算符、逻辑运算符、位运算符、条件运算符

1)、算术运算符

运算符

运算

范例

结果

+

正号

+3

3

-

负号

b=4;-b;

-4

+

5+5

10

-

6-4

2

*

3*4

12

/

5/5

1

%

取模(求余)

5%5

0

++

自增(前)

a=2;b=++a;

a=3;b=3;

++

自增(后)

a=2;b=a++;

a=3;b=2;

--

自减(前)

 a=2;b=--a;

a=1;b=1;

--

自减(后)

a=2;b=a--;

a=1;b=2;

+

字符串相加

“he”+“llo”

 “hello”

两个整数之间的相除(/)运算结果还是整数,其结果是除的结果的整数部分。

例如:5/2结果为2

要获得实数结果,运算中至少一个浮点数。

例如:5/2.0结果为2.5

2)、关系运算符

运算符

运算

范例

结果

==

相等于

4==3

false

!=

不等于

4!=3

true

小于

4<3

false

大于

4>3

true

<=

小于等于

4<=3

false

>=

大于等于

4>=3

true

3)、赋值运算符

运算符

运算

范例

结果

=

赋值

a=3;b=2;

a=3;b=2;

+=

加等于

a=3;b=2;a+=b;

a=5;b=2;

-=

减等于

a=3;b=2;a-=b;

a=1;b=2;

*=

乘等于

a=3;b=2;a*=b;

a=6;b=2;

/=

除等于

a=3;b=2;a/=b;

a=1;b=2;

%=

模等于

a=3;b=2;a%=b;

a=1;b=2;

4)、逻辑运算符

运算符

运算

范例

结果

&

AND(与)

false & true

false

|

 OR(或)

false | true

true

^

XOR(异或)

false ^ true

true

!

NOT(非)

!true

false

&&

AND(短路与)

false && true

false

||

OR(短路或)

false || true

true

在使用短路与(&&)时,如果第一个操作数(或表达式)为“假”,则不再计算第二个操作数(或表达式),直接返回“假”。

在使用短路或(||)时,如果第一个操作数(或表达式)为“真”,则不再计算第二个操作数(或表达式),直接返回“真”。

逻辑运算符只能用于布尔(boolean)类型之间;其结果值为布尔(boolean)类型。

5)、位运算符

运算符

运算

计算规则

&

按位与

只有参加运算的两位都为1,‘&’运算的结果才为1,否则为0。

|

按位或

只有参加运算的两位都为0,‘|’运算的结果才为0,否则为1。

^

按位异或

只有参加运算的两位不同,‘^’运算的结果才为1,否则为0。

<< 

左移位

左移指定位数,右边补0。

>> 

右移位

右移高位是0,左边补0;高位是1,左边补1。

>>> 

无符号右移位

左边补0。

按位取反

1取反是0,0取反是1。

位运算符只可用于整数类型、char类型,不可应用于浮点类型。

6)、条件运算符

条件运算符是一个三目运算符,也是唯一的一个三元运算符,符号为“? :”,在程序中能实现简单的判断功能。

语法格式:

表达式1?表达式2:表达式3

其中表示1是一个布尔表达式,如果表达式1结果为true,则执行表达式2,否则执行表达式3。

举例说明:求a,b的最大值。

int a=4,b=6,max;

max=a>b?a:b;//将a和b中的较大值赋给max

15、Java中的控制语句

(1)、if(表达式)......else.......条件语句;

(2)、for(表达式).......       循环语句;

(3)、while(表达式).......     循环语句;

(4)、do.....while(表达式)......循环语句;

(5)、switch                多分支选择结构;

(6)、continue              结束本次循环语句;

(7)、break                终止执行switch或循环语句;

(8)、return               从方法返回语句。

1、条件语句

分为四种:

  单分支条件语句

语法格式为:if(条件表达式){

                语句或语句块;

}

  二分支条件语句

语法格式为:if(条件表达式){

                语句或语句块1;

}else{

   语句或语句块2;

}

  嵌套条件语句

语法格式为:if(条件表达式){

                if(条件表达式){

                  语句或语句块;

}

}else{

   语句或语句块2;

}

  多分支条件语句

语法格式为:if(条件表达式1){

                语句或语句块1;

}else if(条件表达式2){

   语句或语句块2;

} ……

   ……

} else if(条件表达式n){

   语句或语句块n;

}else{

   语句0;

}

2、for循环语句

语法格式为:for(变量初始化表达式;循环条件表达式;迭代部分)

语句或语句块;//循环体

                  }

for循环有一个特殊的循环,叫死循环。表现形式为:

boolean  isOk = true;       或    for(;;){}

for(;isOk;){} 

for循环可以再嵌套for循环。

注意:在for循环的初始化或迭代部分,可以有多个表达式,表达式之间用逗号隔开。例如:   int count =0;

for(int a= 1,b=10;a<b;a++,b--){

   count++;

      }  共循环多少次?

3、while循环语句

语法格式为:while(循环条件表达式){

                      语句或语句块;

              }

4、do-----while循环语句

语法格式为:do{

               语句或语句块;

}while(表达式)(注意分号绝对不能省略)

 

5、switch-----case多分支选择语句

语法格式为:switch(条件表达式){

                    case 常量1:

                      语句1;

break;

case 常量2:

                      语句2;

break;

……

                    case常量N:

                      语句N;

                     break;

[default:语句;break;]

}

注意:

  条件表达式的返回值类型必须是以下类型之一:int、byte、char、short。

  case子句中的值常量N必须是常量,而且所有case子句中的值应是不同的。

  default子句是可选的。

  break语句用来在执行完一个case分支后,是程序跳出switch语句,即终止switch语句的执行。

  在一些特殊情况下,多个不同的case值要执行一组相同的操作,这时可以不用break。

6、continue结束本次循环语句

使用continue语句可以立刻重新开始下一轮的循环,而不再执行循环后面的语句。

7、break终止执行switch和循环语句

使用break语句可以立刻终止循环,开始执行循环后面的语句。

8、return从方法返回语句

return语句主要作用是退出当前方法,将程序控制转移到方法的调用者。

一般格式为: return [值或表达式];

16、方法调用语句

方法调用语句是执行对象的某个方法。

一个完整的方法调用语句由某个方法调用加上一个分号构成。

调用语法格式为:类对象名称.方法名(参数);

例如:

     System.out.println(“This is astatement call a method!”);

     调用对象System.out的println方法。

17、表达式语句

表达式语句就是由一个表达式加一个分号构成的语句。

例如常见的赋值语句:i=i+1;而i=i+1只是一个表达式。

18、空语句

空语句就是只有一个分号构成的语句。例如:  ;

19、复合语句

复合语句又叫块,由{}将一些语句括起来就构成一个复合语句。

例如:{

          a=b+c;

          t=a*100;

}

20、数组

(1)定义:是用来存储一组或多组相同类型数据的数据类型。

(2)数据类型:可以是基本数据类型(例如:数字型、字符型、布尔型),也可以是复合数据类型(例如:数组、类、字符串和接口)。

 ※数组本身就是一种复合数据类型,因此,数组的元素也可以是数组,这样就构成了二维数组和多维数组。

(3)数组作为复合数据类型,与基本数据类型最大的区别:

数组是通过引用来控制的,而基本数据类型是通过值来控制的。

1、一维数组的声明

   格式: 类型 数组名[];   或  类型[ ] 数组名;

   举例:int a[];  String[ ] b;

数组的初始化有两种方法:一种是直接初始化,另一种是动态初始化。

  直接初始化

格式: 类型  数组名[ ] = { 值1,值2,…,值n};

举例:int a[ ] ={1,2,3};      

             int b[];   b = {1,2,3};

  动态初始化:

格式

(1)声明时初始化:

    类型 数组名[ ] = new 类型[ 数组长度];

(2)声明后初始化:

类型  数组名[ ];  

            数组名 = new 类型[数组长度];

2、访问数组元素

数组元素是通过数组名和下标来访问。未被初始化的数组,不能进行访问。

格式:数组名[下标]

Java中,数组的下标从0开始,直到 <数组长度-1>结束。

获得数组的长度,通过length属性来获得。

3、数组的复制

   方法:

      System.arraycopy(源数组,源数组起始位置,目标数组,目标数组起始位置,长度);

     ★注:不管是要复制的数组,还是被复制的数组,都必须先初始化。

举例:

     int a[ ] = {1,2,3},b[ ] = new int[3];

    System.arraycopy(a,0,b,0,3); //将数组a复制到b

4、对象数组:

 举例:

//定义一个对象数组,StringBuffer是一个字符串缓存类

StringBuffer a[ ] =new StringBuffer[2];

//给对象赋值

a[0] = newStringBuffer(“Array[0]”);

a[1] = newStringBuffer(“Array[1]”);

System.out.println(“a[0]=” + a[0] + “ a[1]=” + a[1] );

a[0].append(“ is Modified”); //追加字符串

System.out.println(“a[0]=” + a[0]);

5、二维数组和多维数组

前面提到过,数组的元素也可以是数组,如果一个数组的每一个元素都是一个一维数组,这样就构成一个二维数组。

    定义格式:类型  数组名[ ][ ];  或  类型[ ][ ] 数组名;

    举例: int a[ ][];            double[ ][ ] b;

这几种定义不合法:inta[2][ ];     int b[ ][2];    int c[2][2];

二维数组的初始化:二维数组的初始化也有直接和动态初始化两种方式。

  直接初始化格式:  类型  数组名[][]= {{ 值1,值2,…,值n} ,{ 值1,值2,…,值n}....}; 

          举例:int a[ ][] = {{1,2,3},{4,5,6},{7,8,9}};

  动态初始化格式

1类型 数组名=new 类型[长度1][长度2];   长度1表示行,长度2表示列。

        举例:inta[][]=new[3][5];

2类型 数组名=new 类型[长度1][];

数组名[0]=new 类型[长度20];

数组名[1]=new 类型[长度21];

……

数组名[长度1-1]=new 类型[长度2n];

举例:int a[][];

      a=new int[3][];

a[0]=new int[5];

      a[1]=new int[8];

      a[2]=new int[6];

6、二维数组的应用

举例:两个矩阵相乘的例子。

//声明并初始化数组

       int a[ ][ ] = {{8,13},{4,7},{5,2}};

       int b[ ][ ] = {{3,4,11},{6,1,10}};

       int result[ ][ ] = new int[3][3];

       int i,j,k;

       //通过嵌套循环实现矩阵相乘的运算

       for(i=0;i<a.length;i++){

            for(j=0;j<b[0].length;j++){

                     result[i][j] = 0;

                    for(k=0;k<b.length;k++){

                           result[i][j] +=a[i][k] * b[k][j];

                     }

               }

         }

       //打印结果

       System.out.println(“The resultof a * b is : ”);

       for(i=0;i<result.length;i++){

            for(j=0;j<result [i].length;j++){

                   System.out.print(result[i][j]+ “   ”);

             }

             System.out.println( ); //换行 }

7、一维数组的应用

例1:将整数序列{3,15,28,11,34,78,95,27,18}首末颠倒过来。

int a[ ] ={3,15,28,11,34,78,95,27,18};

      int i, length, temp;

      length = a.length;

      for(i=0;i<(length/2);i++){

        //以下将数组元素a[i]和a[length-1 - i]的值互换

        temp= a[i];

             a[i] = a[length -1 –i];

             a[length -1 –i] = temp;

      }

      for(i=0;i<length;i++){

        System.out.print(a[i]+ “   ”);

     }

例2:从数据:32  25  78 69  13  97  86 38  62  9 中找到数据97所在的位置。

『用顺序查找(线性查找)方法编写程序』。

//声明并初始化数组

int  a[ ] = {32,25,78,69,13,97,86,38,62,9}; 

int index = -1,i;

//逐个元素与97相比较,找到则退出循环,否则继续

for(i=0;i<a.length;i++){

  if(a[i] == 97){

           index = i;

       break;

  }

}   

if(index == -1){ //表示该数不存在

  System.out.println(“ 97这个数不存在!”);

}else{

  System.out.println(“97这个数的下标是: ” + index);

}

例3:将数据:37   28   51  13   64为例,用『冒泡法』进行升序排列。 

下面编写程序代码:(冒泡法)

     int a[ ] = {37,28,51,13,64};

     int i, j, n, temp;

     n = a.length;

     for(j=1;j < n ;j++ ){ //共执行 n-1 轮

          for(i=0;i< n – j; i++){ //第j轮

               if (a[i] > a[i+1]){

                     //交换a[i]与a[i+1]的值

                     temp = a[i];

                     a[i] = a[i+1];

                     a[i+1] = temp;

               }

          }

     }

     //打印排序后的结果

     for(i=0;i < n;i++){

          System.out.print(a[i] + “    ”);

     }

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 嘴角旁边起皮屑怎么办 春季脸上起皮怎么办 手上起白皮屑怎么办 手背起皮干燥怎么办 不会读的英语怎么办 中学生不准时回家怎么办 汽车轮胎锈住了怎么办 新轮胎不好装怎么办 学it找不到工作怎么办 血液里有微生物怎么办 机械硬盘不显示怎么办 六安建筑机械租赁公司怎么办 别墅楼梯太陡怎么办 不锈钢楼梯太陡怎么办 真皮白色鞋脏了怎么办 白色牛皮包脏了怎么办 白色羊皮鞋脏了怎么办 白色真皮染色了怎么办 白色漆皮鞋脏了怎么办 对鉴定结果不服怎么办 洗衣机入水口堵塞怎么办 华科办临时饭卡怎么办 血浆乳酸测定高怎么办 olay大红瓶过敏怎么办 饥一顿饱一顿怎么办 朝鲜人向去韩国怎么办? 我是超级大方脸怎么办 被精神病砍断四根筋怎么办 40小时不睡觉怎么办 边防转业军人安置不好怎么办 转业军人孩子读书怎么办玉环 军官证丢了怎么办 飞行学员停飞了怎么办 丹东港债券违约怎么办 对村党支部贿选怎么办 马自达2油耗高怎么办 马自达1.5油耗高怎么办 马自达5停产配件怎么办 期货账户休眠了怎么办 低于二本线怎么办 听力测试不过关怎么办