Java静态变量的初始化(static块的本质)

转自:http://blog.csdn.net/darxin/article/details/5293427 在网上看到了下面的一段代码: public class Test { static { i = 20; } public static int _i = 10; public static void main(String[] args) { System.out.println(i); } } 上述代码会打印出什么结果来呢?10还是20?本文将以此代码为引子,着重讨论一下静态变量的初始化问题。 问题1:静态变量如何初始化 Java类中可以定义一个static块,用于静态变量的初始化。如: public class Test { public static int _i; static { _i = 10;

阅读全文...

【面试技巧】新手面试容易问到的问题,个人经历(转)

做android几个月了,前几天又面试了一些公司, 感觉对于android新手面试官的问题都有些类似,特此总结一下。他们知道你是新手  不会问很难的问题,但也是如此面试官能从你回答问题的速度和准确度来判断你的基础怎么样,所以我们必须对这些java个android基础烂熟于心。      好了   开始总结这几天碰到的面试问题:      1. java常用类:  会问一些String的基本操作,截取,转byte数组等等,各种IO操作,集合有哪几种 有什么区别 arrayList  LinkList区别?      2. Http协议(必问): httpClient可以直接上传文件吗?请求体  响应体 ?很多请求能在1秒内完成  为什么还要异步?同步不行吗等等      3. service服务(必问):开启有几种方式?怎么与activity通信      4. 常用控件(必问):下拉刷新  侧滑抽屉  ViewPager  ActionBar  常见动画  其中ListView(优化,getView和getCount,)必问      5. 4.3有什么新特性? 4.

阅读全文...

不显示ActionBar并报错NullPointException

在项目中遇到不显示ActionBar并报错NullPointException的情况,尝试了网上的很多方法,比如设置activity theme为Theme.NoTitleBar,设置minSdkVersion最后都失败了,依然报错NullPointException 最后发现是少了values-v11和values-v14文件夹.里面有一个styles.xml. 因为我创建项目时用的是target api10,所有没有这两个文件夹,补上就好了! 如果还是不行可以试试这个:http://www.myexception.cn/mobile/1676671.html

阅读全文...

java中equals和==的比较

equals是JAVA中最底层父类Object中提供的方法,我们不妨看下Object的源码: public boolean equals(Object obj) { return (this obj); } 如上列代码,对一般的对象而言(没有重写equals方法),equals采用的就是判断对象是否相等,所以没有任何区别。 而比较的内存地址是否一致,所以2个对象判断一般输出false。 1.字符常量 String str2=”123″; String str1=”123″; 上述的str1和str2因为是字符串常量,都存放在字符串常量池,所以不仅值相同连内存地址也是相同的, str1str2输入true,str1.equals(str2)也输出true 内存分类可以看这里–>http://wei8888go.ecjtu.org/java%E5%86%85%E5%AD%98%E5%88%92%E5%88%

阅读全文...

抽象类能不能有构造函数?

众所周知,抽象类不能够实例化对象,而构造函数就是用来生成对象的,那抽象类能不能有构造函数? 答案是肯定的,所有类都可以有自己的构造函数! 虽然抽象类自己不能实例化对象,但是他的子类(继承类)可以用super调用父类的构造函数。 package com.pw.demo; public abstract class Person { private String name; public Person(String name){ this.name=name; } public abstract void eat(); class Chinese extends Person{ private String address; public Chinese(String name,String address) { super(name); this.address=address;

阅读全文...

Java内部类和匿名内部类

内部类的定义: 顾名思义,内部类就是在一个类的定义中包含另一个类的定义! package com.pw.demo; //内部类 public class A { public int i; class B{ public int j; public void show(){ System.out.println(i+j); } } } 内部类实例化: A a=new A(); A.B b=a.new B(); 内部类的特定: 类B定义时可以访问类A中的成员属性和方法 内部类编译时产生的文件为A$B.class 匿名内部类的定义 package com.pw.demo; public class

阅读全文...

Java内存划分情况

(1)栈区:具有先进后出后进先出的机制。函数或代码块 都加载到栈区。它里面定义的变量都属于局部变量。 当代码块执行完成后,这些变量空间被释放。 (2)堆区:只进不能自动清除。一般动态分配的内存 在这个区中。new关键字产生的内存空间就属于动态内存 分配的空间。这部分空间,如同c中用malloc分配的动态 空间或c++中用new分配的动态空间,他们的释放必须程序员 用free或者是delete进行收工释放。java中用垃圾回收器 程序自动释放无用内存。 (3)常量区和全局变量区: public static或者是public final修饰的变量。这个区域的内存空间,在结束进程时释放。 (4)字符串常量池: String str1=”hello” String str2=”nihao”; String str3=”hello”; 字符串常量池中不允许有重复的字符串常量值。

阅读全文...

java为什么不支持多继承?

多继承指一个子类能同时继承于多个父类,从而同时拥有多个父类的特征,但缺点是显著的。 1.若子类继承的父类中拥有相同的成员变量,子类在引用该变量时将无法判别使用哪个父类的成员变量。 * * 如: public class classA // 父类 classA{ privateint num = 0;} public class classB // 父类 classB{ private int num= 1;} public class classC extends classA,classB // 子类 classC 继承于 classA 和 classB{ public static void main(String [] args){ classC obj = new classC(); obj.print(); // 调用父类成员变量 num

阅读全文...

Android 调用已安装市场,进行软件评分的功能实现

项目中要有一个给软件评分的功能,一个很常见,很简单的功能,却费了我不小功夫。需要实现的效果如下: 本来以为一般的软件都会有“去评分”、“亲,给个好评”这样的功能,但是在网上搜了搜竟没有搜到,问了三个群外加5个童鞋,分析log,反编译看源码,终于找到了这个uri,获取他真不容易啊。 Uri uri = Uri.parse("market://details?id="+getPackageName()); Intent intent = new Intent(Intent.ACTIONVIEW,uri); intent.addFlags(Intent.FLAGACTIVITYNEWTASK); startActivity(intent); 通过以上代码就能够列出您手机上所安装的所有应用市场(如:google player、豌豆荚、360手机助手等),让您选择。 加点福利吧,把调用分享的代码也贴出来,免得以后到处找: Intent sendIntent = new

阅读全文...

jar文件的打包与解包

在android开发过程中会用到很多框架或者第三方api,基本上使用的方法都是导入jar文件。今天教大家怎么打包和解包jar文件。 1.解包jar 下载jd-gui.exe文件就可以直接打开jar查看里面的代码 jd-gui.exe下载地址:http://yunpan.cn/QhhdR6JHufURr  访问密码 a122 直接双击打开jd-gui.exe,再将jar文件拖入到界面里面就可以显示jar源码了。 2.打包jar 打包jar用eclipse提供的方法 选择项目右键导出 选择java里面的jar file 选择需要导出的文件和导出的地址

阅读全文...