JAVASE中遇到的问题及细节总结
1. 当数据类型中取值超出范围时,而且有类型限制,那么结果就强制转化为该类型。
eg.byte b=(byte)129;//129超出了byte的取值范围,强制转化为byte,对应的值为-127
2. 运算符的优先级?
一元>二元>三元
算术>关系>逻辑>赋值
3. 如何使用scanner来接受char类型的字符?
scanner。next().charat(0);//字符串截取
4. while(condition) 条件里面如果写数字呢?
while条件里面只能输入bool值。
(以前遗留的问题,现在想不起来了,未果,遇到了再回来写)
5. 转型,int与string 如何相互转化?
int i = 123;
String str="123";
//string转int
//方法一
int i1=Integer.parseInt(str);
//方法二
int i2=Integer.valueOf(str).intValue();
//int转string
//方法一 直接做加法加上“”
String str1=i+"";
//方法二
String str2=Integer.toString(i);
//方法三
String str3=String.valueOf(i);
/*注意:Double, Float, Long 与string转化方法与此方法类似.*/
6. ==与equals的比较
==适用于基本数据类型
而equals适用于引用数据类型!
7. 方法的重载??
函数名称要相同,参数类型不同 或者 参数的个数不同。
返回类型无所谓!不影响!
//返回类型为void,
public void print(int a) {
System.out.println(a);
}
//返回类型为int err:Duplicate method print(int) in type test01
public int print(int a) {
System.out.println(a);
return a;
}这个是错误的
public int print(int a,int b) {
System.out.println(a+" "+b);
return a+b;
}//这个才是函数的重载
8. this关键词的使用
this 代表了对象自身的引用,指向当前对象。
用this的场合如下:
①方法中区分局部变量与成员变量的重名问题
②构造函数中,调用重载的构造函 数(注意只能写在第一行)
③返回当前对象的引用
9. static关键词的使用说明
①static可以用来修饰成员变量,称为类变量,在类第一次被实例化的时候被加载,之后在进行实例化的时候,该值不会被初始化,而是一直在变动。
②static修饰成员方法时,称为静态成员方法,该方法可以直接被调用,但是必须注意其中的成员变量必须也是被static修饰的成员变量。
/**
* @author 刘平远
* @version 创建时间:2019年8月9日 下午2:23:00
* 类说明 :类变量的说明,static 关键字的使用
*/
public class OOvars {
private int id;
private String name;
public int age;
//被static修饰,称为 类变量 ,当第一次实例化就会被被加载,
//之后实例化会被共享
static int static_id;
//普通成员方法,可以使用静态变量和成员变量
public int countNum(int a) {
this.age=111;
int b=1;
static_id++;
return static_id;
}
//静态方法
public static void staticMethod() {
//this.age=111; err 静态方法中无法使用非静态的成员变量
static_id=111;
}
public static void main(String[] args) {
OOvars oOvars=new OOvars();
System.out.println("oovars第一次默认值:"+static_id);//0
oOvars.countNum(1);
System.out.println("oovars运算了一次的"+static_id);//1
OOvars oOvars1=new OOvars();
System.out.println("oovar1第一次默认值:"+static_id);//1
oOvars1.countNum(1);
System.out.println("oovar1运算了一次:"+static_id);//2
System.out.println("oovar现在的值:"+static_id);//2
/*证明了static 修饰的成员变量,大家共享,每次实例化,不会被清重置,
* 在第一次实例化时,被加载,之后就一直会是这个。
* */
}
}