本学期讲java课,进程截止到IO流线程那部分
有题库当然用题库了
顺手自己写一下代码复习一下
判断题
判断题凡是 x(√)或者√(x)这种,建议按第一个写,对应有解释
1.构造方法定义返回值类型时,必须用void修饰
答案:x
解析:构造方法不用写返回值类型,不同于别的方法
public class-name(){//这就是一个构造方法
}2.abstract关键字不能用来修饰成员信息
答案:√
解析:abstract只能修饰方法(抽象方法)或者类(抽象类)3.同一个类中,不能有名称相同的方法
答案:x
解析:方法的重载4.类的静态成员的生命周期要长与(于)类的对象
答案:√
解析:掌握对象的概念,静态成员属于类,而对象是通过类实例化出来的,所以肯定先由类,类夹杂这静态成员一起加载,最后实例化的时候,对象连同那些非静态变量,非静态方法才会加载。so 肯定静态成员的声明周期要长5.Java接口的方法一定是抽象方法
答案:√(x)
解析:我觉得是错,因为接口还有默认方法default修饰的,还有静态方法static修饰的,这些都有方法体,但是答案给的是√,可能老师没讲到,建议照着答案写6.Null是空常量,可以调用String类中的isEmpty()方法
答案:×
解析:无稽之谈,你不是string对象怎么调用人家方法7.StringBuilder类是线程安全的
答案:x
解析:StringBuffer线程安全,效率低,StringBuilder,线程不安全,效率高8.子类对象在实例化时,一定会调用并执行父类的构造方法
答案:√
解析:子类构造器的第一行必是父类的构造器(默认可以不写)9.String类中的equals()方法比较是对象的内容,而非对象的地址值
答案:√
解析:String底层进行了equals()方法的重写10.Java多态中静态成员方法访问的特点是:编译看父类,运行看子类
答案:×
解析:?静态有个锤子的多态11.Java的Object类没有父类
答案:√
解析:Java的顶级父类就是Object12.Java的虚拟机JVM会对局部变量赋默认初值
答案:×
解析:不会。只会给堆内的赋默认值,局部变量属于栈内变量13.Java的抽象类中没有构造方法
答案:x
解析:有的,毕竟抽象类中有一些自己的方法(非抽象(abstract)方法)和变量,子类继承用抽象类的变量
你怎么着也得赋值(这就是构造方法干的活),不像接口中的变量(或者说常量)都是final的
需要你定义的时候就赋好值,就不用构造方法了14.Java中,私有类的构造方法没有意义,因为不能实例化对象
答案:x
解析:不不不,你可以在本类通过这个实例化一个对象,然后通过一个public的方法获取对应对象
枚举的原理就是私有化构造器15.Java中,类的构造方法必须定义为public,否则无法实例化对象
答案:x
解析:同14题16.Java中,局部变量放在类中,方法外。
答案:x
解析:类中,方法中17.Java中,局部变量在试用之前必须赋值,否则报错。
答案:√
解析:同1218.Java中,成员变量在使用之前必须赋值,否则报错
答案:x
解析:同12(成员变量在堆中)19.Java中,方法中的形式参数是局部变量。
答案:√
解析:!!!别理解错了,方法里面的都是局部变量,就算你实参传的是成员变量,人家问的是形参!20.在Java中:long类型占8个Byte,float类型占4个Byte,所以long类型表示的范围大于float类型。
答案:x
解析:表述方式不一样,建议学一下计算机组成原理.21.凡是能用条件运算符实现的语句,都可以用if语句实现。
答案:√
解析:找不出反例,其实就是不会,比较if是条件判断的底层22.for循环的循环体可以一次都不执行
答案:√
解析:条件不符就不执行呗23.Java中,do-while,for和while三种循环可以任意嵌套
答案:√
解析:感觉用不着解析,有终止条件就行啊24..Java的方法一定要有return语句,否则编译报错。
答案:x
解析:构造方法和void返回类型的方法就不用写return语句,也不报错
注意:构造方法和void底层都是有一个return;的,你可以不写但是它实打实是有的25.Java中方法必须有返回值类型,如果没有返回值类型必须用void修饰。
答案:x
解析:构造方法26.Java中,用void修饰的没有返回值的方法,方法体中不能有return语句。
答案:x
解析:可以有啊,同24,可以自己写一个return;27.Java中,数组只可以存储基本类型的数据,不可以存储引用类型数据
答案:x
解析:我直接 new String[2];28.Java中,int[]arr=new int[5];语句是数组动态初始化。
答案:√
解析:没赋值就是动态初始化,赋值那种是静态29.Java中,语句int[]arr=new int[]{1,2,3};是数组静态初始化。
答案:√
解析:同2830.Java中,int[]arr=new int[5]{1,2,3,4,5};语句定义数组正确。
答案:x
解析:动静态结合没有这种写法,要么去5。要么去{}里面的句子31.Java定义二维数组时,第二维元素个数可以不相等
答案:√
解析:没看懂,看了下文章,应该是对的,可以自己搜一下32.Java中,匿名内部类不能向下转型。
答案:√
解析:只能用一次的匿名内部类,怎么转?33.Java中,integer类自动装箱拆箱的范围在-128~127之间。
答案:√
解析:牛,这个都考,想看的话可以看一下我的-Java之包装类 里面最后一点有说到,还有源码34.Java中,类的构造方法中,不可同时有super和this两种方法。
答案:√
解析:第一行要么是super要么是this,你不能同时都存在,要不然矛盾了35.Java中,方法的形式参数是局部变量。
答案:√
解析:同1936.Java中,类的构造代码块优先于其构造方法执行,且可以执行多次。
答案:√
解析:代码块确实先于构造方法执行,建造一次对象代码块执行一次
(静态代码块只有在类第一次加载的时候执行一次)37.Java中,成员变量在使用前必须赋值,否则报错。
答案:x
解析:同上某一个题,堆中有默认值
!!!!!注意题目中的成员和局部38.Java中,局部变量在使用之前必须赋值,否则报错。
答案:√
解析:同上某一个题,栈中没有39.Java接口的子类不能是抽象类。
答案:x
解析:为什么不能,是类就能继承40.Java接口中的变量都是常量。
答案:√
解析:接口中变量默认都是final修饰的41.Java中,方法中的形式参数是局部变量。
答案:√
解析:同上面某个题42.Java中, 使用protected关键字修饰的、 包下的无关类之间可以直接互相访问。
答案:x
解析:默认的可以,protected修饰的只有父子类和同类可以访问
填空题
总结一个小规律
正数溢出从最大的负数向0靠
负数溢出从最大的正数向0靠
数字溢出总是从相反数的最大值开始向0靠
1.Java语句byte b=(byte)(127+1);执行后b=
答案:-128
解析:127原码和补码相同为01111111,用补码进行加减运算
0111111+1=10000000
当然这个10000000为补码,(这个10000000是原码的话就是-0)
这种情况用那个取反+1求出来是不匹配的!!!,因为原码只有-127-127
而补码-128-127(补码10000000无法用原码表示)
官方的话是根据补码和真值之间的公式来算真值
[x]补=2^n+1+x
x=[x]补-2^n+1=-10000000(-2^7)=-128
我一般都记这种补码1000..的都是=-(正数最大值+1)
这个范围就是-128-127 so,这个是-1282.Java语句byte b=(byte)129;执行后b=
答案:-127
解析:129=127+2
01111111+00000010=10000001
这种不是1000...的
可以转成原码比较容易看出真值(1000...的按照上面那个判断方法)
10000001补码对应原码(除符号位取反+1)=11111111
11111111对应的真值位-1273.Java中,语句byte b=(byte)128执行后b=
答案:-128
解析:127+1根据上面的规律,127+1整数溢出,应为最大负数-128
原码补码解法:01111111+1=10000000(补码对应-128)4.语句byte b=(byte)(-0);执行后b=
答案:0
解析:补码里面只有一个0,0和-0对应的补码都是00000000,我觉得考点是这个5.java中,可以对字符串本身进行改变操作的、线程不安全的类是
答案:StringBuilder
解析:记住6.Java中,可以对字符串本身进行改变操作的、线程安全的类是
答案:StringBuffer
解析:记住7.接口中的变量默认修饰符是
答案:public static final
解析:注意是变量还是方法,对应下面14是方法8.Java中,面向对象的三大特征:
答案:封装,继承和多态9.JVM中匿名类存放在()内存中
答案:方法区
解析:不太懂!10.Java中,非静态的同步方法的锁对象是()
答案:this
解析:同步方法的锁对象,设计多线程?锁对象一般是this,或者对应的类.class既然说非静态那就是this喽11.Java中,static修饰的变量,存放在()内存中
答案:方法区12.Java的内存分为堆、()、方法区、本地方法区和寄存器五部分
答案:栈13.Java中,final修饰的变量,存放在()内存中
答案:常量池
解析:常量池在方法区里14.Java中,接口中的方法默认修饰符是()
答案:public abstract15.JVM中,静态的同步函数的锁是()
答案:class对象
解析:这不就预言喽,对应10的解析,静态就是class对象16.Java给局部内部类对象分配的是()内存空间
答案:堆
解析:!!!!!!!!!!!!!!!不会17.Java中,System.out.println(~(-9));输出的结果为()
答案:8
解析:!!!!!!!!!!!!!!不会18.java中,System.out.println(~101);输出的结果为()
答案:-102
解析:!!!!!!!!!!!!!!!不会19.java中,编译时检查父类有没有此方法,运行时执行的是子类的方法。
在多态中这种成员方法访问的特点叫()
答案:动态绑定
解析:自己去看文章,方法有动态绑定,属性是那个近就用哪个没有动态绑定20.java中,基本类型char所对应的包装类是()
答案:Character21.java中,引用数据类型的成员变量默认初始化值是()
答案:null22.java中,基本类型int所对应的包装类是()
答案:Integer23.Java中,同步代码块和同步方法用()关键字修饰
答案:synchronzied
解析:可以记一下这个单词24.java中,判断一个对象是否为某个类或接口的实例或者子类实例的关键字是()
答案:instanceof
解析:注意该关键字是检查的运行类型25.java中,父类名 变量名=new 子类名();在多态中叫()
答案:向上转型26..Java中,多态的本质是:()
答案:父类引用指向子类对象
解析:记住!!!27.Java中,匿名内部类的本质是:()
答案:一个继承了该类或者实现了该类接口的子类匿名对象
解析:记住!!!!!!!!!!!!!!
单选题
一些简单的直接写答案就不写选项了奥
一些杂乱的知识点
Arrays类 位于java.util包下
Pattern类位于java.util.regex包下
util简介包含集合框架、遗留的 collections 类、事件模型、日期和时间设施、国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组、日期Date类、堆栈Stack类、向量Vector类等)。集合类、时间处理模式、日期时间工具等各类常用工具包
java.lang包包含类为:比较器类、八大基本包装类、class类、enum类、包类、Object类、String类、System类、Thread类、Throwable类
1.Eclipse中生成get、set方法的快捷键是
答案:Alt+Shift+s2.在Java中,Scanner类判断是否还有下一个字符串的方法是
答案:hashNext3.final关键词不能修饰()
A.成员方法和变量
B.匿名内部类
C.局部变量
D.类
答案:B4.以下Java程序运行输出的结果是()
Public static void main(string[]args){
Int x=1,y=9;
If(x>y)
x=y;
y=x;
else
x++;
y++;
System.out.println(x+“,”+y);
}
A.2,10
B.程序错误
C.2,2
D.1,1
答案:B
解析:if和else没对应上会报编译错误5.java中Arrays类属于哪个包
答案:java.util6.在java中关于内部类的说法正确的是?
答案:内部类可以直接访问其所在的外部类的私有成员7.Java中,关于抽象类,说法错误的是
答案:抽象类中一定要有抽象方法8.JVM中,存放局部内部类对象的内存区域是:
答案:堆区9.java中,匿名内部类的定义格式正确的是:
答案:new接口名(){}10.14.哪个修饰符能修饰构造方法()
A.final B.static C.abstract D.private
答案:D11.java API中,以下哪个选项不是抽象类()
A.MathInoutStream B.Calendar C.DateFormat D.Math
答案:D12.不是合法标识符的是
答案:#point
解析:没有其他选项,不过java合法标识符 a-z A-Z $ _ 1-9 这几种字符构成,首字母不能是数字
不能将关键字作为标识符13.java中,表示空行的正则表达式是:
答案:^$14.匹配11位手机号码的正则表达式是;
答案:1[34578]\d{9}15.在Java中,匹配AABB叠词的正则表达式是;
答案:(.)\1(.)\216.java中的Math类中,功能实现的是四舍五入的方法是
答案:round()17.java中权限修饰符中,不能修饰外部类的是;
答案:private
解析:注意protected也不能修饰外部类18.java中,Math类中生成(0,1)之间,伪随机小数的方法是;
解析:random()19.以下程序片段,打印结果是;
int[] arr=new int[5];
arr=null;
System.out.println(arr[0]);
答案: 程序运行后异常20.以下Java循环嵌套代码中,i--执行的次数是;
public class HelloWorld{public static void main(String[] args){int i=5,j=0,k;
while(i){ i必须是boolean类型k=i+j;for(j=10;j>0;j--)i--;}}
}
答案:语法错误
解析:i必须是boolean!21.Java语句System.out.println(‘a’+1);输出结果是:
答案:98
解析:‘a’在unicode对应的编码是9722.以下java代码段,输出的结果为:Byte b=10;b=b+1;System.out.println(b);
答案:编译错误
解析:byet类型的b+1后会变为int类型,b=int类型(高到低)这种需要强转23.java的四种权限修饰符中方,访问控制级别最严格的是;
答案:private24.在java中,int i=10和3做两次相同的()运算后,结果i仍是10;
答案:^
解析:!!!
一个数异或另一个数两次得出的结果不变
原因:
0异或0=0 对应位置还是0再异或0 结果还是0
1异或1=0 对应位置0异或1 结果还是1
0异或1 =1 1异或对位置1 结果还是1
1异或0=1 1异或对应位置0 结果还是125.在java中,垃圾回收方法finalize(),属于那个类:
答案:Object26.java中,System类中运行垃圾回收器的方法是():
答案:gc()27.java中,修饰方法时,abstract关键字可以与哪个关键字并存()
答案:public28.java中,关于类与接口的描述错误的是();
答案:类和类之间可以是多继承关系29.以下Java程序片段,输出的结果是();
int i=1,j=2,k=3,m=4;
boolean b;
b=i>j&&k++>m;
System.out.println(k);答案:3
解析:这里简写了奥,因为i>j本身就不对,后面那个(k++)也不会执行了,所以k为原来的值30.以下java程序片段,for循环执行的次数是();
int i;for(i=1;i<189;i++)
if(i==3)break;
else continue;
答案:3
解析:1时判断一次 2时判断一次 3时判断一次31.Java中,哪个方法属于Thread类:
答案:join()
!!!!!!!!!!!!!!!32.Java语句System.out.println("x="+5+6),输出的结果是;x=56
答案:x=56
解析:从左到右一步一步执行"x="后面那个+认为是连接的然后变成"x+5"后面有变成连接的喽
就是x=5633.以下哪个类,不在Java.lang包中:
答案:Pattern()
解析:建议及以下lang,until常用包里面的类,顺便把Thread里面的方法记一下34.Scanner类中获取一个字符串的方法是:
答案:nextLine()35.
下面Java程序执行的结果是;
public static void main(String[] args){
ing x=2;
ing y=3;
switch(x){default:y++;break;case 2: x++;case 3: y++;case 4: x++;break;
}
System.out.println("y="+y);
答案:y=4
解析:只经历了一次y++ so y=y+1=4
编程填空题
1.答案:Zi z = new Zi(); // 空参实例化Zi类对象
2.答案:People p = new People("Tom",80); //实例化People对象,参数为Tom,80
3.答案:super.num //写变量,使输出内容为Father类的num值
4.一个让写匿名内部类的题
答案:
class Outer{public static Inter function(){return new Inter(){public void print(){System.out.println("Java SE");} }; } } //用匿名内部类的方式,补全Outer类体
5.答案:
Son s = new Son(); //空参实例化Son类对象
public Father(){System.out.println("Father的空参构造方法被执行了");} //Father类的空参构造方法,输出”Father的空参构造方法被执行了”
public Son(){System.out.println("Son的空参构造方法被执行了");} //Son类的空参构造方法,输出”Son的空参构造方法被执行了”
6.答案: System.out.println(s1==s2); //输出s1和s2是否相等System.out.println(s1==s3); //输出s1和s3是否相等System.out.println(s2==s4); //输出s2和s4是否相等System.out.println(s3==s5); //输出s3和s5是否相等System.out.println(s2.equals(s3)); //用equals()方法比较s2和s3的内容是否相等System.out.println(s4==s6); //输出s4和s6是否相等
7.答案:
pd.method(new Person(){public void show(){System.out.println("Anonymous Arguments");}}); //使用匿名内部类,重写show()方法输出Anonymous Arguments
8.答案: B b =new C(); //B类引用指向空参构造C类对象
9.答案:
class Outer{public static Inter method(){return new Inter (){public void show(){System.out.println("Hello world"); }};}} //method()方法中返回匿名内部类
Outer.method().show(); //调用Outer类的method()方法,使show()方法打印hello world
10.答案:
Public Animal(){} //空参构造
Public abstract void eat(); //公共的无返回值的抽象方法eat()
Public abstract void sleep(); public void jump(); //公共的无返回值的抽象方法sleep()