摘要:
不覆盖equals的情况1)类的每个实例本质上是唯一的;2)不关心类是否提供了“逻辑想等”的测试功能;3)超类已经覆盖了equals,从超类继承过来的行为对于子类也是合适的;4)类是私有的或包级私有的,可以确定他的equals方法永远不会被调用。应该覆盖equals的情况如果类具有自己特有的“逻辑想等”概念,而且超类还没有覆盖equals以实现期望的行为,这时我们就需要覆盖equals方法。这通常属于“值类”的情形。equals 方法在非空对象引用上实现相等关系l自反性:对于任何非空引用值 x,x.equals(x) 都应返回 true。 l对称性:对于任何非空引用值 x 和y,当且仅当 y. 阅读全文
摘要:
每个覆盖了equals方法的类中,也必须覆盖hashCode方法。如果不这样的话,就会违反Object.hashCode的通用约定,从而导致该类无法结合所有基于散列的集合一起正常运作,这样的集合包括HashMap、HashSet和Hashtable。在引用程序的执行期间,只要对象的equals方法的比较操作所用到的信息没有被修改,那么对这同一个对象调用多次,hashCode方法都必须始终如一的返回同一个整数。在一个应用程序的多次执行过程中,每次执行所返回的整数可以不一致。如果连个对象根绝equals方法比较是相等的,那么调用这两个对象中任意一个对象的hashCode方法都必须产生同样的整数结果 阅读全文
摘要:
任何事情都存在其一定的双面性或者多面性,对于C++的开发者,内存资源是需要手工分配和释放的,而对于Java和C#这种资源托管的开发语言,更多的工作可以交给虚拟机的垃圾回收器来完成,由此C++程序得到了运行效率,却失去了安全。在Java的实际开发中,并非所有的资源都是可以被垃圾回收器自动释放的,如FileInputStream、Graphic2D等class中使用的底层操作系统资源句柄,并不会随着对象实例被GC回收而被释放,然而这些资源对于整个操作系统而言,都是非常重要的稀缺资源,更多的资源句柄泄露将会导致整个操作系统及其运行的各种服务程序的运行效率直线下降。那么如何保证系统资源不会被泄露了?在 阅读全文
摘要:
在官方blog中,android工程师谈到了如何去选择apache client和httpurlconnection的问题: 原文见http://android-developers.blogspot.com/2011/09/androids-http-clients.html这里小结下几点。1) apache httpclient比较稳定点,少BUG,但由于API的关系,扩展改造麻烦点,所以android team现在不鸟这东西了基本2) httpurlconnection比较轻便,灵活,易于扩展,在2。2前有个BUG,见http://code.google.com/p/android/i. 阅读全文
摘要:
表1展示了Android SDK中的一些与网络有关的API包名表1. Android SDK 网络包包 描述 API LevelJava.net 提供与联网有关的类,包括流和数据包(datagram)sockets、Internet 协议和常见 HTTP 处理。该包是一个多功能网络资源。有经验的 Java 开发人员可以立即使用这个熟悉的包创建应用程序。 1java.io 虽然没有提供显式的联网功能,但是仍然非常重要。该包中的类由其他 Java 包中提供的 socket 和连接使用。它们还用于与本地文件(在与... 阅读全文
摘要:
Android面试题1. 下列哪些语句关于内存回收的说明是正确的? (b )A、 程序员必须创建一个线程来释放内存B、 内存回收程序负责释放无用内存C、 内存回收程序允许程序员直接释放内存D、 内存回收程序可以在指定的时间释放内存对象2. 下面异常是属于Runtime Exception 的是(abcd)(多选) A、ArithmeticException B、IllegalArgumentException C、NullPointerException D、BufferUnderflowException3. Math.round(11.5)等于多少(). Math.roun... 阅读全文
摘要:
Html页面和Java代码结合的方式一般用在界面经常被更改 的情况下,可以讲html放在网络中,软件一打开就会访问网络获取到最新的界面。缺点是会受到网络信号的影响,从而导致访问速度慢。1.用WebView来显示HTML代码2.允许WebView执行JavaScript webView.getSettings().setJavaScriptEnabled(true);3.获取到HTML文件,也可从网络中获取 webView.loadUrl("file:///android_asset/index.html"); //HTML文件存放在assets文件夹中4.添加一个对象, 让 阅读全文
摘要:
首先,说一下SQLite的概念:SQLite 是一个开源的嵌入式关系数据库,它可以减少应用程序管理数据的开销 , SQLite 可移植性好 、 很容易使用 、 很小 、 高效而且可靠 。目前在Android 系统中集成的是 SQLite3 版本 ,SQLite 不支持静态数据类型 , 而是使用列关系 。 这意味着它的数据类型不具有表列属性 , 而具有数据本身的属性 。 当某个值插入数据库时, SQLite 将检查它的类型。如果该类型与关联的列不匹配,则 SQLite 会尝试将该值转换成列类型。如果不能转换,则该值将作为其本身具有的类型存储。SQLite 支持 NULL 、INTEGER 、 R 阅读全文
摘要:
经过了一番折腾,忙忙碌碌了一下午,终于搞明白了Android软件界面嵌入广告的方法,以下我以嵌入有米广告为例小结一下:步骤一,下载有米广告SDK,将 youmi-android.jar 导入想要嵌入广告的的工程中。1. 右键您的工程根目录,选择“Properties”2. 在左面板中选择“Java Build Path”3. 然后选择“Libraries”标签4. 点击“Add External JARs„”5. 选择 youmi-android.jar 的目录路径.6. 点击“OK”即导入成功步骤二,在AndroidManifest.xml文件中配置用户权限。请务必配置以下权限,否则将有可能 阅读全文
摘要:
在一个项目中,常常需要频繁的分页,所以有必要实现一个封装的类来统一管理实现。首先看下效果图:从上图我们可以看出,这里是将listview中的数据通过底下的分页工具实现分页显示。那我们接下来先贴出代码:1、实现布局,这里有两个布局文件,第一个主布局文件main.xml<RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:id="@+id/whole_region"android:layout_width="fill_parent&qu 阅读全文