java开发环境
摘要:1.java的加载过程 编译器将java的源文件.java编译成.class文件。JVM加载.class文件并运行。 JVM:java的虚拟机,作用是加载并运行.class文件 JRE:包含JVM和java系统类库,是运行java程序的最小条件。这个java程序指的是.class文件。并不是.jav
阅读全文
堆栈方法区的创建
摘要:堆、栈、方法区内存何时创建:JVM启动的时候,创建堆内存,栈内存,方法区。
阅读全文
常量池的更替
摘要:在Java7之前,HotSpot虚拟机中将GC分代收集扩展到了方法区,使用永久代来实现了方法区。这个区域的内存回收目标主要是针对常量池的回收和对类型的卸载。但是在之后的HotSpot虚拟机实现中,逐渐开始将方法区从永久代移除。Java7中已经将运行时常量池从永久代移除,在Java 堆(Heap)中开
阅读全文
java equals 和 == 的区别
摘要:)1. == 可以用来比较基本类型以及引用类型。在基本类型中 == 比较的是两个变量的值是否相等。在引用类型中,== 比较的是两个对象的内存地址是否相等。 )2. equals 只能用来比较引用类型。所有的对象,如果他们没有重写equals方法,那么默认比较的就是两个对象的内存地址是否相等。如果重写
阅读全文
java中static关键字的继承问题
摘要:结论:java中静态属性和静态方法可以被继承,但是没有被重写(overwrite)而是被隐藏. 原因: 1). 静态方法和属性是属于类的,调用的时候直接通过类名.方法名完成对,不需要继承机制及可以调用。如果子类里面定义了静态方法(编译器认为这时子类自己定义的一个新方法,此时父类静态方法隐藏)和属性(子类中无法定义相同签名的非静态方法,编译器会报错,因为无法重写),那么这时候父类的静态...
阅读全文
java final关键字的详解
摘要:final可以修饰成员变量、局部变量、方法、和类 1.final修饰成员变量时,必须在定义时初始化或者在构造方法中初始化 表示该成员变量无法在该类中被更改,但是可以被继承。如果子类不再定义相同名字的成员变量(不需要类型相同,名字相同就够了)。这时候子类中就继承了父类的final成员变量且子类无法去更
阅读全文
JAVA构造函数简析
摘要:构造函数是java新建对象的一种手段 构造函数可以重载 如果一个类中有多个域,那么就可能需要多个构造函数。这时候,使用重载就可以了 构造函数中this和super的使用 this:(1)this用于本类的构造方法中,首先可以表示调用方法的对象.此时一般是为了去除歧义,也就是构造方法的参数和类中的域名
阅读全文
Java中abstract关键字详解
摘要:abstract只能修饰类(class) 和 方法。而不能修饰成员变量。这是由于抽象的概念确定的。只有类和方法可以抽象出来,而成员变量不需要抽象。 abstract修饰类 abstract之所以出现,是因为面向对象的思想所趋。在面向对象的思想中,不同的类之间可能具有高度相似的成员变量以及个别的方法。
阅读全文
java的String构造对象的几种方法以及内存运行过程
摘要:String类创建对象的方法可以分为以下三种 1.String a = "123"; 2.String b = new String("123"); 3.String c = "12" + "3"; 1程序执行时,会先去jvm的常量池(在方法区中)中寻找有没有“123” 的String 对象,如果已
阅读全文