<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[sun_x_t的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/sun_x_t</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; sun_x_t]]></copyright><item><title><![CDATA[JNI ERROR (app bug): attempt to use stale local reference 0x31900019（Android ICS（4.0+） JNI局部应用的变化）]]></title><link>https://blog.youkuaiyun.com/sun_x_t/article/details/38893847</link><guid>https://blog.youkuaiyun.com/sun_x_t/article/details/38893847</guid><author>sun_x_t</author><pubDate>Thu, 28 Aug 2014 10:01:59 +0800</pubDate><description><![CDATA[本文转载自：

译序：

这篇文章的内容实际是在我发现一个项目bug后寻找解决方案时找到的，当时项目原有target为8（ICS 4.0之前的2.X版本），在4.0+的S3上运行一切正常，而后target升级到14时再在S3上运行时就会出现类似如下的native
 crash：


05-13 14:07:13.139: E/dalvikvm(22265): JNI ERROR
]]></description><category></category></item><item><title><![CDATA[java设置控件的 layout_marginleft 属性]]></title><link>https://blog.youkuaiyun.com/sun_x_t/article/details/12943389</link><guid>https://blog.youkuaiyun.com/sun_x_t/article/details/12943389</guid><author>sun_x_t</author><pubDate>Tue, 22 Oct 2013 10:02:31 +0800</pubDate><description><![CDATA[[java] view
 plaincopy






LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);  
lp.setMargins(left]]></description><category></category></item><item><title><![CDATA[浮点数在计算机中的存储方式]]></title><link>https://blog.youkuaiyun.com/sun_x_t/article/details/12680157</link><guid>https://blog.youkuaiyun.com/sun_x_t/article/details/12680157</guid><author>sun_x_t</author><pubDate>Sun, 13 Oct 2013 15:58:54 +0800</pubDate><description><![CDATA[C语言和C#语言中，对于浮点类型的数据采用单精度类型（float）和双精度类型(double)来存储，float数据占用32bit,double数据占用64bit,我们在声明一个变量float f= 2.25f的时候，是如何分配内存的呢？如果胡乱分配，那世界岂不是乱套了么，其实不论是float还是double在存储方式上都是遵从IEEE的规范的，float遵从的是IEEE R32.24 ,而dou]]></description><category></category></item><item><title><![CDATA[进程和线程的区别]]></title><link>https://blog.youkuaiyun.com/sun_x_t/article/details/12061597</link><guid>https://blog.youkuaiyun.com/sun_x_t/article/details/12061597</guid><author>sun_x_t</author><pubDate>Thu, 26 Sep 2013 17:25:41 +0800</pubDate><description><![CDATA[简而言之,一个程序至少有一个进程,一个进程至少有一个线程. 
线程的划分尺度小于进程，使得多线程程序的并发性高。
另外，进程在执行过程中拥有独立的内存单元，而多个线程共享内存，从而极大地提高了程序的运行效率。
线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行，必须依存在应用程序中，由应用程序提供多个线程执行控制。
从逻]]></description><category></category></item><item><title><![CDATA[当你输入一个网址的时候，实际会发生什么?]]></title><link>https://blog.youkuaiyun.com/sun_x_t/article/details/12059851</link><guid>https://blog.youkuaiyun.com/sun_x_t/article/details/12059851</guid><author>sun_x_t</author><pubDate>Thu, 26 Sep 2013 17:03:07 +0800</pubDate><description><![CDATA[作为一个软件开发者，你一定会对网络应用如何工作有一个完整的层次化的认知，同样这里也包括这些应用所用到的技术：像浏览器，HTTP，HTML，网络服务器，需求处理等等。

本文将更深入的研究当你输入一个网址的时候，后台到底发生了一件件什么样的事～

1. 首先嘛，你得在浏览器里输入要网址:





2. 浏览器查找域名的IP地址



导航的第一步是通过访问的域名找出其I]]></description><category></category></item><item><title><![CDATA[void 指针（2013-09-23 优酷土豆笔试）]]></title><link>https://blog.youkuaiyun.com/sun_x_t/article/details/12041415</link><guid>https://blog.youkuaiyun.com/sun_x_t/article/details/12041415</guid><author>sun_x_t</author><pubDate>Thu, 26 Sep 2013 10:46:33 +0800</pubDate><description><![CDATA[优酷的笔试 考到了  void 指针一个题目，没有什么概念，回来恶补一下。
（from：http://www.cppblog.com/dragon/archive/2008/09/02/60760.html）
指针有两个属性:指向变量/对象的地址和长度 
但是指针只存储地址,长度则取决于指针的类型 
编译器根据指针的类型从指针指向的地址向后寻址 
指针类型不同则寻址范围也不同,比如: ]]></description><category></category></item><item><title><![CDATA[SQL过关]]></title><link>https://blog.youkuaiyun.com/sun_x_t/article/details/11565145</link><guid>https://blog.youkuaiyun.com/sun_x_t/article/details/11565145</guid><author>sun_x_t</author><pubDate>Wed, 11 Sep 2013 15:06:00 +0800</pubDate><description><![CDATA[from：http://blog.youkuaiyun.com/blue_jjw/article/details/8818719



引言




做为一个web开发者，不与数据库打交道几乎是不可能的！由此可见，掌握SQL语句对于一个web开发人员来说是多么的重要。下面是我在整理电脑时，找到的资料，觉得还不错就拿出来与大家分享。不废话了，好不好你看了就知道。进入主题，本文的主要内容如下：]]></description><category></category></item><item><title><![CDATA[C++项目中的extern "C" {}]]></title><link>https://blog.youkuaiyun.com/sun_x_t/article/details/10434091</link><guid>https://blog.youkuaiyun.com/sun_x_t/article/details/10434091</guid><author>sun_x_t</author><pubDate>Wed, 28 Aug 2013 11:07:11 +0800</pubDate><description><![CDATA[致谢，from：http://www.cnblogs.com/skynet/archive/2010/07/10/1774964.html


引言
在用C++的项目源码中，经常会不可避免的会看到下面的代码：



?





1

2

3

4

5

6

7

8

9




#ifdef
 __cplusplus]]></description><category></category></item><item><title><![CDATA[【待字闺中-2】单链表和之恋]]></title><link>https://blog.youkuaiyun.com/sun_x_t/article/details/9704805</link><guid>https://blog.youkuaiyun.com/sun_x_t/article/details/9704805</guid><author>sun_x_t</author><pubDate>Thu, 01 Aug 2013 16:36:59 +0800</pubDate><description><![CDATA[出处：http://hawstein.com/posts/add-singly-linked-list.html




题目


两个单链表（singly linked list），每一个节点里面一个0-9的数字， 输入就相当于两个大数了。然后返回这两个数的和（一个新list）。这两个输入的list 长度相等。 要求是：1. 不用递归。2. 要求算法在最好的情况下，只遍历两个li]]></description><category></category></item><item><title><![CDATA[【待字闺中-1】海枯石烂]]></title><link>https://blog.youkuaiyun.com/sun_x_t/article/details/9704677</link><guid>https://blog.youkuaiyun.com/sun_x_t/article/details/9704677</guid><author>sun_x_t</author><pubDate>Thu, 01 Aug 2013 16:33:41 +0800</pubDate><description><![CDATA[原题：两个玩家，一堆石头，假设多于100块，两人依次拿，最后拿光者赢，规则是：

第一个人不能一次拿光所有的；第一次拿了之后， 每人每次最多只能拿对方前一次拿的数目的两倍。求先拿者必胜策略, 如果有的话。怎么证明必胜。


分析：
这是斐波那契博弈，当且仅当石头个数是斐波那契数的时候先手必败。

让我们用第二数学归纳法证明：

为了方便，我们将 n 记为 f[i] 。

1]]></description><category></category></item><item><title><![CDATA[重载（overload）覆盖（override）与隐藏 的区别]]></title><link>https://blog.youkuaiyun.com/sun_x_t/article/details/9496211</link><guid>https://blog.youkuaiyun.com/sun_x_t/article/details/9496211</guid><author>sun_x_t</author><pubDate>Fri, 26 Jul 2013 15:11:04 +0800</pubDate><description><![CDATA[谈谈重载（overload）覆盖（override）与隐藏 
 转自http://blog.youkuaiyun.com/yanjun_1982/archive/2005/09/02/470405.aspx

      这三个概念都是与OO中的多态有关系的。如果单是区别重载与覆盖这两个概念是比较容易的，但是隐藏这一概念却使问题变得有点复杂了，下面说说它们的区别吧。
       重载是指不同的函数使]]></description><category></category></item><item><title><![CDATA[类/对象大小计算]]></title><link>https://blog.youkuaiyun.com/sun_x_t/article/details/9422583</link><guid>https://blog.youkuaiyun.com/sun_x_t/article/details/9422583</guid><author>sun_x_t</author><pubDate>Tue, 23 Jul 2013 15:25:24 +0800</pubDate><description><![CDATA[1，类大小计算遵循结构体对齐原则


什么是内存对齐



编译器为每个“数据单元”按排在某个合适的位置上。



C、C++语言非常灵活，它允许你干涉“内存对齐”


为什么要对齐



性能原因：在对齐的地址上访问数据快。


如何对齐



第一个数据成员放在offset为0的位置



其它成员对齐至min(sizeof(membe]]></description><category></category></item><item><title><![CDATA[static成员变量，staitic成员函数以及 实现只能实例化3次的类]]></title><link>https://blog.youkuaiyun.com/sun_x_t/article/details/9422357</link><guid>https://blog.youkuaiyun.com/sun_x_t/article/details/9422357</guid><author>sun_x_t</author><pubDate>Tue, 23 Jul 2013 15:14:38 +0800</pubDate><description><![CDATA[一、static 成员变量

对于特定类型的全体对象而言，有时候可能需要访问一个全局的变量。比如说统计某种类型对象已创建的数量。
如果我们用全局变量会破坏数据的封装，一般的用户代码都可以修改这个全局变量，这时可以用类的静态成员来解决这个问题。
非static数据成员存在于类类型的每个对象中，static数据成员独立该类的任意对象存在，它是与类关联的对象，不与类对象关联。


（1）、]]></description><category></category></item><item><title><![CDATA[dynamic_cast详解]]></title><link>https://blog.youkuaiyun.com/sun_x_t/article/details/9372725</link><guid>https://blog.youkuaiyun.com/sun_x_t/article/details/9372725</guid><author>sun_x_t</author><pubDate>Thu, 18 Jul 2013 20:21:46 +0800</pubDate><description><![CDATA[作为四个内部类型转换操作符之一的dynamic_cast和传统的C风格的强制类型转换有着巨大的差别。除了dynamic_cast以外的转换，其行为的都是在编译期就得以确定的，转换是否成功，并不依赖被转换的对象。而dynamic_cast则不然。在这里，不再讨论其他三种转换和C风格的转换。
首先，dynamic_cast依赖于RTTI信息，其次，在转换时，dynamic_cast会检查转换的sou]]></description><category></category></item><item><title><![CDATA[C++/C宏定义中## 连接符与# 符的含义]]></title><link>https://blog.youkuaiyun.com/sun_x_t/article/details/9370323</link><guid>https://blog.youkuaiyun.com/sun_x_t/article/details/9370323</guid><author>sun_x_t</author><pubDate>Thu, 18 Jul 2013 16:39:15 +0800</pubDate><description><![CDATA[转自：

1.http://blog.youkuaiyun.com/believefym/article/details/1836162
2.http://www.yunsec.net/a/school/ymbc/C/2009/1027/1243.html
3，http://www.cnblogs.com/qinfengxiaoyue/archive/2013/02/03/2890581.html
]]></description><category></category></item><item><title><![CDATA[拷贝构造函数，类的赋值运算符重载，深拷贝与浅拷贝]]></title><link>https://blog.youkuaiyun.com/sun_x_t/article/details/9193835</link><guid>https://blog.youkuaiyun.com/sun_x_t/article/details/9193835</guid><author>sun_x_t</author><pubDate>Fri, 28 Jun 2013 10:21:47 +0800</pubDate><description><![CDATA[1，首先明确：拷贝构造函数与重载赋值操作符在没有定义的情况下，编译器也会为我们生成一个，这说明这两个函数是一个类必不可少的部分。如果一个类没有定义任何的东西，编译器也会帮助我们生成下面的4个函数：1、一个构造函数，2、析构函数，3、复制构造函数，4、重载赋值操作符。
2，默认的拷贝构造函数
 和 重载重载赋值操作符 都是对象间的位拷贝（浅拷贝），也就是把对象里的值完全复制给另一个对象。在某些状]]></description><category></category></item><item><title><![CDATA[java.lang.Illegalargumentexception: the surface has been released]]></title><link>https://blog.youkuaiyun.com/sun_x_t/article/details/9182933</link><guid>https://blog.youkuaiyun.com/sun_x_t/article/details/9182933</guid><author>sun_x_t</author><pubDate>Wed, 26 Jun 2013 21:57:39 +0800</pubDate><description><![CDATA[功能：进入一个activity，使用MediaPlayer和SurfaceView类来播放视频，启动activity时，直接初始化做MediaPlayer.start()，而不是通过一个监听器什么的来启动，就会出现：The surface has been released.
错误位置：mediaplayer.setDisplay(surfaceView.getHost());
原因：medi]]></description><category></category></item><item><title><![CDATA[android MediaPlayer的基本使用方法]]></title><link>https://blog.youkuaiyun.com/sun_x_t/article/details/9170761</link><guid>https://blog.youkuaiyun.com/sun_x_t/article/details/9170761</guid><author>sun_x_t</author><pubDate>Tue, 25 Jun 2013 15:59:25 +0800</pubDate><description><![CDATA[使用MediaPlayer播放音频或者视频的最简单例子：
JAVA代码部分：
public class MediaPlayerStudy extends Activity
 {
    private Button bplay,bpause,bstop;
    private MediaPlayer mp = new MediaPlayer();
   
    @Override]]></description><category></category></item><item><title><![CDATA[Parcalable接口使用（android传递结构体数据的方法）]]></title><link>https://blog.youkuaiyun.com/sun_x_t/article/details/9168009</link><guid>https://blog.youkuaiyun.com/sun_x_t/article/details/9168009</guid><author>sun_x_t</author><pubDate>Tue, 25 Jun 2013 10:47:43 +0800</pubDate><description><![CDATA[对于Android来说传递复杂类型，主要是将自己的类转换为基础的字节数组，Activity之间传递数据是通过Intent实现的。 Android序列化对象主要有两种方法，实现Serializable接口、或者实现Parcelable接口。实现Serializable接口是Java
 SE本身就支持的，而Parcelable是Android特有的功能，效率比实现Serializable接口高，而且]]></description><category></category></item><item><title><![CDATA[service 启动 activity]]></title><link>https://blog.youkuaiyun.com/sun_x_t/article/details/9167953</link><guid>https://blog.youkuaiyun.com/sun_x_t/article/details/9167953</guid><author>sun_x_t</author><pubDate>Tue, 25 Jun 2013 10:43:09 +0800</pubDate><description><![CDATA[我想我们一般在Service里想启动Activity一定会这样写： 


Java代码  



Intent intentv = new Intent(Intent.ACTION_VIEW);  
            intentv.setData(uri);  
            intentv.putExtra("keepTitle", true);]]></description><category></category></item></channel></rss>