Java实训【FUNDAMENTAL】-语言基础考试题库整理

一、JAVA开发环境

  • Java编程语言之父是James Gosling
  • Java中:.class是编译后的文件,.java是编译前的源文件,Java程序需编译后方可运行
  • Java是从C++语言改进重新设计
  • 在控制台运行一个Java程序TestDemo.class,使用命令为java TestDemo(java + 类名)
  • Java语言特征:
    • Java语言支持跨平台(Windows、Linux、Unix)
    • 没有指针的概念
    • 拥有GC(自动垃圾回收),提高了代码安全性
  • Java Card、Java Me、Java Se、Java EE都属于Java技术体系
  • Java语言叙述:
    在JDK目录结构中,lib目录下存放的都是库文件,而bin目录下有编译器、解释器和许多工具(如服务器工具、IDL、package工具和jdb等)
    • Java虚拟机解释执行字节码
    • Java的类是对具有相同行为对象的一种抽象
    • Java中垃圾回收机制是一个系统级的线程
    • JDK的库文件是bin (×)
  • 为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为()
    A.static void method()
    B.public void method()
    C.final void method()
    D.abstract void method()
    【正确答案】A
    【答案解析】1、public修饰的方法可被其它类访问或引用。 2、abstract修饰的方法是抽象方法,抽象方法没有方法体,要使用抽象方法,必须先实现此抽象方法。 3、final修饰的方法不能被继承。 4、static修饰的方法为静态方法,静态方法不需要类的实例化就可以被类直接调用。 故要使得类名AB可以直接调用method()方法,则必须在method()前用static来修饰

二、变量

  • 在Java语言中,被称为内存分配的运算符是new
  • char c=74;(√)String str=new String("bb");(√)long j=8888;(√) float f=1.1f;(√)
  • 变量命名规则:
    • Java大小写敏感
    • 命名变量时需要注意
    • 可以由字母、数字、下划线、"$"组成
    • 首字母不能以数字开头
  • 标识符符合Java命名约定:
    • 包的名字由小写字母组成
    • 类名第一个字母大写
    • 变量的第一个字母小写
    • 与属性相对应的get、set方法为:set(get)+属性名(属性名第一个字母为大写)

三、JAVA的基本类型

  • byte(8位)类型的取值范围:-128~127
  • char(无符号16位)类型的取值范围是:0~65535
  • short(16位)类型;int(32位)类型;long(64位)类型
  • Java中的8种基本数据类型:byte,short,int,long,char,boolean(Boolean ×),float,double
  • 24*24点阵的汉字(每个点1bit)的结果是二进制位,而八个二进制位等于 一个字节,再除以八是所得的字节数,所求结果为72

四、基本类型间转换

  • 隐式类型转换规则是:byte → short(char) → int → long → float → double
  • 阅读下列代码:
    byte b1 = 1, b2 = 2, b3, b6, b8;
    final byte b4 = 4, b5 = 6, b7;
    b3 = (b1 + b2);  /* 语句1 */
    b6 = b4 + b5;    /* 语句2 */
    b8 = (b1 + b4);  /* 语句3 */
    b7 = (b2 + b5);  /* 语句4 */
    System.out.println(b3 + b6);
    
    下列代码片段中,存在编辑错误的语句是()
    A.语句2
    B.语句1
    C.语句3
    D.语句4
    【正确答案】B,C,D
    【答案解析】
    ① 语句1错误:b3 = (b1 + b2);
    自动转为int,所以正确写法为b3= (byte) (b1 + b2);或者将b3定义为int
    ② 语句2正确:b6 = b4 + b5;
    b4b5final类型,不会自动提升,所以和的类型视左边变量类型而定,即b6可以是任意数值类型
    ③ 语句3错误:b8 = (b1 + b4);
    虽然b4不会自动提升,但b1仍会自动提升,所以结果需要强转,b8 = (byte) (b1 + b4);
    ④ 语句4错误:b7 = (b2 + b5);
    同上。同时注意b7final修饰,即只可赋值一次,便不可再改变
  • 在Java程序中,不同的基本数据类型的数据之间经常需要进行相互转换, 目标类型大于源类型,如 double类型长度为8字节,int类型为4字节,因此double类型的变量里直接可以存放int类型的数据,但反过来就不可以了

五、运算符和表达式

  • ^异或
  • 三目运算符语法:条件表达式 ? 表达式1 : 表达式2;
    整个表达式的运算结果由类型最高的决定,例:int x = 4; (x > 4) ? 99.9 : 9 => 9.0
  • 阅读下列代码:
    int a = 5;
    int b = ++a;
    System.out.println("a=" + a);
    System.out.println("b=" + b);
    
    结果为:a=5,b=6
  • Java对"+"进行了扩展,不仅可以连接字符串,而且还能将字符串与其它类型数据进行连接,结果是字符串。 若"+"的第一个操作数是字符串,Java会自动将后面的操作数类型转换成字符串类型
  • JAVA中使用"\"符号进行转移
  • a = 12,求a * = 2 + 3的值:a = (2 + 3) * 12,即a = 60
  • /=运算符名字叫做除等于,two /= one等价于two = two / one
  • 下列有关逻辑运算符的描述错误的是()
    A.使用“||”运算, 两者只要有其一为真,逻辑表达式结果就为真
    B.使用"!"运算,对关系表达式进行取反
    C.短路与:若第一个表达式的值为假,后面的表达式不再计算
    D.短路或:若第一个表达式的值为假,后面的表达式不再计算
    【正确答案】D
    【答案解析】此题目考查的是辑运算符的概念性知识,ABC均正确, 短路或:若第一个表达式的值为假,还需要看后面的表达式是真还是假

六、分支结构

  • if后小括号里必须是一个条件表达式,结果为布尔值,如果为true,则执行后面大括号中的代码,如果为false

七、循环结构

  • for(int x = 0, y = 0; (y != 0) && (x < 4); x++);执行次数为一次也不执行
  • do...while循环结束的条件是 while 后的条件不成立
  • 下列代码哪行会出错:
     1)  public void modify() {
     2)    int i, j, k;
     3)    i = 100;
     4)    while ( i > 0 ) {
     5)      j = i * 2;
     6)      System.out.println("The value of j is " + j);
     7)      k = k + 1;
     8)      i--;
     9)    }
    10)  }
    
    变量k没有被初始化
  • 选择下面代码的运行结果:
    public class Test {
    	public void method() {
    		for (int i = 0; i < 3; i++) {
      			System.out.print(i);
    	  	}
    		System.out.print(i);
    	}
    }
    
    编译错误(i变量的作用范围是整个for循环中)

八、数组

  • 对记录序列{314,298,508,123,486,145}按从小到大的顺序进行插入排序,经过两趟排序后的结果为 {298,314,508,123,486,145}
    代码实现如下:
    public static void injectionSort(int[] number) { 
    	// 第一个元素作为一部分,对后面的部分进行循环 
    	for (int j = 1;  j < number.length;  j++) { 
    		int tmp = number[j]; 
    		int i = j - 1; 
    		while (tmp < number[i]) { 
    			number[i + 1] = number[i]; 
    			i--; 
    			if (i == -1) break; 
    		} 
    		number[i + 1] = tmp; 
    	} 
    }
    
  • int[] x = new int[25];x[24]0(x属于引用类型,该引用类型的每一个成员是int类型,默认值为:0
    解析:用new动态初始化时,数组元素的默认值:boolean型:falsechar'\u0000';整型:0;浮点型:0.0;String型:null
  • int m [] = {0, 1, 2, 3, 4, 5, 6};下面哪个表达式的值与数组下标量总数相等m.length
  • 访问数组下标越界为运行错误
  • 数组是一种对象,不是原生类,数组的大小不可以任意改变
  • 任何类的父类都是 Object,数组属于引用类型,Object oa = new float[20];(√)这种写法相当于父类的引用指向子类的实例

九、方法

  • 阅读下列代码:
    public class Test {
    	String s="One World One Dream";
    	public static void main(String args[]) {
    		System.out.println(s);
    	}
    }
    
    其运行结果是编译错误(main方法是程序执行的入口,在本程序中main方法中的语句"System.out.println(s);"无法调用在main方法外声明的变量)
  • 方法重载原则:必须在同一个类中,必须相同的方法名,方法参数的个数、顺序或类型不同,与方法的修饰符或返回值没有关系
  • 形参和实参:形参是指在定义方法时参数列表中的参数,实参是指在调用方法时所传入的实际数据。 形参是局部变量,作用域在方法体内,出了方法后不可见。 实参可以是字面量常量值也可以是变量,只要是可以在调用方法时传入的数据就是实参。 形参是可以用final来修饰的,被final修饰的形参被赋初值后值不可以再改变
  • 关于 Java 类中带参数的方法:
    • 使用带参数的方法分为两步:定义带参数的方法,调用带参数的方法
    • 带参数方法的返回值可以为void
    • 带参数方法的参数个数可以为一个或多个
    • 带参数方法的参数可以是任意的基本类型数据或引用类型数据

你可能感兴趣的:(#,Java,java,编程语言)