自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Chen_dSir的博客

无端坠入红尘梦,惹却三千烦恼丝.

  • 博客(94)
  • 资源 (1)
  • 收藏
  • 关注

原创 2017年上半年个人总结

这学期,考的几门成绩都出来了,成绩还是一如既往的差,好几科都是70多分,这也跟自己平时没有好好去上课,和考试前没有好好复习也有一定的关系。不过呢,也没什么大不了的,毕业的绩点还是够的,毕竟从大一开始就没有打算考研。说到考试,可以说我是极其反对这种形式,在我看来,因为有了考试,学一门课反倒成了任务,而不是真正踏实地去学,有了考试,学习的目的不再是单纯学习,而是为了最后的应考。所以很多科目,理解性的东

2017-06-09 20:59:13 1220 3

原创 Android热修复原理-类加载机制与反射

1,热修复方案:(1) 阿里的AndFix 补丁方案,通过natvie层hook住带有bug的方法从而替换Java层的代码 。四五年没有维护了,应该是被弃用了,因为是通过C++代码来完成类的替换。实际就是反射拿到旧的类class,然后再把补丁包里面的class进行一个赋值,例如 old.class = new.class. 是可以立即生效的。(2) 美团的Robust 补丁方案 ,就是在编译打包的阶段对每个函数都加入修复的代码。有点类似代理,将方法执行的代码重定向到修复了的方法中去。(运用了字节..

2020-11-20 15:13:04 586 2

原创 Java的反射基础与常用方法

一、什么是java反射 java的反射机制是指在运行状态中,对于任意的一个类,都能获取到这个类的属性和方法,无论是private还是public。对于任意的一个对象,都能调用到它的任意一个方法和属性,无论是private还是public。这种动态获取类的信息和动态调用对象的方法,我们叫做java的反射机制。当然这种机制如果自己使用不当,在一定程度上破坏了java面向对象的封装性。二、java反射实例和用法 下面有个person的bean对象,我们就用这个简单的例子来学...

2020-08-12 16:49:43 644 2

原创 Android只能主线程中更新UI吗?

许多人都是人云亦云,自己却从来没有实践过,然而纸上得来终觉浅,绝知此事要躬行。我们先来简单的看下这个代码:public class MainActivity extends AppCompatActivity { private TextView textView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);...

2020-07-06 12:18:09 618 2

原创 Retrofit2.0结合okhttp3来使用拦截器给GET或者Post请求添加固定参数(详细步骤)

1:首先使用OkHttpClient新建一个builder.(这里面的connect、writer、read如果只是测试可以不添加) OkHttpClient.Builder U1builder = new OkHttpClient().newBuilder(); U1builder .connectTimeout(DEFAULT_TIMEOUT, TimeUni...

2020-01-14 11:14:13 2155

原创 Dagger2初探(一)

Dagger2是Android中依赖注入的一个类库,主要就是用来实现自动实例化的,也就是说我们不需要通过new这个关键字来实例化某个对象。而是通过Dagger2的依赖注入方式来实现.它的好处就是降低程序的耦合度。比如如果A的构造函数发生了改变,而B的构造中又使用到了A,那么B也需要修改。这只是两个,假如有更多的地方使用到了A,那么修改起来就会很繁琐。因此Dagger2正好能够带给我们便...

2019-10-09 11:20:04 191

原创 如何提升ListView的效率

ListView的优化方案 首先,默认直接使用ListView的效率是非常低的,在Adapter的getView()方法中,每次都将布局加载了一遍,当它快速滚动的时候就会性能下降。  1,在getView()的参数中还有一个View 类型的convertView参数,它用于将之前加载好的布局进行缓存,以便之后的重用。我们可以先判断converView是否为空,如果为空,则使用LayoutI...

2018-08-04 16:06:47 615

原创 Android-Universal-Image-Loader框架的基本使用

首先在官网下载:  https://github.com/nostra13/Android-Universal-Image-Loader  下载它的jar文件 然后打开我们的Android Studio新建一个工程Imagetest. 将当前的工程结构android切换到project,在app目录下面会有一个libs目录,然后将我们下载好的jar文件复制到libs里面。然后鼠标右键点击这个复...

2018-08-01 22:51:08 551

转载 Service中是否可以执行耗时操作

不可以。 Service和activity是运行在当前app所在的main thread(UI主线程)中的,而耗时操作(如:网络请求、拷贝数据、大文件)会阻塞主线程,给用户不好的体验。Broadcase耗时操作为10秒,Activity耗时操作为5秒Service耗时操作为20秒如果需要在服务中进行耗时操作,可以选择IntentService,  IntentService是...

2018-07-30 22:11:04 2109

原创 OkHttp的基本使用

  在使用Okhttp之前需要先添加依赖 ,它的具体用法是先创建一个OkhttpClient的实例  OkhttpClient client = new OkHttpClient();      在发送Request请求之前,先创建一个Request的对象。   Request request = new Request.Builder().url("http://www.baidu....

2018-07-20 15:03:07 694

原创 HttpURLConnection的简单用法

 使用HttpURLConnection来访问网络,首先需要获取它的实例,它需要new 一个URL对象,例如URL url = new URL("http://www.baidu.com") ,再使用HttpURLConnection connection = (HttpURLConnection) url.openConnection();这个方法返回一个HttpURLConnection实例。...

2018-07-20 11:27:48 5047 1

转载 Android中更新UI的两种方法

在Android开发过程中,常需要更新界面的UI。而更新UI是要主线程来更新的,即UI线程更新。如果在主线线程之外的线程中直接更新页面 显示常会报错。抛出异常:android.view.ViewRoot$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch i...

2018-07-20 10:10:57 1349

转载 Java中字节流和字符流的区别

字节流与和字符流的使用非常相似,两者除了操作代码上的不同之外,是否还有其他的不同呢?实际上字节流在操作时本身不会用到缓冲区(内存),是文件本身直接操作的,而字符流在操作时使用了缓冲区,通过缓冲区再操作文件,如图12-6所示。下面以两个写文件的操作为主进行比较,但是在操作时字节流和字符流的操作完成之后都不关闭输出流。范例:使用字节流不关闭执行Java代码  package org.lx...

2018-07-20 09:59:07 231

原创 SQLite数据库存储

      在Android中为了很方便的管理我们的数据库,提供了一个SQLiteOpenHelper的帮助类。首先这个类是一个抽象类,如果想要使用它必须创建一个类去继承它,然后去实现它的抽象方法。其中有两个重要的方法: getReadableDatabase()和getWritableDatabase().这两个方法都可以创建或者打开一个现有的数据库,并且返回一个可对数据库进行读写的对象。然而,...

2018-07-19 16:46:54 1696

转载 ContentProvider数据库共享之——MIME类型与getType()

转自:http://blog.csdn.net/harvic880925/article/details/44620851  谢谢!   一、概述在上篇中,我们讲了通过共享数据库的增、删、改、查问题,但在生成PeopleContentProvider类时,由于其派生自ContentProvider,所以我们我们重写了数据库操作的insert()、query()、update()、delet...

2018-07-19 11:01:51 598

原创 继续更新

重新开始更新了,之前买了一个服务器,搭建了一个网站然后所有的更新都在那里更新,由于一阵时间在忙考试,忘记续费了,所以也没有备份,现在开始重新在这里更新了,...

2018-07-19 10:00:01 286

原创 Kruskal算法求最小生成树-算法设计与分析实验3

题目: 求如图所示,用kruskal算法求下面图的最小生成树:话不多说,程序如下:#include#include#define N 7using namespace std;typedef struct _node{ int val; int start; int end;}Node;Node V[N];int cmp(const

2017-12-25 15:03:40 2683 1

原创 分治法求和C语言-算法设计实验2

题目:用分治法求和 这里我们举出一个例子,利用分治法求数组的和: 比如: a[10] = {1,2,3,4,5,6,7,8,9,10} ,分治法的算法之前我们学数据结构的时候,有过应用,数据结构学过的归并排序,二分法,快速排序算法等里面用到的就是分治法的思想: 如图: 把一个大问题,分解成若干个小问题,这里把一个大的数组分解成若干个小数组,再合并把值返回。 下面看程

2017-12-18 15:29:58 3204

原创 分治法求和-算法设计实验2

题目:用分治法求和 这里我们举出一个例子,利用分治法求数组的和: 比如: a[10] = {1,2,3,4,5,6,7,8,9,10} ,分治法的算法之前我们学数据结构的时候,有过应用,数据结构学过的归并排序,二分法,快速排序算法等里面用到的就是分治法的思想: 如图: 把一个大问题,分解成若干个小问题,这里把一个大的数组分解成若干个小数组,再合并把值返回。 下面看程序代码:#includ

2017-12-18 15:17:01 3601 1

原创 n阶Hanoi塔问题 - 算法设计与分析实验1

由于实验指导书上没有给出具体的问题描述,这里把ACM的算法描述列了出来:问题: 假设有三个分别命名为X、Y和Z的塔座,在塔座X上插有n个直径大小各不相同、依小到大编号为1,2,…,n的圆盘。现要求将X轴上的n个圆盘移至塔座Z上并仍按同样顺序叠排,圆盘移动时必须遵循下列规则: 1)每次只能移动一个圆盘; 2)圆盘可以插在X、Y和Z中的任一塔座上; 3)任何时刻都不能将一个较大的圆盘压在较小的圆盘

2017-12-11 11:41:46 1409

原创 算法与设计实验1:N阶Hanoi塔问题

由于实验指导书上没有给出具体的问题描述,这里把ACM的算法描述列了出来:问题: 假设有三个分别命名为X、Y和Z的塔座,在塔座X上插有n个直径大小各不相同、依小到大编号为1,2,...,n的圆盘。现要求将X轴上的n个圆盘移至塔座Z上并仍按同样顺序叠排,圆盘移动时必须遵循下列规则:1)每次只能移动一个圆盘;2)圆盘可以插在X、Y和Z中的任一塔座上;3)任何时

2017-12-11 11:32:04 3021

原创 Android笔记——定制ListView的界面

单独的显示一个文本的ListView很是不好看,我们平时生活中看的腾讯新闻列表,都是左边一列都是图片,右边显示新闻的标题,标题下方是新闻的简介,美观大方。因此我们先要准备好一组图片,然后定义一个实体类,作为ListView适配器的适配类型。这里我左边是水果图片,右边是水果的文字,首先来看下完成之后的效果动态图:(代码参考第一行代码)新建类Fruit.java文件:

2017-09-16 11:49:15 855

原创 编译原理:素短语、短语、直接短语、句柄的基本概念

素短语的概念:它是一个递归的定义,至少含有一个终结符,并且除它自身之外不再含任何更小的素短语,所谓最左素短语就是处于句型最左边的素短语的短语。而一个算符优先文法G的任何句型的最左素短语是满足以下条件的最左子串NaNb…NcNdN(N是非终结符,a,b,c,d是终结符)实例:句型T+T*F+id,求出其语法树,可知,T*F是最左素短语,id也是素短语,但不是最左的。 短语和直接短语的概念

2017-05-28 12:21:23 22078 7

原创 文法分析小结:自底向上的分析方法和自顶向下的分析方法有哪些

自底向上的分析技术 有:( 1 )简单优先分析法( 2 )算符优先分析法( 3 )优先函数( 4 ) LR 分析法首先注意一点:无论是那种语法分析,语法都是从左至右的读入符号! 自底向上分析法,也称移进-归约分析法。它的实现思想是对输入符号串自左向右进行扫描,并将输入符逐个移入一个后进先出栈中,边移入边分析,一旦栈顶符号串形成某个句型的句柄时,(该句柄对应某产生式的右部),就用该产生式的左部非终结符代替相应右部的文法符号串,这称为一步归约。重复这一过程直到归约到栈中只剩文法的开始符号时则为分析

2017-05-27 15:48:37 16234 2

原创 编译原理中四种文法语言的基本概念

马上就要编译原理的考试了,看了看去年试卷,做几道题,发现自己对文法的概念都很模糊,下面整理了一下四种文法的基本概念:  那么什么是文法呢?乔姆斯基把文法分成四种类型,即0型、1型、2型和3型。这几类文法的差别在于对产生式施加不同的限制。多数程序设计语言的单词的语法都能用正规文法或3型文法来描述。3型文法G=(VN,VT,P,S)的P中的规则有两种形式:一种是

2017-05-27 15:04:58 10358 2

转载 First集和Follow集,FirstVt集和LastVt集的计算

转载自:http://dongtq2010.blog.163.com/blog/static/1750224812011520113332714/学编译原理的时候,印象最深的莫过于这四个集合了,而且也十分为之纠结。首先要知道First和Follow是一对,而Firstvt和Lastvt是一对。然后要知道这两对都是干什么的。First和Follow是为了画预测分析表的(在LL(1)分

2017-05-23 00:14:09 5139 1

转载 First集和Follow集的求法

对于终结符和非终结符的理解:   终结符:通俗的说就是不能单独出现在推导式左边的符号,也就是说终结符不能再进行推导。  非终结符:不是终结符的都是非终结符。如:A->B,则A是非终结符;A->id,则id是终结符。(一般书上终结符用小写,非终结符用大写。) 文法产生语言句子的基本思想: 从识别符号(开始符)开始,把当前产生的符号串中的非终结符替换为相应规则右部的

2017-05-22 21:23:29 2047

原创 Node.js的基本模块学习(三)

node.js内置的fs模块,负责读写文件,fs模块提供了异步和同步的方法,下面给出异步读取一个文本的代码如下:'use strict';var fs=require('fs')//将内置的模块赋值给fsfs.readFile('test.txt','utf-8',function(err,data){ if(err){ console.log(err);

2017-05-20 18:43:17 481

原创 Node.js基本模块学习(二)

在Node.js的交换环境中,有且仅有一个全局变量global,和javaScript不一样,在浏览器中叫做window对象,我们看看global: process也是Node.js提供的一个对象,它代表当前Node.js进程,由于javaScript程序是由事件驱动执行的单线程模型,node.js也是一样,不断响应事件的JavaScript函数,直到没有可以响应事件的函数可以执行,node

2017-05-20 15:08:32 764

原创 Javascript基础学习(四)之iterable遍历

值得注意的两个for…of和for…in循环,那么两者究竟有什么区别呢?    看下面代码:    var a=['A','B','C'];a.name='Hello';for(var x in a){ alert(x); } //结果输出,0,1,2,name;为什么会出现一个name呢?由于历史遗留问题,for in循环遍历的实际上是对象的属性名称,一个Array数组实际是一个对

2017-05-20 14:24:36 1470

原创 Node.js的基本模块学习(一)

首先写一个hello.js文件:'use' strict; var s='hello'; function greet(name){ console.log(s+','+name+'!'); }module.exports=greet;  首先看到,函数greet()是hello.js中的,最后面一条语句,将函数greet作为模块输出,个人理解就是类似java中的public属性,那么其他的

2017-05-18 13:02:30 372

原创 Python基础学习(一)之切片操作

Python的宗旨,一行代码能实现的功能,绝对不写5行代码,始终记住,代码越少,开发效率越高.取一个list或者tuple的部分元素是很常见的操作:>>>L=['Beijing','Shanghai','Wuhan','Changsha','Tianjing'];如果要取前面的三个元素,该怎么做?>>>temp=[]>>>n=3>>>for i in range(n):

2017-05-16 23:57:11 548

原创 Ubuntu的简单命令使node.js 版本升级

一共只有两行命令:首先安装n模块:sudo npm install -g n再在终端输入:sudo n stable

2017-05-14 18:04:10 1831 1

原创 Python语言实现龙女仆康娜酱字符飞出

巧的是,女主小林编程用的语言也是Python,人生苦短,我用Python,模拟了动画的开始动画,下面先演示一下效果动态图:下面上源代码:import timeimport osdef get(str,n): n=n-1; a=0; rev=(""); while a<n: b=(a+1); c=str[b];

2017-05-09 23:25:06 3139

原创 python将图片转换为字符画

前几天在B站看到了一个用C语言写的将小林家的龙女仆转化为字符画的视频,里面写着代码有6万多行,说实话,绝对不需要,几百行代码足够了,C语言我不清楚但是,在Python中只需要安装一个Pillow库,就可以把图片转为字符画了,视频的画就把视频分解一帧一帧的图片,然后文件读入图片转化为字符画,在输出就OK了,循环读入在输出就能显示动态的字符画了,下面演示我的一个例子,图片如下:转化

2017-05-09 22:22:43 2694

原创 数值作业:改进欧拉法求常微分方程C语言代码

首先给出改进的Euler法的公式:然后对算法进行分析,在数值书上171面上的例3,题目是{ y'=-y+x+1, y(0)=1}第一个是变化率:dy/dx,取h=0.1,计算至x=0.5:书上给出的解答: 显然:  f(x,y)=x-y+1, a=x0=0,b=0.5,y0=1,n=5.  然而我完全看不懂怎么算出来的,总之这是根据已知条件推出隐藏条件,然后触发主任务完成的条件.然

2017-05-07 20:01:22 12793 1

原创 stray ‘\343’ in program解决办法

今天在做数值作业的时候,运行碰到一个bug,一直无法正常编译,如图于是各种百度,这种错误是由于这行代码中含有中文的引号or其他的全脚符号引起的,百度上说的是对的,但是我在函数中用了define语句,于是一直在这行代码死磕,后来才恍然大悟,于是跳到第一行的define语句改了就ok,真正有中文符号的是我的define语句那里,宏替换的弊端从这也看出了,哎,错的不是这行代码,错的是你的第三行def

2017-05-06 16:28:28 2218

原创 数值作业:龙贝格算法计算积分C语言实现

根据Romberg算法计算定积分,和变步长的Simpson算法的输入都一样.算法基本分析:输入a,b(积分上下限),n为积分区间等分数,eps为计算精度,我这里1e-7,代表0乘以10的负6次方.本题目取的例子为数值书137面的例子2,f(x)= sin(x)/x,下面给出代码:/******************************************** > File

2017-05-06 16:15:49 15269 1

原创 数值作业:变步长梯形求积算法计算积分C语言实现

变步长的Simpson公式计算积分.算法基本分析:输入a,b(积分上下限),n为积分区间等分数,eps为计算精度,我这里1/2e-6,代表0.5乘以10的负6次方.变步长梯形求积算法计算积分,本题目取的例子为数值书131面的例子2,f(x)= sin(x)/x,下面给出代码:

2017-05-06 14:08:57 14244 3

原创 Javascript基础学习(三)-自定义对象数组

首先明确一点,javascript和java半毛钱的关系都没有,两个完全是不同的语言.javascript是一个叫Brendan Eich的人设计出来的,这哥们在两周之内设计出了JavaScript语言。你没看错,这哥们仅仅只用了10天时间。什么是大神,或许这就是大佬吧,菜鸡的我一旁瑟瑟发抖.刚开始学这个的时候,都说javascript的对象是万能的,想要什么的功能自己可以自定义一个,今天在写一个

2017-05-05 12:42:44 1096

采用51单片机的流水灯电路图及源程序

采用51单片机的流水灯电路图及源程序

2016-12-06

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除