面试中,有家公司做数据库开发的,对内存要求比较高,考到了这个 一:在JAVA中,有六个不同的地方可以存储数据: 1. 寄存器(register)。 这是最快的存储区,因为它位于不同于其他存储区的地方——处理器内部。但是寄存器的数量极其有限,所以寄存器由编译器根据需求进行分配。你不能直接控制,也不能在程序中感觉到寄存器存在的任何迹象。 ------最快的存储区, 由编译器根据需求进行分配,我们在程序中无法控制. 2. 栈(stack)...
动态绑定以下是我的理解,可能和其他大佬们的理解略有偏差,如有想法不同的或者有错误的地方欢迎您指出来,谢谢先上代码:publicclass Father {publicvoid f() {System.out.println("Father method");}publicstaticvoid main(String[] args) {Father person = new Son();person.f();}
}class Son extends Father{publicvoid f() {System.out.println("Son method");}
} 这个比较简单,上述运行结果显而易见,输出Son method...
Java中普通代码块,构造代码块,静态代码块区别及代码示例 对静态代码块以及构造函数的执行先后顺序,一直很迷惑,看了孙伟琴老师的《java面向对象编程》又结合毕老师的java基础视频中的讲解,现用下面的这段小程序来简明扼要的叙述一下,以加深理解,与君共勉.... public class Fu { static { Sys...
当需要mock静态方法的时候,必须加注解@PrepareForTest和@RunWith。注解@PrepareForTest里写的类是静态方法所在的类。import org.junit.Test;
import org.junit.runner.RunWith;
import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;import static org.junit.Assert.assertEquals;
import static org.mockit...
Java中的静态成员初始化的顺序、时间总是存在着一些迷惑。今天用以下代码验证了一下,感觉好多问题豁然贯通。// StaticInitialize.java
// To test some details of the
// initialization of static fields.
import java.util.*;class RandFields {static private Random rand = new Random();private static int a = statint();private int b = normalint();static private int statint() {int i = rand.nextInt(50);System.out....
①java类的成员变量有俩种: 一种是被static关键字修饰的变量,叫类变量或者静态变量 另一种没有static修饰,为成员变量 ②通俗点说: 类的静态变量在内存中只有一个,java虚拟机在加载类的过程中为静态变量分配内存,静态变量位于方法区,被类的所有实例共享。静态变量可以直接通过类名进行访问,其生命周期取决于类的生命周期。 而实例变量取决于类的实例。每创建一个实例,java虚拟机就会为实例...
https://my.oschina.net/wangsifangyuan/blog/711329前言:当要判断一个变量存在什么空间上时,先分析它是哪一种(是实例变量还是局部变量),实例变量存在于所属的对象中,因此在创建对象后才存在,存在于堆上;如果为局部变量,局部变量是被声明在方法中的,它是暂时的,且生命周期只限于方法被放于栈上的这段期间(方法调用至执行完毕),因此存在于栈上;原文:http://www.cnblogs.com/qiong2017/p/7669182.html
这是我面试遇到的一道题,题目如下: 1publicclass StaticTest {2privatestaticint b = 1;3privateint a = 1;4 5publicstaticvoid main(String[] args) {6 StaticTest a1 = new StaticTest();7 StaticTest a2 = new StaticTest();8 a1.a = a1.a+1;9 a2.a = a2.a+1;
10 System.out.println("a1.a="+a1.a);
11 System.out.println("a2.a="+a2.a);
1213 StaticTest b1 = new...
Java多线程编程中,存在很多线程安全问题,至于什么是线程安全呢,给出一个通俗易懂的概念还是蛮难的,如同《java并发编程实践》中所说:写道给线程安全下定义比较困难。存在很多种定义,如:“一个类在可以被多个线程安全调用时就是线程安全的”。 此处不赘述了,首先给出静态变量、实例变量、局部变量在多线程环境下的线程安全问题结论,然后用示例验证,请大家擦亮眼睛,有错必究,否则误人子弟! 静态变量:线程非安全。静态变...
???????? 之前使用反射的方式来调用一个实例的方法,大概代码是如下的String className=""; //类名Class[]params = null;//参数String methodName = "";//方法名Object obj; //调用方法的对象Object[] args; //调用方法传的参数Object returnObj = Class.forName(className).getMethod(methodName, params).invoke(obj, args);???????? ps:变量都没有填具体的数值,也没有捕获异常只是举个例子。??????? 但是上述代码是调用实...
1 静态成员变量在类中定义的变量通常称之为成员变量,如果当一个成员变量的前面增加了修饰符Static,那么我们就称这个成员变量为静态成员变量。1.1 成员变量和静态成员变量的定义方法创建一个Car类,在其中定义了两个成员变量,一个是普通成员变量color,一个是静态成员变量myColor。public class Car {
public String color;//普通成员变量
public static StringmyColor;//静态成员变量
...
描述Dog对象:package android.java.oop10;publicclass Dog {publicstatic String name;publicstaticint age;publicstaticvoid showNameAge() {System.out.println("name:" + name + " age:" + age);}} main测试方法:package android.java.oop10;publicclass Demo01 {publicstaticvoid main(String[] args) {Dog.name = "阿白";Dog.age = 98;Dog.name = "李双";Dog.age = 90;Dog.showNameAge();}} 执行结果: 以上案例对应内存图...
构造块:直接写在类中的代码块静态代码垮:使用static关键字声明的代码块静态代码块先于构造块,构造方法执行,而且只在类加载时候执行一次,后面在类实例化的时候会先执行构造块,而且每执行实例化一个对象,就会执行一次构造块,执行完构造块会执行构造方法。public class ConstructorCodeTest
{public static void main(String[] args) {Demo d1=new Demo();Demo d2=new Demo();Demo d3=new Demo();}
}class Demo
{{System.out...
/*静态的应用每一个应用程序中都有共性的功能,可以将这些功能进行抽取,能独立封装,以便复用*/class Demo{ public static void main(String[] args) { int[] arr = (2,4,1,8); int max = getMax(arr); System.out.pirntln("max"+max); } public static int getMax(int[] arr) { int max = 0; for(int x=1;x<arr.length;x++) { if(arr[x]>arr[max]) ...
在Java SE 8之前,interface只是事物的抽象,用来定义统一的抽象事物和描述事物的抽象行为和属性。但是在Java SE 8中,增加了可以在interface中增加默认实现的行为和事物的静态行为。一.为什么?java迭代了如此多的版本且主要采用的都是演化的思想而非重构(为了保证与历史的兼容性)。
这样就容易出现很多比较难以处理的问题,接口在发布之后就已经被定型,除非我们能够一次性更新所有该接口的实现。比如某个历史接口有很多实现,...