<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[classTC的博客]]></title><description><![CDATA[博客新地址：http://classtc.com]]></description><link>https://blog.youkuaiyun.com/TTCCAAA</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; TTCCAAA]]></copyright><item><title><![CDATA[Mac 下安装 MySql]]></title><link>https://blog.youkuaiyun.com/TTCCAAA/article/details/51220684</link><guid>https://blog.youkuaiyun.com/TTCCAAA/article/details/51220684</guid><author>TTCCAAA</author><pubDate>Fri, 22 Apr 2016 15:34:56 +0800</pubDate><description><![CDATA[本文记录在 Mac OS X 10.11 环境下安装 MySQL Community Server 5.7.12 的过程以及期间遇到的一些问题。详细的安装过程可以参考官方文档下载首先下载 MySql 安装包，在 MySql 官网 下载安装包，我下载的是 mysql-5.7.12-osx10.11-x86_64.dmg，在下载的过程中可以去看看官方的文档，了解一些相关内容。安装安装过程和普通软件安装是]]></description><category></category></item><item><title><![CDATA[常用排序算法 Java 实现]]></title><link>https://blog.youkuaiyun.com/TTCCAAA/article/details/51039685</link><guid>https://blog.youkuaiyun.com/TTCCAAA/article/details/51039685</guid><author>TTCCAAA</author><pubDate>Fri, 01 Apr 2016 21:42:53 +0800</pubDate><description><![CDATA[本文是对《算法 第四版》中排序章节的总结，包括 选择排序，插入排序，希尔排序，归并排序，快速排序，堆排序和冒泡排序各种排序算法的性能特点有多种排序算法存在，就是因为各种算法拥有不同的性能特点，各有所长，适用于不同场合，下面是书中对各种排序算法的性能特点的总结：
  算法
  是否稳定
  是否为原地排序
  时间复杂度
  空间复杂度
  备注  选择排序
  否
  是
  N^2
  1]]></description><category></category></item><item><title><![CDATA[Java 中 == 与 equals() 方法的区别]]></title><link>https://blog.youkuaiyun.com/TTCCAAA/article/details/51030000</link><guid>https://blog.youkuaiyun.com/TTCCAAA/article/details/51030000</guid><author>TTCCAAA</author><pubDate>Thu, 31 Mar 2016 20:49:17 +0800</pubDate><description><![CDATA[== 与 equals() 都有比较两者是否相等的意思，    == 用于比较两个操作数的值是否相等，equals() 默认是对 == 的封装，通常需要自定义重写来定义不同的相等条件关系操作符 ==== 属于关系操作符，关系操作符用于比较两个操作数的值之间的关系，在 Java 的内存结构中，基本数据类型是直接存放在操作数栈中的，而对象则是存放在堆内存中，在操作数栈中存放的是堆中对象的引用地址。对于基]]></description><category></category></item><item><title><![CDATA[Java 控制台输入数据]]></title><link>https://blog.youkuaiyun.com/TTCCAAA/article/details/51016509</link><guid>https://blog.youkuaiyun.com/TTCCAAA/article/details/51016509</guid><author>TTCCAAA</author><pubDate>Wed, 30 Mar 2016 16:33:02 +0800</pubDate><description><![CDATA[Java 中从控制台打印输出一般是用的 System.out，相反的，从控制台输入，用的是 System.in。这里总结三种从控制台输入的方法，分别适用于不同的场景，比如有时候需要挨个字节的输入，有时候需要按空格中断输入，有时候又需要整行输入。字节输入 System.in.read()一次读入一个字节的方式读入数据,抛出 IOException，构造方法有三种
read()：每次读取一个字节数据，并]]></description><category></category></item><item><title><![CDATA[黑大助手后端和Android端开发笔记]]></title><link>https://blog.youkuaiyun.com/TTCCAAA/article/details/50881089</link><guid>https://blog.youkuaiyun.com/TTCCAAA/article/details/50881089</guid><author>TTCCAAA</author><pubDate>Sun, 13 Mar 2016 22:56:04 +0800</pubDate><description><![CDATA[黑大助手 的功能：黑大助手是一款为黑龙江大学在校学生服务的 Android 端应用，提供 查课表，查成绩，查考试，问答社区以及获取校内最新资讯的功能。 
      下面开始整理整个项目从构思到完成这个过程的一些学习经历由于学校官方移动应用 i黑大实在太难用，而且数据更新不及时，消息推送不及时，所以想着自己写一个应用，可以查看一些学生信息，比如课程表，成绩表，考试安排等信息，思路还是比较简单的，就是]]></description><category></category></item><item><title><![CDATA[Android 中 Retrofit 结合 RxJava使用]]></title><link>https://blog.youkuaiyun.com/TTCCAAA/article/details/50659234</link><guid>https://blog.youkuaiyun.com/TTCCAAA/article/details/50659234</guid><author>TTCCAAA</author><pubDate>Sat, 13 Feb 2016 16:40:05 +0800</pubDate><description><![CDATA[最近在学习一些关于 RxJava 和 Retrofit 的相关内容，通过 给 Android 开发者的 RxJava 详解 这篇文章对RxJava 有了一些了解，接着通过 ReactiveX 中文文档 了解了一些相关概念和思想，然后通过 Retrofit 官网  和 Retrofit 在GitHub上的例子 简单了解了Retrofit 的使用，在使用 Retrofit 之前，需要先了解下 RESTf]]></description><category></category></item><item><title><![CDATA[设计模式学习笔记--装饰者模式(Decorator Pattern)]]></title><link>https://blog.youkuaiyun.com/TTCCAAA/article/details/50458633</link><guid>https://blog.youkuaiyun.com/TTCCAAA/article/details/50458633</guid><author>TTCCAAA</author><pubDate>Mon, 04 Jan 2016 21:47:23 +0800</pubDate><description><![CDATA[概念动态地将行为附加到对象上。提供了比继承更具有弹性的替代方案所谓”动态”，是指在运行时根据具体的需求添加行为，相对的，”静态”则是在编译时就确定了具体的行为，两者的区别很明显，动态添加行为具有很好的可扩展性，不需要修改已有的代码，这对于维护更新是很有利的。设计原则
类应该对扩展开放，对修改关闭 
对原有代码修改的代价是很大的，很可能引入未知的 bug 和意外的副作用，所以要对修改关闭，而使用扩展来]]></description><category></category></item><item><title><![CDATA[设计模式学习笔记--观察者模式(Observer Pattern)]]></title><link>https://blog.youkuaiyun.com/TTCCAAA/article/details/50429901</link><guid>https://blog.youkuaiyun.com/TTCCAAA/article/details/50429901</guid><author>TTCCAAA</author><pubDate>Tue, 29 Dec 2015 23:02:32 +0800</pubDate><description><![CDATA[概念观察者模式定义了对象之间的一对多的依赖关系，当一个对象(被观察者)改变状态时，它的所有依赖者(观察者)都会收到通知并更新设计原则为了交互对象之间的松耦合设计而努力理解在这个模式中存在两个角色，一个是 “被观察者”，另一个是 “观察者”，他们之间的关系类似现实生活中的“报刊订阅”，其中被观察者是“报社”，观察者是“用户”，用户在报社购买报刊订阅服务后，报社一旦有新报刊发布，就会通知用户，而如果用户]]></description><category></category></item><item><title><![CDATA[Fresco 图片圆角实现原理及 Android 中图片圆角实现方法]]></title><link>https://blog.youkuaiyun.com/TTCCAAA/article/details/50419700</link><guid>https://blog.youkuaiyun.com/TTCCAAA/article/details/50419700</guid><author>TTCCAAA</author><pubDate>Mon, 28 Dec 2015 16:13:16 +0800</pubDate><description><![CDATA[上篇文章 介绍了 Fresco  基础使用和实现图片圆角的方法，可以通过两种方式来实现圆角：BITMAP_ONLY 模式和 OVERLAY_COLOR 模式。本文通过分析 Fresco 源码来介绍这两种方式实现圆角的原理，并总结 Android 中常用的实现图片圆角的方法。本文重点分析 Fresco 中实现图片圆角的源码，其他部分的源码，将在后续文章中介绍。Fresco 中圆角实现原理在 com.f]]></description><category></category></item><item><title><![CDATA[GreenDao 数据库简单使用及数据库升级更新]]></title><link>https://blog.youkuaiyun.com/TTCCAAA/article/details/50409918</link><guid>https://blog.youkuaiyun.com/TTCCAAA/article/details/50409918</guid><author>TTCCAAA</author><pubDate>Sat, 26 Dec 2015 20:13:42 +0800</pubDate><description><![CDATA[前面的基础使用先占坑，遇到更新的问题，这里先记录数据库更新的问题，有空再来更新前面的基础使用部分在进行数据库的更新时，大致步骤如下：
编写更新后的数据库结构，并运行生成器，生成更新的代码 
找到 DaoMaster (自动生成的文件)
修改 SCHEMA_VERSION 的值为需要更新的版本号
找到 onUpgrade()方法，注释掉其中的 dropAllTables() 和 onCreate()]]></description><category></category></item><item><title><![CDATA[Fresco 基础使用]]></title><link>https://blog.youkuaiyun.com/TTCCAAA/article/details/50408515</link><guid>https://blog.youkuaiyun.com/TTCCAAA/article/details/50408515</guid><author>TTCCAAA</author><pubDate>Sat, 26 Dec 2015 14:44:12 +0800</pubDate><description><![CDATA[本文首先介绍一下 Facebook 推出的这个强大的图片加载框架以及一些简单的使用，在后续的文章中会逐步深入探究它的实现原理以及一些值得学习的编程思想。Android 中加载图片Android 系统是一个多用户的 Linux 系统，每一个应用会分配一个独立的 Linux 用户进程，基于这样的的运行机制，应用在运行过程中能够使用的内存大小是有限的，一般在设备出厂后，单个应用可分配的最大内存就确定下来了]]></description><category></category></item><item><title><![CDATA[AndroidStudio中配置NDK开发环境和编译Fresco]]></title><link>https://blog.youkuaiyun.com/TTCCAAA/article/details/50321883</link><guid>https://blog.youkuaiyun.com/TTCCAAA/article/details/50321883</guid><author>TTCCAAA</author><pubDate>Tue, 15 Dec 2015 22:56:35 +0800</pubDate><description><![CDATA[本文记录在 AndroidStudio 中配置 NDK 开发环境并编译 Fresco 源码。 
有两种方法可以查看 Fresco 的源码，第一种是比较常见的，在AndroidStudio 中通过 Gradle 的 compile 导入 Fresco，然后就能查看 Fresco 的源码了，第二种是通过 下载 github 上的 Fresco 源码，在本地编译使用]]></description><category></category></item><item><title><![CDATA[Android中RecyclerView实现下拉刷新上拉加载更多]]></title><link>https://blog.youkuaiyun.com/TTCCAAA/article/details/50100709</link><guid>https://blog.youkuaiyun.com/TTCCAAA/article/details/50100709</guid><author>TTCCAAA</author><pubDate>Sun, 29 Nov 2015 22:35:15 +0800</pubDate><description><![CDATA[在ListView中实现下拉刷新上拉加载更多是很方便的，在RecyclerView中要实现这个功能，需要一些新的思路，当然习惯后也是很简便的。下面开始这个过程的总结思路在RecyclerView中，默认没有HeaderView和FooterView，所以只能开发者自己来实现这两个View，通常的做法是：使用官方的刷新控件SwipeRefreshLayout来实现下拉刷新，然后自定义一个FooterV]]></description><category></category></item><item><title><![CDATA[Android中时间日期类使用总结（Calendar和Date)]]></title><link>https://blog.youkuaiyun.com/TTCCAAA/article/details/50054213</link><guid>https://blog.youkuaiyun.com/TTCCAAA/article/details/50054213</guid><author>TTCCAAA</author><pubDate>Thu, 26 Nov 2015 12:16:53 +0800</pubDate><description><![CDATA[Calendar类和Date类都来自java，在java.util包下，在JDK1.0中，Date类是唯一处理时间的类，但是由于Date类不便于实现国际化，所以从JDK1.1版本开始新增了Calendar类，并**推荐使用**Calendar类进行时间和日期处理。]]></description><category></category></item><item><title><![CDATA[Win10与Ubuntu 15.04双系统安装方法]]></title><link>https://blog.youkuaiyun.com/TTCCAAA/article/details/49282851</link><guid>https://blog.youkuaiyun.com/TTCCAAA/article/details/49282851</guid><author>TTCCAAA</author><pubDate>Tue, 20 Oct 2015 21:01:31 +0800</pubDate><description><![CDATA[通常情况下，是从window下安装ubuntu，首先安装Win10，然后再安装Ubuntu。网上有很多装双系统的教程，大致分为硬盘引导安装和U盘引导安装，我这里用的是U盘引导安装的方法。先说一下我的电脑情况：两个硬盘，一个256G的固态，一个750G的机械，计划固态用来装Ubuntu，用作Android开发；机械用来装win10，用作其他。在开始之前，先列出需要用到的工具和分区计划：
工具：一个容量]]></description><category></category></item><item><title><![CDATA[Android中解析html网页]]></title><link>https://blog.youkuaiyun.com/TTCCAAA/article/details/49082091</link><guid>https://blog.youkuaiyun.com/TTCCAAA/article/details/49082091</guid><author>TTCCAAA</author><pubDate>Mon, 12 Oct 2015 22:50:35 +0800</pubDate><description><![CDATA[本文主要记录通过网页解析得到自己想要的数据，也就是一个简单的爬虫。将使用第三方库jsoup实现，通过第三方库，能够快速方便的解析html。在开始之前，需要具备以下能力：
首先，需要对网页编程有一点了解，知道一个页面的结构，标签的含义，知道html网页其实是一种xml格式的文件。如果对这些都了解的话，就可以很方便的进行网页解析了，如果不太熟悉，建议先了解一下网页编程。
然后，在使用第三方库之前，最好是]]></description><category></category></item><item><title><![CDATA[Android中触摸事件传递分发机制]]></title><link>https://blog.youkuaiyun.com/TTCCAAA/article/details/48980905</link><guid>https://blog.youkuaiyun.com/TTCCAAA/article/details/48980905</guid><author>TTCCAAA</author><pubDate>Thu, 08 Oct 2015 22:21:59 +0800</pubDate><description><![CDATA[触摸事件用MotionEvent表示，在Android中，一个触摸事件从产生到最终起作用，是一个很复杂的过程，但思路还是很清晰的，就是一层一层的传递，通过一个boolean值判断是否拦截或者消耗（也就是使用掉这个事件）。下面从基础的事件产生过程开始梳理整个流程：事件的类型：一般使用手机，在屏幕上的操作就是点击或滑动，所以一般触摸事件分为两类：
点击事件：ACTION_DOWN–>ACTION_UP]]></description><category></category></item><item><title><![CDATA[Android中获取屏幕物理尺寸的方法]]></title><link>https://blog.youkuaiyun.com/TTCCAAA/article/details/48826643</link><guid>https://blog.youkuaiyun.com/TTCCAAA/article/details/48826643</guid><author>TTCCAAA</author><pubDate>Wed, 30 Sep 2015 11:11:44 +0800</pubDate><description><![CDATA[第一种方法//获取屏幕宽度
int screenWidth = ((WindowManager) context.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay().getWidth();//获取屏幕高度
int screenHeight = ((WindowManager) context.getSystemService(C]]></description><category></category></item><item><title><![CDATA[Android自定义View遇到的问题]]></title><link>https://blog.youkuaiyun.com/TTCCAAA/article/details/48750285</link><guid>https://blog.youkuaiyun.com/TTCCAAA/article/details/48750285</guid><author>TTCCAAA</author><pubDate>Sat, 26 Sep 2015 11:14:44 +0800</pubDate><description><![CDATA[在尝试画一个圆角矩形框的时候，用了两种方式实现，但是发现画出来的效果不一样，很是费解，不明白为什么会不一样，这里先收集起来，后续再解决。第一种方式画两个圆角矩形，重叠内部的圆角矩形稍小一点，并且颜色和背景色相同，这样就能形成一个圆角矩形框了，代码如下：    @Override
    protected void onDraw(Canvas canvas) {
        super.onDr]]></description><category></category></item><item><title><![CDATA[Android自定义View---正式篇]]></title><link>https://blog.youkuaiyun.com/TTCCAAA/article/details/48720351</link><guid>https://blog.youkuaiyun.com/TTCCAAA/article/details/48720351</guid><author>TTCCAAA</author><pubDate>Thu, 24 Sep 2015 22:50:01 +0800</pubDate><description><![CDATA[本文转自 http://blog.youkuaiyun.com/jiangwei0910410003/article/details/42640665  稍有修改，感谢分享！考虑到篇幅和内容相关性，将其分为两篇文章，这里主要记录自定义View的具体使用 
接上文 Android自定义View—前奏篇（Paint和Canvas的使用）自定义View的流程为：
创建一个继承自View的自定义类 
当然也可以继承自任]]></description><category></category></item></channel></rss>