Java面试题目基础知识温故

最近在面试,对于试题简单回顾下原理。呵呵。

 

Java基础知识中,会提到静态方法 不能直接调用非静态变量 和 非静态方法。

原理:静态变量 和 方法 是在编译的时候随着随着类产生的,而非静态变量 和 方法是要使用 new 关键字在实例化类的时候才生成的。

 

 

 

 public class Test {  
   
     private int x=0;

     private static int y=0;
   
     private void printStr(){  

	private static int z=0;      //错误XXXXXXXXXXXXX   静态变量不能在方法中声明

         System.out.println("Function printStr");  
             
         Person p = new Person(){  
             public void printNames(){  
                 System.out.println("In the printStr");  
             }  
         };  
           
         p.printNames();  
     }  
   
     private static void printStrs(){  
         System.out.println("Ststic Good");  
     }  
       
     public static void main(String[]args){  
   
         short s1=1;  
         // s1=s1+1;  /is error the type is different  
         s1+=1;  
           
         System.out.println(s1);  

         //error   /printStr();  原因:非静态方法 需要实例化 才能使用  
         Test t=new Test();  
         t.printStr();  
           
         //can use static method   原因:静态方法和类一起在编译时加载,所以可以使用  
         printStrs();  

         //可以访问私有变量
		ProxyTest proxyTest = new ProxyTest();
		proxyTest.x = 12;

		proxyTest.y = 25;	//OK    Use the static var

		char x=20;//可以等于一个编码的整型
		
		int s=(int)1.0f;  //类型强制转换 
		
		float f=1.0;  //错误XXXXXXXXXXXXX

		float f=1.0f;  //正确

		
		
           
     }  

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值