- 博客(16)
- 资源 (1)
- 收藏
- 关注
原创 学习笔记-有关C语言的指针的类型和本质
一个变量var和其指针p*p和var指的是var的内容,p和&var指的是var的地址指针究竟是什么?int i = 123; int是类型(整数类型),i是该类型的变量,123是赋予i的值(一个整数)。i所占的空间大小是平台相关的,一般编译环境中sizeof(i)=4。int* p = &i;int*是类型(指向整数的指针类型),p是该类型的变量,&i
2015-08-10 17:58:28
390
原创 逻辑Bug:在使用递归时的返回问题
最近练习时写了个简单的二叉搜索树,find方法采用递归,开始是这样写的:public boolean find(int key) { if(this.data == key) { //System.out.println("true"); return true; } if(key < this.data && this.leftChild != null) { lef
2015-08-10 17:33:43
679
原创 学习笔记-注解+反射读取Bean中数据
我们经常有从数据源(即javabean中拿数据)的需要,但不同的人对bean中内容的命名五花八门,但利用注解+反射可以写出通用的提取数据的代码。假设需求是:从一个bean中取出NodeId, NodePId, NodeName三个成员。假如一个bean是这样写的:getset方法省略public class FileBean { private int id; private in
2015-07-03 11:35:47
460
原创 慕课网笔记-多线程中Thread和Runnable的区别
一般来说建立新线程有两种方法:继承Thread类或者实现Runnable接口。那么这两种实现方式各有什么优缺点呢?1.Runnable方式可以避免采用Thread方式由于Java单继承特性带来的缺陷。如果继承了Thread类,就不能再继承别的类了,而接口是可以实现多个的。2.Runnable的代码可以被多个线程共享,可以多个线程处理同一资源。下面是模拟火车站卖票的例子:
2015-07-02 11:40:47
481
转载 Android中通过注解代替findViewById方法
来源:http://www.2cto.com/kf/201405/302998.html这篇文章主要讲解注解实现findViewById的功能,首先我们来熟悉一下在java中怎么定义一个注解和解析一个注解注解的概念是在jdk5.0中提出来的,在java.lang的包中已经定义了三个注解:Override,Deprecated,SuppressWarningsOverride相信
2015-06-05 15:19:22
708
原创 学习笔记-两种单例模式-饱汉和饿汉
饱汉模式:实例在开始时为空,第一次加载后才实例化可节约一些资源,但在并发时有可能出现多个单例private S();private static S instance;public static S getInstance() { if(instance == null) { instance = new S(); } return instance;
2015-06-01 00:25:32
2256
原创 学习笔记-ListView中控件的刷新-setTag的两种用法
在ListView中,有时候需要动态更新其中某些控件的内容。更新的方法有以下几个:方法一:更新所有item的信息在更新后,直接调用adapter.notifyDataSetChanged(); 但是这是最耗资源的做法。通常我们只想更新一个item中的其中某个view,这样,效率很低。方法二:只更新需要更新的view。关键是拿到相应view的引用。建立一个list保存需要
2015-05-06 19:47:41
1344
原创 学习笔记-新线程开始前提前判断网络条件
访问网络获取数据是耗时操作,一般会开启新线程进行。在启动线程前可先判断网络环境。当需要编写的线程很多时,可将判断语句内置到线程类中,以后每次写新线程时就能省略掉网络判断,提高写代码效率:若继承Thread,可重写其start方法:private class MyThread extends Thread { @Override public void run() { // TODO
2015-05-06 11:15:31
419
原创 学习笔记-利用反射拿到隐藏的方法
在Android中,有些系统类的方法被隐藏起来了,不能直接调用。这时可以利用Java的反射机制拿到相应的方法。例1:拿到并调用PackageManager的getPackageSizeInfo方法:Method getPackageSizeInfo = null;Method[] methods = PackageManager.class.getMethods(); //得到Pa
2015-04-30 11:40:55
495
原创 学习笔记-切换界面时显示内容不重复创建
在同一个Activity中切换界面(UI)。MiddleManager.getInstance().changeUI(new SecondUI(MiddleManager.getInstance().getContext()));MiddleManager.getInstance().changeUI(new SecondUI(MiddleManager.getInstance().g
2015-04-30 11:04:13
381
转载 什么是线程安全和线程不安全
首先要明白线程的工作原理,jvm有一个main memory,而每个线程有自己的working memory,一个线程对一个variable进行操作时,都要在自己的working memory里面建立一个copy,操作完之后再写入main memory。多个线程同时操作同一个variable,就可能会出现不可预知的结果。根据上面的解释,很容易想出相应的scenario。 而用s
2015-04-04 16:00:53
294
原创 EditText输入数字做计算时的优化
在编写一些计算软件时使用EditText作为输入,常希望输入框能像日常计算器一样工作,因此有以下优化代码:若当前EditText为空则将其值设为零,且将光标放在数字右边: if(textInput.getText() == null || textInput.getText().length() == 0) { textInput.setText("" + 0); textIn
2015-04-03 12:11:32
653
原创 ListView在下拉时出现空指针错误
原因出在adapter的getView方法中原先的写法: @Override public View getView(int position, View convertView, ViewGroup parent) { View view = null; ViewHolder holder = null; if(convertView == null) { holde
2015-04-03 11:35:51
877
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人