自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(78)
  • 收藏
  • 关注

原创 Windows中如何禁止gVim生成备份文件

在Windows下使用gVim打开文档时,会生成一个.swp文件(用于提供安全的备份和恢复功能)。当文档进行了修改,保存后会生成一个~的文件(备份文件)。禁止生成swp、~的方法打开gVim。 通过“编辑” -> “启动设定”,打开设置界面。 在其中添加set nobackup ,关闭~文件。 在其中添加 set noswapfile,关闭swp文件。 ...

2018-07-15 16:23:07 1416 2

原创 Intellj idea中使用Gradle创建Scala项目

安装Gradle创建空白Gradle项目创建Scala项目安装Gradle到gradle官网下载gradle。我个人下载的是最新版本——gradle-4.7-bin.zip。解压到D:\目录下。设置环境变量GRADLE_HOME(D:\gradle-4.7),并将D:\gradle-4.7\bin添加到PATH中。在命令行中执行gradle -v确认已经安...

2018-07-15 13:44:46 5282

转载 CSDN Markdown语法

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I...

2018-05-18 21:32:24 246

转载 自制编程语言——引子

创造一门编程语言,只需要一些C语言基础,一些正则表达式,加上不断思索的大脑就可以做到。设计的语言具备四则运算、变量、条件分支、循环、函数定义、垃圾回收等功能,最终版本则可以支持面向对象、异常处理等高级机制。制作一门新的语言,正是重复发明轮子,这是深刻理解编程语言的最佳途径(缺点是要很多时间)。解释器会将源码或分析树解析为字节码这种中间形态,并且一边解析一边运行,但是解释器并不会将源码翻译为机器码。J

2017-11-03 22:02:55 1175 2

原创 Activity的生命期

销毁Activity通过可以通过按一个Back键就可以销毁当前Activity。如果希望在程序中通过代码的方式来销毁Activity,则可以调用Activity类提供的finish()方法。public class FirstActivity extends AppCompatActivity { @Override protected void onCreate(Bundle sa

2017-10-29 20:32:16 335

原创 Activity中使用Menu

概述创建Menu资源在res目录下创建menu资源目录在menu目录下创建一个名为main的menu资源文件在Activity中展示此Menu常见问题概述由于手机屏幕空间非常有限,因此充分利用屏幕空间在手机界面设计中就显得非常重要。Android可以可以通过使用Menu来达到能展示菜单的同时还不占用任何屏幕空间。创建Menu资源在res目录下创建menu资源目录。注意:选定资源类型时一定要选

2017-10-29 19:51:41 646 1

原创 Android提醒方式之Toast

概述makeText方法的签名及参数介绍实例概述Toast是Android系统提供的一种提醒方式,在程序中可以使用它将一些短小的信息通知给用户,这些信息会在一段时间后自动消失,并且不会占用任何屏幕空间。makeText方法的签名及参数介绍public class Toast { public static Toast makeText(Context context, CharSequenc

2017-10-29 15:05:26 486

原创 AndroidManifest.xml清单文件说明

概述样例一些常用操作指定最低兼容版本和目标版本给应用程序添加权限概述AndroidManifest.xml文件主要用于注册程序中定义的组件、给应用程序添加权限声明、指定程序最低兼容版本和目标版本等操作。样例<?xml version="1.0" encoding="utf-8"?><!--指定应用程序的包名,此包名会作为其唯一标识--><manifest xmlns:android="ht

2017-10-29 09:49:52 526

原创 Android res目录下资源的定义及使用

概述资源存放规则自动生成的资源清单类R资源定义方法定义布局资源资源使用方法在Java代码中使用在XML中使用概述res目录用于存放Android应用程序使用到的所有资源,按照约定将不同的资源存放到不同的文件夹内,这样可以方便地让APPT工具来扫描这些资源并为其生成对应的资源清单类(R.java)。资源存放规则drawable用于存放图片资源layout用于存放布局资源mipmap

2017-10-22 18:41:02 2458

原创 Android目录结构说明

manifests目录java目录res目录Android Studio中一个经典的Hello World程序的目录结构如下图所示(这里展示的目录只对应到真实目录的app/src/main,其余一些不关心的目录并未呈现)。manifests目录用于存放整个项目的Android配置文件——AndroidManifest.xml,此文件可以用于注册程序中定义的组件、给应用程序添加权限声明、指定程序

2017-10-22 14:13:29 364

原创 在Android应用中使用Log打印日志信息

概述日志操作方法用例概述通常而言,在打印日志时可以使用System.out或Android中的日志工具类android.util.Log来进行日志输出。但在真正的项目开发中,却极度不建议使得System.out.println()方法,原因如下:System.out.println()方法除了使用方便一点之外,其它就一无是处了,如:日志打印不可控制、打印时间无法确定、不能添加过滤器、日志没有级别

2017-10-22 10:42:21 6175

原创 函数式编程的数据结构

概述常用数据结构容器类型序列Seq序列之List序列之Vector常用操作概述面向对象语言通常为各个领域建立对等类来实现其业务,而函数式编程则倾向于使用核心数据结构和算法来实现业务逻辑。通常数据结构被定义为:相互之间存在一种或多种特定关系的数据元素的集合。也即,Data_Structure=(D, R),其中D为数据的有限集,而R则为关系的有限集。

2017-08-27 11:42:36 1000

原创 组件复用——组合器

组件模型概述面向对象没有带来大规模组件复用的原因组件复用在Scala中的尝试组件模型概述从广泛的领域来看,成功的组件模型都依赖于非常简单的基础,这个基础使得组件能够创建、生成更复杂的结构,进而形成适用的高层协议。由此可知在软件领域中,恰当、通用的代码或二进制交互协议是复用组件的基础。如:数字集成电路(IC)用2n2^n根信号线与信号总线相连,每个信号线是一个布尔值,取值为开或关。在HTTP组

2017-08-27 10:35:18 249

转载 进度条

概述使用方式使用ProgressBar组件使用Activity的方法概述进度条通常用于向用户显示某个耗时操作完成的百分比,从而避免在长时间执行某个耗时操作时,让用户感觉程序失去了响应,从而更好地提高用户界面的友好性。使用方式使用ProgressBar组件setProgress(int)设置进度完成的百分比 incrementProgressBy(int)设置进度条的进度的增加或减少。当参数为

2017-07-09 15:27:51 411

转载 9Patch图片

对于按钮上图片而言,Android会自动缩放整张图片,以保证背景图片覆盖整个按钮。但用户或许只是想缩放图片中某个部分,以保证按钮的视觉效果,此时9Patch图片就有了用武之地。9Patch图片是一种特殊的PNG图片(文件扩展名为9.png),其在原始图片四周各添加了一个宽度为1像素的线条,这4条线就决定了该图片的缩放规则、内容显示规则。左侧和上侧的直线共同决定了图片的缩放区域,右侧和下侧的直线共同决

2017-07-09 07:31:20 261

转载 界面组件——按钮(Button)与图片按钮(ImageButton)

介绍用例介绍Button继承了TextView,同时还是ImageButton的父类。Button、ImageButton的功能主要是在UI界面上生成一个按钮,该按钮可以供用户单击,当用户单击时,按钮会触发一个OnClick事件。Button生成的按钮上显示文字,而ImageButton上则显示图片。即使为ImageButton指定android:text属性也不会在此按钮上显示任何文字。可以通过

2017-07-09 07:19:28 3235 1

转载 界面组件——文本框(TextView)和编辑框(EditText)

介绍用例1基本属性设置用例2给文本框添加边框或图片用例3添加默认提示和焦点切换功能对于电话号码框时输入法自动切换到数字键盘介绍TextView直接继承了View,它还是EditText、Button两个UI组件类的父类。TextView和EditView均能在界面上显示文本,只是后者还能提供对此显示文本的编辑功能。用例1:基本属性设置<?xml version="1.0" encoding="

2017-06-26 22:08:49 2883

转载 Android中常用的距离单位

Android常用的距离单位如下:px(像素,pixel)。每个px对应屏幕上的一个点。dip或dp(设备独立像素,device independent pixels)。一种基于屏幕密度的抽象单位。在每英寸160点的显示器上,1dip = 1px。但随着屏幕密度的改变,dip与px之间的换算比例会发生变化。sp(比例像素,scaled pixels)。主要处理字体的大小,可以根据用户的字体大小

2017-06-24 18:04:41 622

转载 布局管理器——绝对布局

介绍用例介绍绝对布局由AbsoluteLayout类代表,此时Android不提供任何布局控制,而是由开发人员自己通过X坐标、Y坐标来控制组件的位置。用例<?xml version="1.0" encoding="utf-8"?><AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android" andro

2017-06-24 17:53:02 336

转载 布局管理器——相对布局

介绍用例介绍相对布局由RelativeLayout代表,相对布局容器内子组件的位置总是相对兄弟组件、父容器来决定。如果A组件的位置是由B组件的位置来决定的,Android要求先定义B组件,再定义A组件。为了控制该布局容器中各个子组件的布局分布,RealativeLayout提供了一个内部类:RelativeLayout.LayoutParams,该类提供了大量的XML属性来控制RelativeLa

2017-06-24 08:00:00 997

转载 杂谈

Android的View和UI组件不是线程安全的,故而不允许开发者启动线程访问用户界面中UI组件。若要修改,用户可以通过额外定义一个Handler来进行相关的处理。 摘自《疯狂Android讲义》

2017-06-23 21:56:26 208

转载 布局管理器——帧布局

介绍用例介绍帧布局由FrameLayout类代表,其直接继承了ViewGroup组件。帧布局容器为每个加入其中的组件创建一个空白的区域(称为一帧),每个子组件占据一帧,这些帧会根据gravity属性执行自动对齐。帧布局会把组件一个一个地叠加在一起,但不能将底层的帧移到上层。用例<?xml version="1.0" encoding="utf-8"?><android.support.const

2017-06-23 21:16:48 1126

转载 布局管理器——表格布局

介绍用例介绍表格布局由TableLayout类代表,其会采用行、列的形式来管理UI组件。TableLayout通过添加TableRow、其它组件来控制表格的行数和列数,而不需要明确地声明包含多少行、多少列。每次向TableLayout中添加一个TableRow,该TableRow就是一个表格行,TableRow也是容器,因此它也可以不断地添加其它组件,每添加一个子组件该表格就增加一列。若直接向Ta

2017-06-21 20:18:38 1740

转载 布局管理器——线性布局

介绍用例介绍线性布局由LinearLayout类来代表,其会将容器里的组件 个挨着一个地排列起来。LinearLayout不仅可以控制各组件横向排列,也可控制各组件纵向排列。LinearLayout布局不会换行 ,当组件一个挨着一个地排列到头之后,剩下的组件将不会被显示出来。用例<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:a

2017-06-18 11:28:58 481

转载 布局管理器

介绍分类介绍不同的手机屏幕的分辨率、尺寸并不完全相同,如果让程序手动控制每个组件的大小、位置,则将给编程带来巨大的困难。为了解决这个问题,Android提供了布局管理器。布局管理器可以根据运行平台来调整组件的大小,程序员要做的,只是为容器选择合适的布局管理器。布局管理器使得Android应用的图形用户界面具有良好的平台无关性。通常,推荐使用布局管理器来管理组件的分布、大小,而不是直接设置组件的位置

2017-06-18 11:01:21 521

转载 View组件及UI界面控制方法

View及ViewGroup类介绍UI界面控制方法使用XML布局文件控制UI界面View及ViewGroup类介绍Android应用的所有UI组件都继承了View类,View组件非常类似于Swing编程中的JPanel,它代表了一个空白的矩形区域。Android采用了”组合器“设计模式来设计View和ViewGroup,ViewGroup作为View的重要子类,通用作为其它组件的容器使用。UI界

2017-06-16 20:10:50 3016

原创 程序设计第一要务——让用户感到“爽”

程序设计,必须要考虑用户的感受,只有让用户感到”爽“,这样的程序才会被需要、被使用,这样的程序才有价值。按对程序的理解程度可以将用户分为两类: 1. 自己。绝对的理解,在使用上要求不高,只要求往后可以持续使用即可。 2. 作为接口来使用的其它开发者。接口上的理解,要求可用、稳定、性能良好、接口定义简洁合理。 3. 作为产品使用的普通用户。产品上的理解,要求具备特有功能、可用、稳定、性能良好、界

2017-06-16 19:27:09 263

转载 Android基本组件介绍

ActivityAndroid应用通常由一个或多个基本组件组成(Activity、Service、BroadcastReceiver、ContentProvider等),其中最常用的组件就是Activity。ActivityActivity是Android应用中负责与用户交互的组件,大体上可以将其想象成Swing编程中的JFrame控件(JFrame本身可以设置布局

2017-06-14 21:25:31 718

转载 导数的几何意义

设曲线y=f(x)y=f(x)在点P0P_0处的坐标为(x0,y0)(x_0, y_0),当自变量由x0x_0变到x0+Δxx_0 + \Delta x时,点P0P_0沿曲线移动到点P(x0+Δx,y0+Δy)P(x_0 + \Delta x, y_0 + \Delta y),直线P0PP_0P是曲线y=f(x)y=f(x)的割线,其倾角记为φ\varphi。由上图可得: tanφ=ΔyΔx\ta

2017-06-10 06:51:17 2038

转载 Android平台架构简介

Android系统介绍Linux内核层系统运行库层提供Android系统特性的函数库Android运行时库Android虚拟机与Java虚拟机应用框架层应用层Android系统介绍Android系统的底层建立在Linux系统之上,该平台由操作系统、中间件、用户界面和应用软件四层组成,它采用一种被称为软件叠层(Software Stack)的方式进行构建。这各软件叠层结构使得层与层之间相

2017-06-09 19:52:24 14631 1

原创 Android Studio安装

安装Android Studio配置Andorid Studio第一个Android程序最近脑袋发热,想试下Android开发来给自己的手机添加点儿乐趣。要开发首先就需要一个开发环境,这里就选择官方推荐的Android Studio来试下。本文就其安装进行说明(所使用系统为Win 8.1)安装Android Studio下载安装包(官网链接)。确保系统中已安装JAVA环境。双击下载好的ex

2017-06-04 21:55:10 48809 4

原创 递归函数

定义缺点尾递归实例Trampoline类型递归函数定义直接或间接调用函数本身的函数称为递归函数。递归是函数式编程的特点,也是优雅地实现很多算法的强大工具。在函数式编程中递归是实现“循环”的唯一方法,这是因为你无法修改循环变量。缺点反复调用函数带来的开销;栈溢出的风险。尾递归在递归函数中,若递归调用是整个函数中最后执行的语句且它的返回值不属于表达式的一部分时,这个递归函数就是尾递归。尾递

2017-06-04 10:22:34 388

原创 函数实现的契约——线程安全与透明引用

透明引用:函数的返回值只依赖于其输入值的特性。使用相同的xx值多次调用sinx\sin x,如果系统每次都重新进行一次计算将会是极大的浪费。即使在“纯粹”的函数库中,也常常执行内部优化,如使用缓存来记住之前的计算结果。但缓存引入了副作用,因此缓存的状态会被修改。然而,这种状态的改变对用户来说是不可见的(除非影响性能的意义)。函数的实现只需要负责达到“契约”即可,也即达到线程安全与透明引用。 参考

2017-06-04 09:54:49 316

转载 常用导数

y=xny=x^n,nn为正整数,y′=nxn−1y^\prime=nx^{n-1} y=sinxy=\sin x,y′=cosxy\prime=\cos x y=cosxy=\cos x,y′=−sinxy\prime=-\sin x y=axy=a^x,y′=axlnay\prime=a^x\ln a y=logaxy=\log_ax,y′=1xlogae=1xlnay\prime=\f

2017-06-04 08:17:03 1058

转载 导数与微分

导数反映出函数相对于自变量的变化而变化的快慢程度,而微分则指明当自变量有微小变化时,函数值变化的近似值。导数的定义设函数y=f(x)y=f(x)在U(x0)U(x_0)内有定义,如果极限 limx→x0f(x)−f(x0)x−x0\lim_{x\to x_0}\frac{f(x)-f(x_0)}{x-x_0} 存在,则称该极限值为f(x)f(x)在点x0x_0处的导数(也称函数f(x)f(x)在

2017-06-04 08:03:57 478

转载 根的存在定理(零点存在定理)

若函数y=f(x)∈C([a,b])y=f(x) \in C([a, b]),且f(a)⋅f(b)<0f(a)\cdot f(b)<0,则至少存在一点x0∈(a,b)x_0\in(a, b),使得f(x0)=0f(x_0)=0。上述定理的几何意义十分明显。若函数y=f(x)y=f(x)在闭区间[a,b][a, b]上连续,且f(a)f(a)与f(b)f(b)不同号,则函数y=f(x)y=f(x)对应

2017-06-04 07:35:51 14298

转载 函数连续

设函数f(x)f(x)在U(x0)U(x_0)内有定义,如果当自变量的增量Δx\Delta x趋于0时,相应的函数的增量Δy=f(x0+Δx)−f(x0)\Delta y = f(x_0+\Delta x)-f(x_0)也趋于0,即 limΔx→0Δy=0\lim_{\Delta x \to 0}\Delta y=0 则称函数f(x)f(x)在点x0x_0处连续。

2017-06-04 07:21:18 447

转载 无穷小量

设α(x)\alpha(x),β(x)\beta(x)是同一极限过程中的两个无穷小量: limα(x)=0,limβ(x)=0\lim\alpha(x)=0,\lim\beta(x)=0则有如下定义limα(x)β(x)=A=⎧⎩⎨0,高阶无穷小量,记为α(x)=o(β(x))1,等价无穷小量,记为α(x)∼β(x)其它,同阶无穷小量,记为α(x)=O(β(x))\lim\frac{\alpha(

2017-06-03 06:42:27 1436

转载 柯西收敛准则

limx→x0f(x)=a\lim_{x \to x_0}f(x)=a的充要条件是:∀ϵ>0\forall\epsilon>0,∃δ>0\exists \delta>0,当x1,x2∈D(f)x_1,x_2\in D(f)且0<|x1−x0|<δ0<|x_1 - x_0|<\delta,0<|x2−x0|<δ0<|x_2 - x_0|<\delta时,有|f(x1)−f(x2)|<ϵ|f(x_1)

2017-06-02 21:57:11 17243

转载 夹逼定理

设在点x0x_0的某去心领域内有 F1(x)⩽f(x)⩽F2(x)F_1(x)\leqslant f(x)\leqslant F_2(x), 且limx→x0F1(x)=limx→x0F2(x)=a\lim_{x \to x_0}F_1(x)=\lim_{x \to x_0}F_2(x)=a, 则limx→x0f(x)=a\lim_{x \to x_0}f(x)=a

2017-06-02 21:22:19 1949

空空如也

空空如也

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

TA关注的人

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