试题

计算机二级《Java语言程序设计》考试知识点

时间:2024-09-30 17:25:21 试题 我要投稿
  • 相关推荐

计算机二级《Java语言程序设计》考试知识点

  同学们在备考计算机二级java考试科目时,要熟悉考试的知识考点,明确备考的方向。面是百分网小编为大家搜索整理的关于《Java语言程序设计》考试知识点,欢迎参考阅读,希望对大家有所帮助!想了解更多相关信息请持续关注我们应届毕业生考试网!

计算机二级《Java语言程序设计》考试知识点

  知识点一:java简介

  2009年04月20日,美国甲骨文公司74亿美元收购Sun,取得java的版权。

  Java 是面向对象的语言,没有面向对象编程经验的读者需要花费不少时间来了解面向对象的概念、语法和编程思想,有不能理解的地方请大家一定要坚持,多花时间编写代码自然会豁然开朗,从面向过程到面相对象需要一个适应期。

  Java 不只是一种编程语言,它是一个完整的平台,拥有庞大的库,将诸如图形绘制、Socket连接、数据库存取等复杂操作进行了最大程度的简化。

  Java 是跨平台的,一次编译,到处运行,在 Windows 上编写的代码可以不加修改的移植到 Linux 上,反之也可以。

  在世界编程语言排行榜中,Java几乎占据着第二名的位置,仅次于C语言。

  知识点二:二维数组

  二维数组的定义

 

type arrayName[ ][ ]; 

 

type [ ][ ]arrayName; 

 

 

  只是形式上的差别,大家可以根据自己的习惯来选择。

  二维数组的初始化

  1.静态初始化

 

int intArray[ ][ ]={{1,2},{2,3},{3,4,5}}; 

 

 

  Java语言中,由于把二维数组看作是数组的数组,数组空间不是连续分配的,所以不要求二维数组每一维的大小相同。

  2.动态初始化

  1) 直接为每一维分配空间,格式如下:

 

arrayName = new type[arrayLength1][arrayLength2]; 

 

int a[ ][ ] = new int[2][3];

 

 

  2) 从最高维开始,分别为每一维分配空间:

 

arrayName = new type[arrayLength1][ ];

 

arrayName[0] = new type[arrayLength20];

 

arrayName[1] = new type[arrayLength21];

 

 

arrayName[arrayLength1-1] = new type[arrayLength2n]; 

 

 

  3) 例:

  二维简单数据类型数组的动态初始化如下:

 

int a[ ][ ] = new int[2][ ]; 

 

a[0] = new int[3];

 

a[1] = new int[5];

 

 

  对二维复合数据类型的数组,必须首先为最高维分配引用空间,然后再顺次为低维分配空间。而且,必须为每个数组元素单独分配空间。例如:

 

String s[ ][ ] = new String[2][ ];

 

s[0]= new String[2];//为最高维分配引用空间

 

s[1]= new String[2]; //为最高维分配引用空间

 

s[0][0]= new String("Good");// 为每个数组元素单独分配空间 

 

s[0][1]= new String("Luck");// 为每个数组元素单独分配空间 

 

s[1][0]= new String("to");// 为每个数组元素单独分配空间

 

s[1][1]= new String("You");// 为每个数组元素单独分配空间

 

 

  二维数组元素的引用

  对二维数组中的每个元素,引用方式为:

 

arrayName[index1][index2]

  例如:

 

num[1][0];

  二维数组举例:两个矩阵相乘

  public class MatrixMultiply{

  public static void main(String args[]){

  int i,j,k;

  int a[][]=new int [2][3]; //动态初始化一个二维数组

  int b[][]={{1,5,2,8},{5,9,10,-3},{2,7,-5,-18}};//静态初始化一个二维数组

  int c[][]=new int[2][4]; //动态初始化一个二维数组

  for (i=0;i<2;i++)

  for (j=0; j<3 ;j++)

  a[i][j]=(i+1)*(j+2);

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

  for (j=0;j<4;j++){

  c[i][j]=0;

  for(k=0;k<3;k++)

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

  }

  }

  System.out.println("*******Matrix C********");//打印Matrix C标记

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

  for (j=0;j<4;j++)

  System.out.println(c[i][j]+" ");

  System.out.println();

  }

  }

  }

  知识点三:String

  1、初始化:

  一般由String声明的字符串,长度是不可变的,这也是它与StringBuffer和StringBuilder最直观的一个区别。一般初始化方式:String s = "hello world";经过这条语句,JVM的栈内存中产生一个s变量,堆内存中产生hello world字符串对象。s指向了hello world的地址。像上面这种方式产生的字符串属于直接量字符串对象,JVM在处理这类字符串的时候,会进行缓存,产生时放入字符串池,当程序需要再次使用的时候,无需重新创建一个新的字符串,而是直接指向已存在的字符串。

  2、String s = "123" + "456"内存中产生几个字符串对象?

  这是个比较有争议的问题,面试的时候,老师还挺喜欢问,论坛上大家说几个的也有,我给大家分析一下,因为我们前面有提到Java字符串的缓存机制,编译器在编译的时候会进行优化,所以在编译的过程中123和456被合成了一个字符串"123456",因此,如果缓存池中目前没有123456这个对象,那么会产生一个,即""123456",且栈中产生一个引用s指向它,如果缓存池中已经存在"123456",那么将产生0个对象,直接用s指向它。

  3、StringBuffer、StringBuilder

  StringBuffer和StringBuilder就是所谓的可变字符串类,共四个构造方法:

  StringBuffer()

  public StringBuffer(int paramInt)

  public StringBuffer(String paramString)

  public StringBuffer(CharSequence paramCharSequence)

  观察其源码发现,使用StringBuffer()时,默认开辟16个字符的长度的空间,使用public StringBuffer(int paramInt)时开辟指定大小的空间,使用public StringBuffer(String paramString)时,开辟paramString.length+16大小的空间。都是调用父类的构造器super()来开辟内存。这方面StringBuffer和StringBuilder都一样,且都实现AbstractStringBuilder类。

  二者几乎没什么区别,基本都是在调用父类的各个方法,一个重要的区别就是StringBuffer是线程安全的,内部的大多数方法前面都有关键字synchronized,这样就会有一定的性能消耗,StringBuilder是非线程安全的,所以效率要高些。

  知识点四:对象

  1、初始化顺序:总体来说执行顺序为:静态块->静态属性->非静态块->属性->构造器。接下来我们分析一下类的属性和方法。

  2、属性:

  类中的属性一般分为类属性(全局变量)、实例属性(全局变量)、局部属性(局部变量)。<我是这么分的,尽管有人不这么分,但是分法无所谓,理解它们的含义最重要>.

  类属性:前面已经说过就是那些声明为static的属性,在整个过程中只进行一次初始化,在内存中只开辟一个空间,不论在哪儿调用,值保持一致。一旦被修改,所有引用它的地方都会跟着修改。一般直接通过类名进行调用。

  实例属性:实例变量是可以不进行初始化,比如一个整型的实例变量假如没有初始化,则默认值为0;而局部变量假如不赋初值语法上是通过的,但是在使用这个变量是程序就报错了。实例变量在堆和栈中都分配内存空间,在堆当中分配的是对象本身,而栈中则是对这个对象的引用。

  局部属性:局部变量是在方法内部声明的变量,生命期仅在方法内,方法结束后变量就消失了;局部变量必须初始化再使用,否则会报错,也就是说,假如你在方法内定义了一个局部变量,并且没有赋值,那么你在使用这个变量的时候一定得赋值,不然就报错了。同时,局部变量可屏蔽全局变量。

  3、重载:

  是指在同一个类中,具有相同的方法名,不同的参数列表的方法之间的一种机制。参数列表的不同体现在:类型不同、个数不同、顺序不同,只要满足任一一个,就可以进行方法重载。

  4、重写:

  重写是在继承中存在的,在两个类(子类和父类之间存在的关系)中,子类重写父类的方法,方法名相同,参数也相同的一种机制。

  5、不定参数调用

  public static String a(String ... value);

  和下面的效果一样

  public static String a(String[] value);

  6、类与对象的关系

  1)类是一类具有相同属性的事物的统称,是一种抽象。

  2)对象是类的具体体现,又称实例。

  3)类是一种静态的概念,而对象是一种动态的机制。

【计算机二级《Java语言程序设计》考试知识点】相关文章:

2017计算机二级Java语言程序设计知识点09-21

2016计算机二级考试Java语言程序设计辅导08-29

计算机二级考试JAVA知识点集锦09-11

2016年全国计算机二级java语言程序设计考试大纲06-27

计算机二级考试java常考知识点09-06

计算机二级考试Java知识点:面向对象初步08-13

2017年计算机二级考试Java知识点08-31

计算机二级JAVA考试构建JAVA程序201710-02

自学考试Java语言程序设计试题06-20

计算机二级考试Java试题及答案10-24