用来编译编译java文件的命令是
Javac
Java中的关键字有哪些?
1)48个关键字
关键字 | 意思 | 备注 |
---|---|---|
public | 公有的 | 跨包可用 |
protected | 受保护的 | 包可用 |
private | 私有的 | 类可用 |
class | 类 | |
interface | 接口 | |
abstract | 抽象 | |
implements | 实现 | |
extends | 继承 | |
new | 创建新对象 | |
import | 引入 | |
package | 包关键字 |
数据类型:
关键字 | 意思 | 备注 |
---|---|---|
byte | 字节 | |
char | 字符 | |
boolean | 真假 | |
short | 短整 | |
float | 浮动 | |
long | 长整数 | |
double | 双精度 | |
void | 返回空 | |
null | 空 | |
true | 真 | |
false | 假 |
条件循环:
关键字 | 意思 | 备注 |
---|---|---|
if | 如果 | |
else | 否则 | |
for | 循环 | |
switch | 开关 | |
case | ||
default | ||
do | ||
break | ||
return | ||
instanceof | 是否是实例 | |
false | 假 |
修饰方法类等:
关键字 | 意思 | 备注 |
---|---|---|
static | ||
final | 最终的,不可改变 | 方法和类都可以用final来修饰final修饰的类是不能被继承的 final修饰的方法是不能被子类重写。常量的定义:final修饰的属性就是常量。 |
super | 调用父类 | |
this | 当前对象 |
错误处理:
关键字 | 意思 | 备注 |
---|---|---|
catch | 处理异常 | |
try | 捕获异常 | |
throw | 抛出异常 | |
throws | 声明一个异常可能被抛出 | 用于方法抛出 |
2)2个保留字(现在没用以后可能用到作为关键字):goto、const。
3)3个特殊直接量:true、false、null。
运算符优先级别由高向低排序正确的是?
A.()、!、算术运算符、关系运算符、逻辑运算符、赋值运算符;
正确答案:A
下列代码运行情况:
public class Main
{
public static void main (String[] args)
{
int a = 3, b = 4, c = 5;
boolean d = a > b && c++ > 4;
System.out.println(c + ","+ d);
}
}
输出 5 ,false
a>b = false,短路后面不再执行
打印的时候会自动类型转换
注意1:“&”和“&&”的区别:
&时,左边无论真假,右边都进行运算;
&&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算 。
注意2:“|”和“||”的区别:
|时,左边无论真假,右边都进行运算;
||时,如果左边为假,右边参与运算,如果左边为真,那么右边不参与运算 。
下列代码运行情况:
public class Main
{
public static void main (String[] args)
{
int i = 5;
int j = 2*i+++3*++i;
System.out.println(j);
}
}
31
第一次2 * 5 = 10 之后 i++ i=6
第二次 因为++i所以先算i i= 7
3*7 = 21
21+10 =31
下列代码运行情况:
public class Main
{
public static void main (String[] args)
{
int i = 3;
if(i < 3);
System.out.println("haha");
System.out.println("hehe");
}
}
haha hehe,因为使用了分号。
下列代码运行情况:
public class Super233 {
public static void ma(){
System.out.println("Super ma");
}
public void mb(){
System.out.println("Super mb");
}
public static void main(String[] args){
Super s = new Sub();
s.ma();
s.mb();
}
}
class Sub extends Super233 {
public static void ma(){
System.out.println("Sub ma");
}
public void mb(){
System.out.println("Sub mb");
}
结果是Super ma Sub mb
静态方法不可以被重写,不能实现多态
下列代码运行情况:
public class Test {
public static void main(String [] args){
MyClass mc = new MyClass();
change(mc);
System.out.println(mc.i);
}
public static void change(MyClass mc){
mc.i = 5;
mc = new MyClass();
mc.i = 8;
}
}
class MyClass{
int i = 3;
}
5
形参传递对象地址,改变对象值改变原对象
形参重新赋值不会改变原对象
下列代码运行情况:
public class Main
{
public static void main(String[] args){
int i = 5;
final int j = 10;
add(i);
plus(j);
}
public static void add(final int i){
System.out.println(2 * i);
}
public static void plus(int i){
i *= 2;
System.out.println(i);
}
}
10 20
迷雾题,final关键字可用于变量声明,一旦该变量被设定,就不可以再改变该变量的值。
add函数并没有程序赋值i
plus函数传入后值传递之后i是变量可改变其值
下列代码运行情况:
public class Main
{
public static void main(String [] args){
System.out.println(add(3,5));
}
static int add(int i,int j){
return i + j;
}
static double add(int i,double j){
return i + j;
}
static double add(double i, int j){
return i + j;
}
static double add(double i ,double j){
return i + j;
}
static double add(float i ,int j){
return i + j;
}
}
8
下列关于匿名对象的说法正确的是:
A.匿名对象在栈内存中有该对象的引用(匿名对象只在堆内存中开辟空间,而不存在栈内存的引用)
B.匿名对象可以当做参数来进行传递(√)
C.匿名对象在声明之后可以重复调用(必须用变量接受)
D.匿名对象在使用完之后会立即移除栈内存(等待垃圾回收期在空闲的时候回收)
E.匿名对象不能调用方法(可以)
正确答案:B
Java的核心包中,提供编程应用的基本类的是:
A.java.lang
B.java.util
C.java. io
D.java.awt
E.java.applet
正确答案:A
下列说法中正确的是:
A.java中的注释格式一共有两种:单行注释、多行注释
B.单行注释之间可以嵌套
C.多行注释之间不能嵌套
D.文档注释可以嵌套多行注释
E.文档注释中的注释文字可以利用javadoc命令提取成文档
正确答案:BCE
下列各项可以正确赋值的是:
A.int i = ‘a’;
B.float f = -2;
C.byte b = 128;
D.double d = 100d;
E.char c = 97;
正确答案:ABDE
byte的范围 [-128,127]
byte 类型可以自动转为int类型 int类型不能自动转为byte类型。
超过byte的范围,就会变成int类型了
byte b=1:正确,
b=b+1:报错,
b+=1:正确。
下列各项可能会出现空指针异常的是:
A.s != null & !s.equals(“”);
B.s != null && !s.equals(“”);
C.s != null | !s.equals(“”);
D.s != null || !s.equals(“”);
E.s == null || s.equals(“”);
正确答案:ACD
考 短路。
下列关于this的说法正确的是:
A.this代表当前对象的引用
B.可以通过this语句来实现构造函数的调用
C.可以通过this调用私有方法或者私有属性
D.可以在主函数中使用this来调用其他的方法
E.可以使用this关键字来调用静态属性
正确答案:ABCE
对于字符串String s = “2016-11-11 00:11:11”,下列能够将其正确转化为日期对象2016年11月11日0时11分11秒的选项是:
A.Date d = new Date(s);
B.Date date = new SimpleDateFormat(“yyyy/mm/dd hh:MM:ss”).parse();
C.Date date = new SimpleDateFormat(“yyyy-mm-dd hh:MM:ss”).parse();
D.Date date = new SimpleDateFormat(“YYYY-mm-dd hh:MM:ss”).parse();
E.Date date = new SimpleDateFormat(“yyyy-mm-dd HH:MM:ss”).parse();
正确答案:CE
下列方法声明正确的是:
A.final public void m()
B.protected static void m()
C.final abstract void m()
D.private abstract void m()
E.public static abstract void m()
正确答案:AB
abstract 一定不能和 private, static, final 同时使用.
1、抽象方法:只有方法头,没有方法体定义,也就是说抽象方法无需实现,抽象方法的意义在于子类实现,private意义在于其他类直接调用它已实现的方法。这两者搭配毫无意义(private修饰后为私有,子类不能继承,自然不能使用)
2、final用于类名前,表示类不可被继承;final用于变量前,表示它是只能一次赋值的变量,如果初始化了那就是常量,也不可被改变。和abstract 搭配无意义(final不能被重写,根本就不可能被abstract的实现类重写)
3、static修饰的是静态方法,可以直接被类调用;而abstract修饰的类中只有方法名,无方法体,不能被直接调用,故不能同时修饰一个类或方法。
下列各项挣够正确编译运行的是:
A.Integer i = new Integer(“3”);
B.Float f = 3.5;(在java里面,没小数点的默认是int,有小数点的默认是 double)
C.Integet i = new Integer(“0x45”);
D.Boolean b = new Boolean(null);
E.Boolean b = new Boolean(“aaa”);
正确答案:ADE
在下列代码的//insert code here 处,下列哪些选型能够使类Two成功编译?
class One {
void foo() {
/*more code here*/
}
}
public class Two extends class One {
//insert code here
}
A.int foo() {}
B.void foo() {}
C.public void foo() {}
D.protected void foo() {}
E.private void foo() {}
正确答案:BCD
下列关于抽象类的说法中,正确的是:
A.抽象类可以被实例化
B.抽象类可以有构造方法
C.抽象类可以有非抽象方法
D.子类继承了抽象类必须实现其全部的抽象方法
E.抽象类可以继承非抽象的类
正确答案:BCDE