`
文章列表
 各位兄弟姐妹,Java开发中的内存泄露的问题经常会给我们带来很多烦恼。特别是对一些新手,如果平时不注意一些细节问题,最后很可能会导致很严重的后果。     在Android中的Java开发也同样会有这样的问题。附件中的pdf整理了一些关于Android中的Java开发,在内存使用方面需要注意的一些问题,希望能够对大家有所帮助。     Android 内存泄漏调试       一、概述     Java编程中经常容易被忽视,但本身又十分重要的一个问题就是内存使用的问题。
  折半插入排序其实就是直接插入排序的一种改进,引入了二分查找算法,这样关键字的比较次数就会减少, 数量级为O(nlog^2n),但是元素移动次数还是O(n^2),所以折半插入排序的时间复杂度是O(n^2)。 另外,折半插入排序是稳定的排序算法; 下面是用JAVA写的算法的两种实现方式。不过原理都是一样的 第一种:   package sort; import java.util.Arrays; public class BinarySearch1 { public static void main(String args[]) { int array[]= ...
插入排序的算法原理比较简单,通过一点点构建有序序列来达到排序的目的。比如给出一个数组a,长度为5,那么首先会将第一个元素作为一个已经排序的序列,然后从第二个元素开始向已经排序的序列(就是第一个元素)从后向前扫描,如果比这个序列中的元素小的话,就插入到相应元素的前面,而插入后需要后移元素。然后第三个元素再从这两个元素组成的有序序列的后面扫描,找到比它小的位置后就插入,否则继续向前扫描,以此类推。 一般来说,插入排序都采用in-place在数组上实现。具体算法描述如下: 从第一个元素开始,该元素可以认为已经被排序 取出下一个元素,在已经排序的元素序列中从后向前扫描 如果该元素(已排序) ...
归并排序中的“归并”的意思是将两个或者两个以上的有序表组合成一个新的有序表。他的实现无论是顺序存储结构还是链表结构,都可以在O(m+n)的时间级上实现。   复杂度: 时间复杂度:O(nlogn) 空间复杂度:O(n)   用途: 1、排序(速度仅次于快速排序,但较稳定) 2、求逆序对数   在实现单数组的归并排序之前,首先了解一下双数组的归并排序 这个双数组归并的前提是两个数组a和b都是已经排序好的   package sort; import java.util.Arrays; public class Test1 { public static v ...
快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用,因此很多软件公司的笔试面试,包括像腾讯,微软等知名IT公司都喜欢考这个,还有大大小的程序方面的考试如软考,考研中也常常出现快速排序的身影。 总的说来,要直接默写出快速排序还是有一定难度的,因为本人就自己的理解对快速排序作了下白话解释,希望对大家理解有帮助,达到快速排序,快速搞定。   快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序。它采用了一种分治的策略,通常称其为分治法(Divide-and-ConquerMethod)。 该方法的基 ...

APK权限大全

访问登记属性 android.permission.ACCESS_CHECKIN_PROPERTIES ,读取或写入登记check-in数据库属性表的权限 获取错略位置 android.permission.ACCESS_COARSE_LOCATION,通过WiFi或移动基站的方式获取用户错略的经纬度信息,定位精度大概误差在30~15 ...
属性 值 说明 android:orientation horizontal/vertical 设置布局水平还是垂直,默认是垂直 android:checked true/false

Java 序列化的高级认识

    博客分类:
  • JAVA
 
引言 将 Java 对象序列化为二进制文件的 Java 序列化技术是 Java 系列技术中一个较为重要的技术点,在大部分情况下,开发人员只需要了解被序列化的类需要实现 Serializable 接口,使用 ObjectInputStream 和 ObjectOutputStream 进行对象的读写。然而在有些情况下,光知道这些还远远不够,文章列举了笔者遇到的一些真实情境,它们与 Java 序列化相关,通过分析情境出现的原因,使读者轻松牢记 Java 序列化中的一些高级认识。 回页首 文章结构 本文将逐一的介绍几个情境,顺序如下面的列表。

JAVA的关键字小结

    博客分类:
  • JAVA
abstract Java 关键字 abstract 关键字可以修改类或方法。 abstract 类可以扩展(增加子类),但不能直接实例化。 abstract 方法不在声明它的类中实现,但必须在某个子类中重写。 示例  public abstract class MyClass { } public abstract String myMethod(); 注释 采用 abstract 方法的类本来就是抽象类,并且必须声明为 abstract。 abstract 类不能实例化。 仅当 abstract 类的子类实现其超类的所有 abstract 方法时,才能实例化 abs ...
一、多态性 多态有3个条件 1:继承 2:重写(重写父类继承的方法) 3:父类引用指向字类对象 实例如下:interface  Parent {         String  method(); } class  Child1  implements  Parent {         public  String  method()         {                 return  "Child1 ";         } } class  Child2  implements  Parent {         public  String ...
许多方面,Java 类似于 C++。Java 的语法非常类似于 C++,Java 有类、方法和数据成员;Java 的类有构造函数; Java 有异常处理。  但是,如果你使用过 C++ 会发现 Java 也丢掉一些可能是你熟悉的特性。这些特性之一就是析构函数。取代使用析构函数,Java 支持finalize() 方法。  在本文中,我们将描述 finalize() 与 C++ 析构函数的区别。另外,我们将创建一个简单的 Applet 来演示 finalize() 是如何工作的。 最终的界限     与 Java 不同,C++ 支持局部对象(基于栈)和全局对象(基于堆)。因为这一双重支 ...
话说这冒泡排序好久都没有用过了,忘得差不多了,但是由于目前的需要,只能再次重新学习了一下。 各种算法最好是用C/C++,因为执行效率高啊,在JAVA平台运行这些算法有些不适合,不过这个冒泡排序姑且用JAVA来测试一下。 下图是对它的各种复杂度的评价 最差时间复杂度 O(n2) 最优时间复杂度 O(n) 平均时间复杂度 O(n2) 最差空间复杂度 O(n) total, O(1)auxiliary 最佳算法 No 性能分析: 若记录序列的初始状态为"正序",则冒泡排序过程只需进
此文章为转载 文章一: String、StringBuilder和StringBuffer的区别 关键字: java String 字符串常量 StringBuffer 字符串变量(线程安全) StringBuilder 字符串变量(非线程安全)  简要的说, String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象, 因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String 对象,所以经常改变内容的字符串最好不要用 String ,因为每次生成对象都会对系 ...
下面的这篇文章讲的十分透彻了,所以转载之   简单来说, 接口是公开的,里面不能有私有的方法或变量,是用于让别人使用的,而抽象类是可以有私有方法或私有变量的, 另外,实现接口的一定要实现接口里定义的所 ...
在Android系统中提供了两种动画实现方式:一种是Tween动画,这种实现方式可以使视图组件移动、放大、缩小以及产生透明度的变化;另一种方式是Frame动画,这是逐帧动画,通过顺序播放排列好的图片来实现的,类似电影。   Tween动画: Tween动画能完成一系列简单的变化(如位置、尺寸、透明度和旋转等)。例如,在你的程序中有一个ImageView组件,我们通过Tween动画可以使该视图实现放大、缩小、旋转、渐变等。Tween动画类位于android.view.animation包中,该包中包含了一些常用的动画实现类。   Animation:动画抽象类,其他几个实现类继承它 ...
Global site tag (gtag.js) - Google Analytics