埋头苦读小青年

导航

2019年12月 java学习知识记录

一个"java"源文件中是否可以有多个类? 有什么限制?  

一个java的源文件中都可以都多个类 ,但是public的类只能有一个  而且public的名字要和文件名一致(大小写也得一致)

 

java 有没有 goto?

java中有goto 但是现在java中不使用

 

&和&&有什么区别?

&和&&都是逻辑运算符

运算符两边的表达式,如果运算结果都是true的话,结果返回就为true   如果有一边的运算结果为false,那么结果返回的就为fales

&与&&的区别   &如果有一个表达式为false时,那么就不会判断后一个表达式,返回结果false

&&不管前一个表达式是否是false还是true,也会判断后一个表达式.

&效率比&&快   &&具有短路功能

 

在java中如何跳出多重嵌套循环语句?

ok:

for(int i=0;i<10;i++){

    for(int j=0;j<10;j++){

        System.out.println("i"+i+"j"+j);

         if(i==5) break ok;

    }

}

 

break是结束这个循环   ,   continue是跳出本次循环,继续下一个循环,   return的功能是结束一个方法.

 

switch语句能否作用在byte上,能否作用在long上,能否作用在string上?

switch中只能用整数类型,整数表达式一般为int或者是Integer包装类型, byte short char 可以小转大转换成int类型,所以byte可以作用在byte上.

long不能自动转换成int,必须强制转换成int 所以不可以作用在long上.

string属于引入数据类型,根据语法表示是不能作用在switch中的,但是在JDk6的更新后,string作为引用数据类型也可以作用在switch中了.

 

short 语句 s1=1; s1=s1+1; 有什么错?  short s1=1; s1+=1;有什么错;

对于s1=1; s1=s1+1  因为s1+1; 进行运算s1+1 会只能转换成int  但是赋值给s1时,s1是short所以不行,系统会报错

short s1=1; s1+=1; 在java中+= 会在java中进行特殊的处理, 所以不会报错.

 

char型变量能否储存一个汉字? 为什么?

可以储存一个汉字   因为char类型中字符集包含了汉字,如果有一些特殊的汉字不在char类型的字符集中,那么也没有办法储存,char占用两个字节,储存一个汉字所以也是一个的.

 

使用final关键词修饰一个变量时,是引用不能变,还是引用的对象内容不能变?

当使用final修饰一个变量时.是指 指引的对象不能换成另一个,只能时同一个   但是指引的对象的内容是可以改变的

final StringBuffer a = new StringBuffer ;

a= new StringBuffer ("");    //错误

a.append("ssss");     //正确

 

"==" 和 "equals' 方法有什么区别?

"==" 一般是比较变量的值是否相同  原理是比较的两个变量指向的对象是否是同一个;  要比较两个基本数据类型或者里两个引用变量是否相等,只能使用"=="

"equals" 如果是没有重写过,用的是Object类继承的方法,那么也和"=="一样,是比较两个变量指向的对象是否是同一个. 如果你需要比较的是两个对象内容的值是否一致就需要重写"equals"

 

静态变量和实例变量的区别?

在语法的区别上:   静态变量需要加static    实例变量不需要;

静态变量:

调用时不需要创建对象,直接通过类名就可以直接调用,在类中就只有一个实例,当类加载时和类同时加载,静态变量不是对象的是属于类的,不需要创建对象就会配置空间.

实例变量:

调用时需要创建对象,必须创建了实例对象才会分配空间.

 

 

是否可以从一个static方法中对一个非static方法调用?

不可以    因为调用static方法是不需要对象的,在调用类时static方法就已经被使用了,那时非static方法可能在那时还有没创建对象,没有对象的话,非static方法是不能别调用的,所以在逻辑上是不能调用的.

 

inreger 和 int 的区别?

int属于java中的八种数据类型之一    int的默认值是0

Ingeter 是属于 java给int提供的封装类,Ingeter的默认值是null,  可以区分是否有给赋值   未赋值为null   赋值为0;

 

public  proteced  friendly  private   4个作用域之间的区别?

public  权限最大都可以使用

proteced   不可以跨pakeage

friendly  不可以跨pakeage   不可以跨父类和子类

private   只可以在当前类中使用

 

 

重载和重写的区别?

方法重载:同一个类中,方法名相同,参数的类型、顺序和个数不同,与返回值类型和方法访问修饰符无关

  方法重写:不同类中,发生在继承类中,方法名称、参数类型、返回值类型全部相同,被重写的方法不能拥有比父类更严格的权限

 

public  int show (int a){

 

System.out.println(a);

return a;

}

 

public   String show (String a}{   //重载

System.out.println("aaaaa");     //重写

System.out.println("bbbbb");     //重写

return  a;

}

 

 

构造器Constructor是否可被重写?

构造对象不能被重写   不能被继承  但是可以被重载

public show(){

}

public show (String title){     //重载

}

 

接口是否可以继承接口? 抽象类是否可实现(implement)接口? 抽象类是否可继承具体类? 抽象类中是否可以有静态的mian方法?

抽象类和普通类的区别就只有 抽象类不能创建实体对象,和允许有abstract方法其他没有什么区别

 

写clone()方法时,通常都有一行代码,为什么?

clone有缺省行为,  所以 super.clone 每次都要先把父类的成员复制到位,再复制自己的成员

posted on 2019-12-20 19:01  埋头苦读小青年  阅读(112)  评论(0编辑  收藏  举报