随笔分类 -  Java

摘要:最近在做的一个需求被产品的各种奇葩要求和各种为了体验的迷之借口搞得面目前非,里面有很多异步请求,而且有时候是独立执行,有时候需要相互依赖的串行执行(A的结果回来了,成功的话执行B,不成功不管)。一开始我都是非常简单的在Activity中实现各种回调接口,然后在回调方法中调用下一个异步请求,为了能串行 阅读全文
posted @ 2016-07-23 16:51 krosshuang 阅读(4000) 评论(1) 推荐(0)
摘要:最近深受轮子哥影响,觉得造一些轮子应该会对自己的技术功底有一定的帮助,就决定先从简单的容器开始实现。废话不多说,就先实现一个Java中的ArrayList。ArrayList是我们在Java中使用非常多的一个类,它是顺序表的数组实现,LinkedList是顺序表的链式实现(自己编的名字,懂就好哈),... 阅读全文
posted @ 2014-10-07 16:01 krosshuang 阅读(1901) 评论(0) 推荐(0)
摘要:原文地址:http://www.cnblogs.com/kross/p/3621952.html考虑到以后可能要用到这方面的知识,就来写个Demo尝试下,其实以前学过,但不记得了……(用不到的东西各种不记得啊)直接进入正题吧,在Android上使用Socket实际上跟在Java中使用差不多,只要注意下在Manifest中加网络权限就好了(我原来经常犯这个错误),另外网络请求不能再主线程里,基本就OK了。そして,先写一个服务器的小程序吧。就直接使用Java写就好了,灰常的简单,随便写写。/** * 测试服务器 * */public class TestServer { public sta... 阅读全文
posted @ 2014-03-24 22:01 krosshuang 阅读(2982) 评论(0) 推荐(1)
摘要:原文地址:http://www.cnblogs.com/kross/p/3615695.html一直没弄懂Session,cookies什么的登陆验证到底是怎么回事,昨天分别用HttpURLConnection和HttpClient两个类来实验了一下,基本弄明白了Session验证登陆的机制和这两个类的区别。第一步:先在本地写一个登陆页面和一个内容页面(登陆了才能进去)吧。代码大致如下:下面是login.php,用于请求登陆的,通过post传递参数,如果登陆成功就会注册session。 1 进入网站";11 } else {12 echo "-1";13 }14. 阅读全文
posted @ 2014-03-21 13:42 krosshuang 阅读(6884) 评论(1) 推荐(1)
摘要:最近看到一个题目,代码如下: public static void main(String args[]) { Thread t = new Thread() { public void run() { pong(); } }; t.run(); System.out.println("ping"); } static void pong() { System.out.println("pong"); }问,结果... 阅读全文
posted @ 2014-03-02 21:24 krosshuang 阅读(674) 评论(0) 推荐(0)
摘要:买了本《重构》,粗略的看了第一遍,把一些要点记录在印象笔记中了,发出来分享下。首先是,代码的坏味道:Duplicated Code重复代码某些代码重复出现,可以抽象到一个新的函数中,或者抽象到父类上去。Long Method过长函数过长函数是指,一个函数里面实现的功能太多,越长也就越难理解。你需要将一个过长的函数分解成各种小函数,命名是关键。Data Clumps数据泥团函数的参数非常的多,调用也频繁,其中一个参数被删掉,其他的参数就不是那么有意义了。可以把这些参数抽到一个类里面,直接传这个类的对象就好了。Large Class过大的类一个类如果做太多的事情,就会导致内部有很多实例变量,重复代 阅读全文
posted @ 2014-01-09 21:11 krosshuang 阅读(817) 评论(0) 推荐(1)
摘要:今晚刚刚看了一点儿《大话设计模式》这本书,看到它示例的第一个程序,好像有点理解IF与SWITCH的区别了。大致的思考了总结出来。IF适用于每个条件都必须判断,就是IF语句中的判断是不同类型的,匹配的东西是非互斥的。而SWITCH中的判断是同类型的,匹配的东西是互斥的。比如判断一个对象是飞机还是坦克,还是战舰,这个对象如果是飞机就不可能是坦克,不可能是战舰,互斥的。所以这个判断用SWITCH比较妥当:Carrier c = new Carrier();switch(c.getType()) { case AIRPLANE: case TANK: case BATTLESH... 阅读全文
posted @ 2013-07-15 00:28 krosshuang 阅读(298) 评论(0) 推荐(0)
摘要:曾经在《Java核心技术卷II》中看到可以把对象序列化,也就是输出到一个文件上,保存对象的信息,我当时就想到,可以使用这个保存用户的一些设置信息,比如窗口的大小,位置等等一些用户习惯。加上最近看到Android的Saving Data,想试一试Android上的文件读写功能。于是,将这两个功能结合在一起写了一个保存用户设置的功能。 这次讲两个内容: 1.对象序列化。 2.Android系统中的文件读写。 先来看下对象序列化是怎么回事,Java中有一个接口叫Serializable,对象实现这个接口后,就可以进行使用ObjectOutputStream和ObjectInputStre... 阅读全文
posted @ 2013-06-01 16:42 krosshuang 阅读(939) 评论(0) 推荐(1)
摘要:今天看书学了个貌似很牛逼的东西,可以用ObjectOutputStream把对象写入文件,可以用ObjectInputStream从文件读取对象。作为菜鸟,我浅显的认为,这是个非常有用的功能。比如,打开一个应用程序,它有窗口,必然是个对象,窗口的位置,大小,还有内部控件的摆放位置,肯定是在对象中由成员属性来设置的,如果在关闭程序之前,将这个对象写入文件,当下次再打开这个软件的时候,读取这个文件中的对象,这样,就记录了用户的个人习惯,是一个不错的功能。当然,还可能通过改注册表什么的来实现这样的机制。有些习惯还可以直接存储到服务器的数据库上,这些都是可以的。这里,把代码再敲一敲,复习巩固一下。先写 阅读全文
posted @ 2013-03-26 23:39 krosshuang 阅读(293) 评论(0) 推荐(0)
摘要:对于这个问题,我的处理方法是:1.先通过递归数出字符串中连续空格的个数。2.将有连续空格的位置去除多余空格。3.判断首尾是否有空格。第一步,判断当前位置是否是空格以及连续空格的个数,这里使用一个递归的方法比较简单。代码如下:public static int getBlankNumber(String s, int index){ if (index < s.length()) { if (s.charAt(index) == ' ') { return getBlankNumber(s, index + 1) + 1; } else {... 阅读全文
posted @ 2013-03-21 15:20 krosshuang 阅读(5353) 评论(0) 推荐(0)