笔者擅长 C# 语言,4月份要考试,学习 JAVA 是为了考试罢了。
如何在最短时间内学习 JAVA 基础语法和通过考试考核呢~
学习 JAVA ,要为了应付考试,判断、循环这部分,C、C++、C#、JAVA 都是一样的,不需要重复学习。
基础语法上,C++ 跟 C# 接近,例如命名空间(namespace)、继承(:)。
高级语法 JAVA 跟 C# 接近,很多 API 甚至名字都一样。
笔者在学习和完成试卷练习时,将具有代表性的 JAVA 题目抽取出来,集中复习和了解习题的套类,这样最短时间能够通过考试,并且拿到高分。
啦啦啦啦啦~
注:以下题目内容从往年试题或者互联网中获取而来,侵删!
1,java语言最初的应用对象是 消费级电子产品
最初设计时,是为了应用到电子游戏机、电视机机顶盒等电子产品。
2,Java SDK 的核心中,解释器所对应的可执行文件是 java.exe
javac.exe 用于编译 .java
源文件,java.exe 用于解释执行编译后的程序。
3, 联编 是将发送给对象的消息与执行该消息方法的对象连接起来。
联编分为静态联编和动态联编。静态联编在编译时处理(就是平时的代码);动态联编,事先不确定实例化的对象类型,在编译后才确定。
动态联编用于在运行时,才确定需要的实例。
父类A,子类B、子类C。
public void Test( string str )
{
A a;
if ( str == "B" )
a = new B();
}else if ( str == "C" )
{
a = new C();
}else
return;
}
4,java Date 时间字符串的默认顺序为 星期,月,日,小时,分,秒,年
格式如 Sat Mar 21 22:15:24 CST 2020
5, ((k-1)^k)&k 代表何种意义
答:取下非0整型变量k最右边为1的那一位。
6,super
java 中的 super 跟 c# 的 base一样。
java 称为 超类、子类;C# 称为 基类/父类、子类。
super 有多种作用:
- 指定调用超类的哪个构造函数;
- 访问被子类重写/覆盖的方法
- 访问被子类隐藏的方法
7,&& 考核
阅读以下程序代码,写出程序的输出结果
public static void main(String[] args) {
int a, b, c;
a = b = c = 1;
boolean w;
w = a++ > 1 && ++b > c++;
System.out.println(a + "," + b + "," + c + "," + w);
}
答案是 2,1,1,false
这题目有 误导
成分,咋一看,有 ++i
、i++
这样的运行,实践上只需要运算 a++>1
。原因在于 &&
运算是从左到右,当左侧条件为 false
时,程序不会执行右侧的表达式了。
8,字符串等值
查看以下程序代码的输出
public static void main(String[] args) {
String a = new String("1");
String b = new String("1");
String aa = "1";
String bb = "1";
System.out.println(a == b);
System.out.println(a == aa);
System.out.println(aa == b);
System.out.println(aa == bb);
}
结果是
false
false
false
true
java 中,String 类型的 == 运算符,比较的是对象的引用。
不同的 new String() 对象,即使是相同的值,也不是同一个对象。
C# 中,string 类型 的 == 运算符经过了重写,比较的是字符串的值;
而 String aa = "1";
、String bb = "1";
都是常量 1
,没有 new,所以 == 的结果相同。
9,程序设计题
使用循环把26个大写英文字母按字典顺序存入一维数组,然后再使其逆序存放(不得使用另外的数组),最后再根据处理后的字符数组创建一个字符串,输出此字符串。编程完成以上要求。
解析:基础排序算法之一。刚开始时我想用冒泡算法解决。但是看到答案时,答案使用的是倒转的方法,过程更加简单。
原因在于 26 个字母已经是按顺序排序(乱序则使用冒泡算法),直接反转就行。
题目要求
循环存入26个字母(大写)的数组;
逆放(反转);
输出字符串;
第一步代码如下
char a[] = new char[26];
char c = 'A';
for (int i = 0; i < 26; i++) {
a[i] = (char) (c + i);
}
第二步如下
for (int i = 0; i < 13; i++) {
char tmp = a[i];
a[i] = a[25 - i];
a[25 - i] = tmp;
}
最后一步使用 String 的构造函数就行
String str = new String(a);
System.out.println(str);
10,程序设计题
编写用数组实现不超过200位的大整数的类 BigInteger,要求提供大整数的加运算。
解析:java 中,有 BigInteger 这个类,内部是对 int[] 的封装,可以表示任意长度的整数。
题目要求我们实现一个类似 BigInteger 的类。然后要实现 10 进制的 加法运算。
方法很多,而且不限定怎么写,能计算就行。
可以参考
https://wenku.baidu.com/view/6b050b976aec0975f46527d3240c844769eaa01b.html
文章评论