随笔分类 - JAVA
摘要:项目中需要对Android设备进行流量统计来进行资费结算,所以对Android设备流量统计进行了一些调研。发现流量统计主流上有两种方式 使用系统统计类TrafficStats获取 通过系统文件解析读取 TrafficStats static long getMobileRxBytes() //获取通
阅读全文
摘要:ConcurrentModificationException 在对集合类进行操作时,有很多清空会出现ConcurrentModificationException。这里我们来分不同的遍历方式和线程场景下来讨论ConcurrentModificationException产生的原因和解决的方法。下面
阅读全文
摘要:Process and Threads 当一个Application启动时,如果该application此时没有其他Component在运行,Android System此时会为该application启动一个新的进程。 默认情况下,一个application中所有组件都运行在同一个进程和线程(主线
阅读全文
摘要:联系人 首先需要说明的是,Android系统中的联系人的存储并不是仅仅是一张表。信息存储分为了不同的表,可以按表访问,同时其设计人员为应用开发人员提供了视图模式。下图是通讯录的表结构: "查看联系人SQLITE表结构流程方法博客链接" 在做通讯录相关开发之前,首先要添加联系人相关 权限 :< u...
阅读全文
摘要:>synchronizedsynchronized 关键字,它包括两种用法:synchronized 方法和 synchronized 块。1>synchronized 方法:通过在方法声明中加入 synchronized关键字来声明 synchronized 方法。 public synchronized void accessVal(int newVal);syn...
阅读全文
摘要:>VO: value-object>DTO: Data Transform Object>DTD: Document Type Definition文档类型定义是一套关于标记符的语法规则。它是标准通用标记语言和可扩展标记语言1.0版规格的一部分,是文档的验证机制。>JUnit: 一个Java语言的单元测试框架>JBoss: 一个基于J2EE的开放源代码的应用服务器>POJO ...
阅读全文
摘要:JMS是一个标准,就像EJB,有很多开源的,商业的实现,ms技术对应的规范是jsr914,规范的实现称为jms provider,常见的实现有ActiveMQ、JBoss MQ、IBM Websphere MQ等。 其主要优点:(1)可以使2个系统或模块实现松耦合,模块A不需要直接调用模块B,只需要往jms provider上发送一条约定格式的消息,模块B收到这条消息,进行后续...
阅读全文
摘要:熟悉MS-Windows和X Windows事件驱动设计模式的开发人员,通常是把一个方法的指针传递给事件源,当某一事件发生时来调用这个方法(也称为“回调”)。Java的面向对象的模型目前不支持方法指针,似乎不能使用这种方便的机制。Java支持interface,通过interface可以实现相同的回调。其诀窍就在于定义一个简单的interface,申明一个被希望回调的方法。...
阅读全文
摘要:&,双目运算符:将两个表达式的值按二进制位展开,对应的位(bit)按值进行“与”运算,结果保留在该位上…比如170&204对应二进制就是 10101010B& 11001100B= 10001000B…170&204=136…该位只要有一个值为0结果为0,否则结果为1。如果两数位数不同,则较短数高位补全,再运算,比如char a=100;int b=260;a&b实际是00...
阅读全文
摘要:J2SE 1.4在语言上提供了一个新特性,就是assertion(断言)功能,它是该版本在Java语言方面最大的革新。在软件开发中,assertion是一种经典的调试、测试方式。jvm 断言默认是关闭的。断言是可以局部开启的,如:父类禁止断言,而子类开启断言,所以一般说“断言不具有继承性”。断言只适用于复杂的调试过程。断言一般用于程序执行结果的判断,千万不要让断言处理业务流程。整个程序去除asse...
阅读全文
摘要:1、static变量 按照是否静态的对类成员变量进行分类可分两种:一种是被static修饰的变量,叫静态变量或类变量;另一种是没有被static修饰的变量,叫实例变量。两者的区别是: 对于静态变量在内存中只有一个拷贝(节省内存),JVM只为静态变量分配一次内存,在加载类的过程中完成静态变量的内存分配,可用类名直接访问(方便),当然也可以通过对象来访问(但是这是不推荐的)。 ...
阅读全文
摘要:Constructor 构造器Constructor不能被继承,因此不能重写Overriding,但可以被重载Overloading。 构造器用来确保每个对象都会得到初始化。当对象被创建时,如果该类具有构造器,java就会在用户有能力操作对象之前自动调用相应的构造器,所以保证了初始化地进行。在java中创建和初始化被捆绑在了一起,两者不能分离。注意构造器没有返回值. 定义...
阅读全文
摘要:abstract class 和 interface 的区别 含有abstract修饰符的class即为抽象类,abstract 类不能创建实例对象。含有abstract方法的类必须定义为abstract class,abstract class类中的方法不一定是抽象的。 abstract class类中定义抽象方法必须在具体(Concrete)子类中实现,所以,不能有抽象构造方...
阅读全文
摘要:1>异常继承类 Error类和Exception类都继续自Throwable类 Error表示系统级的错误情况,如内存错误这样程序无法通过自身的处理再继续执行下去的情况 java提供了两类主要的异常:runtime exception和checked exception。 checked 异常也就是我们经常遇到的IO异常,以及SQL异常都是这种异常。对于che...
阅读全文
摘要:内部类:不可以有静态数据,静态方法或者又一个静态内部类 内部类的优点:隐藏类的细节,内部类可以声明为私有。内部类可以访问外部类的对象(包括private)静态内部类:可以有静态数据,静态方法或者又一个静态内部类局部内部类:定义在一个方法或者一个代码块中的类,作用域为相应代码块匿名内部类:该类没有名...
阅读全文
摘要:1> 类访问修饰符修饰符class类名称extends父类名称implement接口名称(访问修饰符与修饰符的位置可以互换)访问修饰符名称说明备注public可以被所有类访问(使用)public类必须定义在和类名相同的同名文件中package可以被同一个包中的类访问(使用)默认的访问权限,可以省略此关键字,可以定义在和public类的同一个文件中private修饰内部类...
阅读全文
摘要:Java中的数据类型分为基本数据类型和引用数据类型:1)基础数据类型有: boolean, byte、short、char, int、float、long, double。 它们可被分为四种类型,整型、浮点型、char型和boolean型。 byte,boolean : 1 short...
阅读全文
摘要:1)String对象的初始化由于String对象特别常用,所以在对String对象进行初始化时,Java提供了一种简化的特殊语法,格式如下: String s = “abc”; s = “Java语言”;其实按照面向对象的标准语法,其格式应该为: String s = new String(“abc...
阅读全文
摘要:1> java.lang (package)这个是系统的基础类,比如String等都是这里面的,这个package是唯一一个可以不用import就可以使用的Package包中关键类:1>>Object类:是类库中所有类的直接或间接父类.包含的公共方法: protected Object clon...
阅读全文
摘要:1>Array 和 Arrays:Arrays:用来操作array的工具类,其中包含一组static函数: equals():比较两个array是否相等。array拥有相同元素个数,且所有对应元素两两相等。 fill():将值填入array中。 sort():用来对array进行排序。 binarySearch():在排好序的array中寻找元素。...
阅读全文