- 博客(27)
- 资源 (5)
- 收藏
- 关注
原创 listview软键盘弹出仍显示最新的会话
Activity里面设置inputMoe详见这篇博客<activity android:name=".ui.activity.ConversationDetail" android:windowSoftInputMode="stateUnspecified|adjustResize" />listview的设置//只要ListView刷新,就会滑动l
2016-06-12 21:02:31 473
原创 9、覆盖equals时总是覆盖hashCode
覆盖equals时总是覆盖hashCode这是规范,原因:因为在散列集合中要保持equals和hashCode的一致性而且,equals相等hashCode必须相等,但equals是不想等的,不要求hashCode也不相等案例:public final class PhoneNumber { private final short areaCode; private final sh
2016-06-12 15:13:31 379
原创 更改ProgressBar颜色
更改ProgressBar颜色<ProgressBar android:id="@+id/delete_pb" android:progressDrawable="@drawable/progress_drawable" android:layout_marginTop="20dp" android:layout_marginLeft=
2016-06-11 17:59:28 8152
原创 28、java文件上传下载、邮件收发
文件上传下载前台:1. 提交方式:post2. 表单中有文件上传的表单项: <input type=”file” />3. 指定表单类型: 默认类型:enctype="application/x-www-form-urlencoded" 文件上传类型:multipart/form-dataFileUpload文件上传功能开发中比较常用,apache也提供了文件上传组件! Fi
2016-06-11 16:48:43 6170
原创 27、监听器学习
监听器监听器: * Java Web的三大组件:Servlet、Listener、Filter. * 注意: * listener的触发或调用,是不需要我们关注的.(Tomcat服务器) * Tomcat与JavaEE的版本是有对应的. * Tomcat 7.0版本 - Servlet 3.0 * Tomcat 6.0版本 - Servlet 2.5 * 开
2016-06-11 16:38:51 562
原创 26、过滤器
过滤器项目开发中,经常会涉及到重复代码的实现!注册 ---- 提交Servlet 【1. 设置编码格式】 ----转到JSP修改 ---- 提交Servlet 【1. 设置编码格式】 --- 转到JSP其他:如判断用户是否登陆,只有登陆才能有操作权限!涉及到重复判断: 获取session,取出session数据,判断是否为空,为空说明没有登陆,不能操作只有登陆后,才能操作!如何解决:抽取
2016-06-11 16:31:43 4118
原创 25、连接池(DBCP、C3P0)、动态代理与分页技术
连接池思考:程序中连接如何管理?1. 连接资源宝贵;需要对连接管理2. 连接: a) 操作数据库,创建连接 b) 操作结束, 关闭!分析:涉及频繁的连接的打开、关闭,影响程序的运行效率!连接管理:预先创建一组连接,有的时候每次取出一个; 用完后,放回;学习连接池:a. 自定义一个连接池b. 学习优秀的连接池组件a) DBCPb) C3P0动态代
2016-06-11 15:29:22 5235
原创 24、jdbc入门3
元数据在jdbc中获取数据库的定义,例如:数据库、表、列的定义信息。就用到元数据。在jdbc中可以使用: 数据库元数据、参数元数据、结果集元数据(元数据定义相关api, ..MetaData)public class App { //1. 数据库元数据 @Test public void testDB() throws Exception { // 获取
2016-06-11 01:04:52 439
原创 23、BeanUtils使用
BeanUtils组件使用程序中对javabean的操作很频繁, 所以apache提供了一套开源的api,方便对javabean的操作!即BeanUtils组件。 BeanUtils组件, 作用是简化javabean的操作!用户可以从www.apache.org下载BeanUtils组件,然后再在项目中引入jar文件! 使用BenUtils组件:1. 引入commons-beanutils-
2016-06-11 00:12:20 575
原创 22、jdbc入门2
入门2JdbcUtil类public class JdbcUtil { // 连接参数 // private String url = "jdbc:mysql://localhost:3306/jdbc_demo"; private static String url = "jdbc:mysql:///jdbc_demo"; private static String
2016-06-10 22:34:30 343
原创 21、jdbc入门1
jdbc入门什么是jdbc使用java代码(程序)发送sql语句的技术,就是jdbc技术!!!!连接案例/** * jdbc连接数据库 * @author APPle * */public class Demo1 { //连接数据库的URL private String url = "jdbc:mysql://localhost:3306/day17";
2016-06-10 17:32:40 1724
原创 8、覆盖equas时请遵守约定
覆盖equas时请遵守约定不覆盖的情况类的每个实例本质上是唯一的(Object本身的equals就能产生正确的行为)不关心逻辑是否相等基类已经覆盖了equals,并且从基类继承下来是合适的类是私有的或是包级私有的,可以确定它的equals方法永远不会调用(这是用可以在它的equals方法中抛出异常,防止调用)什么时候覆盖如果类具有自己的逻辑相等的概念的时候,并且基类还没有实现。这也叫“值类”有一种值
2016-06-09 13:54:33 539
原创 7、避免使用终结方法
避免使用终结方法终结方法通常是不可预测的,也是很危险的,一般情况下是不必要的缺点不能保证会被及时地执行终结方法中产生异常可能不会抛出(不会打印栈轨迹)性能损失常用显示终止来终止资源,配合try catch 使用例如各种流的关闭方法终结方法的合法用途充当安全网(最后的保障)终结native对象(像android 里面的native方法一样)注意子类不会调用基类的终结方法,要手动调用
2016-06-08 18:16:24 354
原创 6、消除过期的对象引用
消除过期的对象引用一个栈实践的反例本例中凡是被弹出的对象都是过期的引用public class Stack { private Object[] elements; private int size = 0; private static final int DEFAULT_INITIAL_CAPACITY = 16; public Stack() {
2016-06-08 17:44:49 412
原创 5、避免创建不必要的对象
避免创建不必要的对象一般来说最好是重用对象,而不是每次需要的时候都创建一个相同的对象。反例千万不要这样做,因为穿进去的参数“aa”本身就是一个String实例String s = new String("aa");应该这样:String s = "aa";而且,它可以保证对于所有同一台虚拟机中的运行的代码,只要它们包含相同的字符串字面常量,该对象就会被重用对于提供静态工厂和构造函数的 不可变类,优先
2016-06-08 17:16:19 421
原创 4、通过私有构造器强化不可实例化的能力
不可实例化的类比如很多工具类,成员都是静态的,你写这个类的原因是想拿来直接用,而不需要实例化的但是在缺少显示构造函数的时候,编译器会给你默认生成一个构造函数,这样这个类就有可能实例化企图将类做成抽象类来强制该类不被实例化,这是行不通的(因为子类可以实例化,而且你写这个类不又不是用来继承的)将构造器设置为private来解决问题public class UtilityClass { // Su
2016-06-08 16:19:45 810
转载 什么是序列化和反序列化
详见原博客用来处理对象流简单来说序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化,流的概念这里不用多说(就是I/O),我们可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间(注:要想将对象传输于网络必须进行流化)!在对对象流进行读写操作时会引发一些问题,而序列化机制正是用来解决这些问题的!问题的引出:如上所述,读写对象会有什么问题呢?比如:我要将对象写入一个磁盘
2016-06-07 23:14:53 6667 1
原创 3、用私有构造器或者枚举类型强化SIngleton属性
结论单元素的枚举类型已经成为实现Singleton的最佳方法Singleton模式常见的Singleton有两种方式,第一种:public class Elvis { //被定义为final的,不可改变的 public static final Elvis INSTANCE = new Elvis(); private Elvis() { } public voi
2016-06-07 22:29:09 442
原创 2、遇到多个构造参数的时候需要考虑使用构建器(effective java)
考虑多个构造参数什么意思,一个类的构造参数很多,但是你不是每次构造都用上所有的单数
2016-06-07 21:04:37 1121
原创 1、考虑用静态工厂方法代替构造器(effective java)
考虑静态构造方法这里的静态构造方法不等于设计模式中的工厂模式public static Boolean valueOf(boolean b) { return b ? Boolean.TRUE : Boolean.FALSE;}优点:第一个优势是有名称对于同一个对象,它的构造函数名字是确定的,有时候你需要基于这个类的自定义对象,采用这种静态构造方法,命名的时候可以很清楚的把这个对象的特点说
2016-06-07 14:35:47 2473
原创 Thinking in java 笔记
初始化与清理访问权限复用类多态接口内部类初始化与清理参数的顺序可以区分两个函数 不能根据返回值来区分两个函数如果传入的数据类型小于方法中声明的数据类型,实际数据类型就会被提升 如果无法找到接受char型参数的方法,就会把char直接提升为Int型 如果传入的实际参数过大,就要强制转化,不然会报错如果类中没有构造器,编译器会创建一个默认构造函数 如果定义了,无论是否有参,就不
2016-06-07 13:40:15 516
原创 ListView、CursorAdatper
ListView、CursorAdapter的使用Fragment里面的ListView使用CursorAdapter的案例Fragment中@Overridepublic void initData() { String[] projection = { "sms.body AS snippet", "sms.thread_id AS _i
2016-06-05 14:38:55 550
原创 ViewPager和Fragment的使用
小案例XML中<android.support.v4.view.ViewPager android:id="@+id/viewPager" android:layout_width="match_parent" android:layout_height="match_parent"></android.support.v4.view.ViewPager>创建Fragmen
2016-06-01 11:28:44 496
原创 基类Activity、Fragment、Dialog以及LogUtils、CursorUtils的写法(方便开发)
基类Activity子类只要重写抽象方法就行了public abstract class BaseActivity extends FragmentActivity implements View.OnClickListener { @Override protected void onCreate(Bundle savedInstanceState) { super.
2016-06-01 10:48:43 793
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人