Java基础易漏易错知识点总结

           JAVA基础易漏易错知识点汇总

一、数据类型的对比

 1. byte型:8位

 2. short型:16位

 3. int型:32位

 4. long型:64位

 5. 浮点型:
         float型:单精度,32位,创建形式:**float f1=1.2f**;
         double型:双精度,64位,创建形式:**double d1=1.234**;

 6.布尔型 boolean a=true;

 7. 字符型:char:16位,单一的字符型,创建形式:**char a=‘A’**;

 8. 字符型的易漏点:
     8.1  2.34E308=2.34x10的308次幂

    8.2 浮点型转换成整数型的话是直接舍弃了小数点后面的数得来的,不是通过四舍五入而来的。

    8.3 自动类型转换的前提是**转换前的数的位数低于转换后的数**,可以简单地理解符合一个**自下向上**的转换规则。

    8.4 强制转换的规则:一个是**数据类型兼容的**,一个是**转换前的数的位数高于转换后的数的位数**。格式为:int a=3; byte b=(byte)a;

   8.5 整数的默认类型是int类型

二、局部变量、成员变量、实例变量、类变量
1.局部变量不能用访问修饰符来修饰,原因是访问修饰符是用来修饰属性和方法的,局部变量本身就是储存在方法体内,在变量调用完成之后就不存在了。
2.局部变量是在栈储存中的,成员变量是在堆储存中的。
3.实例变量一般情况下是设置为私有的,因为实例变量在具体的实现的时候才会实现。
4.实例变量是具有默认值的,数值型的变量默认值为0,布尔型变量的默认值为false,引用型变量的默认值为null。变量的值可以在声明时指定,也可以在构造方法中指定。
5.类变量必须用static关键字来声明,在构造方法和语句块之外。
6.一般当类变量为public static final时,一般变量名为大写,其他类想要访问该类变量时无论在本类或者外类中,都可以直接以类名.变量名来访问到这个静态变量,如果是实例变量的话需要创建新的对象来访问。

三、为什么使用get和set方法而不是直接用public来公开这个值呢?
答:3.1、从使用原则上来讲,设计类的人只需要告诉使用类的人类里有什么功能就好,不需要把具体的值给公开,使用类的人也是只需要明白一个类能够做什么就ok,这个也是各个部门之间的合作准则。
3.2、get和set方法可以直接控制输入的值,直接公开的话会有可能造成输入不规范。
四、修饰符的使用
4.1修饰符的比较
4.2 注意点:
4.2.1 protected访问修饰符不能用来修饰类和接口,方法和成员变量不能定义成protected类型的,而且接口中的成员变量和方法不能声明为protected的
4.2.2 父类和子类的继承遵循着自低向高的原则,特殊的是private不能被继承。
4.2.3 静态方法不能使用类的非静态变量,静态方法从参数列表中得到这些数据。
4.2.4 final方法可以被继承,不能被修改,final类不能被继承。
4.2.5 一个类不能同时被abstract类和final来修饰。
4.2.6 如果一个类中有抽象方法,则一定为抽象类。
4.2.7 synchronized同一时间只能被同一个线程访问。
4.2.8 transient该修饰符不会被持久。
五、运算符
5.1 条件运算符(?:)
运算规则:a=1;b=(a==10)?20:30,结果:30
5.2 instanceof 比较符
boolean result =a instanceof b;

六、构造方法和普通方法的总结
  6.1  构造方法的作用是为了创建一个新的对象,方便调用类中的方法。普通方法也可以叫做普通函数,目的就是为了封装一些操作的方法。
  6.2 子类中继承了父类后,如果子类要重载父类的构造方法的话需要用到super()这个方法的。
  七、抽象类和接口的区别与作用。
   1.抽象类是用来继承的,接口是用来实现的。
   2.接口中必须都是抽象方法,抽象类中可以抽象方法也可以有非抽象方法。但是如果是抽象方法的话一定是抽象类。
   3.继承了抽象类后,在实现的过程中是需要确确实实的方法。
  八、静态的运用
    (1)不推荐使用对象的方式来访问静态字段。
    (2)如果final变量为空,则需创建对象形式来引用。
    (3)静态变量和实例变量的区别:
        静态变量就会创建对象,只分配一次内存,实例变量在创建了对            象的时候就会建立了内存。
  九、内部类
内部类分为四种,成员内部类,局部内部类,静态内部类,匿名内部类。
(1)成员内部类的用法(类似于成员变量)
   局部和成员内部类都不能定义静态成员,原因就是静态是优于对象存在的,如果先有了静态,则说明这个类是先创建了出来,但实际上是不知道这个类是属于谁的,所以说不能创建static关键字。
成员内部类的用法和作用的总结:
1./*外部类中的静态成员方法访问内部类*/
     public static void  Method_01(){
         Outer outer=new Outer();
         Inner inner=outer.new Inner();
         inner.InnerClass();
     }
     其他的用法很简单。

2.局部内部类的用法与总结
在局部内部类中访问到外部类的局部变量的话,这个变量需要是final型的,只有带上外部类的类名的时候才是访问到外部类的局部变量。

 3.静态内部类的用法与总结
    静态内部类是优于对象存在的,所以访问的话只能先是访问到外部类的静态变量和静态方法。
    外部类中访问静态类的静态方法的时候,直接是内部类.静态方法名,外部类访问静态类中的非静态方法的时候,先是创建出对象,然后再调用方法。
4.匿名静态类的特点与运用
   只用到类的一个实例。

  类在定义后马上用到。
  类非常小(SUN推荐是在4行代码以下)
  给类命名并不会导致你的代码更容易被理解。
  
  在使用匿名内部类时,要记住以下几个原则:
  匿名内部类不能有构造方法。
  匿名内部类不能定义任何静态成员、方法和类。
  匿名内部类不能是public,protected,private,static。
  只能创建匿名内部类的一个实例。
一个匿名内部类一定是在new的后面,用其隐含实现一个接口或实现一个类。
  因匿名内部类为局部内部类,所以局部内部类的所有限制都对其生效。
  

  • 7
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值