Java基础
weixin_41113108
这个作者很懒,什么都没留下…
展开
-
Java异常:编译异常与运行异常的区别
一、编译时被检测异常:只要是Exception和其子类都是,除了特殊子类RuntimeException体系。这种问题一旦出现,希望在编译时就检测,让这种问题有对应的处理方式。这样的问题都可以针对性处理。二、编译时不检测异常,即:运行时异常:就是Exception中的RuntimeException和其子类。这种问题的发生,无法让功能继续,运算无法进行,更多是因为调用者的原因导致的或者引发了内部状...原创 2018-05-08 20:15:10 · 470 阅读 · 0 评论 -
从一个小例题学习super()函数的特点
题目如下:写出程序运行结果class Super{ int i=0; public Super(String a) { System.out.println("A"); i=1; } public Super() { System.out.println("B"); i+=2; }}class Demo extends Super{ public Dem...原创 2018-05-23 21:20:51 · 407 阅读 · 0 评论 -
Java访问权限修饰符的区别总结
修饰符当前类同包子类其他包public√√√√protected√√√×default√√××private√×××原创 2018-05-23 09:29:12 · 204 阅读 · 0 评论 -
Javay异常处理的注意事项
1、子类在覆盖父类方法时,父类的方法如果抛出了异常,那么子类的方法只能抛出父类的异常或该异常类的子类。2、如果父类抛出多个异常,那么子类只能抛出父类的异常的子集。简而言之,子类覆盖父类只能抛出父类的异常或者子类或者子集,但是,注意,如果父类的方法没有抛出异常,那么子类覆盖时觉得不能抛,只能try。...原创 2018-05-22 21:16:09 · 363 阅读 · 0 评论 -
Java成员变量与静态变量的区别
1、成员变量随着对象的创建而存在,随着对象的被回收而释放。 静态变量随着类的创建而存在,随着类的消失而消失。从这可以得出,两种变量的生命周期不同,这也是静态变量的弊端,即生命周期长。2、调用方式不同:成员变量只能被对象所调用;而静态变量既可以被对象所调用,还可以被类所调用,推荐使用类调用。3、别名不同:成员变量也称为实例变量;静态变量称为类变量。4、数据的存储位置不同:成员变量存在堆内存的...原创 2018-04-27 20:54:17 · 139 阅读 · 0 评论 -
Java——static关键字的特点
1、static是一个修饰符,用于修饰成员。2、static修饰的成员被所有对象所共享。3、static优先于对象的存在而存在,因为static的成员随着类的加载就已经存在。4、static修饰的成员多了一种调用方式,key直接被类名所调用。5、static修饰的数据是共享数据,而对象中存储的是特有数据。...原创 2018-04-27 20:48:00 · 335 阅读 · 0 评论 -
Java引用数据类型参数传递图解
解释:当执行到第①步时,即主函数时,在栈内存中开辟一块名为main的内存空间。 当执行到第②步时,会首先在main内存中创建一个类型为Demod,名为d的变量;并在堆内存中开辟一块名为Demod的内存空间,为变量X赋默认值0,然后全局变量x=3的值取代0; 当执行到第③步时,堆内存中的x值变为9; 当执行到第④步时,会在栈内存中开辟一块名为show的内存空间,并创建一个类...原创 2018-04-27 10:53:54 · 640 阅读 · 0 评论 -
Java基本数据类型参数传递图解
解释:当执行到main函数时,即第①步,会在栈中开辟一块名为main的内存空间。 当执行到第②步时,会在main中放一个变量为x,值为4。 当执行到第③步,即show方法时,会再在栈内存中开辟一块内存空间,名为show,并把变量x=3赋值给show中的变量,继续执行到show方法内x=4时,4会取代3的值。 当执行完第③步时,show方法会从栈内存...原创 2018-04-27 10:24:12 · 519 阅读 · 0 评论 -
Java中的堆内存和栈内存解析
一、栈内存:先进后出里面存储的都是局部变量。变量都有自己的作用域,所属作用域一旦结束,变量就会被释放。我们基于这个原理,可以用局部变量代码块来限定变量的生命周期,减少不必要的内存开销。特点:数据更新速度快,因为变量的生命周期都比较短。二、堆内存:先进先出里面存储都是对象(如:数组、实体等)。凡是new建立的,都在堆中。特点:1、每一个实体都有一个首地址。 2、堆内存中的每一个变量...原创 2018-04-26 16:24:39 · 133 阅读 · 0 评论 -
Java接口与抽象类的区别
一、相同点:都是不断向上抽取而来的。二、不同点: 1、抽象类需被继承,只能单继承;接口需被实现,可以多实现。 2、抽象类中可以定义抽象方法和非抽象方法;接口中只能定义抽象方法,必须由子类取实现。 3、抽象类的继承是is ——a关系,在定义该体系的基本共性内容;接口的实现是like——a关系,在定义该体系额外功...原创 2018-05-03 10:49:28 · 103 阅读 · 0 评论 -
Java接口的特点
1、接口是对外暴露的规则;2、接口是程序的功能扩展;3、接口的出现降低耦合度;4、接口可以用来多实现;5、类与接口之间是实现关系,而且类可以继承一个类的同时实现多个接口;6、接口与接口直接可以有继承关系,且接口可以多继承;...原创 2018-05-03 10:45:46 · 4191 阅读 · 0 评论 -
Java抽象类的特点及细节
一、特点:1、方法只有声明,没有实现时,该方法就是抽象方法,需要被abstract修饰。2、抽象类不可以被实例化。因为用抽象方法无意义。3、抽象类必须由其子类覆盖了所有的抽象方法,该子类才可以被实例化,否则这个子类还是抽象类。二、细节:1、抽象类中有构造函数,用于给子类初始化。2、抽象类可以不定义抽象方法,目的是不让该类创建对象。3、abstract关键字不可以与private、static、fi...原创 2018-05-02 22:03:48 · 3256 阅读 · 1 评论 -
Java对象实例化过程
例如:Person p = new Person();1、JVM会读取指定的路径下的Person.class文件,并加载进内存,并会先加载Person的父类(如果有直接的父类的情况下)。2、在堆内存中开辟空间,分配地址。3、并在对象的空间中对对象中的属性进行默认初始化。4、调用对应的构造函数进行初始化。5、在构造函数中,第一行会先到调用父类中构造函数进行初始化。6、父类初始化完毕后,在对子类的属性...原创 2018-05-02 20:43:51 · 235 阅读 · 0 评论 -
Java异常:异常处理原则
1、函数内容如果抛出需要检测的异常,那么函数上必须要声明;否则必须在函数内用try-catch捕获。否则,编译失败。2、如果调用到了声明异常的函数,要么try-catch,要么throws,否则编译失败。3、什么时候catch?什么时候throws? 功能内容可以解决的,用catch。 解决不了的,用throws告诉调用者,由调用者解决。4、一个功能如果抛出了多个异常,要么调用时,...原创 2018-05-08 21:59:06 · 586 阅读 · 0 评论 -
Java异常:throws和throw的区别
1、throws使用在函数上; throw使用在函数内。2、throws抛出的是异常类,可以抛出多个,用逗号隔开; throw抛出的是异常对象原创 2018-05-08 20:20:12 · 106 阅读 · 0 评论 -
从一道例题看透Java在多态时编译运行规则
题目如下:写出运行结果:class Fu{ int num=4; void show() { System.out.println("showFu"); }}class Zi extends Fu{ int num=5; void show() { System.out.println("showZi"); }}class T{ public stati...原创 2018-05-23 21:59:12 · 421 阅读 · 0 评论