本文主要是介绍11.3学习内容,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
计算星期几
基姆拉尔森计算公式
W= (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400) mod 7在公式中d表示日期中的日数,m表示月份数,y表示年数。
注意:在公式中有个与其他公式不同的地方:
把一月和二月看成是上一年的十三月和十四月,例:如果是2004-1-10则换算成:2003-13-10来代入公式计算。
代码如下:
//y-年,m-月,d-日期
string CaculateWeekDay(int y,int m, int d)
{
if(m==1) m=13;
if(m==2) m=14;
int week=(d+2*m+3*(m+1)/5+y+y/4-y/100+y/400)%7;
string weekstr="";
switch(week)
{
case 1: weekstr="星期一"; break;
case 2: weekstr="星期二"; break;
case 3: weekstr="星期三"; break;
case 4: weekstr="星期四"; break;
case 5: weekstr="星期五"; break;
case 6: weekstr="星期六"; break;
case 7: weekstr="星期日"; break;
}
return weekstr;
}
隐喻:指用已知的清晰清楚的事物比较或类别未知模糊的时候,对比后会得到较为深刻的理解。
ListView动画实现方法
- @Override
- public void onClick(View arg0) {
- // LayoutAnimationController.ORDER_NORMAL; 顺序显示
- // LayoutAnimationController.ORDER_REVERSE;反显示
- // LayoutAnimationController.ORDER_RANDOM; 随机显示
- switch (arg0.getId()) {
- case R.id.btn_tran:
- animation = new TranslateAnimation(-50f, 0f, 0f, 0f);
- animation.setDuration(500);
- //1f为延时
- controller = new LayoutAnimationController(animation, 1f);
- controller.setOrder(LayoutAnimationController.ORDER_NORMAL);
- mListView.setLayoutAnimation(controller);
- adapter.notifyDataSetInvalidated();
- break;
- case R.id.btn_alpha:
- animation = new AlphaAnimation(0f, 1f);
- animation.setDuration(500);
- controller = new LayoutAnimationController(animation, 1f);
- controller.setOrder(LayoutAnimationController.ORDER_NORMAL);
- mListView.setLayoutAnimation(controller);
- adapter.notifyDataSetInvalidated();
- break;
- case R.id.btn_rotate:
- animation = new RotateAnimation(0f, 360f);
- animation.setDuration(500);
- controller = new LayoutAnimationController(animation, 1f);
- controller.setOrder(LayoutAnimationController.ORDER_NORMAL);
- mListView.setLayoutAnimation(controller);
- adapter.notifyDataSetInvalidated();
- break;
- case R.id.btn_scale:
- animation = new ScaleAnimation(0.1f, 1.0f, 0.1f, 1.0f);
- animation.setDuration(500);
- controller = new LayoutAnimationController(animation, 1f);
- controller.setOrder(LayoutAnimationController.ORDER_NORMAL);
- mListView.setLayoutAnimation(controller);
- adapter.notifyDataSetInvalidated();
- break;
- case R.id.rotate3d:
- animation = new Rotate3dAnimation(0, 360, 200, 200, 0, true);
- animation.setDuration(1000);
- controller = new LayoutAnimationController(animation, 0.1f);
- controller.setOrder(LayoutAnimationController.ORDER_NORMAL);
- mListView.setLayoutAnimation(controller);
- adapter.notifyDataSetInvalidated();
- break;
- default:
- break;
- }
- }
linux强大命令
aview 命令

当内存不足时释放掉一些内存
在你的应用的生命周期中,onTrimMemory()接口同样会在当整个设备的内存变得很低的时候被调用。你应该根据从onTrimMemory()中传来的内存等级,选择性的释放掉你资源
TRIM_MEMORY_RUNNING_MODERATE
你的应用正在运行,不可被杀死,但是目前设备剩余内存很少,系统需要从LRU缓存中杀死掉一些进程
TRIM_MEMORY_RUNNING_LOW
你的应用正在运行,不可被杀死,但是目前设备剩余内存不足临界值,因此你需要释放掉不是用的内存来提升系统运行效率
TRIM_MEMORY_RUNNING_CRITICAL
你的应用正在运行,但是系统已经准备杀死大多数LRU中的进程,因此你应该释放掉那些不是很关键的资源。如果系统不能通过回收得到足够的RAM,那么他会清空所有LRU缓存,并且开始杀死那些希望保留的进程,例如拥有一个正在运行后台服务的进程。
同样的,当你的应用正在处于缓存中的时候,你可能会受到以下几个onTrimMemory()等级
TRIM_MEMORY_BACKGROUND
系统正在运行在低内存状态,而你的进程处在LRU列表的开始部分。因此尽管你的应用进程不太可能被杀死,但是系统已经转杯开始杀死LRU中的进程。你应该释放掉那些容易被还原的资源,来确保你仍然在列表中,并且在用户返回到应用的时候能够快速的进行切换
TRIM_MEMORY_MODERATE
系统正在运行在低内存阶段,你的进程处于LRU列表的中部。加入系统无法获得足够的内存资源,你的应用将会被杀死
TRIM_MEMORY_COMPLETE
系统正在运行在低内存阶段,你的进程将会是最开始被系统杀死的进程之一,你应该释放掉所有与你的应用状态无关的资源。
虽然由于onTrimMemory()接口直到API14的时候才被加入,你还是可以使用onLowMemory接口来作为老版本的回调,他可以同onTrimMemory()中TRIM_MEMORY_COMPLETE的等级一样。
注意:当系统开始杀死在LRU缓存中的进程时,尽管他是从下至上开始的,但是他也会考虑优先杀死那些内存消耗比较大的,以回收更多的系统资源。因此,如果你的应用的内存尽可能低,你就可能被始终保留在内存中,能够很快切换回来
真正的单例
同是,防止了多线程同事房屋该方法就会产生多个实例的问题。
效率高,线程安全。
public class TestInstance{
private static TestInstance instance;
public static TestInstance getInstance{
if( instance==null ){
synchronized( TestInstance.class ){
instance=new TestInstance();
}
}
return instance;
}
}
}
这篇关于11.3学习内容的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!