当前位置:  编程技术>移动开发
本页文章导读:
    ▪java 日常小结        java 日常总结 作为个人笔记,不具有参考价值。1:Java final关键字解释final 对于常量来说,意味着值不能改变,例如 final int i=100。这个i的值永远都是100。但是对于变量来说又不一样,只是.........
    ▪ 视角与弧度的转换 - 三角学        角度与弧度的转换 - 三角学 转自:http://tianyelina.iteye.com/blog/756031     #define degreesToRadians(x) (M_PI * x / 180.0) #define radiansToDegrees(x) (x * (180.0/M_PI))   弧度=角度*Math.PI/180 角度=弧度*180/Math.PI 以下.........
    ▪ 判断现阶段网络是否可用       判断当前网络是否可用 public boolean isNetworkAvailable () {    Context mContext = getApplication();    ConnectivityManager networkManager =     (ConnectivityManager) mContext.getSystemService[size=medium][/size](mContext.CON.........

[1]java 日常小结
    来源: 互联网  发布时间: 2014-02-18
java 日常总结
作为个人笔记,不具有参考价值。
1:Java final关键字解释
final 对于常量来说,意味着值不能改变,例如 final int i=100。这个i的值永远都是100。但是对于变量来说又不一样,只是标识这个引用不可被改变,例如 final File f=new File("c:\\test.txt");那么这个f一定是不能被改变的,如果f本身有方法修改其中的成员变量,例如是否可读,是允许修改的。形象的比喻:一个女子定义了一个final的老公,这个老公的职业和收入都是允许改变的,只是这个女人不会换老公而已。

使用final关键字修饰一个变量时,是指引用变量不能变,引用变量所指向的对象中的内容还是可以改变的。

final类中的成员变量,你可以定义其为final,也可以不是final。而对于方法,由于所属类为final的关系,自然也就成了final型的。你也可以明确的给final类中的方法加上一个final,但这显然没有意义。
2:
类型             大小
boolean      1位   不是数字类型,不能对布尔变量进行算术运算
char            16位 字符型在java中,被看做无符号整型.26个字母和特殊字符,每个国家的字符等。char a = 'a',b='%';输出 a=a,b=%。
byte            8位   字节型。代表了26个字母对应的数值,byte a='a'; 表示了a对应的数值为97,byte b = '1',c=1; 打印出b,c后,输出b=49,c=1.   b表示字符1所在的位置。
short          16位
int               32位
(1):int类型向double类型或者float类型的时候,不需要强制类型转换,因为32位精度向高位,不需要转换;但是double向int转换,64位的高精度向32位低精度转换,需要强制类型转换。
例如:double a=1,b=2;
int m = a+b;必须写成int m =(int)(a+b);
(2):两个byte相加,变成了短整型。byte a=1,b=2,c; 当a+b之后,编译器会自动转换成整型。c=(byte)(a+b);

3: StringBuilder与StringBuffer和String 的区别
转载自:http://apps.hi.baidu.com/share/detail/33501758
       String类型和StringBuffer类型的主要性能区别其实在于 String 是不可变的对象,因此在每次对String类型进行改变的时候其实都等同于生成了一个新的 String对象,然后将指针指向新的String对象,所以经常改变内容的字符串最好不要用 String
      如果是使用StringBuffer类则结果就不一样了,每次结果都会对StringBuffer 对象本身进行操作,而不是生成新的对象,再改变对象引用
     先简单介绍一下, StringBuilder 是 JDK5.0 中新增加的一个类,它跟 StringBuffer 的区别看下面的介绍:
   Java.lang.StringBuffer线程安全的可变字符序列。类似于 String 的字符串缓冲区,但不能修改。可将字符串缓冲区安全地用于多个线程。可以在必要时对这些方法进行同步,因此任意特定实例上的所有操作就好像是以串行顺序发生的,该顺序与所涉及的每个线程进行的方法调用顺序一致。
   每个字符串缓冲区都有一定的容量。只要字符串缓冲区所包含的字符序列的长度没有超出此容量,就无需分配新的内部缓冲区数组。如果内部缓冲区溢出,则此容量自动增大。从 JDK 5.0 开始,为该类增添了一个单个线程使用的等价类,即 StringBuilder 。与该类相比,通常应该优先使用 StringBuilder 类,因为它支持所有相同的操作,但由于它不执行同步,所以速度更快。
    但是如果将 StringBuilder 的实例用于多个线程是不安全的。需要这样的同步,则建议使用 StringBuffer 。
在大部分情况下
     StringBuilder > StringBuffer > String
4:[转载]finalize() 和 system.gc() 的区别
finalize()是由JVM自动调用的,你可以用System.gc(),但JVM不一定会立刻执行,JVM感觉内存空间有限时,才会开始执行finalize(),至于新的对象创建个数和被收集个数不同是因为收集的对象只和JVM的垃圾收集策略有关。
finalize()和gc()
(1)问题:finalize()函数是干嘛的?Java不是有Garbage Collection(以下简称gc)来负责回收内存吗?
回答:
gc 只能清除在堆上分配的内存(纯java语言的所有对象都在堆上使用new分配内存),而不能清除栈上分配的内存(当使用JNI技术时,可能会在栈上分配内存,例如java调用c程序,而该c程序使用malloc分配内存时).因此,如果某些对象被分配了栈上的内存区域,那gc就管不着了,对这样的对象进行内存回收就要靠finalize().
举个例子来说,
当java 调用非java方法时(这种方法可能是c或是c++的),在非java代码内部也许调用了c的malloc()函数来分配内存,而且除非调用那个了 free() ;否则不会释放内存(因为free()是c的函数),这个时候要进行释放内存的工作,gc是不起作用的,因而需要在finalize()内部的一个固有方法调用它(free()).
finalize的工作原理应该是这样的:
一旦垃圾收集器准备好释放对象占用的存储空间,它首先调用finalize(),而且只有在下一次垃圾收集过程中,才会真正回收对象的内存.所以如果使用finalize(),就可以在垃圾收集期间进行一些重要的清除或清扫工作.
(2)问题:finalize()在什么时候被调用?
回答:
有三种情况
1.所有对象被Garbage Collection时自动调用,比如运行System.gc()的时候.
2.程序退出时为每个对象调用一次finalize方法。
3.显式的调用finalize方法
       除此以外,正常情况下,当某个对象被系统收集为无用信息的时候,finalize()将被自动调用,但是jvm不保证finalize()一定被调用,也就是说,finalize()的调用是不确定的,这也就是为什么sun不提倡使用finalize()的原因. 简单来讲,finalize()是在对象被GC回收前会调用的方法,而System.gc()强制GC开始回收工作纠正,不是强制,是建议,具体执行要看GC的意思简单地说,调用了 System.gc() 之后,java 在内存回收过程中就会调用那些要被回收的对象的 finalize() 方法。

5:List,Set,集成接口Collection。
list允许重复的元素,Set是集合不允许重复的元素。
list放入元素的顺序是什么样的,取出来就是什么样的。
Set按照哈希法进行了排序。所以存入和取出的顺序不一样。
Map:是键值对的存取。按照哈希法进行了排序。所以存入和取出的顺序不一样。

6:枚举类型
public enum Action {
TURN_LEFT,
TURN_RIGHT,
SHOOT
}
public class EnumDemo {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
doAction(Action.SHOOT);
}

public static void doAction(Action mAction){
switch(mAction){
case TURN_LEFT:
System.out.println("turn left");
case TURN_RIGHT:
System.out.println("turn right");
case SHOOT:
System.out.println("turn shoot");
default:
break;
}
}
}
好处:少输入一些字符,对switch中输入的类型进行检查,如果不是action中的成员,会报错。枚举类型实质也是类。每个变量是对应的enum实例。

    
[2] 视角与弧度的转换 - 三角学
    来源: 互联网  发布时间: 2014-02-18
角度与弧度的转换 - 三角学

转自:http://tianyelina.iteye.com/blog/756031

 

 

#define degreesToRadians(x) (M_PI * x / 180.0)

#define radiansToDegrees(x) (x * (180.0/M_PI))

 

弧度=角度*Math.PI/180 
角度=弧度*180/Math.PI 

以下内容以弧度与角度的相互转换为基础 

圆周率: PI 3.1416(弧度) 
圆:2Pi   6.2832(弧度) 

弧度是角的度量单位 
弧长等于圆半径长的弧所对的圆心角为1弧度。
由上面这条推导出 2Pi r, 周长就是 3.14*2(圆弧度) * 半径 ,就是这样来的 
同理 PId也是一样   3.14*2*半径 = 直径*3.14 

角度与弧度的转化就是等比公式的运算 
角度 / 360   = 弧度 / 6.28 (请自行理解成分式) 

角度 =   弧度*360/6.28(2PI)   = 弧度/2PI*360   >>(除2) 弧度/3.14*180 >> 弧度*180/Math.PI 
弧度 = 角度*6.28(2PI) /360   = 角度/360*2PI   >>(除2) 角度/180*3.14 >> 角度*Math.PI/180 

弧度 = 角度 * Math.PI / 180 
角度 = 弧度 * 180 / Math.PI 

就系咁样推导出来的~~~~~~~ 

脑袋夹门了~~~~~~~ 

貌似是 

1度 / 180度 = x弧度 / 3.14 ( 自行理解成分式) 
推成 1角度 =   180x = 3.14   >>   x = 3.14 / 180  

>> 弧度 = 角度 *   (Math.PI / 180) 


1弧度 / 3.14 = x角度 / 180度 ( 自行理解成分式) 
推成 1弧度 = 3.14x = 180   >>   x = 180 / 3.14 

>> 角度 = 弧度 *   (180 / Math.PI) 


1弧度 约等于 57.2958角度 

手头有两本PDF,讲图形图像方面的数学原理的,比较推荐,共享一下 
(基于Flash的ActionScript代码的) 
Foundation Actionscript3.0 Animation 中英双版+源码 
(就是传说中的基理大师) 
下载地址: 
http://d.namipan.com/d/e4207a672082cca764ae5855216ad57632478f263c864e00


    
[3] 判断现阶段网络是否可用
    来源: 互联网  发布时间: 2014-02-18
判断当前网络是否可用
public boolean isNetworkAvailable () {
    Context mContext = getApplication();
    ConnectivityManager networkManager =
    (ConnectivityManager) mContext.getSystemService[size=medium][/size](mContext.CONNECTIVITY_SERVICE);
    NetworkInfo networkInfo = networkManager.getActiveNetworkInfo();
    if (networkInfo != null && networkInfo.isAvailable()) {
    return true;
    }
    return false;
    }

    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3