2019年12月20日 java学习知识记录
Posted 674625109-wjj
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2019年12月20日 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){ //重载
}
以上是关于2019年12月20日 java学习知识记录的主要内容,如果未能解决你的问题,请参考以下文章