Java
文章平均质量分 69
guyy_moon
这个作者很懒,什么都没留下…
展开
-
Java的内存分配
Java的内存分配1)寄存器。它位于处理器内部,数量极其有限,所以寄存器是由编译器根据需求进行分配,我们不能直接控制2)堆栈。位于通用RAM(随机访问存储器中)。堆栈指针若向下移动,则分配新的内存;若向上移动,则释放哪些内存。创建程序时,编译器必须知道存储在堆栈数据的确切大小和生命周期。虽然某些数据存储于堆栈之中,特别是对象引用,但Java对象并不存储其中。3)堆。一种通用内存池(也位于RAM区)...原创 2018-05-18 11:25:23 · 139 阅读 · 0 评论 -
编写高质量代码+改善Java程序的151个建议 总结(一)
建议23 不要让类型默默转换 基本类型转换时,使用主动声明方式(注意不是强制类型转换),例如:final int SPEED = 30 * 1000 * 1000long num2 = 1L * SPEED * 60 *800建议24 边界 如果一个方法接受的是int类型参数,那正最大和负最小的边界值是必测的!建议26 提防包装类型的null值 包装类型参与运算时,要做n...原创 2018-06-01 14:46:52 · 157 阅读 · 0 评论 -
编写高质量代码+改善Java程序的151个建议 总结(三)
建议41 让多重继承成为现实--内部类建议42 让工具类不可实例化原创 2018-06-20 14:47:11 · 163 阅读 · 0 评论 -
Java-内部类总结
成员内部类里面为什么不能有静态成员和方法?非静态内部类不能有静态成员!成员内部类必须先实例化外部类对象然后再实例化成员内部类; 非static的内部类,在外部类加载的时候,并不会加载它,所以它里面不能有静态变量或者静态方法。1、static类型的属性和方法,在类加载的时候就会存在于内存中。2、要使用某个类的static属性或者方法,那么这个类必须要加载到jvm中。基于以上两点,可以看出,如果一个非...原创 2018-06-06 15:02:31 · 117 阅读 · 0 评论 -
Java implements 与 extends总结
接口和抽象类的区别是什么? (1)接口只有定义,其方法不能在接口中实现,只有实现接口的类才能实现接口中定义的方法,而抽象类可以有方法的定义和实现 (2)接口需要实现(implements),但抽象类只能被继承(extends)。一个类可实现多个接口,但只能继承一个类,接口可借此实现多重继承。 (3)接口:“has-a”,继承:"is-a” (4)接口中成员默...原创 2018-05-24 18:49:50 · 1177 阅读 · 0 评论 -
abstract class 和 interface
使用abstract class的方式定义Demo抽象类的方式如下:abstract class Demo { abstract void method1(); abstract void method2(); …}使用interface的方式定义Demo抽象类的方式如下:interface Demo { void method1(); void meth...原创 2018-05-24 18:47:29 · 183 阅读 · 0 评论 -
编写高质量代码+改善Java程序的151个建议 总结(二)
建议31 在接口中不要存在实现代码建议32 静态变量一定要先声明后赋值建议32: 静态变量一定要先声明后赋值 这要从静态变量的诞生说起了,静态变量是类加载时被分配到数据区(Data Area)的,它在内存中只有一个拷贝,不会被分配多次,其后的所有赋值操作都是值改变,地址则保持不变。我们知道JVM初始化变量是先声明空间,然后再赋值的,也就是说: int i=100; 在J...原创 2018-06-06 11:58:18 · 108 阅读 · 0 评论 -
Scala与Java的互操作
1.Scala中ArrayBuffer与Java中ArrayList的转换例如,java.lang.ProcessBuilder类中油一个以List<String>为参数的构造器,在scala中的调用方法如下:import scala.collection.JavaConversions.bufferAsJavaListimport scala.collection.mutable....原创 2018-05-22 15:15:02 · 2217 阅读 · 0 评论 -
Java 动态绑定
1.动态绑定(后期绑定) Java中除了static方法和final方法(private方法属于final方法)之外,其他方法都是后期绑定。我们不必像C++一样判断是否进行动态绑定,因为它会自动发生。 假设基类Shape派生出了具体类Circle、Square、Triangle。所以,基类对象(如Shape对象)在运行时执行什么样的代码,是由引用所指向的具体对象(如Circle,Squ...原创 2018-05-22 15:15:17 · 139 阅读 · 0 评论 -
Scala Trait
1.Trait中定义抽象方法 Trait可以被作为接口来使用,此时Trait与Java的接口非常类似。在Scala中,类继承Trait后,必须实现其中的抽象方法(类似interface),实现时不需要使用override关键字,同时Scala同Java一样,不支持类多继承,但支持多重继承Trait,使用with关键字即可。 注意:类使用extends继承Trait,与Java不同,这...原创 2018-05-25 14:26:12 · 120 阅读 · 0 评论 -
Java-static方法
java中静态属性和静态方法可以被继承,但是没有被重写(overwrite)而是被隐藏. 原因: 1). 静态方法和属性是属于类的,调用的时候直接通过类名.方法名完成,不需要继承机制就可以调用。如果子类里面定义了静态方法和属性,那么这时候父类的静态方法或属性称之为"隐藏"。如果你想要调用父类的静态方法和属性,直接通过父类名.方法或变量名完成。 2)....原创 2018-06-01 17:37:17 · 192 阅读 · 0 评论